emacsorphanage / org-page

[INACTIVE] A static site generator based on Emacs and org mode.
673 stars 99 forks source link

对于新项目,不能得到正确的org文件,并生成对应的html文件 #158

Open ccsheller opened 8 years ago

ccsheller commented 8 years ago
  1. 新建一个git库,建立source分支
  2. 配置好org-page
  3. 库目录中添加index.org,并git add index.org
  4. 执行op/do-publication 分别输入 y n n
  5. 只能生成media文件夹,不能得到对应的html

调试了下看到

(setq all-files (op/git-all-files op/repository-directory))

;all-files为空 changed-files为(:update ,all-files :delete nil) 因force-all为t

 (op/publish-changes all-files changed-files store-dir)

其需要all-files中的值来进行生成操作。 觉得all-files应刻包括git库中的文件和git add过的文件。

ccsheller commented 8 years ago

当然all-files只包括提交后的文件也很合理。 但是change-files却包括了曾经提交过,现在又修改且只git add的文件。 这样的文件修改还没提交到库中,但是会被生成新的html。 这点是我大致看了publish-changes all-files的判断,我才用emacs不久,看elisp有难度。

sillykelvin commented 8 years ago

changed-files是根据两个commit之间的差距来的,执行的命令如下:

git diff --name-status <base-commit> HEAD

这个命令会把改动的文件列出来,不管有没有git add。所以建议在执行publish之前,提交你所有期望提交的改动。