电子芥末
·

PyBoke: 极简博客生成器

  • 使用过程极简
  • 功能极简,代码极简

因为功能少、代码简单,任何懂编程的人(只要懂 Python 基础)
就能在短时间内完全看明白本软件的全部代码并且随心所欲地修改。

主要功能

  • 只支持 Markdown 格式,用户只需要用 Markdown 写文章,即可生成静态博客。
  • 添加文章时,不需要在任何地方填写文章标题、文章分类、标签、日期…… 这些全部都不用管,只管写文章
  • 博客页面有一个 "random" 按钮,可随机阅读文章
  • 自带四个极简主题 (CSS style), 可自行添加更多主题
  • 自动生成 RSS (但只提供有限支持,详见 readme)
  • 有一个简单的设定图片最大宽度的功能
  • 有一个简单的替换图片地址功能

为什么不需要填写文章标题、文章分类、标签?

  • 自动提取文件第一行的内容作为标题
  • 管理博客文章的最常见的思维是通过 "类别", "标签", "日期" 三个维度来实现
  • 本软件的第一版也是这样做的,花了很多时间精力几乎全部功能都实现时
    (甚至还用 PyQt 做了一些 GUI), 又全部推倒重做,因为发现了新的文章管理方法。

"类别", "标签", "日期" 的缺点

  • 这套方法有很多优点,因此才会流行,但也有缺点。
  • 我认为缺点是用户发布文章时,每次都要选择分类、填标签,产生额外的心智负担。
  • 而且处理这些功能,要写很多代码。

三个维度发现文章

  • 我认为可以从 "三个维度管理文章" 变成 "三个维度发现文章"。
  • 管理的目的是使文章井井有条,但我发现我真正担心的并不是文章是否排列整齐,
    而是如何让读者(或我自己)从旧文章中挑选一些文章来看,避免旧文章被埋没。
  • 因此,我只要提供一些发现文章的维度即可,不需要强迫用户(作者)花时间精力去管理
  • 对于文章数量不会很多的个人博客来说, "标题索引", "日期", "随机" 已经够用了,
    同时使代码大幅减少,使用过程也很畅快,这个 trade-off 是值得的。

替换图片地址

  • 在 markdown 中可使用 ![photo-1](../output/pics/XXX.jpg) 的形式插入图片。
  • 在每篇文章对应的 toml 文件的 pairs 项目里,可指定图片的替换地址,例如:
    pairs =  [
      [ '''../output/pics/abc.jpg''', '''https://example.com/abc.jpg''' ],
    ]
    
  • 一旦提供替换地址, markdown 文件的内容保持不变, HTML 文件中如有第一个字符串,会被替代为第二个字符串。
  • 不只是图片地址,该功能可以替换任何字符,但主要用途是替换图片地址。

更多信息

bookmark_add
添加收藏
评论
登录后评论

原来要考虑几十 G 大小,那基于 Git 传输不太合适,可以整站传到对象储存或者 CDN 上。

相册还要考虑一个问题,原图可能很大(几十M),浏览的时候一般要生成缩略图。

Cloudflare Images 可以生成缩略图,但是有起步价格(5刀)。国内的云储存一般也有图片处理功能,但要收出口流量费没有 Cloudflare 便宜(CF 是特例)。

reply
回复

CORS问题正是我担心的。静态相册可能很多人会直接上传到 github pages 之类的地方,如果图片比较多,占用空间就会很大,就算一些小的 VPS 只有小几十 G 空间也不太够用,所以要想办法把图片的储存移到另一个服务里。

现在看来纯静态不太行。

reply
回复
1 回复
arrow_right_alt

静态网站的话,图片和其他 HTML/CSS/JS 一起发布就好了,传到对象储存似乎没什么优势。

对象储存适合动态应用,例如做个图床,把文件拖进去上传然后返回 URL,然后文章里引用 URL。

然后 Cloudflare R2 功能感觉还比较初级,例如 CORS 设置(浏览器直传需要)得通过 API 调用设置,很不方便。我感觉他们把 R2 当作自家边缘云服务的附属服务,还没有优化第三方的调用。

reply
回复
1 回复
arrow_right_alt
查看所有评论 (5)
社区准则 博客 联系 反馈 状态
主题