- Online documentation in https://titan-c.gitlab.io/org-cv/
- Development happens in the gitlab repository: https://gitlab.com/Titan-C/org-cv
- There is a mirror in github for backup: https://github.com/Titan-C/org-cv
This project dog feeds itself and produces the examples on this documentation page directly.
This project is not on MELPA so you have to do a manual installation. First clone this git repository.git clone https://gitlab.com/Titan-C/org-cv.git
There are various modules to perform the export. As of now ox-moderncv
,
ox-altacv
, ox-hugocv
. Choose any or all that you prefer for install. I
use use-package
to manage the installation for example of ox-moderncv
.
(use-package ox-moderncv
:load-path "path_to_repository/org-cv/"
:init (require 'ox-moderncv))
TITLE
, AUTHOR
and EMAIL
are standard org options. But on TITLE
you
put your foreseen job.
Field | Description |
---|---|
TITLE | Desired job |
AUTHOR | Who are you? |
Your contact email | |
ADDRESS | Mailing address, this can span over multiple lines |
HOMEPAGE | URL of your website |
MOBILE | Mobile phone |
GITHUB | GitHub user |
GITLAB | GitLab user |
Linkedin username | |
PHOTO | path to photo file |
#+TITLE: My dream job
#+AUTHOR: John Doe
#+email: john@doe.lost
#+ADDRESS: My Awesome crib
#+ADDRESS: Fantastic city -- Planet Earth
#+MOBILE: (+9) 87654321
#+HOMEPAGE: example.com
#+GITHUB: Titan-C
#+GITLAB: Titan-C
#+LINKEDIN: oscar-najera
#+PHOTO: smile.png
You can use org-modes hierarchical structure to describe your CV. To make a
specific subtree an item describing an experience point (Job you have,
degree you pursued, etc.) you use the org properties drawer and with the
:CV_ENV: cventry
property. You should also include the FROM
and TO
properties defining the span of the event, as LOCATION
and EMPLOYER
.
* Employement
** One job
:PROPERTIES:
:CV_ENV: cventry
:FROM: <2014-09-01>
:TO: <2017-12-07>
:LOCATION: a city, a country
:EMPLOYER: The employer
:END:
I write about awesome stuff I do.
** Other job
:PROPERTIES:
:CV_ENV: cventry
:FROM: <2013-09-01>
:TO: <2014-08-07>
:LOCATION: my city, your country
:EMPLOYER: The other employer
:END:
I write about awesome stuff I do.
* Other stuff I do
- I work a lot
- I sleep a lot
- I eat a lot
moderncv is a standard \(\LaTeX\) package that you can find in many of your latex distributions. I maintain a fork of it, to work with my use case at https://github.com/Titan-C/moderncv.git Feel free to use any or even your personal fork for your desired use case.
To configure the export for moderncv you need the addition options in your org file.
# CV theme - options include: 'casual' (default), 'classic', 'oldstyle' and 'banking'
#+CVSTYLE: banking
# CV color - options include: 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
#+CVCOLOR: green
When exporting you can call the following function to get the latex file.
(org-export-to-file 'moderncv "moderncv.tex")
(org-latex-compile "moderncv.tex")
AltaCV is another project to generate a CV, you will need to install it
yourself. I maintain a fork too at https://github.com/Titan-C/AltaCV.git
because I need extra features and I encourage to use this fork on the
sections
branch.
The style of this CV is more involved and you need some configuration in your org file to get it to work. First define the margins, the large margin to the right is to allow for a second column.
#+LATEX_HEADER: \geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm}
Content on the right column has the same structure of a org file, but you
need to enclose it in the \marginpar{}
command as shown next.
#+latex: \marginpar{
* Main Interests
- Free/Libre and Open Source Software (FLOSS)
- Free food
- Free beer
* Programming
- Python
- C/C++
- EmacsLisp
- Bash
- JavaScript
- PHP
* Languages
- *English* Fluent
- *German* Fluent
- *Spanish* Native
- *French* Intermediate
#+latex: }
When exporting you can call the following function to get the latex file.
(org-export-to-file 'altacv "altacv.tex")
(org-latex-compile "altacv.tex")
AwesomeCV is another LaTeX template for producing nice-looking CVs. In addition to the regular document attributes, the following are supported:
Field | Description |
---|---|
PHOTOSTYLE | Style of photo to use. Comma-separated values can include |
circle/rectangle,edge/noedge,left/right. | |
CVCOLOR | Color of highlights. |
STACKOVERFLOW | Stack overflow, must be specified as ID username |
FONTDIR | Directory where the fonts can be found, defaults |
to fonts/ (as in the standard AwesomeCV) | |
CVHIGHLIGHTS | Whether to colorize highlights. Defaults to true |
QUOTE | Optional quote to include at the top of the CV |
FIRSTNAME | First name to be shown in the CV. By default the first |
space-separated part of AUTHOR is used. | |
LASTNAME | Last name to be shown in the CV. By default the second |
space-separated part of AUTHOR is used. | |
CVFOOTER_LEFT | Text to include in the left footer. None by default |
CVFOOTER_MIDDLE | Text to include in the middle footer. None by default. |
CVFOOTER_RIGHT | Text to include in the right footer. None by default. |
AwesomeCV supports a few additional types of environment types in
CV_ENV
, including cvemployer
, cvskills
, cvhonors
and cvschool
. Some of
these support additional property fields:
Field | Description |
---|---|
FROM | Start date of the entry |
TO | End date of the entry |
DATE | Shortcut to specify both FROM and TO as the same date. |
Both FROM and TO override DATE . | |
EMPLOYER | Employer or organization, can also be specified |
as ORGANIZATION , SCHOOL , EVENT or POSITION (different | |
names make more sense depending on the type of environment) | |
LABEL | In cvsubentry environments, adds the given text to the left |
of the date range, can be used to add additional information | |
to the entry. | |
RIGHT_IMG | path to an image to include floating to the right of a cventry , |
a cvsubentry or cvschool entry. Meant to be used to show a logo. | |
PAGEBREAK | Causes a LaTeX \clearpage statement to be inserted in the |
exported output before the heading. |
All the supported values of CV_ENV
are described below.
Enclose all the subheaders in a cventries
environment. Subheaders can
be of type cventry
, cvschool
, or cvemployer
.
Enclose all the subheaders in a cvhonors
environment. Subheaders must
be of type cvhonor
Converts to a \cventry
command. Supports attributes FROM
, TO
, DATE
,
EMPLOYER
, LOCATION
, RIGHT_IMG
.
Converts to a \cvsubentry
command. Supports attributes FROM
, TO
, DATE
,
LABEL
RIGHT_IMG
.
Converts to a \cventry
with only the title line. Supports attributes
FROM
, TO
, DATE
and LOCATION
.
Converts to a \cventry
. The headline should contain the degree
obtained, shown as the main title. Supports attributes LOCATION
,
SCHOOL
, FROM
, TO
, DATE
and RIGHT_IMG
.
Converts to a \cvhonor
command (must be inside a cvhonors
headline). Supports attributes LOCATION
, EMPLOYER
(in this case EVENT
or POSITION
might be more semantically accurate, and can also be
used), FROM
, TO
, DATE
.
Converts to a \cvskills
environment. The headline must contain a
description list, which gets converted into a sequence of \cvskill
commands, with the term as the skill title and the description as its
contents.
To export, there is nothing fancy to keep track of, but as an example I exclude some tags during export.
(let ((org-export-exclude-tags '("noexport" "latexonly")))
(org-export-to-file 'hugocv "hugocv.md"))
You are responsible for styling your website.
org-cv Copyright (C) 2018-2020 Óscar Nájera
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
If you have found this project useful. Please consider giving back. You can kindly tip me for this project
- Stellar
- GDPTOFND6HSE5AVHPRXOCJFOA6NPFB65JAEWKTN23EBUGBB2AU4PLIBD
- liberapay
- Titan-C