pandoc数据处理
This commit is contained in:
168
0-pandoc电子书转换/转换pandoc.md
Normal file
168
0-pandoc电子书转换/转换pandoc.md
Normal file
@@ -0,0 +1,168 @@
|
||||
在windows系统中,使用pandoc将一个markdown文件转换为epub文件,请基于如下的条件转换
|
||||
1. 完整保留markdown的语法,去除掉特殊符号
|
||||
2. epub中的字体,使用思源黑体CN-Medium
|
||||
3. markdown中的表格,注意在epub中有合适的表格结构
|
||||
4. markdown中的mermaid图像,请解析为合适的图片嵌入至epub中
|
||||
5. markdown中的代码块,请合理的解析,在epub中有引用或者突出显示
|
||||
|
||||
请基于上面的要求,给出转换命令
|
||||
|
||||
|
||||
|
||||
|
||||
### 3. 创建CSS样式文件
|
||||
|
||||
创建一个名为`epub-style.css`的文件:
|
||||
|
||||
```css
|
||||
/* 设置思源黑体为主字体 */
|
||||
@font-face {
|
||||
font-family: "Source Han Sans CN";
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url("../fonts/SourceHanSansCN-Medium.ttf");
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Source Han Sans CN", sans-serif;
|
||||
font-size: 1.2em;
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
/* 表格样式 */
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border: 1px solid #ddd;
|
||||
padding: 8px 12px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #f5f5f5;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tr:nth-child(even) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
/* 代码块样式 */
|
||||
pre {
|
||||
background-color: #f4f4f4;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
padding: 1em;
|
||||
overflow-x: auto;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: "Courier New", monospace;
|
||||
background-color: #f4f4f4;
|
||||
padding: 2px 4px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* 标题样式 */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: "Source Han Sans CN", sans-serif;
|
||||
font-weight: bold;
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## 完整的转换命令
|
||||
|
||||
使用以下pandoc命令进行转换:
|
||||
|
||||
```bash
|
||||
pandoc input.md \
|
||||
--from markdown+pipe_tables+fenced_code_blocks+fenced_code_attributes \
|
||||
--to epub3 \
|
||||
--filter mermaid-filter.cmd \
|
||||
--epub-embed-font="SourceHanSansCN-Medium.otf" \
|
||||
--css="epub-style.css" \
|
||||
--highlight-style=pygments \
|
||||
--standalone \
|
||||
--toc \
|
||||
--toc-depth=3 \
|
||||
--epub-metadata=metadata.xml \
|
||||
--output output.epub
|
||||
```
|
||||
|
||||
|
||||
### Windows命令行版本(单行):
|
||||
|
||||
```cmd
|
||||
pandoc input.md --from markdown+pipe_tables+fenced_code_blocks+fenced_code_attributes --to epub3 --filter mermaid-filter.cmd --epub-embed-font="SourceHanSansCN-Medium.ttf" --css="epub-style.css" --highlight-style=pygments --standalone --toc --toc-depth=3 --output output.epub
|
||||
```
|
||||
|
||||
|
||||
## 命令参数解释
|
||||
|
||||
### 输入格式设置
|
||||
|
||||
- `--from markdown+pipe_tables+fenced_code_blocks+fenced_code_attributes`:启用表格、代码块和代码属性支持[^1][^2]
|
||||
|
||||
|
||||
### Mermaid图像处理
|
||||
|
||||
- `--filter mermaid-filter.cmd`:在Windows下使用mermaid-filter处理mermaid图像[^3][^4]
|
||||
|
||||
|
||||
### 字体设置
|
||||
|
||||
- `--epub-embed-font="SourceHanSansCN-Medium.ttf"`:嵌入思源黑体字体文件[^5]
|
||||
- `--css="epub-style.css"`:应用自定义CSS样式[^6]
|
||||
|
||||
|
||||
### 代码高亮
|
||||
|
||||
- `--highlight-style=pygments`:使用pygments风格的代码语法高亮[^7][^8]
|
||||
|
||||
|
||||
### 输出选项
|
||||
|
||||
- `--to epub3`:输出为EPUB3格式
|
||||
- `--standalone`:生成完整的独立文档
|
||||
- `--toc`:生成目录
|
||||
- `--toc-depth=3`:目录深度为3级
|
||||
|
||||
|
||||
## 可选的元数据文件
|
||||
|
||||
创建`metadata.xml`文件来设置EPUB元数据:
|
||||
|
||||
```xml
|
||||
<dc:title>您的书名</dc:title>
|
||||
<dc:creator>作者姓名</dc:creator>
|
||||
<dc:language>zh-CN</dc:language>
|
||||
<dc:date>2025-09-17</dc:date>
|
||||
<dc:rights>版权信息</dc:rights>
|
||||
```
|
||||
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **文件路径**:确保所有文件(字体、CSS、输入文件)都在正确的路径下
|
||||
2. **mermaid-filter**:在Windows下必须使用`mermaid-filter.cmd`而不是`mermaid-filter`[^3]
|
||||
3. **字体路径**:CSS中的字体路径使用相对路径`../fonts/`[^9]
|
||||
4. **表格支持**:pandoc原生支持多种表格格式,包括pipe tables[^10]
|
||||
5. **代码块**:支持语法高亮和属性设置[^11]
|
||||
|
||||
这个命令将完整保留您的markdown语法,正确处理表格结构,将mermaid图转换为图片,为代码块添加高亮显示,并使用思源黑体作为EPUB的字体。
|
||||
|
||||
Reference in New Issue
Block a user