3 个不稳定版本

0.2.2 2020年11月20日
0.2.0 2020年7月16日
0.1.0 2020年7月15日

#2751命令行工具

MIT 许可证

125KB
562

qcv 是一个从 JSON 模板生成 HTML 简历的工具。 img

内容

使用场景

在 Git 中维护 JSON 简历

该工具允许将简历信息放在一个 JSON 文件中。它可以被存储在 git 仓库中,以便更新过程更加顺畅。可以应用分支以处理不同的版本;差异跟踪更加简单。不再需要 CV_1.pdfCV_1_updated.pdfCV_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": "[email protected]",
      "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