热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pandoc把word转为html,利用Pandoc实现文档格式转换

应用场景我喜欢用Markdown写文档,但不是所有读者都愿意花时间学习它,所以我需要将Markdown转换为他们习惯接受的格式,比如doc

应用场景

我喜欢用 Markdown 写文档,但不是所有读者都愿意花时间学习它,所以我需要将 Markdown 转换为他们习惯接受的格式,比如 docx 或 html;偶尔需要做幻灯片演示,也可以用 Markdown 来写,然后转换为幻灯片(Slideshow)。

Pandoc 的最基本的应用场景就是做这类转换。

当然,Pandoc 能做的远远不止这些。实际上它是一个非常强大的文档格式转换工具,支持数十种文档格式互转。至于有多强大,作者有张个图表,大家感受下。

本文仅以 Windows 平台为例介绍 Pandoc 最基础的应用方法。

安装使用

推荐在 Github Pandoc Releases 页面下载适合自己操作系统的最新版本安装包,一路按默认设置安装即可。

安装完看不到软件界面?别担心,一切都在命令行中完成!CTRL+R 输入 cmd进入命令提示符,运行下列命令:

pandoc --version

如果安装成功,可以看到 Pandoc 的当前版本和其他相关信息。

进入到 Pandoc 的工作目录,可能需要用到以下常用 cmd 命令:

进入F盘,直接运行 F:

查看子目录和文件,运行 dir

进入 myforder 文件夹,运行 cd myforder

进入上级目录,运行 cd ../

进入根目录,运行 cd /

按上下方向键可以快速键入前后输入的命令

Pandoc 命令格式

查看帮助,运行

pandoc --help

可以看到 Pandoc 的命令格式

基本格式

pandoc [options(选项)] [input-file(输入文件)]

文件转换示例

将 Markdown 格式转换为 Html。下面这条命令将 input.md 转为html并且输出为 output.html

pandoc -o output.html input.md

Pandoc 会自动根据文件扩展名判断文件格式,也可指定输入和输出文件格式:

pandoc -f markdown -t html -o output.html input.md

除了文件,还可以转换一个网页:

pandoc -f html -t markdown -o index.md http://miu.im

指定 css 样式,用到 -c 选项

pandoc -c style.css -o output.html input.md

生成独立的文件 (Standalone 模式)

pandoc -s -o output.html input.md

生成目录,--toc 可以自动提取 h1 - h6 并生成目录,使用--toc-depth 控制输出的目录级别,默认值是3,就是说会自动提取h1 - h3 作为输出文件的目录。

pandoc -c style.css -o output.html --toc --toc-depth=3 input.md

更多示例请参考官方 Demos 。

生成幻灯片

利用 Pandoc 可以方便生成 Html 幻灯片,类似 PowerPoint、Keynote的效果。目前 Pandoc 对以下几种 Html 幻灯框架支持:

这里我只介绍 reveal.js 的使用(我只用过这个..不过其他几个也大同小异 😳 )。

reveal.js 是一个非常流行的 Html 幻灯片框架,通过编辑 Html 创建幻灯片,不过直接编辑 Html 相当繁琐。使用 Pandoc 的好处就是,一条命令就可以解决问题,不需要编辑 Html。

准备 reveal.js

在 reveal.js Release 页面下载 reveal.js 2.6.2 源码包(目前 Pandoc 1.12 还不能很好支持 reveal.js 3.0.0,主要是指定主题风格无效,可手动调整)。

解压 reveal.js 至工作目录,将解压得到的文件夹重命名为 reveal.js (去掉版本号)。工作目录结构类似这样:

F:\workspace

│ slides.md

└─reveal.js

├─css

├─js

├─lib

├─plugin

└─test

Markdown 文件 slides.md 的内容如下:

% Nonsense Stuff

% John Doe

% March 22, 2005

# In the morning

## Getting up

- Turn off alarm

- Get out of bed

## Breakfast

- Eat eggs

- Drink coffee

# In the evening

## Dinner

- Eat spaghetti

- Drink wine

------------------

![picture of spaghetti](images/spaghetti.jpg)

## Going to sleep

- Get in bed

- Count sheep

生成幻灯片

pandoc slides.md -o slides.html -t revealjs -s

指定主题,可以在 /css/theme 文件夹下查看支持的主题

pandoc slides.md -o slides.html -t revealjs -s -V theme=night

幻灯片级别

reveal.js 默认每个2级标题生成一个幻灯片,高于2级的标题(1级标题)生成一张独立的仅包含标题的幻灯片,而低于2级的标题(3级标题)将存在于上一级标题的幻灯片中,不单独生成新的幻灯片。

可以使用 --slide-level 选项覆盖默认的幻灯片级别,不过严重不推荐。

使用分割线可强制生成新的幻灯片,以下任意一种均可:

***

---

+++

逐条显示

生成幻灯片时加入 -i 选项,如果幻灯片中有列表,列表中每一项会逐条显示。

两段文字显示之间的人为停顿,用如下分割线:

. . .

幻灯片切换方式 transition, 可选切换方式有:"default", "cube","page", "concave", "zoom", "linear", "fade", "none"

保存为完全独立文件 --self-contained。添加这个选项后会自动将需要的 css、js、图片、字体等资源都整合到一个单独的 html 中。(不过实测该选项有一些问题,还在摸索中...)

一个完整的示例,生成的幻灯片预览。

pandoc slides.md -o slides.html -t revealjs -s -i -V theme=night -V transition=default --toc --toc-depth=1

相关链接

参考链接



推荐阅读
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 了解计算机的序列号和主板型号对于多种用途至关重要。本文将详细介绍如何使用命令提示符和第三方工具,在Windows 10系统中轻松获取这些关键硬件信息。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
  • 本文详细介绍了如何在Python3环境中配置Appium1.4.6,并指导如何连接模拟器进行自动化测试。通过本文,您将了解从环境搭建到模拟器连接的完整流程。 ... [详细]
author-avatar
馨海之洋_895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有