如何在Pelican markdown帖子的元数据部分中写评论?

问题描述

在Pelican中,是否可以在markdown文件的元数据部分中添加注释?假设我有一个看起来像这样的帖子:

CREATE TEMPORARY TABLE ar
SELECT 
    uid,AVG(CASE WHEN Feedback_type = 1 THEN rating END) AS average_rating_1,AVG(CASE WHEN Feedback_type = 2 THEN rating END) AS average_rating_2,AVG(CASE WHEN Feedback_type = 3 THEN rating END) AS average_rating_3,AVG(CASE WHEN Feedback_type = 4 THEN rating END) AS average_rating_4
FROM Feedback
WHERE uid=8
GROUP BY uid;

SELECT
    Users.Name,ar.uid,ar.average_rating_1,ar.average_rating_2,ar.average_rating_3,ar.average_rating_4,ar.Feedback_type,Profile.City,Users.Pic,Profile.State,Profile.About
FROM ar
INNER JOIN Users ON ar.uid=Users.UID
INNER JOIN Profile ON ar.uid=Profile.uid;

是否可以在元数据中添加注释?例如:

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

Lorem ipsum sit dolor amet...

上面的示例不起作用,因为鹈鹕将Title: Hello World! Tags: greetings Date: 2020-01-01 # This is the first comment. # This is another comment. Lorem ipsum sit dolor amet... 视为Markdown标题

如何在Pelican markdown文件的元数据部分中进行评论

解决方法

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

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

,

改用 HTML 注释,或将注释作为“官方”元数据。所以#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...
,

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

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

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