写在最前

2020年10月23日

在SwiftUI macOS平台上,一个List的样式SidebarListStyle()的bug直到macOS Big Sur beta 10才修好。

Resolved in macOS Big Sur beta 10

You can now reorder a list using SiderbarListStyle as expected.

这个bug在list内容较少时不会出现,而当内容大于30条时会出现卡顿。

之前

之前把自己的Typecho博客静态化了,从最初的脚本到独立的私有的Typecho-Handsome-Java程序、从最初通过curlhtml保存下来到用JavaFX配合jdbc-sqlite ,han-lp等第三方库完全自主将markdown渲染成html

我从这个项目上得到了许多关于宝贵的经验、欢乐与成就感,当然也付出了多个休息日。

不过Typecho-Handsome-Java (简称THJ)有两个问题:

  • 从名字就可以看出它用到了Handsome主题,这也是为何私有的原因,而T则表示它用到了Typecho的数据库表的命名(仅此而已)

  • JavaFX 8在macOS Catalina上有一个BUG,每次需要切换窗口再切换回来,否则菜单栏无法使用

考虑到这两个问题,以及因为我想学习swift开发还有各种各样的原因,所以我创建了一个全新的Macondo程序,并且在github上以MIT License开源,当然完成这个项目需要移植整个THJ,并且需要一个全新或者仿照Handsome模样(仅模样)的默认主题。

完成这个项目需要时间,以及解决下面的问题

  • 适应swift的语法,以及中文swiftUI资料的匮乏
  • 一个sqlite的swift库(已解决)
  • 一个渲染markdown的swift库(已解决)

另外,我之前没有学习过swift,更没有swift开发经验,简而言之我就是swift萌新,所以如果有地方写的不好的欢迎告知我修改。

项目目标变化

2020年8月11日

一开始打算完全在本项目渲染生成HTML,就像THJ中做的一样,但是后面我发现我太懒了swift正则好像没有Java那样顺手(懒得去找文档了),再加上从blog.skk.moe想起了hexo这个平台,再考虑了一下我为什么不用hexo的原因——因为不能可视化管理全部文章。

于是乎我就想到可以用Macondo来输出markdown文档,利用元数据来输出YAML,这样就会非常简单了,也不用放弃人类的开源精华,闭门造车。

平台及工具选择

  • macOS 11 Big Sur beta 10
  • Xcode 12.2 beta 2
  • 使用swiftUI

版本记录

v2.0.1

新功能

  • 支持自定义YAML,并移除头图设置(请写到YAML中)

  • 现在可以删除链接、书籍、看番、追剧。

  • UI小改动

修复

  • 修复一个bug,改bug曾导致删除文章后无法再创建新文章。

v2.0

2.0及以后版本只支持macOS Big Sur 及以上版本

v1.3

功能

  • 增加删除文章功能
  • 取消文章缩略图
  • 多语言支持(可以管理两种语言三种文字的博客)

修复

  • 可以让编辑文章的文本框横向滚动

v1.2

仅仅添加了四种独立页面。

修复编辑文章时文本框不能滚动的bug。

v1.1

因为项目目标变化,这个版本可以输出markdown文件,并以YAML的格式在文章前面加入诸如文章标题这类元数据。

v1.0

仅仅是一个beta的pre-release,包含基础的GUI页面和深色模式。