Madoko Local本地使用的问题
关于 Madoko
Madoko 是微软研究院之前推出的一款在线 Markdown 编辑器,只不过更加偏向学术使用,主要亮点在于 Madoko 可以和 LaTeX 结合,支持 LaTeX 一些语法和功能。
LaTeX 是一种基于 TEX 的排版系统,功能非常强大,不少写学术论文的研究者们应该都用过,但其比较底层,学习曲线和难度也挺大。Madoko 可以将 LaTeX 与简单的 Markdown 语法相结合,大部分的文档格式和结构可以使用现有的 Markdown 语法,用户也可以使用 LaTeX 的语法和命令进行扩展,可以很轻松地生成 LaTeX 排版效果的文档,默认也支持输出 HTML 和 PDF 文档。
Madoko 官方的在线编辑器 Madoko Editor 网站是:
最近 Madoko Editor 网站访问有点问题,不过我之前也已经把 Madoko Editor 网站备份过了,能够自行部署运行,编辑器的界面和默认的示例文档如下:
可以看到 Madoko 文档的扩展名是 mdk
,而且 mdk 文档基本都是使用现有的 Markdown 语法加上一点 LaTeX 语法,即使不使用 Madoko Editor,也可以用其它 Markdown 编辑器打开进行编辑。
Madoko Local
mdk 文档在 Madoko Editor 中编辑修改之后,支持保存到 Dropbox、GitHub、OneDrive 以及 Local Disk 本地:
由于众所周知的原因,前面三个存储目标国内用起来都不太稳定,而且之前我使用 Madoko 的时候就发现用这些云存储进行文档编辑似乎也容易出问题,可能就用微软自己的 OneDrive 做存储稳定一些。
另外考虑到数据放在自己手里才是最安全的,因此我一般都是用 Local Disk 本地保存方式。
Madoko 的本地磁盘访问则需要 Madoko Local 这个程序的配合,另外如果想要本地生成 PDF 也需要使用 Madoko Local。
Madoko Local 是用 Node.js 编写的,本机安装完 Node.js 环境后,运行命令完成安装之后就可以使用 madoko-local
命令了:
~# npm install -g madoko-local
madoko-local
命令使用起来也非常简单:
~# madoko-local -r -l . listening on : http://localhost:8080 connecting securely to : https://www.madoko.net serving files under : /home/zzm/Documents --------------------------------------------------------------- access server at : http://localhost:8080#secret=XXX ---------------------------------------------------------------
最后一个参数就是 Madoko 能够访问的本地目录,.
就表示只导出当前的目录。
Madoko Local 启动之后就会输出绑定的端口(默认为 8080
)、导出的本地目录路径,最重要的是包含密码的访问地址,浏览器通过这个访问地址就可以打开 Madoko Editor 界面。
Madoko Local 程序的其它参数可以通过 madoko-local -h
命令来查询,另外也可以使用 config.json
配置文件来配置端口等参数,这里我把 Madoko Local 的监听端口改为了 18080
,也可以使用 mountdir
来配置导出的本地目录:
~$ cat > ~/.madoko/config.json { "port":18080, "secret":"XXX", "origin":"http://XXX", "mountdir":"/home/zzm/Documents" }
配置文件所在的 .madoko
目录默认位于当前用户的主目录下,这个主目录的路径也可以通过 madoko-local
命令的 --homedir
参数进行自定义。
如果对应目录下存在有效的 config.json
配置文件,后续就可以直接 madoko-local
命令启动程序而不需要加任何参数了。
Madoko Local 问题
不过我在使用 Madoko Local 时也发现一些问题:
- 通过
madoko-local
命令来指定端口、密码等各种参数可能存在问题; - 如果
madoko-local
程序默认绑定了本地 IPv6 的::1
地址(也就是localhost
地址),会报only serving localhost
错误。
为此我稍微修改了一下 Madoko Local Node.js 程序源码,生成了 Madoko Local 最新 0.9.4 版本的 patch 文件,有需要的朋友可以从下面任选一个下载:
下载了 patch 文件之后,就可以进入 Madoko Local 的安装目录运行命令进行合并了(假设下载保存的文件名是 madoko-local-npm-v0.9.4.patch
):
~# cd /usr/lib/node_modules/ ~# patch -p2 madoko-local-npm-v0.9.4.patch
上面命令使用的是 Linux 系统下 npm
默认的全局安装路径 /usr/lib/node_modules
,其他系统可以使用 npm list -g | head -n 1
命令来确认。
为了方便,我也直接 fork 了 Madoko 的源仓库,还把自己做的其它的一些修改也提交了:
https://github.com/zohead/madoko
Madoko Local 程序的代码在 support/madoko-local
子目录下供大家参考。
最后祝跨过三年疫情的朋友们都能玩得开心 ^_^。