V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dimlau
V2EX  ›  问与答

我没有用过静态博客生成器,有几点疑惑:

  •  
  •   dimlau · 2019-08-29 19:58:29 +08:00 · 2581 次点击
    这是一个创建于 1700 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1、 它们是在每次新写一篇日志的时候都全部生成所有静态页面吗?

    如果是,为什么这么蠢?十几二十年前的 blogger、movabletype 等静态发布功能都是增量生成新页面的啊(除了连带的几个索引页也会新建)。

    2、 就像把拍到的好玩的视频传去视频网站,本地就顺手删掉一样。我希望发布 blog 文章时提交原始 文字、照片,然后程序自动生成适合网络浏览的版本。

    但是拿 hugo 举例(当然并不是全盘评价),.md .jpg 之类原始素材,要留在本地,而只是把处理过的文件发布到网络。

    嗯……怎么说呢,其实相对于 vps 的硬盘,我的笔记本其实更不靠谱,磁盘又小,而且换台电脑就不能发新文章了?

    3、 鉴于以上,即便要用,也是直接在服务器端跑个 Server 更舒服吧?

    至少 hugo 可以这样做,更简单的 php 也有 Kirby、Grav 之类的动态从 markdown 文件生成网页的程序。

    我自己的 blog: https://kaix.in
    现在用的 grav
    21 条回复    2019-08-30 14:18:02 +08:00
    kran
        1
    kran  
       2019-08-29 20:09:12 +08:00 via Android
    我是通过同步云笔记本,生成博客(伪)
    好处是不丢数据,不需要处理任何静态资源,并且有非常好的写作体验
    geelaw
        2
    geelaw  
       2019-08-29 20:19:02 +08:00
    1. 我自己写的生成器会缓存编译结果。
    2. 用版本控制系统保留源代码,生成的文件爱怎么发布怎么发布。
    3. 静态博客生成器的一个好处是你不需要自己有一个 server,而管理一个 server 比管理 GitHub Pages 麻烦好多。
    LittleWhiteMouse
        3
    LittleWhiteMouse  
       2019-08-29 20:21:38 +08:00
    主题不同会带来不确定性

    比如我按照一定算法为每篇文章后面加上一些关联文章。那么有可能我新发布的这一篇和前面所有文章都有关联。
    当然,可以通过记录,比对来实现部分生成。但这样未必就是最节省算力和时间的,而在数量不是太大的情况下,全部生成也不需要多少时间,所以简单粗暴,并稳定好用,就可以了。

    静态博客生成也可以放在服务器上,没什么问题。只是在某些逻辑上和动态博客不太一样。比如程序本身并不需要对读者营业之类
    ysc3839
        4
    ysc3839  
       2019-08-29 20:21:45 +08:00 via Android
    1. 我不确定是不是,但我认为不难做到,只需要检查一下文件是否存在即可。
    2. 你可以同步到网盘等地方
    3. 我觉得生成静态文件主要是考虑到服务器成本,动态生成的成本更高,静态文件成本低甚至有许多免费的服务。
    ipwx
        5
    ipwx  
       2019-08-29 20:23:46 +08:00 via Android
    你不是静态博客系统的目标用户。比如我,不发照片,文章可能混合代码、公式、表格数据、参考文献。希望写的公式将来在整理成 latex 的时候能直接用而不需要再打一遍。希望文章有版本控制,能管理历史版本。不想自建服务器。这是典型的静态博客用户。
    momocraft
        6
    momocraft  
       2019-08-29 21:23:32 +08:00
    写一个正确的增量发布也没特别大好处, 大家都这么忙
    dimlau
        7
    dimlau  
    OP
       2019-08-29 21:39:42 +08:00
    @LittleWhiteMouse 我是想着既然都本地了,做个数据索引关联页面,生成的时候联动就好。

    因为有时候不是生成速度的问题,还涉及到传输过程浪费了很多时间吧。

    @geelaw 厉害了~~

    但是归根到底本地功能全了,就意味着换台电脑就不方便管理和发布。

    ---

    其实我也没想清楚,最优方案应该是什么。所以暂时还是保持原样不动了。

    (虽然很明显是杞人忧天,但是我还是忍不住时常会想,更长久和稳妥的方式,之类的问题)
    LittleWhiteMouse
        8
    LittleWhiteMouse  
       2019-08-29 21:43:27 +08:00
    @dimlau #7 Hexo 用 giit 传输速度很快的,就不在意。FTP 的话,就哭唧唧
    ipwx
        9
    ipwx  
       2019-08-29 21:44:33 +08:00 via Android
    @dimlau 针对传输速度: 写个脚本,本地编译完,增量更新到服务器。比如用 github pages 就先 clone 再覆盖再 commit 再 push。自己的服务器就 rsync
    dimlau
        10
    dimlau  
    OP
       2019-08-29 21:48:34 +08:00
    @ipwx 有道理,但是另一方面来说,你其实是说的 github (之类)吧。
    如果它提供更方便的在线操作,也没有必要搞本地生成。
    dimlau
        11
    dimlau  
    OP
       2019-08-29 21:56:26 +08:00
    @ipwx
    @LittleWhiteMouse

    我现在是用 resilio 除了文本同步之外还兼顾着自己的一些照片之类的,现在以及未来,速度应该不会在成为很大问题了。刚刚我主要是说的重复发布造成的时间上的浪费,虽然也不是很多,但是总归心里感觉有点洁癖犯了。
    kingcos
        12
    kingcos  
       2019-08-29 21:58:32 +08:00 via iPhone
    我集成了 CI,commit 上去即可
    LittleWhiteMouse
        13
    LittleWhiteMouse  
       2019-08-29 22:01:12 +08:00
    @dimlau #11

    粗暴简洁带来的感觉就是这样,在稳定的时候我们会抱怨它。

    而当复杂度提升到一定程度之后,我们又会怀念它。
    xiri
        14
    xiri  
       2019-08-29 22:03:45 +08:00
    静态博客肯定会用 Github 之类的备份一份源文件啊,只存在本地那也太蛋疼了。
    我现在博客用的 hexo+github pages,前两天刚配置好了 Travis CI 自动部署,本地不需要 hexo 的环境了,文章编辑好后 push 一下就能自动编译更新,挺方便的。
    rayhy
        15
    rayhy  
       2019-08-29 22:07:32 +08:00 via Android
    推到 GitHub 上的是编译前的呀,就那些 md,jpg 之类的。所以 repo 里就备份了图片。换电脑的时候 clone 下来继续写就行了。
    xiri
        16
    xiri  
       2019-08-29 22:08:20 +08:00
    @xiri 并且这样貌似在 github 上面在线修改文件提交 commit 后也可以触发更新,可以完全脱离本地操作,除了无法做到完全的实时更新之外跟一般的博客系统也没啥区别了(不过我还是喜欢在本地写好后 push,本地可以预览效果😂)
    geelaw
        17
    geelaw  
       2019-08-30 00:48:24 +08:00
    @dimlau #7 并不是,我一开始是给 Windows 写的,后来拿到了一台 Mac,随便改改就可以在 macOS 上跑了。显然静态生成器的源代码也是要备份的。
    mengzhuo
        18
    mengzhuo  
       2019-08-30 08:37:06 +08:00 via iPhone
    想这么多不如多写篇文章,毕竟你会发现其实编译的次数一年也不会有几次的。
    wdv2ly
        19
    wdv2ly  
       2019-08-30 08:40:37 +08:00 via Android
    直接提交到 git,然后用 ci 跑生成就行了啊?
    lancelock
        20
    lancelock  
       2019-08-30 10:54:57 +08:00
    我习惯用动态博客,方便简单,就是吃资源
    oliverchen
        21
    oliverchen  
       2019-08-30 14:18:02 +08:00
    现在我的一个博客是 hugo 生成的,博客文章的源文件是放在了 gitlab。国外解析到 Netlify,国内还有一台云主机部署了 gitlab 的 CI,两者都可以自动给我构建,我只管把博客文件推到 gitlab 就行了。

    关于换台电脑就不能管理和发布的问题,有 https://forestry.io/ ,可以把 gitlab 那个仓库授权给它,直接在 forestry 提供的后台写文章,传图片就可以了,点击保存它就会提交并推送到 gitlab。( forestry 和 netlify 功能上有重叠,forestry 也有自动构建功能,不过好像计划停掉这个功能; netlify 也有个可以让人直接在 web 上写文章的功能,之前尝试体验不如 forestry 好)。

    这样本地不需要 hugo 环境,也不需要在本地 push。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3197 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:35 · PVG 21:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.