使用nginx代理 印象笔记markdown编辑器

使用 nginx 代理 印象笔记 markdown 编辑器

不同与 mac 系统的 印象笔记,可以直接改 css。window 版本的 markdown 是在线编辑的。所有可以使用 nginx 代理

缺点 => 不是很稳定,手机端无法同步样式,废了爷一天时间啊

步骤

仓库地址

evernote-markdown-win-theme

提供 Evernote 中文版的 Windows 平台下的 markdown 编辑器的主题。

基本原理

与 Mac 版本不同,Evernote_China_Win 并未通过本地的方式读取 Markdown 编辑器文件,而是打包到 Evernote.exe 的资源目录ZIP/MARKDOWNEDITORRES。因此evernote-markdown-vue的经验不能直接复用。

尝试使用resourcehacker替换ZIP/MARKDOWNEDITORRES,在版本6.18.14.753 (600753) Public (CE Build ce-62.1.8947, ME Build V1.0.28)下会遇到代码渲染延迟的问题,以及字体不生效,猜测原因是字体加载问题。

使用Fiddler全局代理,会发现 evernote 会尝试访问http://loadmarkdown这样的地址来获取字体文件,而非获取打包文件中的字体文件,而且默认情况(未替换资源文件)也会出现这种错误。

个人猜测这是由于 BUG 导致的,由于 Evernote 对内部链接http://loadmarkdown的路由错误,导致其直接访问 Internet。

基于这个 BUG,我们可以替换掉 Evernote.exe 中的http://loadmarkdown为本地地址,如http://localhost:555。这样 Evernote.exe 在渲染 Markdown 文件时,将使用服务器上的编辑器,而非资源文件中的编辑器。

版本说明

兼容版本:6.18.14.753 (600753) Public (CE Build ce-62.1.8947, ME Build V1.0.28)

个人在evernote-markdown-vue的版本上做了一点轻微的修改,包括:

  • [TOC]中的链接取消加粗
  • 修复.tui-editor-contents pre导致的黑边问题
  • 修复 * {font-family: Microsoft Yahei, sans-serif}导致代码渲染字体异常的问题
  • 设置默认预览,双击编辑
  • 替换入门指南按钮为预览按钮,方便切换

具体修改请使用Beyond Compare之类软件对比查看。

已知问题:

  • 由于演示功能是通过main.min.js行内 CSS 加载的方式生成的 html 页面,无法以上修改对其无效。个人由于不使用该功能,因此未作修改。

使用方式

构建编辑器(可选)

你可以自行构建该编辑器,也可以下载已经编译好的。如果你确实需要这么做,可以:

安装依赖:

1
2
cd vue
npm install uglify-js

执行编译:

1
build.bat

构建好的编辑器文件位于vue\out中。

搭建自定义服务器

这里推荐使用 Nginx,后台占用内存极低。关键是支持缓存,每次启动 Evernote 只需加载一次资源文件,每次渲染页面请求一次index.html,通常返回304,渲染效率很高。

以下教程面向新手,熟悉 Web 服务器的开发人员可以跳过:

  • 下载Windows 版本的 Nginx,解压到合适的地方,假设设其路径为C:\nginx
  • 复制所有编辑器文件到C:\nginx\html\目录下
  • 编辑C:\nginx\conf\nginx.conf,修改listen 80;listen 555;
  • 运行C:\nginx\nginx.exe,打开浏览器访问http://localhost:555,双击页面,出现 Markdown 编辑器页面说明生效。

由于 Nginx 是后台服务,每次开机通常只需要执行一次。

修改 Evernote.exe

如果 exe 修改后无法保存,直接另存为即可, vscode 也有十六进制的编辑插件

关闭 Evernote 程序,将 Evernote.exe 备份,使用 16 进制编辑器(如UltraEdithexreplace是一个更轻量的工具),将:

68007400740070003A002F002F006C006F00610064006D00610072006B0064006F0077006E002F0000000000

替换为:

68007400740070003A002F002F006C006F00630061006C0068006F00730074003A003500350035002F000000

保存并退出

(这里其实是将_http://loadmardown/_替换为_http://localhost:555/_)

注意事项

删除缓存

由于采取了 http 缓存,如果你需要调试主题,或是修改主题后使其生效,需要退出 Evernote.exe 后删除C:\Users\{your_username}\Yinxiang Biji\LocalStorage\Cache目录下的所有文件。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!