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

obsidian 目前最完美的免费发布方案 - 渐进式教程

  •  1
     
  •   cdd2zju · 2022-07-14 16:30:12 +08:00 · 5843 次点击
    这是一个创建于 845 天前的主题,其中的信息可能已经有所发展或是发生改变。

    可以访问此文的双链版本,获得完整阅读体验:obsidian 目前最完美的免费发布方案 - 渐进式教程 - 🌲 oldwinterの数字花园

    几个发布方案对比

    支持[[双向链接]]是底线,否则随便用一个主流的静态 blog 方案就行了。

    先看最终方案的发布页面效果: 🌱 oldwinterの数字花园

    和 obsidian 的官方发布方案做个对比:🌲 oldwinterの数字花园

    功能点详细比对:

    功能点和限制 jekyll 方案 1 官方收费发布方案 hugo 方案(quartz) logseq 方案
    反向链接面板 支持 支持 支持 支持
    正向链接预览 支持 支持 支持 支持
    支持搜索 不支持,但通过 google 间接实现 支持 支持,但中文不兼容 支持
    链接稳定性 只要文件名不改,链接就稳定 受文件夹和文件名同时影响 只要文件名不改,链接就稳定 只要文件名不改,链接就稳定
    文件夹层级显示 支持
    [[首屏加载速度]] 极快,2s 内,下载资源<1M 中等,5 秒内,下载资源<5M 极快,2s 内,下载资源<1M 超慢,10 秒,下载资源<30M
    图谱显示 支持全局图谱,但 1K+笔记就很卡 完美支持 支持局部图谱,中文支持不友好 支持,稍卡
    [[横向卷动布局- andy mode]] 不支持 支持 不支持 不支持
    暗色模式支持 不支持 支持 支持 支持,但固定,不能切换
    移动端支持 支持 支持 支持 支持
    markdown 扩展语法支持 只支持基本 md 语法和[[语法 支持 obsidian 的 callout 和别名语法 只支持基本 md 语法 只支持基本 md 语法和[[语法
    其他限制 必须要有 YAML 区 收费 必须要有 YAML 区;不支持[[wikilink 格式,需妥协 语法上需要一点克制

    精力有限,就只对比这 4 种方案了。下面列上我目前体验对比过的全部第三方开源发布方案,供各位参考,也可以持续观察作者后续的开发进展,再择优选择。

    总之,有钱就选官方服务准没错。其次,综合对比后,我选择了 jekyll 方案 1 ,如何一步步实现,见下文。

    渐进式教程

    注:程序员朋友预估 10 分钟之内能搞定。纯小白也许需要花费 30 分钟以上。有能力的朋友,可以直接根据原作者的 readme 进行部署和发布,不需要看我的汉化啰嗦版😅

    总的来说:

    通过基于[[jekyll]]开源的静态 blog 模板,通过[[git push]]自动触发[[netlify]]进行构建操作,将 md 文件转换成静态服务器可以识别的 html 文件。

    一步步来说:

    • 1.本地调试。
      • fork 这个 jekyll 开源模板:GitHub - oldwinter/dg
        • 有能力的朋友,建议 fork 原作者的,自己进行定制改动。
      • git clone自己 fork 的仓库地址到你电脑本地:git clone <YOUR_COPIED_URL_HERE> my-digital-garden
      • 进入刚才 clone 的仓库的目录,cd my-digital-garden
      • 执行依赖库安装命令bundle
        • bundle 是[[ruby]]的包管理器,所以可能还需要先安装 ruby 语言环境,请自行搜索教程。
        • 如果因为网络问题导致依赖库安装很慢,请自行搜索解决。
      • 执行本地调试命令bundle exec jekyll serve,接着浏览器打开http://localhost:4000看是否正常显示页面。
      • 将 obsidian 库全部要发布的文件用 linter 插件加上 YAML 格式的[[frontmatter]]区,然后拷贝至_notes_目录。
        • linter 插件支持一键对全库进行 markdown 格式美化,强烈推荐。⚠️执行前请先备份。
        • 有能力的朋友,可以直接将 obsidian 笔记库添加为[[git submodule]]。
      • ctrl + c 停止bundle exec jekyll serve命令,并重新执行。接着浏览器打开http://localhost:4000/笔记名。例如我的 obsidian 笔记库里面有数字花园这条笔记,则访问http://localhost:4000/数字花园即可看到笔记。
    • 2.[[netlify]]配置自动构建。
      • 按照这个教程手把手教你使用 Netlify 部署博客及部署自动化 - 知乎,界面一步步点,都按默认配置来,从而将上一步 fork 的自己仓库,通过 netlify 构建和发布。
        • 主流的免费的还有[[github pages]]和[[vercel]]服务,前者缺少[[CDN]]导致国内访问很慢,后者存在非 html 后缀的链接报 404 错误的问题。
      • 完成上一步后,应该能得到一个https://master--zippy-dango-d43c8d.netlify.app/类似格式的网址,打开后正常显示原仓库的页面即可。
    • 3.将本地全部文件 push 至 github 。
      • 本地仓库的根目录执行 git 三件套:git add . git commit -m "first commit" git push
        • 有能力的朋友,可以将这个步骤,用效率工具,包装成一个定时执行或一键执行的命令。
      • 回到[[netlify]]页面,应该能看到它开始被 push 操作触发了构建动作,等几分钟后,打开得到的新网址,看是否已经包含了 obsidian 笔记库内容,链接为域名 /笔记名。例如我的 obsidian 笔记库里面有数字花园这条笔记,则访问https://master--zippy-dango-d43c8d.netlify.app/数字花园即可看到笔记。
    • 4.定制自己的首页、网站名和样式
      • 首页修改。修改_pages文件夹下的index.md即可,可直接参考dg/index.md at master · oldwinter/dg · GitHub
      • 网站名修改。修改根目录的_config.yaml第一行 title 字段即可。
      • 有能力的同学,自己根据 jekyll 官方文档,定制自己的界面和样式即可。
      • 完整重复步骤 3 ,看更改是否生效。
    • (可选)自定义自己的域名
      • 在 netlify 界面按提示一步步操作即可,需要有自己的域名且已经备案。
      • [[第一次购买并备案域名的经验]]
      • [[DNS 解析]]

    写在最后

    我在践行 obsidian 笔记库全量开源的想法(代码能力不够,笔记来凑😂),欢迎捧场来赏赐 1 个 star⭐️:GitHub - oldwinter/knowledge-garden: 真实袒露的第二大脑 second brain ,未经美化的数字花园 digital garden

    此外,如果你对『建设数字花园🌱,也就是公开发布自己的双链笔记』这件事儿感兴趣,欢迎加我微信:oldwinter2 ,我拉了个 10+人小群,只交流这个事儿。而 obsidian 、logseq 或其他笔记使用入门,请不要加我哈,这些有不少专门的新手讨论群,可以 b 站或百度搜一搜。

    9 条回复    2022-12-15 19:11:33 +08:00
    wonderfulcxm
        1
    wonderfulcxm  
       2022-07-14 17:00:23 +08:00
    OK ,我也想试试 Obsidian
    TrembleBeforeMe
        2
    TrembleBeforeMe  
       2022-07-14 17:31:11 +08:00
    既然对发布有硬需求为何不用 tiddlywiki
    cdd2zju
        3
    cdd2zju  
    OP
       2022-07-14 17:47:23 +08:00   ❤️ 1
    @TrembleBeforeMe 选笔记软件,跟选编程语言一样,选完以后,我屁股就坐这了,也实在没有精力去研究这么多软件或者编程语言。确定语言后,如果遇到各种问题,再找解决方案就够了。所以这点角度出发,我倾向于各位选择社区活跃,使用人数多的笔记软件。tiddlywiki 实在没用过,我当初第一次听说双链笔记是 roam ,然后去搜索相关笔记的时候,貌似没看到 tiddlywiki ,所以就擦肩而过了,哈哈。
    cdd2zju
        4
    cdd2zju  
    OP
       2022-07-14 17:49:09 +08:00
    @wonderfulcxm 这位同学如果还没用过双链笔记的话,我个人推荐 logseq 或 obsidian 哈。无它,社区活跃,就意味着遇到问题,一般能搜到解决方案。logseq 现在拿了投资以后,开发者好像都快有 10 人了,比 obsidian 只有 3 人多了多,可以期待一下它下半年的成长。
    codermagefox
        5
    codermagefox  
       2022-07-14 18:40:52 +08:00
    晚了,已经用 Vercel+Notion 方案了,Obsidian 还是不够爽
    cdd2zju
        6
    cdd2zju  
    OP
       2022-07-14 21:53:33 +08:00
    @codermagefox 哥们,能展开说一下嘛,vercel 起到了什么作用?是能加速 notion 的访问吗?还是将 notion 变成访问更快的静态博客? notion 我也在用的,主要用 databse 来管理一些数据清单表格。
    zxCoder
        7
    zxCoder  
       2022-07-15 11:07:20 +08:00
    你们笔记真多
    codermagefox
        8
    codermagefox  
       2022-07-18 11:22:20 +08:00
    @cdd2zju Vercel 可以直接把 notion 上的笔记变成静态博客,以 Notion 作为后端,前端可以自定义.用起来非常舒服.
    huhexian
        9
    huhexian  
       2022-12-15 19:11:33 +08:00
    我想了解一下 quartz 这个方案,是不是必须先在本地用 hugo 创建一个网站? quartz 是不是相当于一个 hugo 的主题?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1331 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:36 · PVG 07:36 · LAX 15:36 · JFK 18:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.