gbs0043 downloadsCreate resumes from Markdown with live A4 previews and local PDF export.
Create resumes in Obsidian's native Markdown editor with a live A4 HTML preview and local PDF export. Organize sections freely, use a starter template, add an optional local photo, and zoom the preview without changing the exported layout. The plugin includes Source Han Sans CN for offline Chinese and English typography. The interface and starter template currently use Chinese.
Version: 0.1.3. Requires Obsidian 1.13.7 or later on desktop. Tested on macOS; Windows and Linux have not been validated. Android and iOS are not supported.
main.js, manifest.json, and styles.css from the GitHub release.<your-vault>/.obsidian/plugins/markdown-to-cv/.Alternatively, extract markdown-to-cv-0.1.3.zip into .obsidian/plugins/. GitHub's automatically generated source archives are not installable plugin packages. Community-directory review and GitHub releases are separate; see the release status.
新建简历), then edit the generated Markdown in Obsidian.预览简历) to preview the active Markdown note. The same commands are available in the command palette.适应宽度) or 50–200% zoom to inspect it.导出 PDF) and select a local destination. Export captures the content at the moment you click, including unsaved edits. You can keep editing or cancel the export.回到模板) preserves an original snapshot and creates a repaired copy; it does not overwrite the source note.New resumes use the folder you just selected in File Explorer or Notebook Navigator. Otherwise they use the current note's folder (the source note when viewing a resume), or the vault root if no note is open. Switching to another note clears the previous sidebar context. You can also right-click a folder and choose New resume (新建简历) to set the destination explicitly.
No account, telemetry, or cloud service is required. Notes and attachments stay local; ordinary remote Markdown images may be fetched by Obsidian, while resume photos and PDF images must be local. PDF export writes to the destination you choose, including paths outside the vault, and uses the host's non-public @electron/remote bridge. A host update may affect this bridge; HTML preview remains available if export fails. The bundled full font makes main.js larger than 5 MB, exceeding the Obsidian Sync Standard per-file limit. Source code is MIT-licensed; the bundled font retains its SIL OFL license.
在 Obsidian 原生编辑器中写 Markdown,右侧即时预览 A4 简历,并导出本地 PDF。面向习惯 Markdown、希望自由组织内容且少调整格式的用户。
当前版本:0.1.3。已实现桌面端功能;0.1.3 使用 macOS / Obsidian 1.14.4 验收。GitHub 发布与社区目录审核状态见发布记录。
工具栏以强调色突出“导出 PDF”,不反复显示“已更新”或耗时秒数。快捷键不预占,可在 Obsidian 设置中自行绑定。
“回到模板”会保存点击时的原文快照,并另建修复副本,原笔记不被覆盖。只修复能确定的标题空格、字段加粗标记等损坏;不猜测内容归属,不补回用户删除的章节。
新建位置按当前操作判断:刚在文件列表或 Notebook Navigator 选中的文件夹 → 当前笔记/预览源笔记所在文件夹 → Vault 根目录。切换笔记后不沿用旧的侧栏选择;也可在文件夹右键菜单点击“新建简历”。同名文件自动编号,不覆盖已有笔记。
手动安装请从 0.1.3 GitHub Release 下载附件。
将以下三个文件放入 Vault 的 .obsidian/plugins/markdown-to-cv/,然后在 Obsidian 的社区插件设置中启用插件:
main.jsmanifest.jsonstyles.css也可以解压 Release 附件 markdown-to-cv-0.1.3.zip,把其中的完整 markdown-to-cv 目录放到 .obsidian/plugins/。GitHub 自动生成的 Source code ZIP 不是插件安装包。
从旧版更新时,先停用插件,替换上述三个文件后再启用即可。自 0.1.1 起不再读取旧的 fonts/ 目录;无需安装系统字体或下载额外字体。最低 Obsidian 版本为 1.13.7。
将 PNG、JPEG 或 WebP 图片保存为 Vault 附件,在姓名一级标题下方填写:
# 你的姓名
**照片:** ![[附件/头像.jpg]]
**求职方向:** 产品工程师
也支持标准 Markdown 图片 .jpg>),或在照片字段后的独立段落插入图片。基础信息只支持一张照片,文字居左、图片居右,顶部对齐,最大 28 × 36 mm,等比缩放且不裁切。
留空不占位。附件缺失、损坏、重复照片或远程照片网址会给出定位提示,正文继续预览;修正或清空字段后才能导出。PDF 内嵌照片。其他章节中的普通图片保持原位置。
内置 Adobe 思源黑体 CN 2.005R,正文使用 400、章节和条目标题使用 500、姓名和加粗使用 700。字体原文件约 7.71 MB,在 main.js 内嵌,首次预览时解码并缓存,后续编辑复用。
完整字库使 main.js 超过 5 MB,不能通过 Obsidian Sync Standard 同步该文件;0.1.3 保留字库覆盖范围,未缩减此体积。
预览和 PDF 使用同一字体、纸张样式与分页结果。官方 CN 字库不是所有 Unicode 字符的全集,极少见姓名用字可能缺字。当前宿主的 PDF 字体使用 Type3 字形及 ActualText:Poppler、macOS PDFKit 的文字选择、搜索和逐页内容一致性可验证;忽略 ActualText 的部分提取器可能误读同形汉字,不承诺所有 ATS 兼容。
@electron/remote 兼容桥接,这不是 Obsidian 公共稳定 API;不可用时提示导出失败,HTML 预览仍可使用。需要 Node.js 24、npm;打包另需 Python 3。
git clone https://github.com/gbs00/markdown2cv.git
cd markdown2cv
npm ci
npm run check:release
上述命令执行 Obsidian ESLint 规则检查、自动测试、类型检查、发布构建和产物校验。生成 release/0.1.3/:三个安装文件、手动安装 ZIP 和 SHA256SUMS.txt。许可证及字体来源同时保留在仓库与安装后的 main.js 中。
npm run package 单独构建安装包;npm run package:manual 为同一命令的兼容别名。GitHub Actions 对每次推送执行发布检查并保存构建产物;推送到 main 时还为三个安装文件生成来源证明。正式发布使用核验后的 CI 产物,不会自动上架或发布 Release。
本地开发:
npm run build 与 npm run build:release 使用相同的生产参数;需要调试映射和监听更新时使用 npm run dev。监听模式同时更新独立的 styles.css 与 manifest.json。
npm run build
npm run deploy:dev
用 Obsidian 打开本项目下的 dev-vault,启用插件并使用 fixtures/ 的虚构样例。已有试写内容时用 npm run deploy:dev -- --plugin-only,只更新插件。不要在使用中的 Vault 运行会切换笔记的全量宿主测试。
全新发布验收:
npm run prepare:release-test
# 在 Obsidian 中打开命令输出的独立 Vault,启用此插件
npm run test:release-host
此流程校验三个发布文件、首次预览延迟加载字体、断网字体/照片/导出、缩放、卸载与重载。目标 Vault 受路径和标记文件校验;只包含虚构样例。旧宿主测试脚本仍有原开发机路径约束,迁移时需调整隔离检查。
源码采用 MIT;字体独立采用 SIL OFL 1.1,版权归 Adobe。OFL 不被 MIT 替代。
测试 Vault、真实简历、截图、导出的 PDF、临时文件和本地验收原始证据不入库;历史文档中的本地证据链接需要在原环境查看或重新生成。