metadata - Markdown 元数据格式

标签 metadata markdown

在 Markdown 格式的帖子中嵌入元数据是否有标准或约定,例如发布日期或由渲染器进行条件渲染的帖子作者?

看起来像这样 Yaml metadata格式可能是它。

有各种各样的策略,例如随附文件 mypost.meta.edn ,但我希望将其全部保存在一个文件中。

最佳答案

有两种常见的格式看起来非常相似,但实际上在某些非常具体的方面有所不同。还有一个非常不同的第三个。

YAML 前沿问题

Jekyll 静态站点生成器普及了由 YAML section markers 分隔的 YAML 前端内容.是的,破折号实际上是 YAML 语法的一部分。元数据是使用任何有效的 YAML 语法定义的。以下是来自 Jekyll docs 的示例:

---
layout: post
title: Blogging Like a Hacker
---


请注意,YAML 前端内容不会由 Markdown 解析器解析,而是在由 Jekyll(或您使用的任何工具)解析之前被删除,并且实际上可以用于请求与该页面的默认 Markdown 解析器不同的解析器(我不记得 Jekyll 是否这样做了,但我见过一些这样做的工具)。

MultiMarkdown 元数据

更老更简单的MultiMarkdown Metadata实际上并入了几个 Markdown 解析器。虽然最近更新为可选地支持 YAML 分隔符,但传统上,元数据结束,Markdown 文档从第一个空白行开始(如果第一行是空白,则没有元数据)。虽然语法看起来与 YAML 非常相似,但仅支持键值对,没有隐含类型。以下是 MultiMarkdown 文档中的一个示例:

Title:    A Sample MultiMarkdown Document  
Author:   Fletcher T. Penney  
Date:     February 9, 2011  
Comment:  This is a comment intended to demonstrate  
          metadata that spans multiple lines, yet  
          is treated as a single value.  
CSS:      http://example.com/standard.css


MultiMarkdown 解析器包含一系列附加选项,这些选项是该解析器独有的,但键值元数据跨多个解析器使用。不幸的是,我从未见过任何两个行为完全相同的。如果没有定义这种格式的 Markdown 规则,每个人都会做出自己略有不同的解释,从而导致了很多变化。

更常见的一件事是支持 YAML 分隔符和基本的键值定义。

Pandoc 标题栏

为了完整起见,还有 Pandoc Title Block . If 的语法非常不同,不容易与其他两个混淆。据我所知,它只支持 Pandoc(如果启用),并且它只支持三种类型的数据:标题、作者和日期。以下是 Pandoc 文档中的一个示例:
% title
% author(s) (separated by semicolons)
% date

请注意,Pandoc 标题块是 Pandoc 支持的两种样式之一。 Pandoc 还支持 YAML Metadata如上所述。默认情况下,这两个扩展均未启用。

关于metadata - Markdown 元数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44215896/

相关文章:

python - 查找 Markdown 代码块之外的图像标签

ios - 从 CGImageMetadata 转换为 nsdictionary

C# 到 Java : What is a [DefaultProperty ("value")]?

list 中的 Android 元数据返回 null

anaconda - 元数据可以成为 Orange3 中的目标变量吗?

markdown - 如何在 Jekyll 中使用 markdownify 在索引上显示摘录

node.js - 使用 Node JS 更改 Markdown 文本中的图像源

rmarkdown : page break within a chunk?

markdown - 如何在Gitter中发送图片?

reactjs - React 应用程序 - 检查元素中存在 SEO 元数据但页面源中缺少