Convert markdown to HTML and PDF resumes
Turn a simple Markdown document into an elegant resume with both a perfect pdf printable format, and a responsive css3 html5 file. You can view a sample at the blog post for the project.
- Multiple styles to choose from:
modern
,blockish
,unstyled
,readable
,swissen
(Fork and add more!) - PDF generation via wkhtmltopdf
- Responsive design for multiple device viewport sizes
- Simple Markdown formatting
- Single file deployment (no external stylesheets)
- You can now version control and branch your resume.
There is no installation or need to run composer. Just download and run the phar file:
./bin/md2resume html examples/source/sample.md examples/output/
./bin/md2resume pdf examples/source/sample.md examples/output/
Markdown Resume Generator version 2.0.10 by Craig Davis
Usage:
[options] command [arguments]
Options:
--help -h Display this help message.
--quiet -q Do not output any message.
--verbose -v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--version -V Display this application version.
--ansi Force ANSI output.
--no-ansi Disable ANSI output.
--no-interaction -n Do not ask any interactive question.
Available commands:
help Displays help for a command
html Generate an HTML resume from a markdown file
list Lists commands
pdf Generate a PDF from a markdown file
selfupdate Updates md2resume.phar to the latest version.
stats Generate a word frequency analysis of your resume
templates List available templates
version Show current version information
Choose a template with the -t option.
`./bin/md2resume html --template blockish examples/source/sample.md examples/output/`
If you want to edit your markdown resume in your editor while watching it update in your browser, run this command:
`watch ./bin/md2resume html --refresh yes --template modern examples/source/sample.md examples/output/`
This makes the build script run periodically, and html document will refresh
every two seconds via a meta tag. Open the ./examples/ouput/sample.html
file
in your browser, and then just save your markdown document when you want to see
a fresh preview.
For information about running this inside a Docker container, please read Issue 46 where Sebastian Klose has shared his approach.
Markdown is limited to basic html markup. Follow the examples/source/sample.md
file as a guideline. This file includes various headers and several nested
elements. This allows us to construct a semantic HTML document for the resume,
and then use CSS rules to display a nicely formatted resume. Note that because
we have very few ways to nest or identify elements that many of the css rules
are based on descendant and adjacent selectors.
PLEASE NOTE: The templates are compiled into the phar archive in the ./bin
folder. If you intend to edit the templates or add new ones, you'll need to run
this application in the dev mode. See below for more information about doing
this.
The application is deployed as a compiled phar file. In order to add new commands, you'll need to first get composer:
-
Download and install composer to the root directory.
Run this in your terminal to get the latest Composer version:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
Once composer is installed, you will notice instructions to use it. For example:
Use it: php composer.phar
-
Install the dependencies:
php composer.phar install
-
If you see the following:
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Update your dependencies:
php composer.phar update
-
After that, you should be able run the
md2resume_dev.php
file from the command line:php md2resume_dev.php
- Tag the repo with the new build number. This will be picked up for both
the
version
file used by the self update command and placed into the phar file. - Run
pake build
. - Push both the tag and the code.
Check out the pake tooling for more information about the build. Pake will be
installed to ./vendor/bin/pake
. So for instance a complete phar file build
looks like ./vendor/bin/pake build
.
The initial inspiration is from the Sample Resume Template. However, no HTML from that project has been used in this. General layout has been reused, and media queries have been added. It's a nice template, and if you are a more comfortable with html than markdown, you should use it.
- 2.0.10 : Updated spacing in moder template with commites from @501st-alpha1
- 2.0.9 : Updated Modern template with improved spacing. Update parsing of
--template
option to close issue #7 - 2.0.8 : New
readable
theme contributed by @ahmadnazir, minor refactor to support a /links directory - 2.0.7 : Update composer to use
sunra/php-simple-html-dom-parser
this appears to be better maintained and more popular to close #27 - 2.0.6 : Fix empty template list from phar file to close #24
- 2.0.5 : Remove default value for the
--refresh
option to close #22 - 2.0.4 : Fix path resolution problem with absolute paths to close #16
- 2.0.3 : Add optional duration to the
--refresh
option to close #15 - 2.0.2 : Add new dependency check for
mbstring
to close #20 - 2.0.1 : Add new
swissen
template with Helvetica styling @beautifulcode - 2.0.0 : Complete rewrite with the symfony console component. Deployment is now done with a compiled phar file, and development dependencies are managed with composer.
- 0.9.0 : Add composer and update README with new changelog
- 0.8.8 : Add Chinese text example @ishitcno1
- 0.8.7 : Update pdf formatting of the modern template @roleary
- 0.8.6 : Fix output path @abhikandoi2000
- 0.8.5 : Fix issue #2
- 0.8.4 : Correct chmod and add parameter for output directory @kevinxucs
- 0.8.2 : Update build script and add refresh command option
- 0.8.1 : Updating formatting of initial templates
- 0.8 : Initial Release to Public