Render 'JSON Resume' sources to ANSI-enriched output for terminal clients (cURL, wget, ...) to consume.
Project description
ancv
Getting you an CV (ANSI-v 🤡) straight to your and anyone else's terminals.
Be warned though, for this is kinda useless and just for fun:
Getting started
-
Create your resume according to the JSON Resume Schema (see also the schema specification) either:
- manually (see the
heyhosample for a possible starting point), - exporting from LinkedIn using Joshua Tzucker's LinkedIn exporter (repo), or
- exporting from one of the platforms advertised as offering JSON resume integration.
- manually (see the
-
Create a public gist named
resume.jsonwith your resume contents. -
You're now the proud owner of an ancv. Time to try it out.
The following examples work out-of-the-box. Replace
heyhowith your GitHub username once you're all set up.-
curl:
curl -L ancv.io/heyho
with
-Lbeing shorthand for--location, allowing you to follow the redirect fromhttp://ancv.iothrough tohttps://ancv.io. It's shorter than its also perfectly viable alternative:curl https://ancv.io/heyhoLastly, you might want to page the output for easiest reading, top-to-bottom:
curl -sL ancv.io/heyho | less
If that garbles the rendered output, try
less -raka--raw-control-chars. -
wget:
wget -O - --quiet ancv.io/heyho
where
-Ois short for--output-document, used here to redirect to stdout. -
PowerShell 7:
(iwr ancv.io/heyho).Content
where
iwris an alias forInvoke-Webrequest, returning an object whoseContentwe access. -
PowerShell 5:
(iwr -UseBasicParsing ancv.io/heyho).Content
where
-UseBasicParsingis only required if you haven't set up Internet Explorer yet (yes, really). If you have, then it works as PowerShell 7 (where that flag is deprecated and the default anyway).
-
Configuration
All configuration is optional.
The CV is constructed as follows:
These components may be controlled using the ancv field in your resume.json:
{
"basics": {},
"education": [],
"meta": {
"ancv": {
"template": "Sequential",
"theme": "basic",
"ascii_only": false,
"language": "en"
}
}
}
The shown values are the default ones.
All fields, including the ancv one itself, are optional, and the above defaults will be set for omitted fields.
This means a valid JSON resume (without an ancv section) is also valid here.
The currently available options can be printed out:
$ pip install ancv >> /dev/null && ancv list
Components
├── Templates
│ └── Sequential
├── Themes
│ ├── plain
│ └── basic
└── Translations
├── en
└── de
Installation
As a library
Install the package as usual:
pip install ancv
This also allows you to import whatever you could want or need from the package, if anything. Note that it's pretty heavy on the dependencies.
As a container
See also the available packages aka images:
docker pull ghcr.io/alexpovel/ancv
Versioned tags (so you can pin a major) are available.
Local usage
Once installed, you could for example check whether your resume.json is valid at all (validate) or get a glimpse at the final product (render):
# pip route:
$ ancv render resume.json
# container route:
$ docker run -v $(pwd)/resume.json:/app/resume.json ghcr.io/alexpovel/ancv render
Self-hosting
Self-hosting is a first-class citizen here.
Context: Cloud Hosting
The https://ancv.io site is hosted on Google Cloud Run (serverless) and deployed there automatically, such that the latest release you see here is also the code executing in that cloud environment.
That's convenient to get started: simply create a resume.json gist and you're good to go within minutes.
It can also be used for debugging and playing around; it's a playground of sorts.
You're invited to use this service for as much and as long as you'd like. However, obviously, as an individual I cannot guarantee its availability in perpetuity. You might also feel uncomfortable uploading your CV onto GitHub, since it has to be public for this whole exercise to work. Lastly, you might also be suspicious of me inserting funny business into your CV before serving it out. If this is you, self-hosting is for you.
Setup
For simplicity, using Docker Compose (with Docker's recent Compose CLI plugin):
- Clone this repository onto your server (or fork it, make your edits and clone that)
cd self-hosting- Edit Caddy's config file (more info) to contain your own domain name
- Place your
resume.jsoninto the directory - Run
docker compose up
Caddy (chosen here for simplicity) will handle HTTPS automatically for you, but will of course require domain names to be set up correctly to answer ACME challenges.
Handling DNS is up to you; for dynamic DNS, I can recommend qmcgaw/ddns-updater.
If you self-host in the cloud, the server infrastructure might be taken care of for you by your provider already (as is the case for Google Cloud Run). In these cases, a dedicated proxy is unnecessary and a single Dockerfile might suffice (adjusted to your needs). True serverless is also a possibility and an excellent fit here. For example, one could use Digital Ocean's Functions. If you go that route and succeed, please let me know! (I had given up with how depressingly hard dependency management was, as opposed to tried-and-tested container images.)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ancv-0.19.1.tar.gz.
File metadata
- Download URL: ancv-0.19.1.tar.gz
- Upload date:
- Size: 27.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
158a1a5b83fc53c29f5800ee3e2cc19d383ec1f784075884fb558525576bd99e
|
|
| MD5 |
a3e8bf28723c54e4eef840cc88cfb02d
|
|
| BLAKE2b-256 |
41e8fd79e549882a0a42dc6e9dc1a834de8f7cfc3709c8969785d5fdca8091bc
|
File details
Details for the file ancv-0.19.1-py3-none-any.whl.
File metadata
- Download URL: ancv-0.19.1-py3-none-any.whl
- Upload date:
- Size: 27.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
478109cdffe51108702f002688bff8d0271b221b67f0609e43b5fab4d9e8c7c9
|
|
| MD5 |
159291ae2a70adb5a17cbda899b56c05
|
|
| BLAKE2b-256 |
29c7cf576d663420bdca7e626ec26528d7048d01c71dc8b878c389cd6a5dfa35
|