Skip to content

📝A simple and elegant markdown editor, available for Linux, macOS and Windows.

License

Notifications You must be signed in to change notification settings

dodiadodia/marktext

 
 

Repository files navigation

Marktext 版本 fix

当前社区版本的 marktext 在 macos 上有 2 个问题:

  • 设置->image里面,如果选择 picgo,会发现找不到 picgo,如下

image

但是实际上已经安装了 picgo-core 客户端,picgo 命令也是可以正常使用的,只是 marktext找不到相应的路径。

  • 无法直接上传剪贴板中的图片,只能保存文件后再上传

本文通过修改源代码方式,修复这些配置,并重新编译生成 marktext 包,解决上述 2 个问题。

源码编译

如果需要编译源码,请按照 marktext 示例的文档进行基础操作:

https://github.com/marktext/marktext/blob/develop/docs/dev/BUILD.md

其中注意事项:

  1. 使用 nvm 来更换 nodejs 版本号到 16
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

重新登录 shell 以后,执行:

nvm install 16

检查 nvm 和 npm 版本

通过 npm 安装 yarn

npm install --global yarn

查看 yarn 的版本:

  1. 确认下系统里面 python3 版本,如果版本大于 10,需要安装 setuptools:

python - No module named 'distutils.util' ...but distutils installed? - Stack Overflow

brew install python-setuptools
  1. checkout 源码,进行编译
git clone https://github.com/marktext/marktext.git
cd marktext

yarn install #主要过程,如果出现依赖问题需要解决

yarn build #build 完成后,dmg 包就会在 build 目录中

这个是在 x86 平台上的示例

无法找到 picgo

提示 picgo 没有 installed 的具体原因是 marktext 检查 path 路径的时候,没有配置 picgo 所在路径。例如如果用 brew 安装的 picgo-core,picgo 命令行所在位置如下

需要在 marktext 的代码配置,位置src/main/app/env.js 10行,添加/opt/homebrew/bin的路径:

const patchEnvPath = () => {
  if (process.platform === 'darwin') {
    process.env.PATH += (process.env.PATH.endsWith(path.delimiter) ? '' : path.delimiter) + '/opt/homebrew/bin:/Library/TeX/texbin'
  }
}

picgo无法上传剪贴板图片

按照以下方式修改src/renderer/util/fileSystem.js

# 152 
const uploadByCommand = async (uploader, filepath, suffix = '') => {
# 157 
filepath = path.join(tmpdir(), +new Date() + suffix)
# 227 
uploadByCommand(currentUploader, reader.result, path.extname(image.name))

修改完上面两处后,按照编译方式直接生成 dmg 包即可。

About

📝A simple and elegant markdown editor, available for Linux, macOS and Windows.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 76.7%
  • Vue 15.8%
  • CSS 7.3%
  • Other 0.2%