Obsidian 通过 Docsify 发布

Docsify 是一个很不错的 Markdown 文档发布工具,但是个别地方不适配 Obsidian 的语法。

与 Docsify 相关的使用方法就不再这里赘述,只分享一下我对某些不适配的解决方案:

  1. 不适配 wiki 链接:

    index.html 中引入插件:

    <script src="https://cdn.jsdelivr.net/npm/docsify-wikilink@1"></script>

    可以解决一部分问题,即如果 [[ 文章标题 ]] 如果在当前目录下,则可以顺利适配的链接,但是对于不在当前目录下的链接则无法适配,只能解决一部分问题。

  2. 对于标签的适配:

    • 引入插件:

    <script src="https://unpkg.com/docsify-plugin-flexible-alerts"></script>

    • 引入font-awesome(用于显示icon):

    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/js/all.min.js"></script>

    配置插件:

    window.$docsify = {
      'flexible-alerts': {
        note: {
          label: "Note",
          icon: 'fas fa-pen',
          className: 'note'
        },
        abstract: {
          label: "Abstract",
          icon: 'fas fa-note-sticky',
          className: 'tip'
        },
        summary: {
          label: "Summary",
          icon: 'fas fa-note-sticky',
          className: 'tip'
        },
        tldr: {
          label: "Tldr",
          icon: 'fas fa-note-sticky',
          className: 'tip'
        },
        info: {
          label: "Info",
          icon: 'fas fa-circle-info',
          className: 'note'
        },
        todo: {
          label: "Todo",
          icon: 'fa-solid fa-circle-check',
          className: 'note'
        },
        tip: {
          label: "Tip",
          icon: 'fa-solid fa-fire',
          className: 'tip'
        },
        hint: {
          label: "Hint",
          icon: 'fa-solid fa-fire',
          className: 'tip'
        },
        important: {
          label: "Important",
          icon: 'fa-solid fa-fire',
          className: 'tip'
        },
        success: {
          label: "Success",
          icon: 'fa-solid fa-check',
          className: 'tip'
        },
        check: {
          label: "Check",
          icon: 'fa-solid fa-check',
          className: 'tip'
        },
        done: {
          label: "Done",
          icon: 'fa-solid fa-check',
          className: 'tip'
        },
        question: {
          label: "Question",
          icon: 'fas fa-question-circle',
          className: 'warning'
        },
        help: {
          label: "Help",
          icon: 'fas fa-question-circle',
          className: 'warning'
        },
        faq: {
          label: "FAQ",
          icon: 'fas fa-question-circle',
          className: 'warning'
        },
        warning: {
          label: "Warning",
          icon: 'fa-solid fa-triangle-exclamation',
          className: 'warning'
        },
        caution: {
          label: "Caution",
          icon: 'fa-solid fa-triangle-exclamation',
          className: 'warning'
        },
        attention: {
          label: "Attention",
          icon: 'fa-solid fa-triangle-exclamation',
          className: 'warning'
        },
        failure: {
          label: "Failure",
          icon: 'fa-solid fa-xmark',
          className: 'attention'
        },
        fail: {
          label: "Fail",
          icon: 'fa-solid fa-xmark',
          className: 'attention'
        },
        missing: {
          label: "Missing",
          icon: 'fa-solid fa-xmark',
          className: 'attention'
        },
        danger: {
          label: "Danger",
          icon: 'fa-solid fa-bolt',
          className: 'attention'
        },
        error: {
          label: "Error",
          icon: 'fa-solid fa-bolt',
          className: 'attention'
        },
        bug: {
          label: "Bug",
          icon: 'fa-solid fa-bug',
          className: 'attention'
        },
        example: {
          label: "Example",
          icon: 'fa-solid fa-list',
          className: 'note'
        },
        quote: {
          label: "Quote",
          icon: 'fa-solid fa-quote-right'
        },
        cite: {
          label: "Cite",
          icon: 'fa-solid fa-quote-right'
        }
      }
    }
    

    可以解决所有类型的基本显示。但是无法适配展开和关闭。

后续如果遇到其他问题,再补充。

我最近也在搞obsidian的发布,实现了官方的publish托管服务,分享一下

1 个赞

发布的话,其实我比较喜欢这个项目 frontend-engineering/Invio

但是我的痛点主要是希望无感发布。比如我现在用docsify,在容器中跑起来docsify应用以后,直接把obsidian目录挂载上去就好了。所有的东西都是实时更新的,我写到哪儿就会刷新到哪儿。不需要再去手动点发布,或者去输命令啥的