org-cv/readme.org

177 lines
5.8 KiB
Org Mode
Raw Normal View History

2018-04-05 01:07:59 +00:00
#+TITLE: Org exporter for curriculum vitae
2018-03-22 16:37:00 +00:00
#+AUTHOR: Óscar Nájera
#+EMAIL: hello@oscarnajera.com
#+DATE: 2018 Mar 22
#+LATEX_HEADER: \usepackage[top=2cm,bottom=2.5cm,left=3cm,right=3cm]{geometry}
#+LATEX_HEADER: \usepackage{indentfirst}
#+LATEX_CLASS_OPTIONS: [a4paper,12pt]
#+STARTUP: hideblocks
#+OPTIONS: toc:nil num:nil
# This is for syntax highlight
#+LaTeX_HEADER: \usepackage{minted}
#+LaTeX_HEADER: \usemintedstyle{friendly}
2018-04-18 17:22:01 +00:00
This project aims to generate from an org-mode file with reasonably ordered
items a latex file which compiles into a reasonably nice CV. In the same
spirit the org-mode file must export to markdown so that it can be uses for
web based CV.
* Installation
This project is not on MELPA so you have to do a manual installation. First
clone this git repository.
#+BEGIN_SRC bash
git clone https://gitlab.com/Titan-C/org-cv.git
#+END_SRC
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 my installed packages like this.
#+BEGIN_SRC emacs-lisp
(use-package ox-moderncv
:load-path "~/dev/org-cv/"
:init (require 'ox-moderncv))
#+END_SRC
2018-04-18 17:22:01 +00:00
* Basic Org file
The basic structure of an org file containing your CV is shown next.
2018-04-18 21:07:19 +00:00
#+BEGIN_SRC org :tangle basic_cv.org
2018-04-18 17:22:01 +00:00
,#+TITLE: My dream job
,#+AUTHOR: John Doe
,#+ADDRESS: My Awesome crib
,#+ADDRESS: Fantastic city -- Planet Earth
,#+MOBILE: (+9) 87654321
,#+HOMEPAGE: example.com
,#+GITHUB: Titan-C
,#+GITLAB: Titan-C
,#+PHOTO: smile.jpg
2018-04-18 17:22:01 +00:00
,* 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.
2018-04-18 21:07:19 +00:00
2018-04-18 17:22:01 +00:00
,* Other stuff I do
- I work a lot
- I sleep a lot
- I eat a lot
,* Languages
I like languages: strict and human
#+END_SRC
* Latex Exporter
** Using modern-cv
[[https://www.ctan.org/tex-archive/macros/latex/contrib/moderncv][moderncv]] is a standard \(\LaTeX\) package that you can find in many of your
latex distributions. For I maintain for personal purposes a fork of it to
better 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.
#+BEGIN_SRC org
# 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
#+END_SRC
When exporting you can call the following function to get the latex file.
2018-04-18 21:07:19 +00:00
#+BEGIN_SRC emacs-lisp
(org-export-to-file 'moderncv "moderncv.tex")
#+END_SRC
or you can have a hook to do the export when you save a file.
#+BEGIN_SRC org
# Local Variables:
# eval: (add-hook 'after-save-hook #'org-hugo-export-wim-to-md-after-save :append :local)
# End:
#+END_SRC
2018-04-18 17:22:01 +00:00
** Using alta-cv
[[https://github.com/liantze/AltaCV][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 for 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.
2018-04-18 21:07:19 +00:00
#+BEGIN_SRC org
,#+LATEX_HEADER: \geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm}
#+END_SRC
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.
2018-04-18 21:07:19 +00:00
#+BEGIN_SRC org
,#+latex: \marginpar{
,* Main Interests
- Free/Libre and Open Source Software (FLOSS)
- Free food
- Free beer
2018-03-22 16:37:00 +00:00
2018-04-18 21:07:19 +00:00
,* Programming Languages
- Python
- C/C++
- EmacsLisp
- Bash
- JavaScript
- PHP
2018-04-18 21:07:19 +00:00
,* Languages
- *English* Fluent
- *German* Fluent
- *Spanish* Native
- *French* Intermediate
2018-04-18 21:07:19 +00:00
,#+latex: }
#+END_SRC
2018-04-18 21:07:19 +00:00
2018-04-05 01:07:59 +00:00
* Update readme
** TODO examples [0/2]
*** TODO pictures
*** TODO scripts
* TODO Make a package
Complete the file with license and how to load it.
2018-03-22 17:04:16 +00:00
* DONE Base environment
- State "DONE" from "TODO" [2018-03-22 Thu 17:57]
I have the basic cv template that gets exported
2018-04-05 01:07:59 +00:00
* DONE org-exporter for latex
- State "DONE" from "TODO" [2018-04-05 Thu 03:04]
2018-03-22 17:04:16 +00:00
:LOGBOOK:
2018-03-23 02:29:45 +00:00
CLOCK: [2018-03-22 Thu 23:17]--[2018-03-23 Fri 03:25] => 4:08
2018-03-22 17:37:32 +00:00
CLOCK: [2018-03-22 Thu 17:58]--[2018-03-22 Thu 18:37] => 0:39
2018-03-22 17:04:16 +00:00
:END:
2018-03-22 17:37:32 +00:00
I'm comparing the contents of the template export function. It looks that
this one give the genera document layout and this is where I shall insert
them data.
comparing ox-latex, ox-beamer, ox-koma
2018-03-23 02:29:45 +00:00
I learned quite a lot from the main latex and koma files. Currently I
already reproduce latex export, which is not much as that was already a
working output. But now I have the specific keywords for the personal
information part.
2018-03-24 02:05:35 +00:00
** DONE Process headings with properties into cventries
- State "DONE" from "TODO" [2018-03-24 Sat 03:02]
2018-03-23 21:54:17 +00:00
:LOGBOOK:
2018-03-24 02:05:35 +00:00
CLOCK: [2018-03-23 Fri 22:54]--[2018-03-24 Sat 03:05] => 4:11
2018-03-23 21:54:17 +00:00
CLOCK: [2018-03-23 Fri 14:41]--[2018-03-23 Fri 19:05] => 4:24
:END:
I'm constructing the entries quite fine but somehow the intermedia function
refuses to get written even when it appears that its output is correct.
2018-03-24 02:05:35 +00:00
I don't fully understand. But it appear that I need to call the exporter
again within the exporting of the headings. This maybe is what helps
getting down the subtrees and getting to the latex output.
2018-03-23 21:54:17 +00:00
** DONE Incorporate from beamer how the do the theme settings
- State "DONE" from "TODO" [2018-03-23 Fri 16:01]
2018-03-23 02:29:45 +00:00
This looks like a fancy way to avoid repetition. Have a look too trying to
imitate that behavior for the other personal tags of social media,url,phones.
2018-04-05 01:07:59 +00:00
* DONE Markdown exporter for integration with hugo blog