/json_resume

Generates pretty HTML, LaTeX, markdown, with biodata feeded as input in JSON

Primary LanguageRubyMIT LicenseMIT

JsonResume

JsonResume creates pretty versions of resume from a single JSON input file. Output formats are specifically customized to modern resume templates. Also, there are a ton of customizations to the templates possible, to make your own version of resume created easily and super quickly.

Installation

$ gem install json_resume

Usage

Create a sample JSON input file to start

$ json_resume sample

A sample prateek_cv.json is generated in the current working directory(cwd).

Modify it as per the needs, and remove or keep rest of the fields empty.

Conversion

  • Syntax
    json_resume convert [--template=/path/to/custom/template] 
                        [--out=html|html_pdf|tex|tex_pdf|md]
                        [--locale=es|en|pt]
                        [--theme=default|classic] <json_input>

    <json_input> can be /path/to/json OR "{'json':'string'}" OR http://raw.json
  • Default (HTML) version
    $ json_resume convert prateek_cv.json

A directory resume/ will be generated in cwd, which can be put hosted on /var/www or on github pages. (Sample)

  • HTML* version

html version without icons can be generated by giving icons as false : (Sample)

     "settings": {
         "icons" : false
    },
  • PDF version from HTML (Sample)
    $ json_resume convert --out=html_pdf prateek_cv.json
    $ json_resume convert --out=tex prateek_cv.json
  • LaTex also includes a classic theme. Usage: --theme=classic.
  • PDF version from LaTeX (Sample)
    $ json_resume convert --out=tex_pdf prateek_cv.json
    $ json_resume convert --out=md prateek_cv.json

i18n Support

Support for en, es and pt right now. Pull requests for others are welcome.

    $ json_resume convert --locale=es prateek_cv.json

Markup Language

JSON is parsed as per the markdown standards. This implies all this works-

FAQs

  • I get the following error during convert :
Error:
Generating the html type...
/Users/myMac/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `encode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError)
        from /Users/abhiramk/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `initialize'
        from /Users/abhiramk/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/gems/2.0.0/gems/json-1.8.1/lib/json/common.rb:155:in `new'

Looks like locale problem. Add the following to the environment : export LC_CTYPE=en_US.UTF-8 ( Thanks to @viswamitra )

Customization

Output is creating using mustache templates. They are located in templates/. These can be modified and given as --template=/path/to/template to convert. For example, the tex template was customized to produced this new format.

Changelog

v1.0

  • Glyphicons are now replaced by Font-Awesome icons.
  • HTML version has a responsive design.
  • Supports i18n. (Supporting es, pt right now).
  • New classic theme for latex format.

Contributing

Many awesome formats can be created by writing new mustache templates. We ❤️ Pull Requests.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request