
RenderCV 命令行工具完全参考从rendercv new到rendercv create-theme【免费下载链接】rendercvResume builder for academics and engineers项目地址: https://gitcode.com/GitHub_Trending/re/rendercv本篇指南以 RenderCV 官方 CLI 参考文档docs/user_guide/cli_reference.md为骨架系统讲解 RenderCV 命令行工具的三大核心命令——rendercv new、rendercv render、rendercv create-theme。RenderCV 是一款面向学术与工程人员的简历生成器它以 YAML 为单一输入源输出 PDF、Typst、Markdown、HTML、PNG 五种格式。阅读本文后你将掌握如何一条命令生成可编辑的示例简历、如何用选项组合精确控制渲染产物、如何在编辑时自动重渲染watch 模式、如何用点号语法临时覆盖任意 YAML 字段以及如何创建属于自己的定制主题。文中所有命令均以当前仓库源码为准。安装方式pip install rendercv[full]、pipx、uv 或 Docker请参考 docs/user_guide/index.md。命令总览RenderCV 的 CLI 由 src/rendercv/cli/app.py 中基于 Typer 构建的app对象承载共注册三个核心命令命令作用rendercv new生成一份示例 CV 的 YAML 输入文件作为编辑起点rendercv render从 YAML 输入文件生成 PDF、Markdown、HTML、PNG含 Typst 中间产物rendercv create-theme创建一套可编辑模板的自定义主题从源码看命令是自动注册的app.py会遍历cli/目录下所有*_command.py文件并动态导入因此每个子命令模块都通过app.command装饰器挂载到同一app上。这也意味着三个命令共享同一下级结构、同样的--help/-h帮助选项与错误处理机制。命令语法基础命令在终端/命令提示符中键入以--开头的选项用于修改行为。多个选项可以在一条命令中组合使用rendercv render CV.yaml --watch --dont-generate-html --dont-generate-png上面这条命令会渲染你的简历并开启自动重载同时跳过 HTML 与 PNG 的生成。选项组合是 RenderCV CLI 效率的关键——每增加一个--dont-generate-*流水线就少跑一步速度与磁盘占用都随之下降。全局命令版本与帮助不带任何子命令时rendercv本身也是可用的# 查看已安装版本 rendercv --version # 或短选项 rendercv -v # 随时获取帮助 rendercv --help # 或 rendercv -h从 app.py 的实现看rendercv --version会打印RenderCV v{__version__}当没有提供子命令时CLI 会直接打印帮助信息并退出。此外每次调用 CLI 时都会在后台异步检查 PyPI 上的最新版本版本检查采用“stale-while-revalidate”策略结果缓存 24 小时VERSION_CHECK_TTL_SECONDS 86400且由守护线程在后台刷新因此网络检查永远不会阻塞命令行。若有新版本会以黄色加粗提示打印。值得注意的还有 entry_point.py 中的人性化错误处理如果用户用pip install rendercv而非rendercv[full]安装CLI 会捕获 ImportError 并输出一段提示告知需要用pip install rendercv[full]重新安装而不是抛出令人困惑的堆栈。rendercv new一键生成示例简历rendercv new用于快速生成一份可编辑的示例 CV 文件。基本用法rendercv new John Doe这会在当前目录创建John_Doe_CV.yaml。文件命名规则在 new_command.py 中实现{full_name.replace( , _)}_CV.yaml即把姓名中的空格替换为下划线。该 YAML 文件包含内容、设计选项、翻译locale与设置四大部分其结构详见 docs/user_guide/yaml_input_structure/index.md。选择不同主题rendercv new John Doe --theme moderncv内置主题集合定义在 src/rendercv/schema/models/design/built_in_design.pyavailable_themes通过反射所有内置主题类的默认值自动收集。当前内置主题包括classic默认、moderncv、engineeringclassic、engineeringresumes、ember、harvard、ink、opal、sb2nov。默认主题为classic。# 示例生成使用 engineeringresumes 主题的简历 rendercv new John Doe --theme engineeringresumes主题选项在new命令的源码中有校验逻辑若传入的主题不在available_themes列表中会抛出RenderCVUserError并列出所有可用主题见 new_command.py。使用不同语言rendercv new John Doe --locale french内置 locale 集合定义在 src/rendercv/schema/models/locale/locale.py对应的语言文件位于 src/rendercv/schema/models/locale/other_locales/ 目录下包括arabic、danish、dutch、french、german、hebrew、hindi、hungarian、indonesian、italian、japanese、korean、mandarin_chinese、norwegian_bokmål、norwegian_nynorsk、persian、portuguese、russian、spanish、turkish、vietnamese默认语言为english。同样new命令会校验 locale 合法性非法值会抛出错误并列出可用项见 new_command.py。--theme与--locale可以组合使用rendercv new Your Name --locale turkish --theme engineeringresumes高级用法生成可编辑模板rendercv new John Doe --create-typst-templates这会在当前目录创建一套 Typst 模板文件放在以主题名命名的文件夹中你可以修改它们以完全掌控设计。除此之外new还支持--create-markdown-templates选项用于生成 Markdown 模板放在markdown/文件夹中。完整选项如下选项默认值作用--themeclassic指定内置主题--localeenglish指定内置语言--create-typst-templatesfalse额外生成 Typst 模板文件夹--create-markdown-templatesfalse额外生成 Markdown 模板文件夹从源码的创建流程看new命令会依次处理三类产物YAML 输入文件永远创建、Typst 模板条件创建、Markdown 模板条件创建。已存在的文件不会被覆盖而是被列入 “Not modified (already exist)” 列表。命令结束时以 Rich Panel 打印结构化结果包括创建的文件、未修改的文件以及下一步操作提示编辑 YAML →rendercv render详见 new_command.py 与 build_creation_panel。模板的定制方法在 docs/user_guide/how_to/override_default_templates.md 中有完整说明。rendercv render从 YAML 生成全部输出rendercv render是 RenderCV 最核心的命令负责把 YAML 输入文件渲染为 PDF、Markdown、HTML、PNG 等多种格式。基本用法rendercv render John_Doe_CV.yaml这会在当前目录下创建rendercv_output文件夹默认输出目录包含John_Doe_CV.pdfPDF 版简历John_Doe_CV.typPDF 对应的 Typst 源码中间产物John_Doe_CV_1.png、John_Doe_CV_2.png…PDF 每页对应的 PNG 图片John_Doe_CV.mdMarkdown 版简历John_Doe_CV.html由 Markdown 生成的 HTML渲染流水线源码视角从 run_rendercv.py 可以看到完整的执行链每个阶段都有进度与耗时统计读取并校验 YAML调用build_rendercv_dictionary_and_model先以 Pydantic 模型校验输入校验失败会打印结构化错误列表progress.print_validation_errors生成 Typstgenerate_typst把模型渲染为 Typst 源码生成 PDFgenerate_pdf以 Typst 源码为输入编译出 PDF生成 PNGgenerate_png从 PDF 逐页生成 PNG生成 Markdowngenerate_markdown生成 HTMLgenerate_html由 Markdown 转换而来。每个timed_step都会在进度面板中显示耗时与产物路径如✓ 150 ms Generated PDF: ./cv.pdf。错误处理同样分层用户输入错误RenderCVUserError、模板语法错误jinja2.exceptions.TemplateSyntaxError会提示出错模板文件与行号、操作系统错误OSError以及校验错误RenderCVUserValidationError各有专属提示。依赖关系注意Typst 是 PDF 与 PNG 的上游Markdown 是 HTML 的上游。因此“跳过 Typst”会隐式跳过 PDF 和 PNG跳过 Markdown 会隐式跳过 HTML——这一点在--dont-generate-*系列的帮助文本中有明确说明。常见场景编辑时自动重渲染watch 模式rendercv render John_Doe_CV.yaml --watchCV 会在你每次保存修改后自动重新生成非常适合实时预览。其底层实现位于 watcher.py基于 watchdog 监听输入文件的父目录只对watched_files集合中的文件触发回调首次启动会立即渲染一次CtrlC时干净退出。值得注意的是watch 模式会监听所有参与渲染的输入文件——包括通过--design/--locale/--settings传入的附加文件以及 YAML 的settings.render_command中引用的 design/locale 文件见 collect_input_file_paths任何一处改动都会触发重渲染。只生成 PDFrendercv render John_Doe_CV.yaml --dont-generate-markdown --dont-generate-html --dont-generate-png或使用短选项形式rendercv render John_Doe_CV.yaml -nomd -nohtml -nopng自定义输出位置rendercv render John_Doe_CV.yaml --pdf-path ~/Desktop/MyCV.pdf全部选项速查表以下表格完整覆盖rendercv render支持的长选项与短选项短选项为 Typer 自动从长选项推导的前缀如-nomd即--dont-generate-markdown长选项短选项作用--output-folder-o所有输出文件的基础目录替代默认的rendercv_output--watch-w输入文件变化时自动重新渲染--quiet-q不打印任何消息--design FILE-d从独立文件加载design字段--locale-catalog FILE-lc从独立文件加载locale字段--settings FILE-s从独立文件加载settings字段--pdf-path PATH-pdf自定义 PDF 输出位置--typst-path PATH-typ自定义 Typst 输出位置--markdown-path PATH-md自定义 Markdown 输出位置--html-path PATH-html自定义 HTML 输出位置--png-path PATH-png自定义 PNG 输出位置--dont-generate-pdf-nopdf跳过 PDF 生成--dont-generate-typst-notyp跳过 Typst 生成隐式禁用 PDF 与 PNG--dont-generate-markdown-nomd跳过 Markdown 生成隐式禁用 HTML--dont-generate-html-nohtml跳过 HTML 生成--dont-generate-png-nopng跳过 PNG 生成路径选项说明--typst-path、--pdf-path、--markdown-path、--html-path、--png-path均相对于输入 YAML 文件解析。当某个路径未显式指定时会回落到 YAML 的settings.render_command中对应的配置项如pdf_path、markdown_path等其默认值均为OUTPUT_FOLDER/NAME_IN_SNAKE_CASE_CV.pdf这类基于占位符的模板详见 src/rendercv/schema/models/settings/render_command.py。路径占位符路径配置支持丰富的占位符例如OUTPUT_FOLDER输出目录、NAME简历所有者姓名、NAME_IN_SNAKE_CASE蛇形命名、YEAR/MONTH/DAY日期相关、MONTH_NAME、MONTH_ABBREVIATION等可用于把输出文件按日期归档或按姓名组织。完整占位符清单见 render_command.py。--design、--locale-catalog、--settings的优先级当通过 CLI 传入这些文件时其优先级高于 YAML 内部settings.render_command中引用的文件见 render_command.py 中的“CLI flags take precedence”逻辑。这也意味着你可以把设计、翻译与渲染设置拆分为独立 YAML 文件在不同项目间复用。覆盖任意 YAML 值点号语法render命令支持用点号dot表示法临时覆盖 YAML 中的任意字段无需编辑文件rendercv render CV.yaml --cv.phone 1-555-555-5555 rendercv render CV.yaml --cv.sections.education.0.institution MIT rendercv render CV.yaml --design.theme moderncv语法为--路径.to.字段 新值其中索引用数字表示如education.0表示教育经历的第一条。解析逻辑在 parse_override_arguments.py 中实现render命令通过allow_extra_args与ignore_unknown_options收集未解析参数成对解析为{cv.phone: 1-555-555-5555}这样的字典再交给模型构建器合并进输入数据。两个边界规则值得注意均有对应单元测试见 tests/cli/render_command/test_parse_override_arguments.py键值必须是成对出现如只写--cv.name不带值会报错键必须以--开头且内部会去掉所有--前缀--cv.name的键名为cv.name。rendercv create-theme创建自定义主题rendercv create-theme用于创建完全掌控设计风格的自定义主题。基本用法rendercv create-theme mytheme这会在当前目录创建mytheme/文件夹内含可编辑的 Typst 模板文件模板来源于仓库内置的 src/rendercv/renderer/rendercv_typst/template/main.typ 体系。从 create_theme_command.py 的实现看创建流程为检查同名文件夹是否已存在存在则抛出RenderCVUserError复制 Typst 模板到新主题文件夹copy_templates(typst, new_theme_folder)生成__init__.py文件由 create_init_file_for_theme.py 实现你可以在其中添加自己的设计选项供 YAML 输入文件使用修改既有选项的默认值或者直接删除它如果只想定制模板本身。使用该主题时在 YAML 输入文件中设置design: theme: mytheme模板的详细定制方法见 docs/user_guide/how_to/override_default_templates.md 与 docs/developer_guide/how_to/add_theme.md。补充CLI 与 YAML 配置的对应关系render命令的大多数选项都能在 YAML 的settings.render_command中找到一一对应的配置项src/rendercv/schema/models/settings/render_command.py。这意味着你的渲染偏好可以固化进 YAML 文件例如settings: render_command: output_folder: rendercv_output pdf_path: OUTPUT_FOLDER/NAME_IN_SNAKE_CASE_CV.pdf markdown_path: OUTPUT_FOLDER/NAME_IN_SNAKE_CASE_CV.md dont_generate_html: false dont_generate_png: false对应的配置项包括output_folder、design、locale、typst_path、pdf_path、markdown_path、html_path、png_path、dont_generate_markdown、dont_generate_html、dont_generate_typst、dont_generate_pdf、dont_generate_png。CLI 选项在运行时覆盖这些 YAML 默认值两条路径互补既可以“临时改一下”也可以“长期固化”。完整的 YAML 结构说明见 docs/user_guide/yaml_input_structure/settings.md。实战组合建议快速起步rendercv new John Doe→ 编辑John_Doe_CV.yaml→rendercv render John_Doe_CV.yaml --watch一边编辑一边看效果多语言/多主题对比用--theme、--locale快速生成多个变体用-nomd -nohtml -nopng只保留 PDF 以减少耗时批量覆盖用点号语法临时替换姓名、电话或机构名适合快速出稿与 A/B 对比设计复用把定制好的design存为独立 YAML通过--design在多个 CV 间共享主题开发rendercv create-theme mytheme后修改 Typst 模板与__init__.py在design.theme中引用。相关资源CLI 参考原文docs/user_guide/cli_reference.md快速上手与安装docs/user_guide/index.mdYAML 输入结构总览docs/user_guide/yaml_input_structure/index.md模板定制指南docs/user_guide/how_to/override_default_templates.mdCLI 入口实现src/rendercv/cli/app.py、src/rendercv/cli/render_command/render_command.pyCLI 相关测试tests/cli/【免费下载链接】rendercvResume builder for academics and engineers项目地址: https://gitcode.com/GitHub_Trending/re/rendercv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考