感觉各家 Front Matter 都太过简单——所以我写了一个足够复杂的,就是这样。
命名我参考了 microformats2 和 JSON Feed,同时用下划线作为分隔符(而不是在 YAML 看起来很别扭的 camelCase ),看起来会规整一些。
例如 bookmark_of
, like_of
, repost_of
, in_reply_to
四种提及类型... 懒得写了,可以在文档里看
立 flag 灵感源于 chrome://flags
。可以减少需要额外定义的变量:
# before
draft: true
visibility: 'unlisted'
# after
flags:
- draft
- unlisted
为媒体文件如 image
提供了接近 HTML 的扩展性,同时也支持仅 src
的简洁格式。
# string
image: 'https://fff.local/images/foo.avif'
# object
image:
src: 'https://fff.local/images/foo.avif'
alt: 'lorem ipsum'
figcaption: 'lorem ipsum'
sources:
- srcset: 'https://fff.local/images/foo444.avif'
media: '(min-width:444px)'
- srcset: 'https://fff.local/images/foo666.avif'
media: '(min-width:666px)'
fff-flavored-frontmatter
类型定义和一些工具函数,比如帖文类型发现和转换为对应的 JSON Feed 对象
remark-fff
Remark 插件,用于将其他 SSG 的 Front Matter 转换为 FFF
目前支持 MDsveX (Svelte / SvelteKit) 和 Astro,之后会兼容更多环境
markdown-it-fff
上面插件的 Markdown-It 版本,需要配合 @mdit-vue/plugin-frontmatter
食用
indiekit-preset-fff
Indiekit 的 FFF 预设,默认 postTypes 为 Urara
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.