由于2.0的版本与1.0比有较大的改动,之前的示例已经不适用了,所以重开一个帖子完整的介绍新的功能,以及demo展示,欢迎大家试用和反馈~
版本改动
调整了page文件名的格式。由原来的 <date>-<title>.org
的格式变成了 <date>.org
,删掉了文件名中的title,代码的逻辑也不再依赖文件名来查找title。文件名仅仅作为 page 的 id。
调整了 page link 的格式。由原来的 org link: [[file:<date>.org][<title>]]
改为 brackets: {[<title>]}
。
所以,如果你使用的是之前版本的gk-roam,需要手动删掉文件名中的 title 以及 page 中原来的 org link,重新插入新格式的link。
新功能
增加 hashtag。hashtag作为标签的同时也会创建独立的page, 格式为 #{[<tag>]}
。
自动显示和隐藏brackets。当光标所在行有 brackets link 或 hashtag 时,显示原始的 link 格式。移出该行则恢复原来的形式。gkroam-toggle-brackets
函数可以开关当前buffer的所有brackets。基本完全按照 Rome Research 的显示逻辑来实现的。
增加 daily notes。gkroam-daily
函数可以快速切换到今天的 daily noets 页面。
引用page的几种方式:
按键 {[]}
后在 brackets 里输入会自动补全。同理按键 #
后会自动补全hashtag。
gkroam-insert
函数,当前光标下插入一个page link。
gkroam-smart-new
函数,根据光标或region下的内容智能创建或引用page。
已知问题(已解决)
由于改变了page link的格式,使用 gkroam-publish
发布为html时链接不能正常导出。
动态显示和隐藏 brackets 使用的是 overlay。方法是给 next-line
, previous-line
, newline
, mouse-drag-region
等函数加了 advice , 使得在移动时给之前行加上overlay并删掉当前行的overlay。
这样可以实现动态的效果,但是并不优雅。水平有限,目前我还没有找到比较完美的方案。如果大佬们有更好的 idea,还望指点!
demo演示
8 个赞
试用了一下最新版,发现了个问题:
打开gk-roam-mode后,所有全部evil的dd按键变成了删除2行。刚刚才发现。
可能是advice-add的问题,刚刚改了一下,pull一下最新的代码试试呢?
更新 v2.0.2:
修复了在导出时 page link, hashtag 和 org link 的转换,现在 gkroam-publish-current-file
和 gkroam-preview-current
可以正常发布和预览当前page了。但发布预览整个site时的链接问题还没解决。
运行gk-roam-preview-current出现:
setq: Symbol’s value as variable is void: gk-roam-link-num
运行gk-roam-preview出现:
Publishing file /home/zj/gk-roam/org/20200913181949.org using ‘org-html-publish-to-html’
后就没反应了
user-error: File “~/gk-roam/org/20200911171109.org” is not part of any known project
更新 v2.0.3:
发布整个site现在应该也没有问题了。使用 gkroam-preview
预览 roam site,默认打开index page。Index page 目前只是简单的罗列 page link,后面会完善。
Kinney
2020 年9 月 13 日 23:57
12
更新 v2.0.4
修复了若干bug,提高稳定性。发布预览和自动显示隐藏brackets都可以很好的使用。发布预览现在需要依赖 undo-tree.el
(用于撤销发布前的修改,恢复bracket links的格式)。
Kinney
2020 年9 月 14 日 01:54
14
我之前的package都没有提交过melpa,流程是怎样的呢,有什么要注意的吗?
* Contributing a new recipe to MELPA
MELPA consists of /recipes/, each describing one /package/ in a
dedicated repository. This document describes how to propose a new
package for inclusion into MELPA.
Three contributor roles are involved in the maintenance of MELPA :
- MELPA maintainers :: They are responsible for reviewing new recipes
and associated packages as well as keeping the system working.
- Recipe authors :: They are responsible for submitting good recipes and
maintaining them when the package is changed
(e.g., renamed or deprecated).
- Package author :: They are responsible for writing Emacs Lisp
packages of good quality.
We advise package authors to also take the recipe author role when
possible.
This file has been truncated. show original
主要是要编译通过,文档无错,开一个PR,等待review。
1 个赞
Kinney
2020 年9 月 15 日 13:10
16
更新 v2.1.0 : 更加强大的 linked references
之前的 linked references 只能引用同一行中有 link 或 hashtag 的文本。
现在支持 org 所有的列表结构,当父结点中有链接时,在 reference 中会引用整个列表结构。
当以换行符 \\
结尾的段落有 link 或 hashtag 时,在 reference 中会引用整个段落。
当 verse block 中有 link 或 hashtag 时,在 reference 中会引用整个 block。
由于orgmode的结构非常复杂,不像roam那么单一,所以实现不同结构的链接文本引用也比较麻烦。如果有什么建议,欢迎留言!
1 个赞
gk-roam 这个名字感觉有点随意,gk有什么特殊意思吗?
Kinney
2020 年9 月 16 日 00:11
18
哈哈,确实随意,gk是我的英文名 geekinney 的缩写。
如果准备好好维护这个包,还是建议改一个名字, 最好是一个单词,而不是两个单词, 我个人感觉 gkroam 都比 gk-roam 强,当然这是个人意见,仅供参考