emacs-china / EGO

EGO is a static site generator that depends on Emacs, Git and Org-mode.
94 stars 11 forks source link

重构EGO #110

Closed lujun9972 closed 4 years ago

lujun9972 commented 4 years ago

EGO 的简化版本,去掉了很多感觉不必要的东西,跟之前的版本比有如下改动

不保存上一次发布的项目

合并了 ego-current-project-name 和 ego-default-project-name 这两个变量,目前 ego-current-project-name 的作用就是以前的 ego-default-project-name.

而ego不再保存上一次发布的项目是什么,因为上一次发布的项目不见得就是这次要发布的项目,我觉得保存上一次发布项目反而使代码变得复杂。

用另一个单独的目录存储html结果

在同一个目录里面通过不同分支存储html和org文件,意味着要使用一个临时目录保存html再拷贝回原目录,我觉得这个拷贝的操作完全是费操作,而且当博客内容很多的时候拷贝速度也不快。

另外在目录中切换分支也容易把仓库搞乱,索性简单点使用单独的一个目录来存储html,该目录和原目录分别对应远程仓库中的不同分支。这样不仅节省了拷贝操作,而且无需在进行分支的切换了。

发布前先git pull同步一次上游仓库

有的时候会在另一台机器上写博客,而在本机上忘了同步上游仓库导致合并仓库时出现冲突

去掉Emacs中的静态web服务

根据UNIX哲学,只做一件事情,把这件事情做好。我觉得EGO只需要实现把org文件转换成html博客就好,预览功能作用不大。

而且Emacs上实现的web静态服务器太过简陋,如果真的想要预览,可以用专业的web服务器来实现,比如

docker run -dit --name my-apache-app -p 8080:80 -v "${STORE-DIR}":/usr/local/apache2/htdocs/ httpd:2.4

尝试用vc库代替git

vc-git本身实现了很多git操作,可以复用这些操作而无需自己实现。

gitalk替换评论系统

毕竟翻墙不方便啊

实现delete org file处理

通过在html branch中存储org file和html的对应关系来实现删除org file也能够删除对应的html file

repo-dir切换到org branch前先用stash保存未提交内容,切回原branch后再unstash

之前的操作是直接commit,但是有时候我可能有写到一半的博客,不想提交上去发布,所以先stash会比commit更合理一些

lujun9972 commented 4 years ago

@kuangdash @Liu233w @tumashu

tumashu commented 4 years ago

cool

lujun9972 commented 4 years ago

cool

大神,看看能不能merge啊