CHANGELOG ========= ## v1.9.0-beta *Welcome to the first new version of HackMyResume in over a year. The purpose of this release is to gather feature enhancements and bug fixes collected over the past 18 months as we reorganize, rebrand, and prepare for the 2.0 release.* ### 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) (#158). - Help system has been updated with a `HELP` command and dedicated help pages for each command. - 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 - Dropped support for Node 4 and 5. HackMyResume officially runs on Node 6+. - The FRESCA project has been renamed to [fresh-resume-schema][fresca]. FRESCA is still the nickname. - The HackMyResume web page 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 (#162). - Fixed an issue where generating new JRS resumes would cause a `null` or `undefined` error (#165). - Fixed an issue preventing mixed-case themes from being loaded (#172). - Fixed an issue requiring JSON Resume themes contain `json-resume-theme` in the theme path (#173). - Fixed an issue that would cause strange `@@@@` characters to appear in generated resumes (#207, #168, #198). - Fixed an issue that would cause resume generation to hang after a JSON Resume themed resume was generated (#182). - Fixed an issue that would cause nothing to be generated for Markdown (.md) formats (#179). - Fixed an issue that would prevent a JRS resume from being converted to FRESH via the `convert` command (#180). - Fixed an issue that would cause broken styling for JSON Resume themes (#155). ### Internal - Tests: fixed resume duration tests (#181). - Style: move to ## v1.8.0 ### Added - Updated `Awesome` theme to latest version of [Awesome-CV][acv]. - Introduced new theme helpers: `pad`, `date`. ### Fixed - Fixed an issue where the `Awesome` theme wouldn't correctly generate LaTeX outputs (#138). - Emit a line number for syntax errors around embedded newlines in JSON strings (#137). - Fix several PDF / PNG generation errors (#132, others). - Display a more helpful error message when attempting to generate a PDF or PNG on a machine where PhantomJS and/or wkhtmltopdf are either not installed or not path-accessible. - Fixed an issue that would cause long-running PDF/PNG generation to fail in certain environments. - Fixed an issue involving an unhelpful spawn-related exception (#136). ### Internal - JSHint will no longer gripe at the use of `== null` and `!= null` in CoffeeScript transpilation. - Introduced [template-friendly Awesome-CV fork][awefork] to isolate template expansion logic & provide better durability for HackMyResume's `awesome` theme. - Fixed a couple temporary regressions (#139, #140) on the dev branch. - Additional tests. - Minor breaking HackMyResume API changes. ## v1.7.4 ### Added - [Build instructions](https://github.com/hacksalot/HackMyResume/blob/master/BUILDING.md). ### Changed - More precise date handling. ### Fixed - Issue with incomplete PDF generation (#127). - Issue with building JSON Resume themes (#128). - Issue with generating `.json` output format by itself (#97). ## v1.7.3 ### Fixed - Issue with generated PDFs being chopped off and displaying a mysterious sequence of numbers of unknown and possibly alien origin (#127). - Unsightly border on Modern:PDF. - Modern|Positive:PDF formats now correctly reference their PDF-specific CSS files. - `Incorrect helper use` warning in Positive:DOC. ## v1.7.2 ### Changed - Interim release supporting FluentCV Desktop. ### Internal - Moved [HackMyCore](https://github.com/hacksalot/HackMyCore) dependency to submodule. ## v1.7.1 ### Changed - Caffeinate. CoffeeScript now used throughout [HackMyResume](https://github.com/hacksalot/HackMyResume) and [HackMyCore](https://github.com/hacksalot/HackMyCore); generated JavaScript lives in `/dist`. ### Fixed - Issue with generating a single PDF with the `.pdf` extension (#99). ## v1.7.0 ### Changed - [Internal] Relocated HMR processing code to the [HackMyCore](https://github.com/hacksalot/HackMyCore) project. Shouldn't affect normal use. ## v1.6.0 ### Major Improvements - Better consistency and coverage for all FRESH resumes and themes ([#45][i45]). - Initial support for overridable fonts in FRESH themes. Like a particular theme, but want to change the typography? The specific fonts used by a theme can now be overridden by the user. (FRESH themes only). - New resume sections! Support for `projects` and `affiliation` resume sections for technical and creative projects and memberships / clubs / associations, respectively ([#92][i92]). - New command! `PEEK` at any arbitrary field or entry on your `.json` resume. ### Added - Improved handling of start and end dates on `employment`, `projects`, `education`, and other sections with start/end dates. - Support for an `.ignore` property on any FRESH or JSON Resume section or field. Ignored properties will be treated by HackMyResume as if they weren't present. - Emit extended status and error info with the `--debug` or `-d` switch. - The `-o` or `--options` switch can now handle either the path to a **JSON settings file** or **raw JSON/JavaScript**. Since the JSON double quote syntax is a bit cumbersome from the command line, HackMyResume accepts regular JavaScript object literal syntax: hackmyresume build resume.json -o "{ theme: 'compact', silent: 'true' }" - Ability to disable sorting of resume sections (employments, projects, etc.) with the `--no-sort` option. HMR will respect the order of items as they appear in your resume `.json` file. - Improvements to the starter resume emitted by `hackmyresume new`. - Theme Authoring: Annotated the HTML and MS Word (XML) formats of the Modern theme for FRESH theme authors. - Theme Authoring: Support for templatized CSS files in FRESH themes. CSS files are now expanded via Handlebars or Underscore prior to copying to the destination. - Added CHANGELOG.md (this file). ### Changed - Rewrote the HackMyResume man/help page. - Minor incremental updates to the [FRESCA][fresca] schema. - PDF generation now uses asynchronous `spawn()` which has better compatibility with old or boutique versions of Node.js. - Refactored colors in HackMyResume output. Errors will now display as red, warnings as yellow, successful operations as green, and informational messages as cyan. - Theme messages and usage tips will no longer display during resume generation by default. Use the `--tips` option to view them. - The `--no-tips` option (default: false) has been replaced with the `--tips` option, also defaulting to false. - Removed the `hello-world` theme from the [prebuilt themes][themes] that ship with HackMyResume. It can be installed separately from NPM: ```bash npm install fresh-theme-hello-world hackmyresume resume.json -t node_modules/fresh-theme-hello-world ``` - sd ### Fixed - PDF generation issues on older versions of Node. - Stack traces not being emitted correctly. - Missing `speaking` section will now appear on generated resumes ([#101][i101]). - Incomplete `education` details will now appear on generated resumes ([#65][i65]). - Missing employment end date being interpreted as "employment ends today" ([#84][i84]). - Merging multiple source resumes during `BUILD` sometimes fails. - Document `--pdf` flag in README ([#111][i111]). ### Internal - Logging messages have been moved out of core HackMyResume code ahead of localization support. - All HackMyResume console output is described in `msg.yml`. - Relaxed pure JavaScript requirement. CoffeeScript will now start appearing in HackMyResume and FluentCV sources! - Additional tests. ## v1.5.2 ### Fixed - Tweak stack trace under `--debug`. ## v1.5.1 ### Added - Preliminary support for `-d` or `--debug` flag. Forces HackMyResume to emit a stack trace under error conditions. ## v1.5.0 ### Added - HackMyResume now supports **CLI-based generation of PDF formats across multiple engines (Phantom, wkhtmltopdf, etc)**. Instead of talking to these engines over a programmatic API, as in prior versions, HackMyResume 1.5+ speaks to them over the same command-line interface (CLI) you'd use if you were using these tools directly. - HackMyResume will now (attempt to) **generate a PDF output for JSON Resume themes** (in addition to HTML). - Minor README and FAQ additions. ### Changed - **Cleaner, quicker installs**. Installing HackMyResume with `npm install hackmyresume -g` will no longer trigger a lengthy, potentially error-prone install for Phantom.js and/or wkhtmltopdf for PDF support. Instead, users can install these engines externally and HMR will use them when present. - Minor error handling improvements. ### Fixed - Fixed an error with generating specific formats with the `BUILD` command (#97). - Fixed numerous latent/undocumented bugs and glitches. ## v1.4.2 ### Added - Introduced [FAQ](https://github.com/hacksalot/HackMyResume/blob/master/FAQ.md). - Additional README notes. ## v1.4.1 ### Added - `hackmyresume new` now generates a [valid starter resume with sample data](https://github.com/fluentdesk/fresh-resume-starter). ### Fixed - Fixed warning message when `hackmyresume new` is run without a filename. ## v1.4.0 ### Added - **"Projects" support**: FRESH resumes and themes can now store and display open source, commercial, private, personal, and creative projects. - **New command: ANALYZE**. Inspect your resume for gaps, keyword counts, and other metrics. (Experimental.) - **Side-by-side PDF generation** with Phantom and wkhtmltopdf. Use the `--pdf` or `-p` flag to pick between `phantom` and `wkhtmltopdf` generation. - **Disable PDF generation** with the `--pdf none` switch. - **Inherit formats between themes**. Themes can now inherit formats (Word, HTML, .txt, etc.) from other themes. (FRESH themes only.) - **Rename resume sections** to different languages or wordings. - **Specify complex options via external file**. Use with the `-o` or `--opts` option. - **Disable colors** with the `--no-color` flag. - **Theme messages and usage tips** instructions will now appear in the default HackMyResume output for the `build` command. Run `hackmyresume build resume.json -t awesome` for an example. Turn off with the `--no-tips` flag. - **Treat validation errors as warnings** with the `--assert` switch (VALIDATE command only). ### Fixed - Fixed a minor glitch in the FRESCA schema. - Fixed encoding issues in the `Highlights` section of certain resumes. - Fix behavior of `-s` and `--silent` flags. ### Changed - PDF generation now defaults to Phantom for all platforms, with `wkhtmltopdf` accessible with `--pdf wkhtmltopdf`. - Resumes are now validated, by default, prior to generation. This behavior can be disabled with the `--novalidate` or `--force` switch. - Syntax errors in source FRESH and JSON Resumes are now captured for all commands. - Minor updates to README. - Most themes now inherit Markdown and Plain Text formats from the **Basis** theme. ### Internal - Switched from color to chalk. - Command invocations now handled through commander.js. - Improved FRESH theme infrastructure (more partials, more DRY). ## v1.3.1 ### Added - Add additional Travis badges. ### Fixed - Fix extraneous console log output when generating a FRESH theme to MS Word. - Fix Travis tests on `dev`. ## v1.3.0 ### Added - **Local generation of JSON Resume themes**. To use a JSON Resume theme, first install it with `npm install jsonresume-theme-[blah]` (most JSON Resume themes are on NPM). Then pass it into HackMyResume via the `-t` parameter: `hackmyresume BUILD resume.json TO out/somefile.all -t node_modules/jsonresume-theme-classy` - **Better Markdown support.** HackMyResume will start flowing basic Markdown styles to JSON Resume (HTML) themes. FRESH's existing Markdown support has also been improved. - **.PNG output formats** will start appearing in themes that declare an HTML output. - **Tweak CSS embedding / linking via the --css option** (`` vs ``). Only works for HTML (or HTML-driven) formats of FRESH themes. Use `--css=link` to link in CSS assets and `--css=embed` to embed the styles in the HTML document. For example `hackmyresume BUILD resume.json TO out/resume.all --css=link`. - **Improved Handlebars/Underscore helper support** for FRESH themes. Handlebars themes can access helpers via `{{helperName}}`. Underscore themes can access helpers via the `h` object. ### Changed - **Distinguish between validation errors and syntax errors** when validating a FRESH or JRS resume with `hackmyresume validate `. - **Emit line and column info** for syntax errors during validation of FRESH and JRS resumes. - **FRESH themes now embed CSS into HTML formats by default** so that the HTML resume output doesn't have an external CSS file dependency by default. Users can specify normal linked stylesheets by setting `--css=link`. - **Renamed fluent-themes repo to fresh-themes** in keeping with the other parts of the project. ### Fixed - Fix various encoding errors in MS Word outputs. - Fix assorted FRESH-to-JRS and JRS-to-FRESH conversion glitches. - Fix error when running HMR with no parameters. - Other minor fixes. ## v1.3.0-beta - Numerous changes supporting v1.3.0. ## v1.2.2 ### Fixed - Various in-passing fixes. ## v1.2.1 ### Fixed - Fix `require('FRESCA')` error. - Fix `.history` and `.map` errors on loading incomplete or empty JRS resumes. ### Added - Better test coverage of incomplete/empty resumes. ## v1.2.0 ### Fixed - Fixed the `new` command: Generate a new FRESH-format resume with `hackmyresume new resume.json` or a new JSON Resume with `hackmyresume new resume.json -f jrs`. ### Added - Introduced CLI tests. ## v1.1.0 ### Fixed - MS Word formats: Fixed skill coloring/level bug. ### Changed - Make the `TO` keyword optional. If no `TO` keyword is specified (for the `build` and `convert` commands), HMR will assume the last file passed in is the desired output file. So these are equivalent: ```shell hackmyresume BUILD resume.json TO out/resume.all hackmyresume BUILD resume.json out/resume.all ``` `TO` only needs to be included if you have multipled output files: ```shell hackmyresume BUILD resume.json TO out1.doc out2.html out3.tex ``` ## v1.0.1 ### Fixed - Correctly generate MS Word hyperlinks from Markdown source data. ## v1.0.0 - Initial public 1.0 release. [i45]: https://github.com/hacksalot/HackMyResume/issues/45 [i65]: https://github.com/hacksalot/HackMyResume/issues/65 [i84]: https://github.com/hacksalot/HackMyResume/issues/84 [i92]: https://github.com/hacksalot/HackMyResume/issues/92 [i101]: https://github.com/hacksalot/HackMyResume/issues/101 [i111]: https://github.com/hacksalot/HackMyResume/issues/111 [fresca]: https://github.com/fresh-standard/fresh-resume-schema [themes]: https://github.com/fresh-standard/fresh-themes [awefork]: https://github.com/fluentdesk/Awesome-CV [acv]: https://github.com/posquit0/Awesome-CV [ftt]: https://github.com/fresh-standard/fresh-test-themes