在linux下预览markdown的方法,转换成html和pdf

背景

markdown是一种便于编写和版本控制的格式,但却不便于预览------特别是包含表格等复杂内容时,单纯的语法高亮是远远不够的------这样就不能边预览边调整内容,需要找到一种预览方法。

思路

linux下有个工具,叫pandoc,支持多种文档之间的转换,我们可以用它将md(markdown)文件转换成html,再用浏览器打开html文件来预览,内容调整完毕后,再用pandoc将md文件转换成pdf,最后发布出去。

实现方法

以这个md文件为例,我们要实现该文件的预览

复制代码
# 通信协议的帧格式

## 读寄存器

### 主机发包格式

| preamble | read_reg  | reg_address |
| -------- | --------- | ----------- |
|   0x1b   |     0x01  |    0x08     |

### 主机收包格式

| reg_value    |
| --------     |
|   0x00010000 |

markdown转html

实现效果

使用以下脚本实现

bash 复制代码
#!/bin/sh
OF=/tmp/t.html
pandoc --metadata pagetitle="API Document" -f markdown -t html -c ~/bin/md.css -o $OF -s $1
firefox $OF

几点说明:

  1. 首先要安装pandoc
  2. firefox如果没预装就装一个,用于预览html文件内容
  3. 需要提供一个渲染页面格式的css文件,不然表格都没边框,很难看。脚本里的md.css是我网上找的资源,附件里应该有

markdown转pdf

实现效果

使用以下脚本实现

bash 复制代码
#!/bin/sh
OF=/tmp/t.pdf
pandoc --pdf-engine=xelatex -V CJKmainfont="Noto Sans CJK SC" -V geometry="top=2cm, bottom=1.5cm, left=2cm, right=2cm" -f markdown -t latex -o $OF -s $1
evince $OF

几点说明:

  1. 首先要确保pandoc已安装
  2. 安装texlive、texlive-xetex、texlive-lang-chinese、fonts-noto-cjk等包,确保pdf的中文能识别,中文字体能显示。
    2.1 如果pandoc或xelatex报错,一般是前面的包还不完整,根据提示补充安装即可。
  3. 如果系统没安装evince的话,安装上,用于预览pdf文件。

总结

虽然现在有很多markdown在线预览工具,但是如果你对保密有要求,或者不能访问互联网,那pandoc还是很有用的。

另外pandoc有很多命令示例,大家使用时可以参考。

相关推荐
Lueeee.38 分钟前
正点原子 ATK-DLRK3568 开发板:按键中断 + 工作队列传参实验(完整版流程 + 功能解释)
linux
小码吃趴菜42 分钟前
进程间通信 管道-信号量
linux
@菜菜_达1 小时前
前端 HTML 入门(标签)
前端·html
AndyHeee1 小时前
【瑞芯微rk3576刷ubuntu根文件系统容量不足问题解决】
linux·数据库·ubuntu
December3101 小时前
新手入门指南:PDF页面方向怎么旋转?
pdf·pdf页面旋转·旋转pdf页面方向·pdf旋转
李昊哲小课1 小时前
Ubuntu 24.04 在线安装 Redis 8.x 完整教程
linux·redis·ubuntu
sao.hk1 小时前
ubuntu2404,vbox,全屏显示
linux·运维·服务器
危笑ioi1 小时前
linux配置nfs在ubuntu22.04
linux·运维·服务器
社会零时工1 小时前
【ROS2】海康相机ROS2设备服务节点开发
linux·c++·相机·ros2
东城绝神2 小时前
《Linux运维总结:Ubuntu 22.04配置chrony时间同步服务》
linux·运维·ubuntu·chrony