我 有 一 个 使用 Github's markdown 格式化 的 更改 日志 文件 。
最初 我 使用 * 内联 * 链接 的 每 一 个 链接 , 我 需要 添加 , 即 :
This is some [example](http://www.stackoverflow.com) line of text.
中 的 每 一 个
随着 时间 的 推移 , 随着 文件 大小 的 增长 , 它 变得 有点 混乱 , 主要 是 由于 这种 插入 链接 的 方式 。
我 想 将 所有 链接 从 * inline * 转换 为 * reference * ( 请 参阅 每个 链接 的 描述 ) , 也 就是 将 上面 的 行 转换 为 :
This is some [example][1] line of text.
[1]: http://www.stackoverflow.com
格式
因为 这个 文件 很 大 , 而且 包含 很多 * inline * 链接 , 我 想 知道 是否 有 一些 自动 化 的 方法 来 完成 这个 任务 。 我 使用 Sublime Text 3 来 编辑 , 但是 我 找 不到 一 个 适合 这个 任务 的 包 。 也许 是 一些 聪明 的 正则 表达式 ?
4条答案
按热度按时间2izufjch1#
这是一个伟大的要求!
我刚刚创建了一个新的Node.js程序(我知道它不是一个GUI,但似乎更多的人希望它的功能)来在GitHub上完成这一任务。
下面也是代码:
ep6jt1vc2#
将其保存为Packages文件夹中的
mdrelink.py
,然后可以使用从命令控制台中。
我 * 认为 * 我得到了正确的顺序-反转是必要的,因为否则它会弄乱已经缓存的下一个项目的索引。它也应该自动跳过已经使用的链接编号。我的第一个Python * 和 * 我的第一个Sublime插件,所以请对我温柔一点。
vcudknz33#
感谢Google,我偶然发现了这个问题。也许这可以帮助其他人:
我的答案不是Sublime特定的,但是如果您已经在使用JavaScript(Node),我会使用Markdown解析器和CST转换器,比如remark。
例如,要将
README.md
中得所有内联链接转换为numerically-ascending reference-style links,可以在项目得根目录下运行以下命令:或者,如果您需要reference-style links derived from the source uri:
希望这些信息能帮助像我这样的人不要浪费一整天的时间来破解一些基于正则表达式的非常不可靠的解决方案:)
kulphzqa4#
扩展@bjfletcher的答案,下面是考虑任何现有引用链接的代码。
链接到GitHub gist。
请注意,我更喜欢使用@Xunnamius的答案: