md2resume · Markdown to Resume

md2resume renders structured Markdown into a designed one-page DOCX Chinese resume. The primary path is reference-template cloning: take an already-typeset docx as the skeleton, clone its colors, blocks, type hierarchy, and photo, and replace only the text — with automatic restricted-font sanitization (bare Courier → Arial), --scale proportional fitting to one page, and a blue achievement bar rendered from each section's last bullet.
A pure-code path works without any template. The look follows a professional system: deep-blue headings, blue section underlines, blue bullets.
Example invocation: "Turn these notes into a one-page resume in the reference template's style."
Full brief
Positioning
md2resume is the dedicated renderer for Markdown → one-page DOCX Chinese resumes: structured Markdown in, a polished submission-ready resume out. Resumes only — no general Word editing.
Core capabilities
- Path A: reference-template cloning (primary, high fidelity): take a typeset docx as the skeleton and clone its paragraph styles (colors / fonts / blocks / photo / margins), replacing only the text. A sanitized sample skeleton (
assets/reference-template.docx) ships with the repo, or bring your own template. - Automatic trio: restricted-font sanitization (bare
Courierfrom macro styles auto-replaced with embeddable Arial — never touchingCourier New),--scaleproportional fitting to one page (0.8–1.0), and the achievement bar (each section's last bullet auto-rendered as a light-blue#EBF3FBbar with a blue left border and dark-blue text). - Path B: pure-code rendering (no template):
core/parser.pyparses,core/docx_renderer.pyrenders; freer input (half-width|, unlimited sections). - Unified visual system: primary blue
#2E75B6/ deep blue#1F4E79/ body#404040; Microsoft YaHei for CJK + Arial for Latin; deep-blue headings, blue section underlines, blue bullets. - Render self-check: Quick Look thumbnail or LibreOffice render to verify one page, achievement bars in place, restrained bolding (1–2 keywords per bullet max).
Workflow
- Shape the Markdown per path conventions (Path A: full-width
|separators, one-line contact, fixed section names 教育背景/实习经历/核心能力; Path B: see references/markdown-conventions.md) - Path A:
build_docx_from_reference.py … --reference <template> --scale 0.99; Path B:build_b_resume.py - Self-check the render: ① one page ② achievement bars in place ③ restrained bolding
- Fine-tune
--scale(smaller on overflow, larger on whitespace)
Inputs & outputs
| Input | Notes |
|---|---|
| Structured Markdown | Path A uses the full-width | dialect (# 姓名|职位, ### 公司|部门·职位|日期, **标题**); Path B is freer |
| Reference template | Optional (Path A); its photo carries into the output |
| Photo | Optional (Path B's photo_path) |
Output: one-page DOCX Chinese resume.
Boundaries with adjacent skills
- docx (office docs): the general Word creation/editing/review toolkit; md2resume is the fixed resume-rendering pipeline.
Fit
- Turning career notes or an old resume into a submission-ready document fast
- Cloning the look of a reference resume for a new version
- Squeezing content onto one page via type and spacing tweaks
- Sanitizing restricted fonts (Courier) before submitting
Before you start
- No API key; Python plus the repo scripts (commands assume the repo root as cwd).
- Path A: the reference template's photo carries into every output — swap in your own template or replace the image before submitting.
- Only the DOCX ships; temporary PDFs for page QA render to
/tmpand are deleted.
md2resume is part of the Aiglade Skill library. Invoke it from the Aiglade chat box in plain language.