Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/avillafiorita/resme
https://github.com/avillafiorita/resme
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/avillafiorita/resme
- Owner: avillafiorita
- License: mit
- Created: 2017-08-23T10:55:16.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2023-05-31T19:49:48.000Z (over 1 year ago)
- Last Synced: 2024-10-02T07:47:38.006Z (about 1 month ago)
- Language: HTML
- Size: 2.81 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.org
- Changelog: CHANGELOG.org
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-starred - avillafiorita/resme - (others)
README
#+TITLE: RESME - A Resume Generator
#+AUTHOR: Adolfo Villafiorita
#+DATE: <2020-07-14 Tue>
#+STARTUP: showallKeep your resume in YAML and output it in various formats, including
Org Mode, Markdown, JSON, and the Europass XML format.The rendering engine is based on ERB. This simplifies the creation of
new output formats (and extending/modifying the YML structure to one's
needs).** Installation
:PROPERTIES:
:CUSTOM_ID: installation
:END:Add this line to your application's Gemfile:
#+begin_example ruby
gem 'resme'
#+end_exampleAnd then execute:
#+begin_example sh
bundle
#+end_exampleOr install it yourself as:
#+begin_example sh
gem install resme
#+END_EXAMPLE** Usage
:PROPERTIES:
:CUSTOM_ID: usage
:END:Start with:
#+begin_example sh
resme init
#+end_examplewhich generates a YML template for your resume in the current directory.
Comments in the YML file should help you fill the various entries.
Notice that most entries are optional and you can remove sections which
are not relevant for your resume.You can now generate a resume using one of the existing formats:
#+begin_example sh
resme --to org resume.yml
#+end_exampleSupported formats include:
- =org=: Org Mode format
- =md=: Markdown format
- =europass=: Europass format
(http://interop.europass.cedefop.europa.eu/web-services/remote-upload/)
- =json=: JSON format (https://jsonresume.org/)If you are not satisfied with the provided templates, you can write
your own (see below).Notice that you can specify more than one YML file in input. This allows you to
store data about your resume in different files, if you like to do so
(e.g., work experiences could be in one file and talks in another).
The YML files are merged before processing them.Full syntax:
#+begin_src shell :results raw output :wrap example
resme help
#+end_src#+RESULTS:
#+begin_example
resme command [options] [args]
Available commands:
check resume.yml # Check syntax of resume.yml
list resume.yml # List main sections in resume.yml
version # print version information
view --template FORMAT # Print template used for format
generate [options] resume.yml ... # output resume
console # enter the console
man # print resme manual page
help [command] # print command usage
init [options] # generate an empty resume.yml file
#+end_example** Checking validity
:PROPERTIES:
:CUSTOM_ID: checking-validity
:END:Use the =check= command to verify whether your YAML file conforms with
the intended syntax.#+begin_example sh
resme check resume.yaml
#+end_example** Dates in the resume
:PROPERTIES:
:CUSTOM_ID: dates-in-the-resume
:END:Enter dates in the resume in one of the following formats:
- Any format accepted by Ruby for a full date (year, month, day)
- YYYY-MM-DD
- YYYY-MM
- YYYYThe third and the forth format allows you to enter "partial" dates
(e.g., when the month or the day have been forgotten or are irrelevant).** Creating your own templates
:PROPERTIES:
:CUSTOM_ID: creating-your-own-templates
:END:The resumes are generated from the YML matter using ERB templates. The
provided output formats should support different back ends. Org Mode
and Markdown, for instance, easily allow for generation of PDFs, HTML,
and ODT, to mention a few.However, if you want, you can define your own templates.
Use the command =view= to print one of the templates used by =resme=
and build from that.#+begin_example sh
resme view --template md
#+end_exampleNotice that all the data in the resume is made available in the =data=
variable. Thus, for instance, the following code snippets generates a
list of all the work experiences:#+begin_example xml
<% data["work"] each do |exp| %>
- <%= exp["who"] %>
From: <%= exp["from"] %> till: <%= exp["till"] %>
<% end %>
#+end_exampleTo specify your own ERB template to build your resume use the option
=-e= (=--erb=). Thus, for instance:#+begin_example sh
resme render -e template.md.erb [-o output_filename] file.yaml ...
#+end_exampleuses =template.md.erb= to generate the resume.
Some functions can be used in the templates to better control the
output.String manipulation functions:
- =clean string= removes any space at the beginning of =string=
- =reflow string, n= makes =string= into an array of strings of length
lower or equal to =n= (useful if you are outputting a textual format,
for instance.Dates manipulation functions:
- =period= generates a string recapping a period. The function abstracts
different syntax you can use for entries (i.e., =date= or =from= and
=till=) and different values for the entries (e.g., a missing value
for =till=)
- =year string=, =month string=, =day string= return, respectively the
year, month and day from strings in the format =YYYY-MM-DD=s
- =has_month input= returns true if =input= has a month, that is, it is
a date or it is in the form =YYYY-MM=
- =has_day input= returns true if =input= has a day, that is, it is a
date or it is in the form =YYYY-MM-DD=You can find the templates in =lib/resme/templates=. These might be good
starting points if you want to develop your own.** Contributing your templates
:PROPERTIES:
:CUSTOM_ID: contributing-your-templates
:END:If you develop an output template and want to make it available, please
let me know, so that I can include it in future releases of this gem.** Development
:PROPERTIES:
:CUSTOM_ID: development
:END:After checking out the repo, run =bin/setup= to install dependencies.
You can also run =bin/console= for an interactive prompt that will allow
you to experiment.To install this gem onto your local machine, run
=bundle exec rake install=. To release a new version, update the version
number in =version.rb=, and then run =bundle exec rake release=, which
will create a git tag for the version, push git commits and tags, and
push the =.gem= file to [[https://rubygems.org][rubygems.org]].** Contributing
:PROPERTIES:
:CUSTOM_ID: contributing
:END:Bug reports and pull requests are welcome on GitHub at
https://github.com/avillafiorita/resme.** License
:PROPERTIES:
:CUSTOM_ID: license
:END:The gem is available as open source under the terms of the
[[http://opensource.org/licenses/MIT][MIT License]].** Change Log
In [[file:./CHANGELOG.org][CHANGELOG.org]]
** Roadmap
:PROPERTIES:
:CUSTOM_ID: roadmap
:END:In [[file:./doc/todo.org][todo.org]] ... guess what is my preferred editor!
** Bugs
:PROPERTIES:
:CUSTOM_ID: bugs
:END:There are still slight differences in the syntax of entries and in the
way in which the information is formatted in various output formats. For
instance, gender and birthdate are used in the Europass format, but not
in the Markdown format. This is in part due to the different standards
and in part due to personal preferences.*Entries are not sorted by date before outputting them. Make sure you
put them in the order you want them to appear in your resume.*Unknown number of unknown bugs.
** Release History
:PROPERTIES:
:CUSTOM_ID: release-history
:END:Moved to [[file:./CHANGELOG.org][CHANGELOG.org]].