V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
M9l7chlLGv
V2EX  ›  分享创造

FFF - 通用 & 高扩展性的 Front Matter 参数格式

  •  
  •   M9l7chlLGv · 2023-02-03 10:42:17 +08:00 · 741 次点击
    这是一个创建于 664 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文档 | GitHub

    感觉各家 Front Matter 都太过简单——所以我写了一个足够复杂的,就是这样。

    特点

    命名我参考了 microformats2JSON Feed,同时用下划线作为分隔符(而不是在 YAML 看起来很别扭的 camelCase ),看起来会规整一些。

    与 microformats2 兼容

    例如 bookmark_of, like_of, repost_of, in_reply_to 四种提及类型... 懒得写了,可以在文档里看

    flags

    立 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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5617 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:42 · PVG 14:42 · LAX 22:42 · JFK 01:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.