包详细信息

hackmyresume

hacksalot388MIT1.9.0-beta

Generate polished résumés and CVs in HTML, Markdown, LaTeX, MS Word, PDF, plain text, JSON, XML, YAML, smoke signal, and carrier pigeon.

resume, CV, portfolio, employment

自述文件

HackMyResume

Latest release Build status (MASTER) Build status (DEV) Join the chat at https://gitter.im/hacksalot/HackMyResume

Create polished résumés and CVs in multiple formats from your command line or shell. Author in clean Markdown and JSON, export to Word, HTML, PDF, LaTeX, plain text, and other arbitrary formats. Fight the power, save trees. Compatible with FRESH and JRS resumes.

HackMyResume is a dev-friendly, local-only Swiss Army knife for resumes and CVs. Use it to:

  1. Generate HTML, Markdown, LaTeX, MS Word, PDF, plain text, JSON, XML, YAML, print, smoke signal, carrier pigeon, and other arbitrary-format resumes and CVs, from a single source of truth—without violating DRY.
  2. Analyze your resume for keyword density, gaps/overlaps, and other metrics.
  3. Convert resumes between FRESH and JSON Resume formats.
  4. Validate resumes against either format.

HackMyResume is built with Node.js and runs on recent versions of OS X, Linux, or Windows. View the FAQ.

Features

  • OS X, Linux, and Windows.
  • Choose from dozens of FRESH or JSON Resume themes.
  • Private, local-only resume authoring and analysis.
  • Analyze your resume for keywords, gaps, and other metrics.
  • Store your resume data as a durable, versionable JSON or YAML document.
  • Generate polished resumes in multiple formats without violating DRY.
  • Output to HTML, Markdown, LaTeX, PDF, MS Word, JSON, YAML, plain text, or XML.
  • Validate resumes against the FRESH or JSON Resume schema.
  • Support for multiple input and output resumes.
  • Convert between FRESH and JSON Resume resumes.
  • Use from your command line or desktop.
  • Free and open-source through the MIT license.
  • Updated daily / weekly. Contributions are welcome.

Install

Install the latest stable version of HackMyResume with NPM:

[sudo] npm install hackmyresume -g

Alternately, install the latest bleeding-edge version (updated daily):

[sudo] npm install hacksalot/hackmyresume#dev -g

Installing PDF Support (optional)

HackMyResume tries not to impose a specific PDF engine requirement on the user, but will instead work with whatever PDF engines you have installed.

Currently, HackMyResume's PDF generation requires one of Phantom.js, wkhtmltopdf, or WeasyPrint to be installed on your system and the 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 formats, skip this step.

Installing Themes

HackMyResume supports both FRESH and JSON Resume-style résumé themes.

  • FRESH themes currently come preinstalled with HackMyResume.
  • JSON Resume themes can be installed from NPM, GitHub, or manually.

To install a JSON Resume theme, just cd to the folder where you want to store your themes and run one of:

# Install with NPM
npm install jsonresume-theme-[theme-name]

# Install with GitHub
git clone https://github.com/[user-or-org]/[repo-name]

Then when you're ready to generate your resume, just reference the location of the theme folder as you installed it:

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 package.json or other NPM/Node infrastructure.

Getting Started

To use HackMyResume you'll need to create a valid resume in either FRESH or JSON Resume format. Then you can start using the command line tool. There are five basic commands you should be aware of:

  • build generates resumes in HTML, Word, Markdown, PDF, and other formats. Use it when you need to submit, upload, print, or email resumes in specific formats.

      # hackmyresume build <INPUTS...> TO <OUTPUTS...> [-t THEME]
      hackmyresume build resume.json TO out/resume.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.

      # hackmyresume new <OUTPUTS...> [-f <FORMAT>]
      hackmyresume new resume.json
      hackmyresume new resume.json -f fresh
      hackmyresume new r1.json r2.json -f jrs
  • analyze inspects your resume for keywords, duration, and other metrics.

      # hackmyresume analyze <INPUTS...>
      hackmyresume analyze resume.json
      hackmyresume analyze r1.json r2.json
  • convert converts your source resume between FRESH and JSON Resume formats. Use it to convert between the two formats to take advantage of tools and services.

      # hackmyresume convert <INPUTS...> TO <OUTPUTS...>
      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
  • 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.

      # hackmyresume validate <INPUTS...>
      hackmyresume validate resume.json
      hackmyresume validate r1.json r2.json r3.json
  • peek echoes your resume or any field, property, or object path on your resume to standard output.

      # hackmyresume peek <INPUTS...> [OBJECT-PATH]
      hackmyresume peek rez.json # Echo the whole resume
      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 rez2.json info.brief # Compare value

Supported Output Formats

HackMyResume supports these output formats:

Output Format Ext Notes
HTML .html A standard HTML 5 + CSS resume format that can be viewed in a browser, deployed to a website, etc.
Markdown .md A structured Markdown document that can be used as-is or used to generate HTML.
LaTeX .tex A structured LaTeX document (or collection of documents) that can be processed with pdflatex, xelatex, and similar tools.
MS Word .doc A Microsoft Word office document (XML-driven; WordProcessingML).
Adobe Acrobat (PDF) .pdf A binary PDF document driven by an HTML theme (through wkhtmltopdf).
plain text .txt A formatted plain text document appropriate for emails or copy-paste.
JSON .json A JSON representation of the resume.
YAML .yml A YAML representation of the resume.
RTF .rtf Forthcoming.
Textile .textile Forthcoming.
image .png, .bmp Forthcoming.

Use

Assuming you've got a JSON-formatted resume handy, generating resumes in different formats and combinations is easy. Just run:

hackmyresume build <inputs> to <outputs> [-t theme].

Where <INPUTS> is one or more .json resume files, separated by spaces; <OUTPUTS> is one or more destination resumes, and <THEME> is the desired theme (default to Modern). For example:

# Generate all resume formats (HTML, PDF, DOC, TXT, YML, etc.)
hackmyresume build resume.json TO out/resume.all -t modern

# Generate a specific resume format
hackmyresume build resume.json TO out/resume.html
hackmyresume build resume.json TO out/resume.pdf
hackmyresume build resume.json TO out/resume.md
hackmyresume build resume.json TO out/resume.doc
hackmyresume build resume.json TO out/resume.json
hackmyresume build resume.json TO out/resume.txt
hackmyresume build resume.json TO out/resume.yml

# Specify 2 inputs and 3 outputs
hackmyresume build in1.json in2.json TO out.html out.doc out.pdf

You should see something to the effect of:

*** HackMyResume v1.4.0 ***
Reading JSON resume: foo/resume.json
Applying MODERN Theme (7 formats)
Generating HTML resume: out/resume.html
Generating TXT resume: out/resume.txt
Generating DOC resume: out/resume.doc
Generating PDF resume: out/resume.pdf
Generating JSON resume: out/resume.json
Generating MARKDOWN resume: out/resume.md
Generating YAML resume: out/resume.yml

Advanced

Applying a theme

HackMyResume can work with any FRESH or JSON Resume theme (the latter must be installed first). To specify a theme when generating your resume, use the -t or --theme parameter:

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 FRESH or JSON Resume theme folder:

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 node_modules/jsonresume-theme-classy

FRESH themes are currently pre-installed with HackMyResume. JSON Resume themes can be installed prior to use:

# Install a JSON Resume theme into a local node_modules subfolder:
npm install jsonresume-theme-[name]
# Use it with HackMyResume
hackmyresume build resume.json -t node_modules/jsonresume-theme-[name]

As of v1.6.0, available predefined FRESH themes are positive, modern, compact, minimist, and hello-world. For a list of JSON Resume themes, check the NPM Registry.

Merging resumes

You can merge multiple resumes together by specifying them in order from most generic to most specific:

# Merge specific.json onto base.json and generate all formats
hackmyresume build base.json specific.json TO resume.all

This can be useful for overriding a base (generic) resume with information from a specific (targeted) resume. For example, you might override your generic catch-all "software developer" resume with specific details from your targeted "game developer" resume, or combine two partial resumes into a "complete" resume. Merging follows conventional extend()-style behavior and there's no arbitrary limit to how many resumes you can merge:

hackmyresume build in1.json in2.json in3.json in4.json TO out.html out.doc
Reading JSON resume: in1.json
Reading JSON resume: in2.json
Reading JSON resume: in3.json
Reading JSON resume: in4.json
Merging in4.json onto in3.json onto in2.json onto in1.json
Generating HTML resume: out.html
Generating WORD resume: out.doc

Multiple targets

You can specify multiple output targets and HackMyResume will build them:

# Generate out1.doc, out1.pdf, and foo.txt from me.json.
hackmyresume build me.json TO out1.doc out1.pdf foo.txt

Using .all

The special .all extension tells HackMyResume to generate all supported output formats for the given resume. For example, this...

# Generate all resume formats (HTML, PDF, DOC, TXT, etc.)
hackmyresume build me.json TO out/resume.all

..tells HackMyResume to read me.json and generate out/resume.md, out/resume.doc, out/resume.html, out/resume.txt, out/resume.pdf, and out/resume.json.

Building PDFs

Users who don't care about PDFs can turn off PDF generation across all themes and formats with the --pdf none switch.

HackMyResume takes a unique approach to PDF generation. Instead of enforcing 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). Currently that means any of...

..with support for other engines planned in the future. But for now, one or more of these engines must be installed and accessible on your PATH in order 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:

wkhtmltopdf input.html output.pdf
phantomjs script.js input.html output.pdf
weasyprint input.html output.pdf

Assuming you've installed one or both of these engines on your system, you can tell HackMyResume which flavor of PDF generation to use via the --pdf option (-p for short):

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 weasyprint
hackmyresume build resume.json TO out.all --pdf none

Analyzing

HackMyResume can analyze your resume for keywords, employment gaps, and other metrics. Run:

hackmyresume analyze <my-resume>.json

Depending on the HackMyResume version, you should see output similar to:

*** HackMyResume v1.6.0 ***
Reading resume: resume.json
Analyzing FRESH resume: resume.json

SECTIONS (10):

        employment:    12
         education:     2
           service:     1
            skills:     8
           writing:     1
       recognition:     0
            social:     4
         interests:     2
        references:     1
         languages:     2

COVERAGE (61.1%):

        Total Days:  6034
          Employed:  3688
              Gaps:     8  [31, 1065, 273, 153, 671, 61, 61, 31]
          Overlaps:     1  [243]

KEYWORDS (61):

           Node.js:     6 mentions
        JavaScript:     9 mentions
        SQL Server:     3 mentions
     Visual Studio:     6 mentions
           Web API:     1 mentions
   N-tier / 3-tier:     1 mentions
            HTML 5:     1 mentions
        JavaScript:     6 mentions
               CSS:     2 mentions
Sass / LESS / SCSS:     1 mentions
              LAMP:     3 mentions
              WISC:     1 mentions
              HTTP:    21 mentions
              JSON:     1 mentions
               XML:     2 mentions
              REST:     1 mentions
        WebSockets:     2 mentions
       Backbone.js:     3 mentions
        Angular.js:     1 mentions
           Node.js:     4 mentions
               NPM:     1 mentions
             Bower:     1 mentions
             Grunt:     2 mentions
              Gulp:     1 mentions
            jQuery:     2 mentions
         Bootstrap:     3 mentions
     Underscore.js:     1 mentions
         PhantomJS:     1 mentions
      CoffeeScript:     1 mentions
            Python:    11 mentions
              Perl:     4 mentions
               PHP:     7 mentions
             MySQL:    12 mentions
        PostgreSQL:     4 mentions
             NoSQL:     2 mentions
            Apache:     2 mentions
               AWS:     2 mentions
               EC2:     2 mentions
               RDS:     3 mentions
                S3:     1 mentions
             Azure:     1 mentions
         Rackspace:     1 mentions
               C++:    23 mentions
            C++ 11:     1 mentions
             Boost:     1 mentions
             Xcode:     2 mentions
               gcc:     1 mentions
             OO&AD:     1 mentions
              .NET:    20 mentions
           Unity 5:     2 mentions
              Mono:     3 mentions
       MonoDevelop:     1 mentions
           Xamarin:     1 mentions
             TOTAL:   180 mentions

Validating

HackMyResume can also validate your resumes against either the FRESH / FRESCA or JSON Resume formats. To validate one or more existing resumes, use the validate command:

# Validate myresume.json against either the FRESH or JSON Resume schema.
hackmyresume validate resumeA.json resumeB.json

HackMyResume will validate each specified resume in turn:

*** HackMyResume v1.6.0 ***
Validating JSON resume: resumeA.json (INVALID)
Validating JSON resume: resumeB.json (VALID)

Converting

HackMyResume can convert between the FRESH and JSON Resume formats. Just run:

hackmyresume convert <INPUTS> <OUTPUTS>

where <INPUTS> is one or more resumes in FRESH or JSON Resume format, and

<OUTPUTS> is a corresponding list of output file names. HackMyResume will autodetect the format (FRESH or JRS) of each input resume and convert it to the other format (JRS or FRESH).

File-based Options

You can pass options into HackMyResume via an external options or ".hackmyrc" file with the --options or -o switch:

hackmyresume build resume.json -o path/to/options.json

The options file can contain any documented HackMyResume option, including theme, silent, debug, pdf, css, and other settings.

{
  "theme": "compact",

  "sectionTitles": {
    "employment": "Work"
  },

  "wkhtmltopdf": {
    "margin-top": "20mm"
  }
}

If an option is specified on both the command line and in an external options file, the command-line option wins.

# path/to/options.json specifes the POSITIVE theme
# -t parameter specifies the COMPACT theme
# The -t parameter wins.
hackmyresume build resume.json -o path/to/options.json -t compact
> Reading resume: resume.json
> Applying COMPACT theme (7 formats)

Prettifying

HackMyResume applies js-beautify-style HTML prettification by default to HTML-formatted resumes. To disable prettification, the --no-prettify or -n flag can be used:

hackmyresume build resume.json out.all --no-prettify

Silent Mode

Use -s or --silent to run in silent mode:

hackmyresume build resume.json -o someFile.all -s
hackmyresume build resume.json -o someFile.all --silent

Debug Mode

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.

hackmyresume build resume.json -d
hackmyresume analyze resume.json --debug

Disable Encoding

Use the --no-escape option to disable encoding in Handlebars themes. Note: this option has no effect for non-Handlebars themes.

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.

"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.

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.

{
  "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, making them available to your theme.

Contributing

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 in time. See CONTRIBUTING.md for details.

License

MIT. Go crazy. See LICENSE.md for details.

更新日志

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.

      "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 project as a repository for simple, test-only resume themes in the FRESH format.

Changed

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.

  • 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 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

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

v1.7.1

Changed

  • Caffeinate. CoffeeScript now used throughout HackMyResume and 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 project. Shouldn't affect normal use.

v1.6.0

Major Improvements

  • Better consistency and coverage for all FRESH resumes and themes (#45).

  • 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).

  • 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 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 that ship with HackMyResume. It can be installed separately from NPM:

    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).

  • Incomplete education details will now appear on generated resumes (#65).

  • Missing employment end date being interpreted as "employment ends today" (#84).

  • Merging multiple source resumes during BUILD sometimes fails.

  • Document --pdf flag in README (#111).

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.
  • Additional README notes.

v1.4.1

Added

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 (<style></style> vs <link>). 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 <blah>.
  • 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:

      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:

       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.