在 hugo 中插入游戏信息卡片

起因:受到 https://immmmm.com/hugo-shortcodes-douban/ 的启发,看了一下也不是特别复杂,简单仿照了一下,获取游戏数据并展示。 目前支持游研社的链接(数据相对比较全,也比较好获取),后续有空的话可能会考虑一下支持一下 Steam 商店 之类的平台。 代码不复杂,直接开源了:gameinfo-api 框架使用的是 expressjs,使用起来并不复杂,直接看文档吧。 顺便撸了一个免费的 Node 服务:https://gameinfo-api2.onrender.com,限制如下: 每月 100G 流量 每月 750 小时的时候时间 超过 15 分钟没有流量的话,服务会被睡眠,睡眠后如果重新收到请求,服务冷启动的时间可能需要 30s 或者更长的时间 如果不嫌弃的话,可以直接使用以上的 URL。 使用方法和案例如下: hugo 的 shortcode 和 CSS 在此:https://gist.github.com/bobolo2ex/7ffd163cc99d7891c8c362b19b632b34 <!-- shortcode --> {{ $dbUrl := "https://gameinfo-api2.onrender.com/" }} {{ $dbID := replaceRE `.*yystv.cn/g/([0-9]+)/.*` "$1" (.Get 0) }} {{ $db := getJSON $dbUrl "yys/v1/" $dbID }} {{ $score := div (int $db.score) 10.0 }} <div class="post-preview game"> <img referrer-policy="no-referrer" loading="lazy" class="post-preview--image" src="{{ $db....

January 31, 2023

面试题一道

这是碰到的一道面试题,记录一下。 问题是:如何 json 数据的所有 key 从下划线改为驼峰 下面是答题过程中的实现方法: const testData = { a_bbb: 123, a_g: [1, 2, 3, 4], a_d: { s: 2, s_d: 3 }, a_f: [1, 2, 3, { a_g: 5 }], a_d_s: 1 } /** * _w 的形式转成 W */ function toCame(str) { return str.replace(/\_(\w)/g, function(a, b) { return b.toUpperCase(); }); } /** * 将一个json数据的所有key从下划线改为驼峰 * * @param {object | array} value 待处理对象或数组 * @returns {object | array} 处理后的对象或数组 */ function mapKeysToCamelCase(data) { if(data instanceof Array) { data....

November 15, 2019

How to fixed VS-code iView x-invalid-end-tag error

晚上在快乐的写代码的时候,突然碰到一个 eslint 检查器的错误: <!-- 这样一段代码 --> <Col> <Button>test</Button> </Col> <!-- 报了一个这样的错误 --> `Parsing error: x-invalid-end-tag vue/no-parsing-error` 一路翻阅了 Eslint-Plugin-Vue 和 Vetur 的文档,终于找到了一段说明: ![12FEB04B-3756-41EC-9589-0BC3D348F508.png](/resource/usr/uploads/2019/06/1297877056.png] ...

June 22, 2019