在网页浏览器中实时预览Markdown和reStructuredText文件为HTML
项目描述
preview-markup 程序接收一个带有轻量级标记(支持Markdown和reStructuredText)的文本文件,并在您的网页浏览器中显示标记渲染为HTML的实时预览。当您保存文本文件时,预览会在几秒钟内自动更新。就这么简单!
安装
preview-markup 程序是用Python编写的,可在PyPI上找到,这意味着安装应该非常简单
$ pip install preview-markup
实际上有无数种安装Python软件包的方法(例如,每个用户的站点包目录、虚拟环境或仅全局安装),我无意在此讨论这些,所以如果您感到害怕,请在返回这些说明之前先研究一下您的选项;-)
必需的系统软件包
《preview-markup》程序使用Misaka软件包进行Markdown解析,因为它与GitHub Flavored Markdown兼容。这可能需要你在尝试安装《preview-markup》之前确保已安装libffi开发文件。在基于Debian和Ubuntu的系统上,可以通过以下方式实现:
$ sudo apt-get install libffi-dev
入门指南
要开始使用,只需运行preview-markup命令。如果你给它一个文件名作为参数,那么将预览该文件,否则将预览当前工作目录中的README.md或README.rst文件。
如果你想在后台运行《preview-markup》,那么你可能不会喜欢默认启用的终端日志记录。在这种情况下,我建议你使用以下命令行:
$ preview-markup -q &
-q代表--quiet,而&指示你的shell在后台运行程序。如果你想稍后终止程序,只需运行fg命令(这将使程序回到前台),然后按Ctrl-C(这将终止程序)。
未来改进
一些关于未来改进的随机想法(我可能在有时间或想编程的时候实现这些想法,但不想选择我的众多其他项目之一)
- 自动关闭孤立的窗口
当命令行程序终止时,之前打开的浏览器窗口或标签页应该自动关闭。这可能可以通过调用服务器的JavaScript来检查服务器是否仍然活跃来实现,如果不是,则调用window.close()。
- 即时更新而非元刷新
目前,HTML模板中有一个硬编码的10秒元刷新。如果服务器使用inotify或类似机制来即时检测更改并将这些更改推送到浏览器客户端,那就更加优雅了。不过,元刷新目前实现了主要目标:-)。
为什么是这个项目?
《preview-markup》的不同版本已经存在于我的私有dotfiles存储库中多年(我在dotfiles存储库中跟踪~/bin)。在这些年里,这个程序有几个名字,非常相似,但略有不同的用途。在我决定清理这些“类似主题的变体”时,我正在使用几个不同的shell和Python脚本协同工作,来完成《preview-markup》现在所做的工作。我决定合并、清理、编写文档并发布这堆Python和shell脚本,原因如下:
我想将我逐渐欣赏的所有功能合并成一个简单直观的软件,该软件用Python编写,这样我就可以更容易地维护它:-)。
我想将该软件的安装作为一个具有正确指定依赖项的Python包来管理,这样只需一个pip install命令就足以开始。
最后但并非最不重要的是:鉴于我已经投入了努力,与世界分享我的工作似乎是一件很遗憾的事情。
类似项目
我创建《preview-markup》是因为我找不到一个提供Markdown和reStructuredText标记实时预览的工具,而且因为编程很有趣,然而,这显然是多年来许多开发者都挠过的痒处:-)。以下是我遇到并/或过去使用的类似项目:
- restview
reStructuredText文件的实时预览。我个人的最爱,简单而甜蜜,确实做到了它承诺的事情。用Python编写。
- grip
通过使用GitHub API将Markdown渲染为HTML,提供本地预览,与GitHub的渲染效果完全一致。使用Python编写。
- markdown-live
Markdown文件的实时预览。使用JavaScript(使用Node.js)编写。
- github-markdown-preview
Markdown文件的实时预览。明确目标是将其渲染得与GitHub完全一致。使用Ruby编写。
联系
最新版本的preview-markup可在PyPI和GitHub上获取。如有bug报告,请创建GitHub上的问题。如果您有任何问题、建议等,请随时通过peter@peterodding.com给我发电子邮件。
许可证
本软件遵循MIT许可协议。
© 2018 Peter Odding。
项目详情
preview-markup-0.3.3.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | af77397fcdd483bce10526bd1b707afe95630f16a757835c8f1b08440dceeeba |
|
MD5 | fe030c130b7188416ab23f1dc4f946af |
|
BLAKE2b-256 | e15b4c657bcb8cb2aa325e886523eb36ea4db9b7135cad448f7bf79a4ff2372e |