Resumaker 0.4.0

.NET 6.0
dotnet tool install --global Resumaker --version 0.4.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Resumaker --version 0.4.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Resumaker&version=0.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package Resumaker --version 0.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Resumaker CLI

USAGE: Resumaker [--help] [<subcommand> [<options>]]

SUBCOMMANDS:

    init <options>        Creates basic files and directories to start using resumaker.
    generate <options>    Generates an HTML file with the contents of your resumaker.json file or files if you have multiple languages.

    Use 'Resumaker.exe <subcommand> --help' for additional information.

OPTIONS:

    --help                display this list of options.

Usage

Binary

Download the binary and put it on your PATH then start generating your resume, you can also get help on the commands just execute resumaker help generate that should show you the following text

USAGE: Resumaker.exe generate [--help] [--config [<string>]] [--output-dir [<string>]] [--template [<string>]] [--language [<string>...]]

OPTIONS:

    --config, -c [<string>]
                          Specify a path to the "resumaker.json" file.
    --output-dir, -o [<string>]
                          Where should we put the resulting files.
    --template, -t [<string>]
                          The Full or relative file path to the custom template to use.
    --language, -l [<string>...]
                          A list of languages you want to generate your resume in, a json file for each specified language is required.
    --help                display this list of options.

.Net tool

This is also available as a dotnet global tool

dotnet tool install --global Resumaker

By default resumaker-cli will try to look for the resumaker.json file wherever you invoke the tool. If that file is not present there's the handy init command which will create the file for you with A couple resumes of some ghost pokemon trainer.

You can of course remove everything there and start from scratch, a json-schema is provided, if your editor supports json-schema, it should give you examples and kind of validate the data inside your resumaker.json file

To generate your output files you should use the generate command (the help output is above) and that's it! edit your json file and re-generate your Resume 😃

resumaker.json

The resumaker.json file has a schema and there are a few conventions around it, the object keys must be UpperCase every property is required (at least for the default template) even if it is empty, the Language Name should be a valid locale language string for example

  • en-US
  • en-GB
  • es-MX
  • es-ES
  • fr-FR
  • fr-CA

Specially if you are generating an HTML file which sets the Language of the html document

Custom Templates

If you are fancier than me, you can use a custom template if you specify the flag -t|--template when you use the generate command for the templating language I used Scriban which is quite fast and very simple to use, check the default.html file to base any template you might want to customize

Notes and Variables

when customizing your template shape, the variable names will be transformed into lower_snake_case by the scriban template engine so for example A profile in json would be like this (this is just a sample, the correct template can be found at resumaker.sample.json or using the init command)

{
  "Language": {
    "Name": "en-US",
    "Keywords": { "Skills": "Skills" }
  },
  "Profile": { "Name": "Frank" },
  "Skills": [{}],
  "PreviousJobs": [{}],
  "Projects": [{}],
  "DevLinks": [{}],
  "SocialMedia": [{}]
}

these will be available inside the template as

<h1>{{ this.profile.name }}</h1>

The Keywords property inside Language is parsed as a string, string dictionary so the names will be kept, you can access them like this

<h1>{{ this.language.keywords['Skills'] }}</h1>

and if you are looking to Fully customize the whole template including the defaults I guess you could abuse the Language.Keywords property since it just ouputs the string but Idealy you should just put keywords there instead of the contents

Motivations

I was updating my resume when word decided to screw all of my margins/order/text and what not so I decieded that I could perhaps create a tool for my resume that fits my needs, in the end is a simple blank page with text so Why not to use HTML (Scriban) templates if I ever wanted to update my resume it would be as simple as writing a couple of entries in a json file.

Product Versions
.NET net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.4.0 147 9/3/2021
0.3.1 292 7/27/2020
0.3.0 257 7/27/2020
0.2.0 253 7/27/2020
0.1.0 249 7/26/2020