VS Code中写Markdown并最终发布到WordPress
VS Code中写Markdown并最终发布到WordPress

VS Code中写Markdown并最终发布到WordPress

这个想法最初来自于Python学习,因为要做笔记,同时又想把笔记发到自己的WordPress博客中保存起来。开始的时候用的是老方法,就直接在VS Code中练习Python,之后将相关代码复制/粘贴到WP自带的区块式编辑器中,并在其中添加相应的文字笔记。但是后来发现一个问题——这样做很繁琐,本来几分钟能够搞定的事情,结果由于要写文字还要配合代码又想有个整洁的输出页面,最终花费更多时间去做与笔记和代码无关的修饰工作。好在不是专业干这个的,否则时间都浪费在码字以外的事情上了。

所以后来想到一个早已了解的东西——Markdown[1],这东西简洁高效,非常适合写包含代码块的东西,例如Python学习笔记;再后来经过实测,发现这东西即使用来写《心爱的童话》这样的纯文字也是很不错的。于是着手在各种软件和方法之间进行测试。

首先要保证一个大前提:减少不必要的工作量。

因为最近在用VS Code[2]练习Python,所以直接从VS Code开始写Markdown是最简便的,无需多装软件,不用借助更多外力。在VS Code中尝试了几个Markdown相关的接个插件之后,

实测中发现三个主要问题:

  1. Markdown中的脚注,在输出到WP之后不能正确使用,要么是链接错误,要么是无法正确识别。
  2. VS Code中预览Markdown不会行首缩进,这个对于WP来说不是问题,因为WP端我调整了CSS。
  3. VS Code完成写作后复制/粘贴到WP会出现部分格式错误。

初步总结为VS Code和WordPress本身对Marndown的支持都不够完善,导致在渲染和输出方面存在一些小问题,所以装几个扩展是必要的。但是仍然要保证尽量不给WordPress添麻烦,因为我不会长时间在WP后台写东西,都是写好了直接粘贴进去的,所以不但算因为Markdown给WP增加什么插件(这样的插件还是有不少的)。因此就主要折腾VS Code了。

这个过程中也简单尝试了一下专门的Markdown编辑器,例如Typora。按说这东西收费也不算很贵,3设备89元人民币终身授权,而且可以给不用的设备反授权。不过不太喜欢的地方是他没有预览窗口,也没有多文件标签功能,每个文件都要独立开一个窗口,所以最终放弃了Typora。

还是说回VS Code,其实只要简单装几个扩展就能解决这几个问题。

Markdown ALL in One

不少人推荐这个扩展,所以也装了一个,至于有多大用处见仁见智吧。我是对它感冒,或者说,它与我的实际需求不是很搭。

Makdown Preview Enhanced (MPE)[3]

这个很重要了,必须有,从VS Code到WordPress就靠它了。设置过程其实也很简单,两部解决上述问题。

  1. 安装之后调整一项“自动开启预览”就可以。到扩展设置当中去勾选Automatically show preview of markdown being edited.,这样就可以在编辑md文件时自动打开MPE的预览窗口。
  2. 修改MPE当前预览的CSS文件(解决问题2段落行首缩进)。方法如下:

在VS Code中使用快捷键Ctrl+Shift+P调出命令行,输入Markdown Preview Enhanced: Customize CSS (Golbal)调出MPE预览的CSS文件编辑器(我这个新装插件,调出之后基本是空白的CSS),直接把要加的CSS写进.markdown-preview.markdown-preview { }中去就行。我只根据自己的习惯简单加了3行,添加之后如下:

.markdown-preview.markdown-preview {
  text-indent: 2rem;/*行首缩进2字*/
  line-height: 2rem;/*行高2字*/
  letter-spacing: 0.1rem;/*所有字符包括汉字,间距0.1字*/
}

完成之后刷新一下MPE预览窗口即可获得修改后CSS的渲染结果,这里修改的仅仅是在VS Code中Workdown文本的显示效果,并不影响最后输出到WP的格式(那边的格式由WP自己的CSS决定)

到这里就已经解决了三个主要问题中的两个了。不需要更多的扩展插件,不需要对WordPress进行任何修改。接下来处理脚注的问题。

在VS Code中完成了Workdown编辑后,使用MPE的浏览器预览(Open in Browser)功能,会在默认浏览器中预览md文件的渲染结果(HTML),这里只要复制一下,就可以去WordPress编辑器中粘贴了(MPE的网页预览可以解决问题3)。不过脚注的问题也就出在这里。

从浏览器预览粘贴到WP之后,脚注相关部分的HTML代码是这样的:脚注部分是完整的<a href="#fn1" id="fnref1">[1]</a>,但不知道什么原因,脚注的注释部分却不完整,只有<a href="#fnref1">↩︎</a>,很明显这里缺少了id。目前也没有找到原因和自动解决的方法,好在平时用到脚注的时候也不算多,手动改一下WP里的源码,给注释部分加上id就解决了。如:<a href="#fnref1" id="fn1">↩︎</a>

OK,到这里,问题1,也就是最早发现的脚注问题,也解决了。

本文就是一边折腾,一边写的。在VS Code里写Workdown,并且用MPE进行预览渲染,之后复制/粘贴到WordPress发布,整个过程还是简洁流畅的。

为啥不用Word或者WPS文字

到最后,我也想问自己这个问题,既然很少用到表格、图标、插图,那为啥非要折腾这一通呢?尤其是些纯文字,直接用MS的Word或者WPS的文字不是都一样吗?这个嘛,还是见仁见智吧。wps我是有买会员的,不过不太喜欢他的护眼色,纯白背景更刺眼,只有处理工作需要的电子表格才会用它,长时间写东西的时候,还是用VS Code这种可以自由控制显示效果的软件会更舒服点,对我的眼睛也更友善些。

其实吧,要硬说用啥写东西,那可用的太多了,Windows自带的记事本都一样能写,说到底是个习惯和舒适度的问题。

关于输出PDF文件

对于输出pdf文件,MPE输出的PDF文件中是可以正确识别和使用脚注的,但是输出的样式比较一般,需要精细调整CSS才行,目前没时间干这个。而VS Code扩展Markdown PDF输出的文件中不知何故脚注会显示,但脚注的注释却不会输出,导致错误,不过这种输出的pdf样式却挺好看,尤其是代码会好看许多(我用的VS Code主题是软件自带的Default Dark Modern)。

这个问题等有时间的时候仔细调整CSS应该是可以解决的。


  1. 十来年前就了解过Markdown了,不过一直没需求所以没用过。Markdown中文教程(似乎是官方) ↩︎
  2. N年前用过VS,但VS Code还是因为近期对Python产生兴趣才开始接触的。 ↩︎
  3. 在VS Code中写Markdown离不开这个插件。MPE中文介绍(github) ↩︎

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注