Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leafyeexyz/markdownpaper
Writing academic papers with Markdown / 命令行小程序, 从 Markdown 生成学术论文 PDF、HTML、DOCX
https://github.com/leafyeexyz/markdownpaper
bnu bun bun-js bun-sh cli javascript psychology puppeteer puppeteer-core typescript
Last synced: 3 months ago
JSON representation
Writing academic papers with Markdown / 命令行小程序, 从 Markdown 生成学术论文 PDF、HTML、DOCX
- Host: GitHub
- URL: https://github.com/leafyeexyz/markdownpaper
- Owner: LeafYeeXYZ
- License: gpl-3.0
- Created: 2024-05-18T06:39:31.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-08-31T05:22:58.000Z (4 months ago)
- Last Synced: 2024-10-10T20:02:02.831Z (3 months ago)
- Topics: bnu, bun, bun-js, bun-sh, cli, javascript, psychology, puppeteer, puppeteer-core, typescript
- Language: TypeScript
- Homepage:
- Size: 209 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: license
Awesome Lists containing this project
README
以心理学报等学术论文的格式从 Markdown 生成 PDF / HTML / DOCX 文件
# 使用方法
## 1 用 Markdown 撰写论文
```markdown
# 中文标题#author# 作者信息
#school# 单位信息
#abstract# 摘要内容
#keywords# 关键词内容
## 1 一级标题
### 1.1 二级标题
#### 1.1.1 三级标题
正文
#### 1.1.2 数学公式
段内数学公式: $c = \pm\sqrt{a^2 + b^2}$
单独数学公式:
$$
c = \pm\sqrt{a^2 + b^2}
$$#### 1.1.3 图片
![](图片路径)
> 图片标题
#### 1.1.4 表格
> 表格标题
| 表头1 | 表头2 |
| :---: | :---: |
| 内容1 | 内容2 |##### 参考文献
- 文献1
- 文献2
- 文献3##### 附录
```> 数学公式语法详见 [https://katex.org](https://katex.org) 和[这篇中文文章](https://kissingfire123.github.io/2022/02/18_数学公式katex常用语法总结)
## 2 安装 `Bun`
`Bun` 是一个现代的 `JavaScript` / `TypeScript` 运行环境, 本项目基于 `Bun` 环境开发; 请在官网 [bun.sh](https://bun.sh) 下载并安装 `Bun`, 也可以直接使用 `npm install -g bun` 安装
## 3 安装 `MarkdownPaper`
```bash
bun add -g markdown-paper
```> 如果您安装过旧版本的 `MarkdownPaper` (小于 `2.0.0`), 请先卸载旧版本再安装新版本
## 4 生成论文
运行 `mdp` 命令以使用 `MarkdownPaper` 命令行工具从 `Markdown` 文件生成论文
如果您不熟悉命令行工具, 可以尝试我的另一个项目 [EasyPaper](https://github.com/LeafYeeXYZ/EasyPaper), 它实现了大部分 `MarkdownPaper` 的功能并提供了图形界面
```bash
# 查看帮助信息
mdp
# 从当前工作目录下的 example.md 文件生成 PDF 文件
mdp example.md
# 从当前工作目录下的 example.md 文件生成 PDF 文件并输出到指定路径
mdp example.md --out=D:/example.pdf
# 从当前工作目录下的 example.md 文件生成 PDF 和 HTML 文件
mdp example.md --outputHTML
# 从当前工作目录下的 example.md 文件生成 PDF 和 DOCX 文件
pip install pdf2docx # 仅生成 DOCX 文件时需要安装 pdf2docx, 只需安装一次
mdp example.md --outputDOCX
```| 参数 | 说明 |
| :---: | :---: |
| `--out=xxx` | 输出文件相对路径
默认为源文件路径的同名 `PDF` 文件 |
| `--theme=xxx` | 论文模板, 默认为 `aps` (`Acta Psychologica Sinica`)
暂时没有其他模板, 欢迎贡献 |
| `--outputHTML` | 输出 `HTML` 文件, 默认不输出 |
| `--outputDOCX` | 输出 `DOCX` 文件, 默认不输出
**须先通过 `python` 安装依赖 `pdf2docx`**
使用时推荐开启 `--hideFooter` 参数 |# 模板说明
`/theme/theme.ts` 中的 `MarkdownnPaperTheme` 接口定义了模板的样式, 按照类似于 `aps` 文件夹的结构可自定义模板; 模板可以提供自定义功能模板制作完成后, 在 `/lib/main.ts` 中导入并添加到 `class MarkdownPaperOptions -> constructor -> case '--theme':` 中, 并在下方添加使用文档即可
推荐所有主题的文档和编写格式都尽量与 `aps` 主题保持一致
## APS 模板
### 额外命令行参数
| 参数 | 说明 |
| :---: | :---: |
| `--showTitle` | 在页眉显示文件名, 默认不显示 |
| `--hideFooter` | 隐藏页码, 默认显示 |
| `--zhPunctuation` | 将正文中的英文标点符号替换为中文标点符号, 默认不替换
仅替换 `PDF` 和 `DOCX` 文件 |
| `--enPunctuation` | 将正文中的中文标点符号替换为英文标点符号, 默认不替换
仅替换 `PDF` 和 `DOCX` 文件 |### 编写格式
同上# 更新日志
- `2.3.0` (2024-08-31): 支持数学公式
- `2.2.0` (2024-08-26): 半重构, 优化导入导出, 优化文档
- `2.1.1` (2024-07-12): 修复字体错误
- `2.1.0` (2024-06-26): 支持 `MacOS` 系统, 改为在线加载字体
- `2.0.0` (2024-06-20): 重构代码, 完善模板功能
- `1.4.0` (2024-05-29): 新增替换中英文标点符号功能
- `1.3.2` (2024-05-28): 优化图表标题显示
- `1.3.1` (2024-05-28): 优化样式
- `1.3.0` (2024-05-26): 支持自定义 `CSS` 文件, 简化编写格式, 优化帮助信息
- `1.2.3` (2024-05-25): 修复中文图片路径导致的错误
- `1.2.2` (2024-05-21): 优化样式, 优化命令
- `1.2.1` (2024-05-21): 优化摘要样式
- `1.2.0` (2024-05-21): 支持表格, 优化书写语法
- `1.1.3` (2024-05-20): 修复图片显示问题, 并新增显示图片标题
- `1.1.2` (2024-05-20): 优化 `DOCX` 文件输出
- `1.1.1` (2024-05-19): 支持 `DOCX` 文件输出
- `1.0.0` (2024-05-19): 初版发布