【发布时间】:2020-10-05 14:37:11
【问题描述】:
我注意到一些 Markdown 解析器和 GitHub 会自动将裸 URL 转换为链接,但其他 (like Kramdown) 不会。标准 Markdown 语法要求 URL 用尖括号括起来,例如<https://www.google.com/>.
我的 Markdown 编辑器中有许多带有裸 URL 的文档,例如超链接,但是当我在 Jekyll 中将它们推送到 GitHub Pages 时,它们没有呈现为链接。
如何编写脚本来用尖括号括住裸 URL? 最好通过 shell 脚本、标准命令行工具(sed、awk)或 Python。或者也许已经有一个 Jekyll 插件了?
我知道匹配的 URL 非常重要,所以在深入研究之前想在这里询问一下。
进一步的困难:解决方案应该只更改裸 URL,而不要使用已经通过符合标准的 Markdown 或 HTML 包装/编码的 URL。
(我希望这是一个常见问题,它是在各种 GitHub-Issues 帖子中针对各种包,没有解决方案......但是尝试在这里搜索这个问题并不能发现它已经被问到了,@ 987654322@。我发现了很多关于在尖括号已经存在时匹配的问题,但不是添加尖括号的问题。但我想象解决方案已经实现了很多,很多时候——在我们使用的工具中,比如 GitHub 和 MathOverflow——所以,不知道为什么这样做的方法没有被广泛发布。)
【问题讨论】:
-
this 有帮助吗?
-
GitHub 在github/markup 中记录了他们的过程。自动链接发生在第 4 步,与 Markdown 处理(在第 1 步中)分开。不幸的是,它们没有链接到处理此问题的代码,但是如果您深入研究提交历史记录,您可能会找到指向他们不再使用的旧解决方案的链接。我知道他们过去链接到的链接比现在更多。我只是不确定他们是否曾经链接到解决方案的那部分。
-
... 无论哪种方式,请注意,这发生在 Markdown 转换为 HTML 之后。据推测,GitHub 正在将 HTML 传递给 HTML 解析器,逐步遍历文档树,并对文本运行过滤器。这样可以轻松避免代码块、现有链接等。
-
@Mandy8055 哇,成功了!它甚至留下了我添加的包含普通 HTML 和 Markdown 链接的字符串。即使是包含许多不寻常字符的又长又复杂的谷歌搜索字符串!
-
我添加了 asnwer @sh37211;请检查
标签: html regex markdown jekyll