20180216
2018年02月16日
肖威工作总结
- 上午:撰写全栈营的培训大纲+走亲访友
- 下午:看看支付功能文档
晚上:进一步的熟悉 Markdown 的使用
版权声明
本文首发自微信公共帐号: 学习学习再学习(xiaolai-xuexi); 无需授权即可转载,甚至无需保留以上版权声明; 转载时请务必注明作者。
Markdown Here 是个浏览器插件(Chrome/Firefox/Safari),可以将浏览器中编辑器里的 Markdown 文本转换成渲染过后的 HTML。又由于它能自定义 CSS,于是,对我这种平时大量使用 Markdown 格式写作的人来说实在是一大福音 —— 可惜我刚刚才知道还有这么个浏览器插件…… 要不是有人在新生大学的 APP 里提起这事儿,我还不知道啥时候能知道呢。
知道了就好,于是,我的微信公共帐号的排版就“焕然一新”了……
操作流程
在 Google Chrome 中安装 Markdown Here 插件 配置 Markdown Here Option, 自定义一些 CSS 在 Atom/Sublimetext 之类的编辑器中书写 拷贝粘贴到微信公共帐号的编辑器中 使用 Markdown Here 渲染 插图图片,修订 发布……关于 Markdown 编辑器
我试过很多专门的 Markdown 编辑器,付费的也买了一大堆,最终发现实际上最好的 Markdown 编辑器是 Sublimetext/Atom 之类的程序编辑器,有一些功能没它们还真不行,比如多行同时编辑。现在我习惯使用的是 Atom,也安装了一些与 Markdown 相关的插件:
markdown-pdf
markdown-scroll-sync
markdown-toc
markdown-writer
markdown-preview(Core Package)
另外一个跟 Markdown 没关系,但绝对有用的插件是 atom-smart-template,可以定制一些写作模板…… 比如,我的微信公共帐号文章开头都有版权声明,放到模板里,以后就不用费劲拷贝了……
关于 Atom 的教程,可以先去看看这篇文章,其实前后还有几篇文章,任何人都可以瞬间变成“PRO”,直至最终变成“GURU”:
http://xiaolai.li/2016/06/17/makecs-atom-advanced/
- 关于中文排版
关于中文排版,我在网上看了几篇教程,总结后来发现重点只有三个:
字体大小
行间距
字间距
至于选择哪一种字体,其实并不是关键,因为对字体来说,最重要的其实是“通用” —— 即便是你设置好了你喜欢的字体,先不说那是不是你自己的偏好,更重要的是,若是读者的设备上没有那个字体,那你就等于是白折腾了……
所以,字体,就暂时放在一边罢,因为苹果手机上默认的字体就挺好的。手机上像素不少,可屏幕相对还是很小,所以,中文字体若是不设置行间距和字间距的话,其实读起来就很费劲,另外我比较偏好稍微大一点的字体尺寸:
.markdown-here-wrapper { font-size: 16px; line-height: 1.8em; letter-spacing: 0.1em; }
- 关于配色
在不能自定义之前,我只能是在微信公共帐号编辑器里指定的字体颜色里选择,结果就是反正很难看…… 至于选什么颜色,找个人家已经配好的就是了(尤其是像我这样对颜色分辨感觉不佳的人)…… 于是,我就用了 Google Material Design 的 Color Scheme:
https://material.google.com/style/color.html
比如,我在设置“加重”和“倾斜”样式的时候,就是用这里面找到的颜色定义的:
strong, b{ color: #BF360C; }
em, i { color: #009688; }
- 关于表格
在网页内的编辑器里书写表格很容易让人崩溃(不只是浏览器崩溃)…… 用 Markdown 就解脱了…… 而且 Atom 之类的编辑器里面有很多插件可以帮你迅速创建表格:
中文排版 | 要素描述
--------- | ----------------------
字体大小 | 16px 大一点更舒服
行间距 | 1.8em 是个比较好的选择
字间距 | 0.1em 已经约等于 2px 了
会显示为: 中文排版 要素描述 字体大小 16px 大一点更舒服 行间距 1.8em 是个比较好的选择 字间距 0.1em 已经约等于 2px 了
也可以在自定义 CSS 中将整个表格居中显示:
table { ... margin: 0 auto; }
- 自定义 CSS 需要注意的地方
有时候在自定义 CSS 里的设置不起作用的话,试试在后面补上!important,就好像这样:
h2 { font-size: 20px !important; }
- 代码高亮
算了吧…… 微信公共帐号对这事儿不感冒,就别折腾了。
- 我的 StyleSheet
我它放在在这里了(文末的“原文链接”指向这里):
https://gist.github.com/aa190255b7dde302d10208ae247fc9f2
嗯,就这样罢。
免费、便捷、高效的知乎专栏Markdown排版技巧。希望本文可以让你的写作过程也变得更愉悦。
(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。) 痛点
从前,写作时的排版是件辛苦事。不论你把排版环节放在写作中还是写作后,总会在心里清楚意识到,还有这么一个繁重而无趣的工作在等着你。
后来,有了Markdown,排版就变成了一件令人愉悦的事情了。你只需要用非常简单的记号说明一些特殊位置,例如标题、列表、脚注和图片等,然后应用不同的样式,你写好的文字就能自动转化为各种漂亮的排版效果了。
读者看着舒服,作者写得高兴。Markdown这东西,真的影响了世界。
然而……
不是每一个写作平台,都支持Markdown。
这话应该倒过来说——目前主流的写作平台里,支持Markdown的还不是很多。
我孤陋寡闻,用过的写作平台,仅有简书、新生大学和Matrix支持Markdown格式排版。所以用起来很舒服。
但是我们无法因此拒绝其他写作平台。毕竟辛辛苦苦写了文章,总希望更多人都能看到。那些平台往往给你一个类似简化了的Word的编辑界面。你可以加粗字体、设置列表、插图制表,但是平台期待你手动完成上述工作。
我曾经围绕着如何用Markdown排版微信公众号的问题,写了好几篇文章。有的文章写了将近一年,还有新读者在点赞。
这让我很惭愧。因为近一年以来,我自己的Markdown写作和排版流程都发生了变化。现在你可以利用免费的编辑器搭建更为舒适的写作环境,安装插件更方便地上传图片到图床,同时应用更好的样式让读者在移动设备上读得更愉快。
关于如何用Markdown排版微信公众号的文章,已经太多了。今天我们换一个话题,聊聊如何用Markdown排版知乎专栏文章。其实,本文的操作流程对微信公众号、今日头条等其他写作平台都是通用的。
最近我在知乎专栏发布了一些文章。比起其他写作平台,知乎的读者似乎更喜欢在留言中与作者互动。尤其是追问式地拓展讨论、探求真知。这给了作者(也就是我)很大鼓舞。在此,我把Markdown排版知乎专栏的技巧发布出来,希望帮助更多的作者收获这种创作和交流的喜悦。
工欲善其事,必先利其器。让我们从编辑器讲起吧。 编辑器
这里给大家推荐的编辑器,叫做Atom。
这款编辑器最初的用户,大部分都是Geek和程序员。因为它的生态系统过于强大,所以就如同Emacs一样,简直就是“伪装成编辑器的操作系统”。
普通人写篇文章,原本是根本用不上这种大杀器的。
但是谁叫Ulysses改成订阅式了呢?
Atom,至少在目前,还是开源免费的。
请到这个地址下载Atom编辑器。网站会根据你的操作系统,自动找到对应的版本供你下载。
因为我用的是macOS,所以这里网站提供的是苹果版本Atom。
下载之后,安装运行。然后你需要安装2个插件。
第一个插件是帮你预览Markdown用的,它叫做markdown-preview-enhanced。Markdown里,有图片、表格和网页链接,如果没有预览功能,那你就得面对许多代码一样的东西。对于非技术类写作者来说,可能就会觉得不舒服了。
Atom编辑器安装插件的方法很简单。
使用Cmd + ,呼叫配置菜单。注意我这里说的是苹果系统macOS上的操作。如果你用的是Windows,请把所有出现的Cmd按键替换为Ctrl按键,或者查阅帮助文档。下同。
选择左侧边栏的最后一项,那个+号,用于安装新的插件。
在搜索框中输入该插件的名字:markdown-preview-enhanced
点击搜索结果中该插件的Install按钮。
很快,插件安装好了。
点击上图中出现的Settings。你会看到这个插件的一些选项。
下拉滑动条到中间左右的位置,你会看到一个叫做Image Uploader的选项。请点击右侧的上下箭头按钮,选择sm.ms。
好了,第一个插件安装设置完成了。下面我们安装第二个插件,叫做markdown-image-assistant。安装方法和刚才的插件一样,不赘述了。安装好后你会看到这样的显示。
这里,我们不需要调整设置。
好了,编辑器配置完毕,下面我们开始试用一下。
使用Cmd + N新建一个文件,保存名称为test.md。
然后我们输入了这样一些内容。
用Ctrl+Shift+M呼叫预览,我们可以看到右侧边栏出现了Markdown排版后的样子。
基础的Markdown排版一般不会有什么问题,下面我们来看看最让图文写作者头疼的项目——插图。 插图
我们用Markdown写作的时候,一般插图都会使用本地文件。但是排版完成,打算发布的时候,这些本地文件却是无法被写作平台识别的。因此很多人本地排版Markdown预览效果之后,又需要在写作平台上重新插图一次。
想想都觉得恐怖。尤其是像我这样,一篇文章里恨不得要放几十张插图的人。
有的人于是很激进地选择就在云端写作和插图。这样的好处是你写作时候的插图就可以直接发布,缺点是本地没有副本。
这很不安全。因为写作平台也未必保证永续经营。如果某一天平台宣布停止运营,你放置其上的一堆图片怎么办?
所以,最为贪婪的想法是——我在编辑器插图,在本地存留备份,同时自动上传一份插图到云端图床,以便发布使用。
你是不是觉得我这像是在做白日梦?
不是,其实这样的设置你已经做好了。
不信?
现在我们就试一下。
我们在网上找到了一幅图片。
我们把图片存储到本地,然后在Atom编辑器里找到合适的位置,把本地的那张图片拖拽进来,奇迹就发生了。
你可能会纳闷——咦?我明明只插了一次图像,为什么右侧预览里面有2张图。
实际上,你看左侧的Markdown语句,是这样的:


这里是两个插图语句写在了一行上。
第一部分是远程图床的插图代码,其后跟着的是本地插图代码。
这样,你的一次拖拽,图片就被保存在了本地assets目录,并且同时被上传到了云端。而相应的代码,编辑器和插件都替你写好了。 排版
把纯文本的Markdown文件,变成移动互联网上图文并茂的漂亮文章,你需要用合适的样式文件来排版。样式文件(css)替你操心哪里用几号字,什么标题用某种颜色,以及段间距多少之类的琐碎事。
我目前使用的是尹航的css,他专门为移动设备阅读做了优化。因为涉及版权保护问题,请自行搜索后下载,存储为本地的css文件备用。
同类的css文件还有很多,例如李笑来、阳志平都有各自的版本分享出来。请根据自己的口味进行选择。
选择并存储好css文件后,我们来安装浏览器插件。
请在Google Chrome里面安装Markdown Here插件。
安装后,右键点击该插件图标,在弹出菜单里单击“选项”按钮。
找到上图这个文本框,把你下载好的css文件内容拷贝粘贴进去。
然后打开wangEditor。
回到Atom编辑器里面,把左边栏写好的Markdown格式文章全文拷贝,粘贴到wangEditor的编辑器窗口中。
点击Chrome的Markdown Here插件,你会立即看到排版后的结果。
确认排版效果一切正常后,全选wangEditor编辑区域的内容,拷贝。
打开知乎专栏的“写文章”功能。
在“请输入正文”的部分,粘贴。
你会看到,云端图床的图片正常显示,本地链接图片没有正常上传。不过这丝毫没有关系。
因为当你预览或者发布的时候,看到的内容是这个样子的:
好了,知乎专栏文章用Markdown排版成功! 讨论
你平时都在哪些写作平台上发布文章?你使用Markdown了吗?使用过程中有什么心得体会?遇到过哪些问题?相比本文,你是否有更好的编辑排版流程?你使用的编辑器是否更有特色?欢迎留言,记录下你的思考,我们一起交流讨论。
如果你对我的文章感兴趣,欢迎点赞,并且微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)。
如果本文可能对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。让他们一起参与到我们的讨论中来。
如果喜欢我的文章,请微信扫描下方二维码,关注并置顶我的公众号“玉树芝兰”。
如果你希望支持我继续输出更多的优质内容,欢迎长按并识别下面的小程序码,赞赏本文。感谢你的支持!
.markdown-here-wrapper { font-size: 16px; line-height: 1.8em; letter-spacing: 0.1em; }
pre, code { font-size: 14px; font-family: Roboto, 'Courier New', Consolas, Inconsolata, Courier, monospace; margin: auto 5px; }
code { white-space: pre-wrap; border-radius: 2px; display: inline; }
pre { font-size: 15px; line-height: 1.4em; display: block; !important; }
pre code { white-space: pre; overflow: auto; border-radius: 3px; padding: 1px 1px; display: block !important; }
strong, b{ color: #BF360C; }
em, i { color: #009688; }
hr { border: 1px solid #BF360C; margin: 1.5em auto; }
p { margin: 1.5em 5px !important; }
table, pre, dl, blockquote, q, ul, ol { margin: 10px 5px; }
ul, ol { padding-left: 15px; }
li { margin: 10px; }
li p { margin: 10px 0 !important; }
ul ul, ul ol, ol ul, ol ol { margin: 0; padding-left: 10px; }
ul { list-style-type: circle; }
dl { padding: 0; }
dl dt { font-size: 1em; font-weight: bold; font-style: italic; }
dl dd { margin: 0 0 10px; padding: 0 10px; }
blockquote, q { border-left: 2px solid #009688; padding: 0 10px; color: #777; quotes: none; margin-left: 1em; }
blockquote::before, blockquote::after, q::before, q::after { content: none; }
h1, h2, h3, h4, h5, h6 { margin: 20px 0 10px; padding: 0; font-style: bold !important; color: #009688 !important; text-align: center !important; margin: 1.5em 5px !important; padding: 0.5em 1em !important; }
h1 { font-size: 24px !important; border-bottom: 1px solid #ddd !important; }
h2 { font-size: 20px !important; border-bottom: 1px solid #eee !important; }
h3 { font-size: 18px; }
h4 { font-size: 16px; }
table { padding: 0; border-collapse: collapse; border-spacing: 0; font-size: 1em; font: inherit; border: 0; margin: 0 auto; }
tbody { margin: 0; padding: 0; border: 0; }
table tr { border: 0; border-top: 1px solid #CCC; background-color: white; margin: 0; padding: 0; }
table tr:nth-child(2n) { background-color: #F8F8F8; }
table tr th, table tr td { font-size: 16px; border: 1px solid #CCC; margin: 0; padding: 5px 10px; }
table tr th { font-weight: bold; color: #eee; border: 1px solid #009688; background-color: #009688; }
https://gist.github.com/xiaolai/aa190255b7dde302d10208ae247fc9f2