1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-05 01:56:21 +00:00

docs: capture readme & changelog updates (interim)

This commit is contained in:
hacksalot 2018-02-02 02:33:13 -05:00
parent 7912ec9ef5
commit 2b31f5bb58
No known key found for this signature in database
GPG Key ID: 2F343EC247CA4B06
2 changed files with 197 additions and 65 deletions

View File

@ -1,5 +1,78 @@
CHANGELOG CHANGELOG
========= =========
## v2.0.0
*Welcome to the first new version of HackMyResume in over a year. The purpose of
this release is to gather feature enhancements, bug fixes, and pull requests
along with branding and identity changes collected over the past 18 months.
Given the amount of time since the last release and the likelihood of breaking
changes, we've decided to bump the major version number, bringing us to the
official `2.0.0`. This shouldn't affect most common scenarios and use cases but
complex resume and/or theme setups may behave differently under 2.0.0 than under
1.8.0 and may even exhibit breakage in certain cases.*
### Added
- Support for **private resume fields**. Mark any non-leaf node in your resume JSON
with the `private` property and it will be omitted from outbound resumes.
```json
"employment": {
"history": [
{
"employer": "Acme Real Estate"
},
{
"employer": "Area 51 Alien Research Laboratory",
"private": true
},
{
"employer": "H&R Block"
}
]
}
```
- Support for **PDF generation through WeasyPrint** in addition to the
existing support for wkhtmltopdf and PhantomJS.
- Theme authors can now develop and package **custom Handlebars theme helpers**
via the `helpers` key of the `theme.json` file (FRESH themes only).
- Theme authors can **relocate theme assets** with the `baseFolder` property in
the FRESH `theme.json`.
- HackMyResume will now **validate the options file** (if any) loaded with `-o`
or `--options` and warn the user if necessary.
- Ability to **disable Handlebars encoding/escaping** of resume fields with
`--no-escape`.
- Introduced the [fresh-test-themes][ftt] project as a repository for simple,
test-only resume themes in the FRESH format.
### Changed
- The FRESCA project has been renamed to [fresh-resume-schema]. FRESCA is still
the nickname.
- The HackMyResume project has moved to https://fluentdesk.com/hackmyresume.
### Fixed
- Fixed an issue that would cause the `CONVERT` command to detect the inbound
resume type (FRESH or JRS) incorrectly.
- Fixed an issue where generating new JRS resumes would cause a `null` or
`undefined` error/
- Fixed an issue preventing mixed-case themes from being loaded.
- Fixed an issue requiring JSON Resume themes contain `json-resume-theme` in the
theme path.
-
## v1.8.0 ## v1.8.0
### Added ### Added
@ -409,3 +482,4 @@ theme.
[themes]: https://github.com/fluentdesk/fresh-themes [themes]: https://github.com/fluentdesk/fresh-themes
[awefork]: https://github.com/fluentdesk/Awesome-CV [awefork]: https://github.com/fluentdesk/Awesome-CV
[acv]: https://github.com/posquit0/Awesome-CV [acv]: https://github.com/posquit0/Awesome-CV
[ftt]: https://github.com/fresh-standard/fresh-test-themes

188
README.md
View File

@ -62,7 +62,7 @@ Alternately, install the latest bleeding-edge version (updated daily):
HackMyResume tries not to impose a specific PDF engine requirement on HackMyResume tries not to impose a specific PDF engine requirement on
the user, but will instead work with whatever PDF engines you have installed. the user, but will instead work with whatever PDF engines you have installed.
Currently, HackMyResume's PDF generation requires either [Phantom.js][2], Currently, HackMyResume's PDF generation requires one of [Phantom.js][2],
[wkhtmltopdf][3], or [WeasyPrint][11] to be installed on your system and the [wkhtmltopdf][3], or [WeasyPrint][11] to be installed on your system and the
corresponding binary to be accessible on your PATH. This is an optional corresponding binary to be accessible on your PATH. This is an optional
requirement for users who care about PDF formats. If you don't care about PDF requirement for users who care about PDF formats. If you don't care about PDF
@ -91,7 +91,7 @@ Then when you're ready to generate your resume, just reference the location of
the theme folder as you installed it: the theme folder as you installed it:
```bash ```bash
hackmyresume BUILD resume.json TO out/resume.all -t node_modules/jsonresume-theme-classy hackmyresume build resume.json TO out/resume.all -t node_modules/jsonresume-theme-classy
``` ```
Note: You can use install themes anywhere on your file system. You don't need a Note: You can use install themes anywhere on your file system. You don't need a
@ -108,26 +108,26 @@ Use it when you need to submit, upload, print, or email resumes in specific
formats. formats.
```bash ```bash
# hackmyresume BUILD <INPUTS...> TO <OUTPUTS...> [-t THEME] # hackmyresume build <INPUTS...> TO <OUTPUTS...> [-t THEME]
hackmyresume BUILD resume.json TO out/resume.all hackmyresume build resume.json TO out/resume.all
hackmyresume BUILD r1.json r2.json TO out/rez.html out/rez.md foo/rez.all hackmyresume build r1.json r2.json TO out/rez.html out/rez.md foo/rez.all
``` ```
- **new** creates a new resume in FRESH or JSON Resume format. - **new** creates a new resume in FRESH or JSON Resume format.
```bash ```bash
# hackmyresume NEW <OUTPUTS...> [-f <FORMAT>] # hackmyresume new <OUTPUTS...> [-f <FORMAT>]
hackmyresume NEW resume.json hackmyresume new resume.json
hackmyresume NEW resume.json -f fresh hackmyresume new resume.json -f fresh
hackmyresume NEW r1.json r2.json -f jrs hackmyresume new r1.json r2.json -f jrs
``` ```
- **analyze** inspects your resume for keywords, duration, and other metrics. - **analyze** inspects your resume for keywords, duration, and other metrics.
```bash ```bash
# hackmyresume ANALYZE <INPUTS...> # hackmyresume analyze <INPUTS...>
hackmyresume ANALYZE resume.json hackmyresume analyze resume.json
hackmyresume ANALYZE r1.json r2.json hackmyresume analyze r1.json r2.json
``` ```
- **convert** converts your source resume between FRESH and JSON Resume - **convert** converts your source resume between FRESH and JSON Resume
@ -135,29 +135,29 @@ formats. Use it to convert between the two formats to take advantage of tools
and services. and services.
```bash ```bash
# hackmyresume CONVERT <INPUTS...> TO <OUTPUTS...> # hackmyresume convert <INPUTS...> TO <OUTPUTS...>
hackmyresume CONVERT resume.json TO resume-jrs.json hackmyresume convert resume.json TO resume-jrs.json
hackmyresume CONVERT 1.json 2.json 3.json TO out/1.json out/2.json out/3.json hackmyresume convert 1.json 2.json 3.json TO out/1.json out/2.json out/3.json
``` ```
- **validate** validates the specified resume against either the FRESH or JSON - **validate** validates the specified resume against either the FRESH or JSON
Resume schema. Use it to make sure your resume data is sufficient and complete. Resume schema. Use it to make sure your resume data is sufficient and complete.
```bash ```bash
# hackmyresume VALIDATE <INPUTS...> # hackmyresume validate <INPUTS...>
hackmyresume VALIDATE resume.json hackmyresume validate resume.json
hackmyresume VALIDATE r1.json r2.json r3.json hackmyresume validate r1.json r2.json r3.json
``` ```
- **peek** echoes your resume or any field, property, or object path on your - **peek** echoes your resume or any field, property, or object path on your
resume to standard output. resume to standard output.
```bash ```bash
# hackmyresume PEEK <INPUTS...> [OBJECT-PATH] # hackmyresume peek <INPUTS...> [OBJECT-PATH]
hackmyresume PEEK rez.json # Echo the whole resume hackmyresume peek rez.json # Echo the whole resume
hackmyresume PEEK rez.json info.brief # Echo the "info.brief" field hackmyresume peek rez.json info.brief # Echo the "info.brief" field
hackmyresume PEEK rez.json employment.history[1] # Echo the 1st job hackmyresume peek rez.json employment.history[1] # Echo the 1st job
hackmyresume PEEK rez.json rez2.json info.brief # Compare value hackmyresume peek rez.json rez2.json info.brief # Compare value
``` ```
## Supported Output Formats ## Supported Output Formats
@ -184,7 +184,7 @@ Assuming you've got a JSON-formatted resume handy, generating resumes in
different formats and combinations is easy. Just run: different formats and combinations is easy. Just run:
```bash ```bash
hackmyresume BUILD <INPUTS> TO <OUTPUTS> [-t theme]. hackmyresume build <inputs> to <outputs> [-t theme].
``` ```
Where `<INPUTS>` is one or more .json resume files, separated by spaces; Where `<INPUTS>` is one or more .json resume files, separated by spaces;
@ -193,19 +193,19 @@ theme (default to Modern). For example:
```bash ```bash
# Generate all resume formats (HTML, PDF, DOC, TXT, YML, etc.) # Generate all resume formats (HTML, PDF, DOC, TXT, YML, etc.)
hackmyresume BUILD resume.json TO out/resume.all -t modern hackmyresume build resume.json TO out/resume.all -t modern
# Generate a specific resume format # Generate a specific resume format
hackmyresume BUILD resume.json TO out/resume.html hackmyresume build resume.json TO out/resume.html
hackmyresume BUILD resume.json TO out/resume.pdf hackmyresume build resume.json TO out/resume.pdf
hackmyresume BUILD resume.json TO out/resume.md hackmyresume build resume.json TO out/resume.md
hackmyresume BUILD resume.json TO out/resume.doc hackmyresume build resume.json TO out/resume.doc
hackmyresume BUILD resume.json TO out/resume.json hackmyresume build resume.json TO out/resume.json
hackmyresume BUILD resume.json TO out/resume.txt hackmyresume build resume.json TO out/resume.txt
hackmyresume BUILD resume.json TO out/resume.yml hackmyresume build resume.json TO out/resume.yml
# Specify 2 inputs and 3 outputs # Specify 2 inputs and 3 outputs
hackmyresume BUILD in1.json in2.json TO out.html out.doc out.pdf hackmyresume build in1.json in2.json TO out.html out.doc out.pdf
``` ```
You should see something to the effect of: You should see something to the effect of:
@ -232,16 +232,16 @@ installed first). To specify a theme when generating your resume, use the `-t`
or `--theme` parameter: or `--theme` parameter:
```bash ```bash
hackmyresume BUILD resume.json TO out/rez.all -t [theme] hackmyresume build resume.json TO out/rez.all -t [theme]
``` ```
The `[theme]` parameter can be the name of a predefined theme OR the path to any The `[theme]` parameter can be the name of a predefined theme OR the path to any
FRESH or JSON Resume theme folder: FRESH or JSON Resume theme folder:
```bash ```bash
hackmyresume BUILD resume.json TO out/rez.all -t modern hackmyresume build resume.json TO out/rez.all -t modern
hackmyresume BUILD resume.json TO OUT.rez.all -t ../some-folder/my-custom-theme/ hackmyresume build resume.json TO OUT.rez.all -t ../some-folder/my-custom-theme/
hackmyresume BUILD resume.json TO OUT.rez.all -t node_modules/jsonresume-theme-classy hackmyresume build resume.json TO OUT.rez.all -t node_modules/jsonresume-theme-classy
``` ```
FRESH themes are currently pre-installed with HackMyResume. JSON Resume themes FRESH themes are currently pre-installed with HackMyResume. JSON Resume themes
@ -265,7 +265,7 @@ most generic to most specific:
```bash ```bash
# Merge specific.json onto base.json and generate all formats # Merge specific.json onto base.json and generate all formats
hackmyresume BUILD base.json specific.json TO resume.all hackmyresume build base.json specific.json TO resume.all
``` ```
This can be useful for overriding a base (generic) resume with information from This can be useful for overriding a base (generic) resume with information from
@ -276,7 +276,7 @@ resume. Merging follows conventional [extend()][9]-style behavior and there's
no arbitrary limit to how many resumes you can merge: no arbitrary limit to how many resumes you can merge:
```bash ```bash
hackmyresume BUILD in1.json in2.json in3.json in4.json TO out.html out.doc hackmyresume build in1.json in2.json in3.json in4.json TO out.html out.doc
Reading JSON resume: in1.json Reading JSON resume: in1.json
Reading JSON resume: in2.json Reading JSON resume: in2.json
Reading JSON resume: in3.json Reading JSON resume: in3.json
@ -292,7 +292,7 @@ You can specify **multiple output targets** and HackMyResume will build them:
```bash ```bash
# Generate out1.doc, out1.pdf, and foo.txt from me.json. # Generate out1.doc, out1.pdf, and foo.txt from me.json.
hackmyresume BUILD me.json TO out1.doc out1.pdf foo.txt hackmyresume build me.json TO out1.doc out1.pdf foo.txt
``` ```
### Using .all ### Using .all
@ -302,7 +302,7 @@ formats for the given resume. For example, this...
```bash ```bash
# Generate all resume formats (HTML, PDF, DOC, TXT, etc.) # Generate all resume formats (HTML, PDF, DOC, TXT, etc.)
hackmyresume BUILD me.json TO out/resume.all hackmyresume build me.json TO out/resume.all
``` ```
..tells HackMyResume to read `me.json` and generate `out/resume.md`, ..tells HackMyResume to read `me.json` and generate `out/resume.md`,
@ -317,15 +317,15 @@ and formats with the `--pdf none` switch.*
HackMyResume takes a unique approach to PDF generation. Instead of enforcing HackMyResume takes a unique approach to PDF generation. Instead of enforcing
a specific PDF engine on users, HackMyResume will attempt to work with whatever a specific PDF engine on users, HackMyResume will attempt to work with whatever
PDF engine you have installed through the engine's command-line interface (CLI). PDF engine you have installed through the engine's command-line interface (CLI).
Currently that means one or both of... Currently that means any of...
- [wkhtmltopdf][3] - [wkhtmltopdf][3]
- [Phantom.js][2] - [Phantom.js][2]
- [WeasyPrint][11] - [WeasyPrint][11]
..with support for other engines planned in the future. But for now, **one or ..with support for other engines planned in the future. But for now, **one or
both of these engines must be installed and accessible on your PATH in order to more of these engines must be installed and accessible on your PATH in order
generate PDF resumes with HackMyResume**. That means you should be able to to generate PDF resumes with HackMyResume**. That means you should be able to
invoke either of these tools directly from your shell or terminal without error: invoke either of these tools directly from your shell or terminal without error:
```bash ```bash
@ -339,10 +339,10 @@ tell HackMyResume which flavor of PDF generation to use via the `--pdf` option
(`-p` for short): (`-p` for short):
```bash ```bash
hackmyresume BUILD resume.json TO out.all --pdf phantom hackmyresume build resume.json TO out.all --pdf phantom
hackmyresume BUILD resume.json TO out.all --pdf wkhtmltopdf hackmyresume build resume.json TO out.all --pdf wkhtmltopdf
hackmyresume BUILD resume.json TO out.all --pdf weasyprint hackmyresume build resume.json TO out.all --pdf weasyprint
hackmyresume BUILD resume.json TO out.all --pdf none hackmyresume build resume.json TO out.all --pdf none
``` ```
### Analyzing ### Analyzing
@ -351,7 +351,7 @@ HackMyResume can analyze your resume for keywords, employment gaps, and other
metrics. Run: metrics. Run:
```bash ```bash
hackmyresume ANALYZE <my-resume>.json hackmyresume analyze <my-resume>.json
``` ```
Depending on the HackMyResume version, you should see output similar to: Depending on the HackMyResume version, you should see output similar to:
@ -448,7 +448,7 @@ resumes, use the `validate` command:
```bash ```bash
# Validate myresume.json against either the FRESH or JSON Resume schema. # Validate myresume.json against either the FRESH or JSON Resume schema.
hackmyresume VALIDATE resumeA.json resumeB.json hackmyresume validate resumeA.json resumeB.json
``` ```
HackMyResume will validate each specified resume in turn: HackMyResume will validate each specified resume in turn:
@ -465,7 +465,7 @@ HackMyResume can convert between the [FRESH][fresca] and [JSON Resume][6]
formats. Just run: formats. Just run:
```bash ```bash
hackmyresume CONVERT <INPUTS> <OUTPUTS> hackmyresume convert <INPUTS> <OUTPUTS>
``` ```
where <INPUTS> is one or more resumes in FRESH or JSON Resume format, and where <INPUTS> is one or more resumes in FRESH or JSON Resume format, and
@ -479,7 +479,7 @@ You can pass options into HackMyResume via an external options or ".hackmyrc"
file with the `--options` or `-o` switch: file with the `--options` or `-o` switch:
```bash ```bash
hackmyresume BUILD resume.json -o path/to/options.json hackmyresume build resume.json -o path/to/options.json
``` ```
The options file can contain any documented HackMyResume option, including The options file can contain any documented HackMyResume option, including
@ -488,24 +488,25 @@ The options file can contain any documented HackMyResume option, including
```json ```json
{ {
"theme": "compact", "theme": "compact",
"sectionTitles": { "sectionTitles": {
"employment": "Work" "employment": "Work"
} },
// Change wkhtmltopdf margins
"wkhtmltopdf": { "wkhtmltopdf": {
"margin-top": "20mm" "margin-top": "20mm"
} }
} }
``` ```
If a particular option is specified both on the command line and in an external If an option is specified on both the command line and in an external options
options file, the explicit command-line option takes precedence. file, the command-line option wins.
```bash ```bash
# path/to/options.json specifes the POSITIVE theme # path/to/options.json specifes the POSITIVE theme
# -t parameter specifies the COMPACT theme # -t parameter specifies the COMPACT theme
# The -t parameter wins. # The -t parameter wins.
hackmyresume BUILD resume.json -o path/to/options.json -t compact hackmyresume build resume.json -o path/to/options.json -t compact
> Reading resume: resume.json > Reading resume: resume.json
> Applying COMPACT theme (7 formats) > Applying COMPACT theme (7 formats)
``` ```
@ -517,7 +518,7 @@ HTML-formatted resumes. To disable prettification, the `--no-prettify` or `-n`
flag can be used: flag can be used:
```bash ```bash
hackmyresume BUILD resume.json out.all --no-prettify hackmyresume build resume.json out.all --no-prettify
``` ```
### Silent Mode ### Silent Mode
@ -525,8 +526,8 @@ hackmyresume BUILD resume.json out.all --no-prettify
Use `-s` or `--silent` to run in silent mode: Use `-s` or `--silent` to run in silent mode:
```bash ```bash
hackmyresume BUILD resume.json -o someFile.all -s hackmyresume build resume.json -o someFile.all -s
hackmyresume BUILD resume.json -o someFile.all --silent hackmyresume build resume.json -o someFile.all --silent
``` ```
### Debug Mode ### Debug Mode
@ -535,8 +536,8 @@ Use `-d` or `--debug` to force HMR to emit a call stack when errors occur. In
the future, this option will emit detailed error logging. the future, this option will emit detailed error logging.
```bash ```bash
hackmyresume BUILD resume.json -d hackmyresume build resume.json -d
hackmyresume ANALYZE resume.json --debug hackmyresume analyze resume.json --debug
``` ```
### Disable Encoding ### Disable Encoding
@ -545,14 +546,70 @@ Use the `--no-escape` option to disable encoding in Handlebars themes. Note:
this option has no effect for non-Handlebars themes. this option has no effect for non-Handlebars themes.
```bash ```bash
hackmyresume BUILD resume.json --no-escape hackmyresume build resume.json --no-escape
``` ```
### Private Resume Fields
Have a gig, education stint, membership, or other relevant history that you'd
like to hide from *most* (e.g. public) resumes but sometimes show on others? Tag it with
`"private": true` to omit it from outbound generated resumes by default.
```json
"employment": {
"history": [
{
"employer": "Acme Real Estate"
},
{
"employer": "Area 51 Alien Research Laboratory",
"private": true
},
{
"employer": "H&R Block"
}
]
}
```
Then, when you want a copy of your resume that includes the private gig / stint
/ etc., tell HackMyResume that it's OK to emit private fields. The way you do
that is with the `--private` switch.
```bash
hackmyresume build resume.json private-resume.all --private
```
### Custom theme helpers
You can attach your own custom Handlebars helpers to a FRESH theme with the
`helpers` key of your theme's `theme.json` file.
```js
{
"title": "my-cool-theme",
// ...
"helpers": [
"../path/to/helpers/*.js",
"some-other-helper.js"
]
}
```
HackMyResume will attempt to load each path or glob and register any specified
files with [Handlebars.registerHelper][hrh], making them available to your
theme.
## Contributing ## Contributing
HackMyResume is a community-driven free and open source project under the MIT HackMyResume is a community-driven free and open source project under the MIT
License. Contributions are encouraged and we respond to all PRs and issues, License. Contributions are encouraged and we respond to all PRs and issues in
usually within 24 hours. See [CONTRIBUTING.md][contribute] for details. time. See [CONTRIBUTING.md][contribute] for details.
## License ## License
@ -581,3 +638,4 @@ MIT. Go crazy. See [LICENSE.md][1] for details.
[contribute]: CONTRIBUTING.md [contribute]: CONTRIBUTING.md
[fresh-themes]: https://github.com/fluentdesk/fresh-themes [fresh-themes]: https://github.com/fluentdesk/fresh-themes
[jrst]: https://www.npmjs.com/search?q=jsonresume-theme [jrst]: https://www.npmjs.com/search?q=jsonresume-theme
[hrh]: http://handlebarsjs.com/reference.html#base-registerHelper