Markdown 支持引用样式的链接,您可以将语义链接名称放置在文件底部:
Today I found a [movie][EEAAO] that [changed my life].
[EEAAO]: https://en.wikipedia.org/wiki/Everything_Everywhere_All_at_Once
[changed my life]: https://blog.example.com/This-movie-changed-my-life
我想使用 Liquid 提取这些引用链接,以便我可以在页面底部列出来源。
有什么办法可以做到吗?
Liquid 本身并不原生解析 markdown,但您可以手动提取并处理链接
{% assign markdown_content = page.content %}
{%- comment -%}
Split the markdown content into lines
{%- endcomment -%}
{% assign lines = markdown_content | split: "\n" %}
{%- comment -%}
Loop through the lines and look for lines matching the citation link format
{%- endcomment -%}
<ul>
{% for line in lines %}
{%- comment -%}
Match lines like [key]: URL
{%- endcomment -%}
{% if line contains ']: ' %}
{% assign link_parts = line | split: ']: ' %}
{% assign link_name = link_parts[0] | remove: "[" %}
{% assign link_url = link_parts[1] | strip %}
<li>
<strong>{{ link_name }}</strong>: <a href="{{ link_url }}">{{ link_url }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
但是,您必须确保引文链接始终以预期格式显示:
[name]: URL
,因为 Liquid 不支持传统编程语言那样的完整正则表达式功能。