分享:org文件内容的动态更新

现在的前端页面越来越复杂导致网站加载缓慢,一般解决办法是:用ajax等技术将网站内容延迟加载或随着用户的操作动态更新内容。

一直希望我的org-mode也有类似的功能,要实现像网页应用一样使用org-mode感觉此功能不能少,原先的想法是像div id一样创建一个org id来用于动态更新内容,现在发现好像想复杂了,一个简单回车在插入文本就能解决问题。

org-elisp代码: [[elisp:(progn (move-end-of-line 1)(newline)(url-insert-file-contents "http://localhost/equip/?type=create"))][显示equip开头的表的ddl]]

效果图:

dontan

动图上看不出来我是在标题的链接上回车然后请求后端返回的数据,org文件本身只写了标题没有写内容。也准备删除全部内容,只保留标题

1 个赞

一直很好奇,LZ做的这个和 eww,w3m 有何区别?在emacs中浏览网页文本的话,上面两个可以参考一下。buffer中动态文本更新,可以参考ewoc。

不需要编辑保存?

eww在文本编辑的体验上不太好(w3m似乎比eww在文本编辑上要好一点),textarea标签显示有问题,不能像浏览器中的富文本编辑器一样可以定制各种功能。我觉得对于笔记工具来说,编辑功能比页面表现力更重要。

尝试过在eww以web方式直接打开org文件,但不会调用org-mode渲染,只会把文本完整显示出来。这样不如直接用org-mode

对于不属性当前org文件的内容,只是在当前org文件中预览的内容是不需要编辑保存的,当前org文件只需要对标题行编辑保存就可以了。

另外我的org文件也不以纯文本方式保存,是存在数据库的,自写了 保存修改 按钮,如图 edit

这样可能会面临org文件嵌套的问题,如果后端也返回org文本。目前的想法是对于要嵌套的org文本进行标题降级,即**转为***,但这样又会需要区分那些标题行是当前org文件的那些不是(编辑保存时要区分),还没想明白怎么做

那我觉得LZ可以整理一下思路,写一个通用的框架性的插件来支持你 用org来现实网络请求的文本 的需求,这样比在细节中纠结要有意义的多。如果是自用那无所谓,如果想要推广,就需要通用。

其实我之前写过一个动态更新buffer内容的插件:twidget,我觉得思路不错,但是代码不够通用,不能满足更加复杂的需求,从而通过elisp实现任何场景的定制。

不太明白这个有什么用啊……

最开始时就只考虑的是自用,没有考虑通用和推广,后来发现自己折腾没意思,于是就发出来给人看,然后又发现不知道怎么做成通用和推广了,毕竟只考虑自用要简单一些。

:joy::joy: 也许可以实现将org-mode 作为数据库管理客户端的前端