Windows我个人平时现在也很少用,我也不确定都有什么坑,但理论上讲是不需要额外的设置的,因为外部依赖目前只有curl。我自己在Windows上一般都是用cygwin。
windows需要额外装个curl,自带得curl不给力
我决定有空先看一下curl,或者换一台Linux电脑试试。真心不想在windows里弄……
楼主辛苦了。其实anki的条目输入也还可以,不至于太差,所以有空再慢慢折腾~~
我用这个 anki-editor/examples.org at master · louietan/anki-editor · GitHub
都导入了
set anki-editor-create-decks
to t
我就用的raw-text
发现一个奇怪的问题,连续push创建新cards的时候,emacs会卡住,查看anki和request的日志发现卡住之前创建card成功.
貌似anki-editor没有收到请求结束的信号,导致一致卡在那.
第二次push则会因为之前card已经创建又没有NOTE_ID导致那张card一直失败.
MAC环境:
Emacs Version: GNU Emacs 26.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.8) of 2019-04-12
Org: 20190624
Anki-editor: 20190608.1621
Anki: Version 2.1.13 (3ba55990)
AnkiConnect: 2019-06-02
该问题在mac和linux上同样出现,但是我发现只要将request降到20181129的版本就不会出现.
有谁用ankidroid的provide api吗?
好像用不了哎…开始好像我的curl的问题,换了curl后,又提示
:ANKI_FAILURE_REASON: Got empty reply from AnkiConnect
我是更新了最新的插件ankiconnect,不知道楼主是否能有时间看一下
大家先临时把request降级到0.3.0吧,升到0.3.1确实有些问题,看request的commit log最近有些关于sync模式和字符编码的修改,我正在debug。
把request的log级别设为debug,把 *request-log*
buffer里的内容贴出来大家一起看下。
debug了半天,发现request.el
的sync模式坑了,它代码里的sleep-for
貌似阻塞了回调的执行,导致外面循环结束不了,死循环了。。。
[debug] REQUEST
[debug] Run: C:\tools\msys2\usr\bin\curl.exe --silent --include --location --compressed --cookie c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --cookie-jar c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --write-out \n(:num-redirects %{num_redirects} :url-effective %{url_effective}) --data-binary @c:/Users/xx299/AppData/Local/Temp/emacs-request4uGLZa --request POST http://127.0.0.1:8765
[debug] REQUEST--CURL-CALLBACK event = finished
[debug] REQUEST--CURL-CALLBACK proc = #<process request curl>
[debug] REQUEST--CURL-CALLBACK buffer = #<buffer *request curl*-167308>
[debug] REQUEST--CURL-CALLBACK symbol-status = nil
[debug] REQUEST--CALLBACK
[debug] (buffer-string) =
HTTP/1.1 200 OK
Content-Type: text/json
Access-Control-Allow-Origin: *
Content-Length: 4
null
[debug] REQUEST-RESPONSE--CANCEL-TIMER
[debug] -CLEAN-HEADER
[debug] -CUT-HEADER
[debug] error-thrown = nil
[debug] -PARSE-DATA
[debug] parser = json-read
[debug] data = nil
[debug] symbol-status = success
[debug] Executing success callback.
windows自带的curl不行,于是搜索了半天,指定了一个curl
我可能表述有点问题 : 这是我已经指定后又出错的日志…
我刚才是理解错了,这种情况是AnkiConnect返回了空的结果,这个我想看看请求的内容,首先你确保AnkiConnect是最新的,然后打开addons对话框,选AnkiConnect,点类似查看文件的按钮,然后打开__init__.py文件,大概在41行有个API_LOG_PATH,等号右边的None改成一个路径,像下面这样,但是这个文件需要先手动建好,
API_VERSION = 6
API_LOG_PATH = 'C:\\Users\\xxx\\ankiconnect.log'
重试一下,把文件内容贴出来。
现在的情况是这样.
-
在元数据中指定卡牌时,提示如图所示, 在ankiconnect.log没有任何数据.
-
在属性中指定卡牌时,程序无响应,在ankiconnect.log同样没有任何数据.
下面是用Ctrl+g
终止后request-log的内容
[debug] REQUEST-RESPONSE--CANCEL-TIMER
[debug] -CLEAN-HEADER
[debug] -CUT-HEADER
[debug] error-thrown = nil
[debug] -PARSE-DATA
[debug] parser = json-read
[error] Error from parser json-read: (json-readtable-error 40)
[debug] data = nil
[debug] symbol-status = parse-error
[debug] Executing error callback.
[debug] REQUEST
[debug] Run: C:\tools\msys2\usr\bin\curl.exe --silent --include --location --compressed --cookie c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --cookie-jar c:/Users/xx299/.emacs.d/.cache/request/curl-cookie-jar --write-out \n(:num-redirects %{num_redirects} :url-effective %{url_effective}) --data-binary @c:/Users/xx299/AppData/Local/Temp/emacs-requestzqQpwV --request POST http://127.0.0.1:8765
[debug] REQUEST--CURL-CALLBACK event = finished
[debug] REQUEST--CURL-CALLBACK proc = #<process request curl>
[debug] REQUEST--CURL-CALLBACK buffer = #<buffer *request curl*>
[debug] REQUEST--CURL-CALLBACK symbol-status = nil
[debug] REQUEST--CALLBACK
[debug] (buffer-string) =
(:num-redirects 0 :url-effective params:actions:[params:note:deckName:Default])
(:num-redirects 0 :url-effective params:actions:[params:note:modelName:Basic])HTTP/1.1 200 OK
Content-Type: text/json
Access-Control-Allow-Origin: *
Content-Length: 4
null
[debug] REQUEST-RESPONSE--CANCEL-TIMER
[debug] -CLEAN-HEADER
[debug] -CUT-HEADER
[debug] error-thrown = nil
[debug] -PARSE-DATA
[debug] parser = json-read
[error] Error from parser json-read: (json-readtable-error 40)
[debug] data = nil
[debug] symbol-status = parse-error
[debug] Executing error callback.
- 对于ankiconnect.log, 我用anki 划词助手时是有数据的.
之前的那种为空的信息复现不了了…
关于anki 知道的不是很多 只是用过一段时间 没有深入使用
我觉得他的显示不好看(把它弄好看好像也比较麻烦)
后来发现了 reveal.js 觉得它挺好看的
我就想能不能用 reveal.js 做一个网页版的anki 效果和org-drill一样就行(org-drill是不是也有sm2算法呢?)
anki上有sqlite 网页上可以用web-socket和emacs交互 进而通过emacs再调用sqlite 这样就有数据库了
anki上能隐藏某些信息 这个对于浏览器来说 再简单不过
就是不知道reveal.js 如何实现向下滑动 好像一张ppt显示的内容有点少(难为ppt了)
关于请求卡住的问题,升级到最新的request.el,请求卡住的问题应该是没有了,但请求还是会失败,最终会报”Got empty reply from AnkiConnect"的错,这个我想大家试下把 global-auto-revert-mode
关掉试试,看能不能暂时解决这个问题。
我也遇到了这个问题,我的环境 os: win10 curl 来源 : msys2 我把 msys2 的 curl 删掉,然后用 scoop install curl 安装curl anki-editor 正常