← 工具与方法

obsidian发布的免费替代方案

Jiangshan He · 工具与方法 · 阅读与实践记录

教程

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

基本环境

  • 下载ruby安装环境,下载3.1.4版本,超过3.2版本会报错
  • git clone git@github.com:maximevaillancourt/digital-garden-jekyll-template.git
  • [!] 一定要先fork,让github里有对应的仓库,后面Netlify需要使用这个仓库
  • cd 工作目录
  • bundle
  • 执行本地调试命令bundle exec jekyll serve,接着浏览器打开http://localhost:4000看是否正常显示页面。

Netlify环境部署 博客部署

  • 教程
  • 获取个人网站网址

如何自动发布到github与更新web网页

使用方式

  • obsidian的设置-文件与链接
    • 开启“使用Wiki链接”
    • 将“内部链接类型”修改为“尽可能简短的形式”
  • 不允许md文件有相同的命名
  • 每个md文件必须包含front-matter

    问题

  • 不支持latex,对于科研来说公式也很重要
    • 寻找支持latex的方案 比如插件
    • 更改代码使得Jekyll支持latex公式(包括内联插入$$)的调用:
      • 只要将 MathJax 提供的代码片段放在 _includes/head.html,原理在教程
          <script>
          MathJax = {
        tex: {
          inlineMath: [['$', '$']]
        }
          };
          </script>
          <script id="MathJax-script" async
        src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
          </script>
        
      • 参考老版解决方案1,已不适用,Mathjax最新文档
      • [ ] 有些内联公式仍然不支持,例如 $\hat{y}=\mathrm{argmax}{y}P{\theta}({y} x)$ ,因为存在双下横线,在html里会在转换成公式前率先被渲染成italics。
        • 在github的mathjax提问
        • 在jekyll论坛上有人遇到了类似的情况
        • 可能的解决方案:在bat文件中,同步到github前运行python脚本将内联公式中的_替换成_
        • 参考链接:jekyll论坛,github issue,github issue2,github issue3
        • 最终方案是参考包哥的博客,原本是需要在_includes/footer.html中加入脚本,将下划线转换的html标签重新更改为下划线,但是我们的footer.html默认是网页的脚注,添加script脚本会影响脚注渲染,改为在_layouts/default.html中加入下面脚本。 ```HTML

    } rep() </script> ```

  • 无法自动同步到github上
    • 尝试插件obsidian-git,我的工作区只设置在子文件_note下,没法跳出子文件夹进行push
    • 使用bat文件,cmd运行 taskschd.msc添加自动运行的新任务,每天运行一次。

20241129

突然发现几个月的更新都没有同步到网站上,发现是原github仓库对里面的依赖版本有了更新,在netlify官网构建的时候报错Failed during stage 'Install dependencies': dependency_installation script returned non-zero exit code: 1

  • 首先按照原仓库更新Gemfile和Gemfile.lock文件的依赖版本,再次构建,仍然初始化报错
  • 使用指令bundle update jekyll,这将会更新 Gemfile.lock 文件中的 Jekyll 版本,并确保 Jekyll 及其所有依赖项是最新的。
  • 更新完成后,在本地对应终端运行bundle exec jekyll serve,根据报错来解决
  • 最后成功同步