12.7 现在的计划是基于 org-roam 做一个 ox-hugo 的导出前端

主要目标就是给所有放了 EXPORT_FILE_NAME 的 org-roam-node 做导出
就完全不需要管什么 file 和 subtree based export 了

查询所有有特定属性的 org roam node:

(org-roam-db-query
 [:select [file]
  :from nodes
  :where (like properties '"%\(\"EXPORT_FILE_NAME\" .%")])

可以这样实现:

(defun org-roam-hugo-export-all ()
  (interactive)
  (let ((rows (org-roam-db-query
               [:select [file pos properties]
                :from nodes
                :where (like properties '"%\(\"EXPORT_FILE_NAME\" .%")])))
    (dolist (row rows)
      (let* ((file (nth 0 row))
             (pos (nth 1 row))
             (properties (nth 2 row))
             (export-filename (cdr (assoc "EXPORT_FILE_NAME" properties))))
        (when export-filename
          (with-current-buffer (find-file-noselect file)
            (goto-char pos)
            (org-hugo-export-wim-to-md)))))))

org-roam-hugo-export-all

放在插件里了,这个插件里就只有一个函数

TODO 12.6 想要给 ox-hugo 提一个让 EXPORT_FILE_NAME 对文件生效的PR

但是还不知道怎么实现

12.5 重新尝试实现这个东西

现在这个统一导出函数能正常导出了
但是还有问题

还会有 org-element-at-point 报错
:section 设定可能会错误
文件导出的时候属性会错位(:ID: 非常突兀的出现了)

问题很大!!!
EXPORT_FILE_NAME 必需得自己写!
不然连到子树的链接会不能正常连上,
这样看来还是之前自动填充属性字段的版本比较合理。

我的评价是,不如手动管理这些文件,要更新直接用脚本找一下有 :EXPORT_FILE_NAME: 属性的文件,然后重新导出就好了。
可以给专门这个属性设置一个默认值,然后就应该很方便了,方便程度就和打tag差不多了。

总之这个插件大概是宣布破产了

11.20 开始规划这个插件

这是我打算写的一个用 org-roam 来实现 ox-hugo 全量导出控制的插件

设计中的目标是做到像 lazyblorg 一样的 tag 抓取功能
可以用一个 tag 作为一种导出预配置