D

88250 Java golang Linux 开源
关注
1 号成员,2012-11-24 16:19:56 加入
71.3k
个人主页 浏览
35.3k
帖子 + 回帖 + 评论
但行好事莫问前程
  • 88250 昆明
    链接

    开始实现 Lute source map(源码映射):实现源码位置(source position)解析映射,可用于判断某个字符位置所在 AST 节点,以支持编辑器场景实现光标位置描述。Issue #26 · b3log/lute

    什么是 Source Map

    Source Map 即 Markdown 源码和 HTML 目标代码之间的字符关联信息。要实现双向映射 AST 上必须要有结构来存储映射关系:

    • 源码中每个字符都可以在 AST 上找到对应节点
    • 从 AST 节点也可以在源码中找到对应字符位置

    Source Map 有什么用

    • 为编辑器和预览视图联动提供支持
      • 描述光标插入位置,以支持所见即所得的 Markdown
      • 分屏阅览时可将 Markdown 和 HTML 通过映射行号对应来实现精确的同步滚动
    • 为 Markdown 语法高亮提供基础

    其实不用源码映射也可以实现上述功能,只是在稍微复杂的 Markdown 源码中会出现小问题。能结构化解决的问题最好结构化解决,否则应用陷入 if else 的泥潭就惨了。

  • 更多