Project

resulang

0.0
No commit activity in last 3 years
No release in over 3 years
Resulang is a simple tool to help create html resumes.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.1.4
~> 0.13.0
~> 12.3.3
~> 3.4.0

Runtime

~> 2.1.4
~> 0.19.1
 Project Readme

Resulang

Resulang is a simple tool for creating html resumes. It can also be used to create other kinds of documents with structured data. It works by separating the data from the html template, which means the data could theoretically be used to generate other kinds of output in the future, not just html.

TODO: write tests

Installation

$ gem install resulang

Usage

Once resulang is installed, create a new resulang app with:

bundle exec resulang new my_resume --sections one two three

This will generate the basic structure of a resulang app as well as a few key files:

  • my_resume/resume.yaml

    This is where you put your resume data.

  • my_resume/templates/resume.html.erb

    This is where you write your resume html which has access to the data in my_resume/resume.yaml

A resume is broken into named sections. For example:

  personal:
    name: Peter Brindisi
    phone: 555-555-5555
    email: superduperprivate@example.com
    github: https://github.com/npj

  background:
    description: >-
      I am a guy that does things. Things are awesome and they are also cool.

  skills:
    things: ['foo', 'bar', 'baz', 'qux']

  hobbies:
    points:
      - Reading about Haskell
      - Evangelizing monads
      - Making beer

A template for the above data might look like this:

<html>
  <head>
    <title><%= sections.personal.name %></title>
    <link rel="stylesheet" href="css/style.css" />
  </head>
  <body>
    <div class="section">
      <%= render_section(:personal) %>
    </div>
    <div class="section">
      <%= render_section(:background) %>
    </div>
    <div class="section">
      <%= render_section(:skills) %>
    </div>
    <div class="section">
      <%= render_section(:hobbies) %>
    </div>
  </body>
</html>

render_section(:section_name) looks for a template partial named my_resume/templates/_section_name.html.erb. A partial has direct access to the data within the data section. For example, the partial for the "personal" and "hobbies" sections might look like:

<!-- my_resume/templates/_personal.html.erb -->
<div>Name: <%= name %></div>
<div>Phone: <%= phone %></div>
<div>Email: <%= email %></div>
<div><a href="<%= github %>" target="_blank"><%= github %></a></div>
<!-- my_resume/templates/_hobbies.html.erb -->
<ul>
  <% points.each do |point| %>
    <li><%= point %></li>
  <% end %>
</ul>

To easily view changes to the resume as you make them, you can run a local server with:

bundle exec resulang server

You can put assets like images and stylesheets in directories off my_resume, like css and images or assets/css and assets/images. These can be referenced in resume.html.erb.

To generate a static html page, run:

bundle exec resulang make

This will output ./resume.html

Please see the examples directory of this project for a working example.