Skip to content
/ resume Public

Markdown Resume Generator | 在线简历生成器,支持多模板/主题定制/PDF 导出

License

Notifications You must be signed in to change notification settings

doyuli/resume

Repository files navigation

🧾 Resume Generator | Markdown 简历生成器

一款基于 Markdown 的 在线简历生成工具,内置多套精美模板,支持实时预览、PDF 导出和深度自定义。

🚀 无需前端知识,用 Markdown 轻松打造专业简历!


✨ 核心功能

  • 📝 Markdown 驱动 - 用熟悉的语法编写内容,实时渲染简历
  • 🪄 图标支持 - 通过自定义语法插入 Iconify 图标,让简历更直观
  • 🎨 多模板切换 - 内置现代、简约、学术等多种风格模板
  • 🌈 主题定制 - 自定义颜色、字体、间距等视觉元素
  • 📤 一键导出 - 支持 PDF/PNG 高清导出(前端+服务端双模式)
  • 💾 实时保存 - 自动保存编辑内容,关闭页面也不怕丢失

Tip

服务端模式导出 PDF 需要自行启动后端服务,具体步骤请参考 快速开始

优势:相比前端导出,服务端渲染支持更高分辨率、更精准的分页与字体兼容,适合追求打印级效果的用户。


🚀 快速开始

在线使用

  1. 访问 👉 在线体验地址
  2. 左侧编辑 Markdown,右侧实时预览
  3. 点击「导出 PDF」即可生成简历

本地开发

# 安装依赖
pnpm install

# 启动前端开发服务器
pnpm dev

# (可选)如需服务端 PDF 渲染(Puppeteer)
pnpm dev:node

在简历中使用图标 🪄

为了让简历更直观,本项目支持通过自定义语法插入 Iconify 图标。 只需要在 Markdown 中写:

联系我 :icon-mdi:github
邮箱 :icon-mdi:email
电话 :icon-mdi:phone

图标语法说明 :icon-集合名:图标名

所有可用的图标集合和名称都可以在 iconify 图标库 中搜索

🎨 定制主题指南

简历的样式完全可定制,支持 Sass + CSS 变量

以下是开发新主题的流程 👇

  1. 启动主题编译服务
pnpm compile:theme
  1. 创建新主题文件

进入 themes/ 目录,新建一个 .scss 文件(例如 my-theme.scss),并在文件顶部引入全局基础样式:

@import './global.scss';
  1. 使用内置 CSS 变量

主题开发推荐基于以下 CSS 变量进行覆盖:

--u-theme: #a8b1ff; /* 主题主色 */
--u-line-height: 1.9; /* 全局行高 */
--u-font-family: 'Noto Sans SC'; /* 全局字体 */
--text-color: #747474; /* 默认文字颜色 */

你可以在 SCSS 文件里自由拓展,也可以用 :root.u-view 作用域来覆盖。

  1. 注册主题

src/themes/index.ts 中添加新主题配置:

import type { ThemeOptions } from '@/utils/theme'
import { getThemeOptions, registerTheme } from '@/utils/theme'
import blueThemeCss from './styles/blue.css?raw'
import defaultThemeCss from './styles/default.css?raw'
// my-theme
import myThemeCss from './styles/my-theme.css?raw'

export const defaultTheme = {
  label: '极简主义',
  value: 'default',
  css: defaultThemeCss,
}

registerTheme(defaultTheme)
// my-theme
registerTheme({
  label: '我的主题',
  value: 'my-theme',
  css: myThemeCss,
  themeColor: '#1890ff',
  custom: (context) => {
    // 可选:对数据进行特殊处理
  },
})

// ⚠️ Must be at the end
export const themes = getThemeOptions()

完成后,就可以在页面中切换到新主题啦 ✨

✨ Contributing

欢迎提交 PR 或 issue 来改进项目!

✨ Recommendation