3 个不稳定版本
| 0.2.2 | 2020年11月20日 | 
|---|---|
| 0.2.0 | 2020年7月16日 | 
| 0.1.0 | 2020年7月15日 | 
#2751 在 命令行工具
125KB
562 行
qcv 是一个从 JSON 模板生成 HTML 简历的工具。 
内容
使用场景
在 Git 中维护 JSON 简历
该工具允许将简历信息放在一个 JSON 文件中。它可以被存储在 git 仓库中,以便更新过程更加顺畅。可以应用分支以处理不同的版本;差异跟踪更加简单。不再需要 CV_1.pdf,CV_1_updated.pdf,CV_1_updated_for_facebook.pdf。
控制和跟踪信息
无需在生成简历或/和存储简历的不同服务之间切换。
生成简单的个人网站
该工具根据可定制的 HTML 模板生成 HTML 文件。
工作原理
该工具将 HTML 模板中的变量替换为 JSON 模板中相应的值(请参阅 src/assets/themes)。示例:这是一个 HTML 模板
<div>{{basics.name}}<div>
这是 JSON 模板
{
    "basics": {
        "name": "John Doe"
    }
}
所以结果将是以下这样
<div>John Doe</div>
格式化规则
cv.json
以下是一个 JSON 模板示例。它将由 init 命令生成。它创建具有相似内容的 cv.json 文件。
{
    "basics": {
      "name": "John Doe",
      "label": "Programmer",
      "email": "john@gmail.com",
      "phone": "(912) 555-4321",
      "website": "http://johndoe.com",
      "summary": "A brief summary on who I am",
      "location": {
        "country": "The Johnited States Of Doe",
        "address": "2712 Broadway St",
        "city": "San Francisco"
      },
      "profiles": [{
        "network": "Twitter",
        "username": "john",
        "url": "http://twitter.com/john"
      }]
    },
    "work": [{
      "company": "Company",
      "position": "President",
      "website": "http://company.com",
      "start_date": "2013-01-01",
      "end_date": "2014-01-01",
      "summary": "Description..."
    }],
    "projects": [{
      "name": "An app to track time",
      "description": "A web and mobile application that allowed 2500 people to track their working time"
    }],
    "education": [{
      "institution": "University",
      "area": "Software Development",
      "study_type": "Bachelor",
      "start_date": "2011-01-01",
      "end_date": "2013-01-01",
      "courses": [
        "DB1101 - Basic SQL"
      ],
      "location": "Washington DC, US"
    }],
    "skills": [{ "name": "Web Development" }],
    "languages": [{
      "language": "English",
      "level": "Native speaker"
    }]
  }
将您的信息放入此文件。然后使用 build simple 命令生成 cv.html 输出。
可用主题
请参阅 主题文档
自定义 HTML 主题
您有能力构建自己的自定义 HTML 模板并从中生成简历。示例
$ qcv build-from my_theme.html
HTML 模板的格式化规则
作为参考,您可以使用 "simple" 主题(src/assets/themes/simple/index.html)。
原始/简单值
在HTML模板中的{{ root_key }}内的值会查找cv.json文件中的}{ root_key }}键,并将其替换为相应的值。嵌套键应写作}{ root.nested.more_nested }}。例如,我们有以下cv.json
{
    "basics": {
      "name": "John Doe",
      "label": "Programmer",
    },
}
主题可以是
<section id="main-info">
    <h1>{{ basics.name }}</h1>
    <!-- It doesn't matter if you use wrapping spaces or not inside {{ }} -->
    <h2>{{basics.label}}</h2>
</section>
CSS样式可以放在<style>中,也可以放在JavaScript代码中。模板只是一个包含}{ }}的HTML,这些将用cv.json中的值替换。
数组
cv.json包含对象数组。例如
{
    "basics": {
      "profiles": [{
        "network": "Twitter",
        "username": "john",
        "url": "http://twitter.com/john"
      }]
    }
}
映射数组值的语法是
<!-- Point a key which value is an array -->
{! basics.profiles
    <!-- Note the number of braces here: { } not {{ }} -->
    <!-- Number of spaces inside { } also doesn't matter -->
    <div>{network}</div>
    <p>{username}</p>
    <a href="{url}">{url}</a>
!}
安装
安装crate
如果您已安装Cargo,请下载qcv crate并在终端中使用它。
$ cargo install qcv
# Usage
$ qcv init
$ qcv build simple
安装二进制文件
在发布部分下载存档。例如,对于Ubuntu,下载...x86_64-unknown-linux-gnu.tar.gz,解压后按照以下方式使用
# Create a JSON template
./qcv init
# Generate HTML file
./qcv build simple
克隆仓库
如果您已安装Rust生态系统,请使用此方法。
$ git clone <repo>
# Create cv.json template
$ cargo run init
# Build cv.html result based on cv.json
$ cargo run build simple
依赖关系
~9–18MB
~149K SLoC