A fancy pdf CV with Asciidoctor
Tags: asciidoctor, docascode
Published: 2024-07-13 22:13:36

---
title: A fancy pdf CV with Asciidoctor
published: true
date: 2024-07-13 00:00:00 UTC
tags: asciidoctor,docascode
canonical_url: https://jorge.aguilera.soy/blog/2024/cv-asciidoctor.html
---

In this post I’ll show you how to create a CV in PDF using a simple text file. No Word, no Google Docs, no Acrobat …​ only text

 ![cv](https://jorge.aguilera.soy/images/2024/cv.png)

## asciidoctor-web-pdf

Install `asciidoctor-web-pdf`

`npm i -g @asciidoctor/core asciidoctor-pdf`

## assets

in a folder, grab these files:

- [https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/style.css](https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/style.css)

- [https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/template.js](https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/template.js)

- [https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/phone.svg](https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/phone.svg)

- [https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/mail.svg](https://github.com/ggrossetie/asciidoctor-web-pdf/blob/main/examples/resume/mail.svg)

## CV

in the same folder, create a text file, JorgeAguileraCV.adoc, for example, and write: (feel free to change with your data)

### Header

```
= Software Developer Solutions
Jorge Aguilera González

[.info]
== !

=== Jorge Aguilera

[contact]
- image:mail.svg[role="picto"] jorge@edn.es
```

The First line is the title of your CV

The Second line will not be visible, so you can omit but be sure to let a blank line

`[.info]` creates a section where you’ll insert your name

`[contact]` will be used to write your email

You can add another item with your phone, for example:

```
- image:mail.svg[role="picto"] jorge@edn.es
- image:phone.svg[role="picto"] +3491xxxxxx
```

## Left

We’ll use the left bar of our CV to include some tips about us, as knowledge, education, style of life …​

So append to the file following text:

```
==== Knowledge

- 30+ years as Developer
- C, C++, *Java*, Groovy
- *Javascript*, TypeScript, NodeJS
- Maven, Gradle
- Asciidoctor

==== OpenSource Projects

- K8s Caos Operator
- Gradle extensions
- Google DSL (Groovy)
- Asciidoctor Extensions
- MicronautRaffle

==== Publications

101-groovy-scripts blog
```

## About me

Now it’s time to write some sentences about us:

```
[.chronologie]
== !

=== About me

With more than 30 years of experience in IT, I’ve worked in many different sectors where always I
focused to bring quality and innovation ideas in every project I’ve been participated. During several
years I’ve run a one-person company offering services as technical leader and providing my
experience to improve the skills of the team, teaching good practices and applying productive tools
and languages.
```

`[.chronologie]` will position "the cursor" at the top of the right part and we’ll start writing an "about me" sentences

## Professional career

```
==== Professional experience

*Software Architect* at EDN (2024)

- Helping different customers in the digital transformation of their systems, migrating from monolithic application
to microservice architecture, implement best practices as code review and clean code

*Software Architect/DevOps* at Baraka (Dec 2022)

- Leading the migration of a NodeJS *Javascript* application deployed in AWS ECS to a *microservice architecture* in Kubernetes.
```

## Building our CV

It’s time to see how it looks:

`asciidoctor-web-pdf JorgeAguilera.adoc --template-require ./template.js`

<dl>
<dt>INFO</dt>
<dd>
<p>This command will generate a temp HTML file</p>
</dd>
</dl>

Surely you’ll need to iterate several times. My advice is to be conscious and write only a couple of sentences in every position, so the CV will have only one page

This is how mine looks

[JorgeAguilera.pdf](https://jorge.aguilera.soy/blog/2024/JorgeAguilera.pdf)

Now is the time to send it and wait the headhunter’s call. Good luck