专栏首页技术点滴使用Atom打造无懈可击的Markdown编辑器

使用Atom打造无懈可击的Markdown编辑器

一直以来都奢想拥有一款全能好用的Markdown编辑器,直到遇到了Atom。废话不多说,直接开搞!

1. 安装Atom

下载安装Atom:https://atom.io/

2. 增强预览(markdown-preview-plus)

Atom自带的Markdown预览插件markdown-preview功能比较简单,markdown-preview-plus对其做了功能扩展和增强。

  1. 支持预览实时渲染。(Ctrl + Shift + M)
  2. 支持Latex公式。(Ctrl + Shift + X)

使用该插件前,需要先禁用markdown-preview。

查看实时渲染和公式编辑功能。

3. 同步滚动(markdown-scroll-sync)

同步滚动是Markdown编辑器的必备功能,方便翻阅文档修改时能快速定位到预览的位置。

markdown-scroll-sync不仅支持同步滚动,在光标位置发生变更时也会同步滚动,这个功能在很多Markdown编辑器中不具备。

4. 代码增强(language-markdown)

一般的Markdown编辑器提供了代码着色等基本功能,language-markdown除了能给代码着色,还提供了快捷的代码片段生成等功能。

5. 图片粘贴(markdown-image-paste)

图片功能支持的好坏直接决定了我是否选择使用一个Markdown编辑器。也有不少编辑器和在线的图床绑定,但是这种方式受限于网络。虽然Markdown支持插入本地图片,但是每次插入新图片都是一堆重复操作:截图-命名-保存-插入。markdown-image-paste将这些操作一步完成:

  1. 使用截图工具将图片复制到系统剪切板。
  2. 在Markdown新起一行输入文件名。
  3. Ctrl + V 会自动把图片保存到Markdown文件相同目录下(因此要求Markdown文件应该先保存),并命名为刚输入的文件名,同时在刚才输入文件名行处生成img标签。

当然,如果想插入gif动图就不能这么简单了,还是老老实实地下载这个工具手工插入吧。

LICEcap: http://www.cockos.com/licecap/

6. 表格编辑(markdown-table-editor)

一直对Markdown的table语法很无爱,直到遇到了markdown-table-editor,这操作效率简直炸了!文字已经不能表达我的激动之情了,直接看图吧。

7. pdf导出(markdown-themeable-pdf、pdf-view)

不少Markdown编辑器都会提供pdf导出功能,甚至将其作为收费功能。而Atom的markdown-themeable-pdf、pdf-view插件可以轻松实现pdf导出和预览功能。

安装markdown-themeable-pdf时遇到了一些坑,在此分享一下:

由于GFW的问题,导致该插件使用的phantomjs模块无法安装成功,从而导出pdf报告错误。

解决办法是:

  1. 从官网下载phantomjs二进制安装包:http://phantomjs.org/download.html
  2. 解压下载的phantomjs-2.1.1-macosx.zip压缩文件。
  3. 添加index.js文件到解压后的目录。
  4. 将整个目录的内容拷贝到:~/.atom/packages/markdown-themeable-pdf/node_modules/phantomjs-prebuilt,注意目录phantomjs-2.1.1-macosx被重命名为phantomjs-prebuilt
  5. 重启Atom,右键->Markdown to PDF即可,生成的pdf文件在Markdown文件同目录。

其中index.js文件内容为:

module.exports = {
  path : __dirname + '/bin/phantomjs'
}

8. 总结

以上介绍的Atom的Markdown插件,基本上满足了我对一个Markdown编辑器的所有幻想,实时渲染、同步滚动,公式、代码、图片、表格的快捷操作与支持,以及pdf文件导出、预览等。希望此文对你有所帮助。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Effective C++》读书摘要

    《Effective C++》读书摘要 最近刚读完侯捷的《Effective C++》,相对来说,这本书的内容比较贴近基础,对于刚掌握C++基础的人会有不少的提...

    Florian
  • Windows文件操作基础代码

    Windows文件操作基础代码     Windows下对文件进行操作使用的一段基础代码File.h,首先是File类定义: #pragma once #inc...

    Florian
  • 告别S! S! H! 秒杀终端工具——FastLogin

    题记:自从接触到“跳板机”的概念后,一直就被烦不胜烦的机器名,ip地址,用户名,密码折腾的死去活来,心说能有个小精灵随时帮我输入那些重复的登录信息就好了。我见过...

    Florian
  • .NET领域驱动设计—初尝(原则、工具、过程、框架)

    原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时候我们讲究的是设计原则:

    王清培
  • 有限状态机模型

    在阅读harbor源码时,在jobservice代码中,发现实现了一个有限状态机。状态管理在系统设计中常被使用。通过实现它,可以方便的对程序的状态进行管理。状态...

    暮雨
  • 【我的漫漫跨考路】有生之年·调完了BUG--冒泡排序C++版本

    正文之前 今天去牛客网试了试一些实战编程题,感觉贼有意思,但是也很难,挑了个成绩排序的算法题我就开始怼! 对我一个编程经验并不是很丰富的人来说,确实算是个挑战了...

    用户1687088
  • 大数据平台HDP搭建

    在ambari的setup中我们可以选择使用默认的postgresql,也可以自定义使用其他数据库,此处选用mariadb,便于后期管理维护

    KaliArch
  • 前端测试题: 关于for...of的简述,说法错误的是?

    ES6 借鉴 C++、Java、C# 和 Python 语言,引入了for...of循环,作为遍历所有数据结构的统一方法。

    舒克
  • Android 基于RecyclerView实现的歌词滚动自定义控件

    本文介绍了Android 基于RecyclerView实现的歌词滚动自定义控件,分享给大家,具体如下:

    砸漏
  • String - 13. Roman to Integer

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and ...

    用户5705150

扫码关注云+社区

领取腾讯云代金券