《在路上》最吸引我的是《海阔天空》。
如果有数据迁移的想法(比如有更好的方案提升效率,节省空间时间)就尽快进行迁移,否则随着数据积累,本来很简单就能实现的迁移方案也只能搞得很复杂。
反向的量变引起质变。
本科毕业十年同学聚会,有的同学读了博士,有的同学已经移民,有的同学是几百人公司的老总。
作为报废码农,我还得继续努力。
在职业生涯的第十年我才意识到,我和 @Vanessa 又多了一个共同的节日。
度假结束,继续奋斗。
https://hacpai.com/article/1571292817039
冒烟测试非常重要。
三亚分界洲岛
目测天海分隔线基本水平(左边还是略高一点点),程序员真的太纠结了。
洗洗睡,明早直奔三亚。
明天准备回家,国庆假期结束了。下周准备去海南,开始正式的度假。
这个国庆节过出了春节的感觉。
关闭 BND 仓库问题列表。
给某些人解释事情是真费劲,我想过上彪悍的人生。
少即是多。
如果需要解决鸡蛋问题,那说明正在干的事情有点价值。
开始实现 Lute source map(源码映射):实现源码位置(source position)解析映射,可用于判断某个字符位置所在 AST 节点,以支持编辑器场景实现光标位置描述。Issue #26 · b3log/lute
Source Map 即 Markdown 源码和 HTML 目标代码之间的字符关联信息。要实现双向映射 AST 上必须要有结构来存储映射关系:
其实不用源码映射也可以实现上述功能,只是在稍微复杂的 Markdown 源码中会出现小问题。能结构化解决的问题最好结构化解决,否则应用陷入 if else 的泥潭就惨了。
Vditor 中加入了 Markdown AST 可视化功能,这样大大方便了后续开发调试。
其实应该早点写这个工具的,之前调试起来真的是惨无人道 🤣
工欲善其事必先利其器
Markdown 源码位置映射很麻烦啊,只有很少数的 Markdown 引擎进行了实现。
Issue #29 · commonmark/commonmark.js
Google AdSense 账号再次因为无效流量被限制投放了,有人利用 https://www.googleapis.com/auth/chrome-content-suggestions 作为 Referer 头进行恶意点击。感觉是 Google AdSense 对这个头开了白名单,导致无效流量清洗不到位。
https://www.googleapis.com/auth/chrome-content-suggestions
突然反思一个问题,所见即所得的 Markdown 编辑器真的好么?这似乎违背了 Markdown 设计的初衷:通过简单标记排版从而“所见即所得”。
换个角度,所见即所得的 Markdown 也许是在富文本编辑器和分屏预览 Markdown 之间的一个折中。分屏预览虽然不错,但是如果标记过多(特别是链接、图片)容易干扰视觉从而影响行文思路。所见即所得的 Markdown 解决了这个问题并且获得了富文本编辑器的一些特性,最重要的是保持了 Markdown 排版方式。这样的设计也许就是“刚刚好”的设计。
不管了不管了,好用才是最终评判标准。
重新实现了 Lute 的 Markdown 格式化功能(Markdown to AST to Markdown formatted)。再写个 HTML Parser 就可以完成 HTML to Markdown 了(HTML to AST to Markdown formatted)。
解析器和渲染器完全分离的设计开始发挥作用了。
《在路上》最吸引我的是《海阔天空》。
如果有数据迁移的想法(比如有更好的方案提升效率,节省空间时间)就尽快进行迁移,否则随着数据积累,本来很简单就能实现的迁移方案也只能搞得很复杂。
反向的量变引起质变。
本科毕业十年同学聚会,有的同学读了博士,有的同学已经移民,有的同学是几百人公司的老总。
作为报废码农,我还得继续努力。
在职业生涯的第十年我才意识到,我和 @Vanessa 又多了一个共同的节日。
度假结束,继续奋斗。
https://hacpai.com/article/1571292817039
冒烟测试非常重要。
三亚分界洲岛
目测天海分隔线基本水平(左边还是略高一点点),程序员真的太纠结了。
洗洗睡,明早直奔三亚。
明天准备回家,国庆假期结束了。下周准备去海南,开始正式的度假。
这个国庆节过出了春节的感觉。
关闭 BND 仓库问题列表。
给某些人解释事情是真费劲,我想过上彪悍的人生。
少即是多。
如果需要解决鸡蛋问题,那说明正在干的事情有点价值。
开始实现 Lute source map(源码映射):实现源码位置(source position)解析映射,可用于判断某个字符位置所在 AST 节点,以支持编辑器场景实现光标位置描述。Issue #26 · b3log/lute
什么是 Source Map
Source Map 即 Markdown 源码和 HTML 目标代码之间的字符关联信息。要实现双向映射 AST 上必须要有结构来存储映射关系:
Source Map 有什么用
其实不用源码映射也可以实现上述功能,只是在稍微复杂的 Markdown 源码中会出现小问题。能结构化解决的问题最好结构化解决,否则应用陷入 if else 的泥潭就惨了。
Vditor 中加入了 Markdown AST 可视化功能,这样大大方便了后续开发调试。
其实应该早点写这个工具的,之前调试起来真的是惨无人道 🤣
Markdown 源码位置映射很麻烦啊,只有很少数的 Markdown 引擎进行了实现。
Issue #29 · commonmark/commonmark.js
Google AdSense 账号再次因为无效流量被限制投放了,有人利用
https://www.googleapis.com/auth/chrome-content-suggestions
作为 Referer 头进行恶意点击。感觉是 Google AdSense 对这个头开了白名单,导致无效流量清洗不到位。突然反思一个问题,所见即所得的 Markdown 编辑器真的好么?这似乎违背了 Markdown 设计的初衷:通过简单标记排版从而“所见即所得”。
换个角度,所见即所得的 Markdown 也许是在富文本编辑器和分屏预览 Markdown 之间的一个折中。分屏预览虽然不错,但是如果标记过多(特别是链接、图片)容易干扰视觉从而影响行文思路。所见即所得的 Markdown 解决了这个问题并且获得了富文本编辑器的一些特性,最重要的是保持了 Markdown 排版方式。这样的设计也许就是“刚刚好”的设计。
不管了不管了,好用才是最终评判标准。
重新实现了 Lute 的 Markdown 格式化功能(Markdown to AST to Markdown formatted)。再写个 HTML Parser 就可以完成 HTML to Markdown 了(HTML to AST to Markdown formatted)。
解析器和渲染器完全分离的设计开始发挥作用了。