【问题标题】:How can I write comments in the metadata section of a Pelican markdown post?如何在 Pelican Markdown 帖子的元数据部分写评论?
【发布时间】:2020-09-24 04:03:37
【问题描述】:

在 Pelican 中,是否可以在 markdown 文件的元数据部分添加注释?假设我有一个如下所示的帖子:

Title: Hello World!
Tags: greetings
Date: 2020-01-01

Lorem ipsum sit dolor amet...

是否可以将 cmets 添加到元数据中?例如:

Title: Hello World!
Tags: greetings
Date: 2020-01-01  # This is the first comment.
# This is another comment.

Lorem ipsum sit dolor amet...

上面的示例不起作用,因为 Pelican 将 # This is another comment. 视为 Markdown 标题。

如何在 Pelican 降价文件的元数据部分发表评论?

【问题讨论】:

    标签: markdown pelican python-markdown


    【解决方案1】:

    对于 Markdown 内容,Pelican 将处理委托给 Python-Markdown 库。 Markdown 元数据由其Meta-Data extension 处理,我认为它不支持元数据字段中的 cmets。对tracker issues 的粗略检查没有发现与此问题相关的任何问题。

    简而言之,这个问题与 Pelican 本身无关,而是与依赖的 Python-Markdown 库有关。

    【讨论】:

    • 作为 Python-Markdown 的开发者,我可以确认元数据中不支持 cmets。扩展程序本身不会将值的内容解析为 Markdown,因此我不确定 Pelican 正在采取哪些额外步骤来做到这一点。但是您可以尝试使用 HTML cmets。
    【解决方案2】:

    改用 HTML cmets,或将注释作为“官方”元数据。所以#1:

    Title: Hello World!
    Tags: greetings
    Date: 2020-01-01  # This is the first comment.
    <!-- This is another comment. -->
    
    Lorem ipsum sit dolor amet...
    

    或#2:

    Title: Hello World!
    Tags: greetings
    Date: 2020-01-01  # This is the first comment.
    Comment: This is another comment.
    
    Lorem ipsum sit dolor amet...
    

    【讨论】:

    • HTML cmets 可能有一个缺点:它们出现在 HTML 输出中。
    【解决方案3】:

    您可以使用许多 Pelican 插件,这些插件允许将元数据部分写入 YAML,这(大部分)向后兼容 Pelican 默认情况下期望的简单键值元数据对。这些 YAML 插件的示例包括:

    在 YAML 中,cmets 以 # 开头(一行中的任何位置,而不仅仅是开头)并继续到行尾,就像在您的示例中一样。

    您只需要记住几件事。首先,这些插件要求您以包含 --- 的行开始和结束整个元数据标头,因此如果您要转换现有的 Pelican 站点,您可能需要编写一个简短的脚本(使用 sed、Perl 等)。 ) 将这些分隔符添加到您的文件中。其次,YAML 中的一些其他字符具有特殊含义,因此如果您在元数据值中使用这些字符中的任何一个,则需要对它们进行转义或将值用单引号或双引号括起来。

    【讨论】:

      猜你喜欢
      • 2020-07-07
      • 2021-03-29
      • 2016-03-18
      • 2019-12-06
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      相关资源
      最近更新 更多