实用系列之二:请教怎样用 emacs 在论坛贴图

之前按照诸位的建议,已经顺利搞定用 emacs 发帖,但是目前新的问题又来了。不能用 emacs 贴图怎么能行!?问题是我对 JavaScript 知之甚少,所以这个又把我难倒了。还希望论坛的大神给指条路,谢谢!

我尝试了直接贴本地的图片链接,显然是不行的。

用 emacs 在论坛里发帖,感觉是极好的:+1::+1:

除了一点,没法直接贴图:_1:

发图的原理就是把图先贴到图床上。 你可能需要一个小脚本帮你上传图片。 先研究一下API吧。

不会 JavaScript 啊

我能说我今天刚刚学了点用来配置浏览器的 JS 吗。

话说可以问一下几位管理员,然后看看 discourse 的代码。 然后这里有个 贴代码脚本 可以参考

1 个赞

匿名上传(例如到 Pastebin )比较简单,执行 curl,返回上传后的 url,一个函数就可以搞定。

如果需要账号密码,每次手动输入不方便,保存在本地就要考虑安全问题。


update:

看了下上传时的 Request headers:

:authority:emacs-china.org
:method:POST
:path:/uploads.json?client_id=<client_id>&authenticity_token=<authenticity_token>
:scheme:https
accept:application/json, text/javascript, */*; q=0.01
accept-encoding:gzip, deflate, br
accept-language:en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4
cache-control:no-cache
content-length:31595
content-type:multipart/form-data; boundary=----WebKitFormBoundarybQi2NyTFG6oJsv0B
cookie:gsScrollPos=; _t=<_t>; _forum_session=<_form_session>
origin:https://emacs-china.org
pragma:no-cache
referer:https://emacs-china.org/t/emacs/2627
user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
x-csrf-token:<authenticity_token>
x-requested-with:XMLHttpRequest

<> 里这些数据抓出来,传给 emacs,就可以 curl -X POST 上传了


文档描述太简单,跟实际情况不一样:

http://docs.discourse.org/#tag/Upload

1 个赞

另一个思路:

在 emacs 编辑的过程中,插入特定的注释标签:

<!-- upload:/path/to/image.png -->

编辑完成之后,在浏览器端上传,避开身份认证的问题。上传完成之后插入图片 url,具体实现可以考虑: 1. 给 edit-server 扩展加 feature,2. 另做一个专门的扩展/Tampermonkey 脚本。

1 个赞

你说这几种我都比较陌生,大神能不能帮忙实现了 :joy:

浏览器里挺方便的:支持拖放、自动上传、自动设置合适的显示大小。比如 atomic-chrome 是双向同步的,也能配合 Emacs 使用。

atomic-chrome 可能有些 bug,我的电脑上 (emacs 25.1 archlinux) 完成编辑后退出 buffer 时系统变得无比卡顿,必须强制结束 emacs。浏览器是 chromium,也试过 firefox,插件两种 atomic chrome 和 ghost text 都试了,一样的问题。

没遇到过,不过你可以考虑向它的作者报告,在这里讲是不会得到解决的。

没有时间和精力向每个有 bug 的插件都提交 issue 了,所以我换了 edit-server,没有双向同步,但感觉更靠谱些。

话说怎么在论坛里贴代码呀

学习markdown

3 个赞