WEBVTT

00:00:00.058 --> 00:00:04.447
RenderCV takes one YAML file
and gives you back a typeset PDF.

00:00:04.644 --> 00:00:08.334
Everything you write about yourself
lives under a single top level key,

00:00:08.417 --> 00:00:11.506
and that key is what
this lecture is about:

00:00:11.703 --> 00:00:12.990
the header at the top,

00:00:13.073 --> 00:00:17.787
the sections underneath it, and the nine
entry types the sections are built from.

00:00:19.184 --> 00:00:21.240
Here is the start of such a file.

00:00:21.343 --> 00:00:25.501
The key is called cv, and it
holds the whole of your content.

00:00:26.413 --> 00:00:28.945
Under it, three plain strings.

00:00:29.142 --> 00:00:32.033
A name, a headline, and a location.

00:00:32.230 --> 00:00:35.516
None of them is compulsory,
and none of them is parsed:

00:00:35.620 --> 00:00:37.537
they are printed as you typed them.

00:00:38.333 --> 00:00:42.908
Then one more key, sections, and
everything below the header hangs off it.

00:00:43.821 --> 00:00:46.260
Its keys are the titles you want printed.

00:00:46.573 --> 00:00:47.488
Here a summary,

00:00:47.571 --> 00:00:52.390
written as a single line of text, and then
an experience section with one job in it.

00:00:53.094 --> 00:00:55.382
Now put the finished page beside it.

00:00:55.486 --> 00:00:58.166
The name is set largest, across the top,

00:00:58.249 --> 00:01:00.931
with the headline
and the location under it.

00:01:01.635 --> 00:01:05.058
Each key under sections becomes
a heading with a rule beneath it,

00:01:05.141 --> 00:01:08.056
and the entries you
listed are set below that.

00:01:08.852 --> 00:01:13.126
The second key gives the second
heading, in the order you wrote them.

00:01:14.178 --> 00:01:16.524
So the file has two halves.

00:01:16.720 --> 00:01:21.493
The header fields, which are all optional,
and the sections, which carry the content.

00:01:21.597 --> 00:01:23.278
We will take the header first,

00:01:23.361 --> 00:01:27.960
then the one rule every section has to
obey, and then each entry type in turn.

00:01:29.102 --> 00:01:32.191
The header is everything
above the first section heading.

00:01:32.388 --> 00:01:34.115
Every field in it is optional,

00:01:34.199 --> 00:01:37.915
so begin with a blank page
and add only what you want on it.

00:01:38.712 --> 00:01:41.232
Under cv, the name comes first.

00:01:41.336 --> 00:01:44.413
It is the line set
largest, across the top.

00:01:45.210 --> 00:01:48.880
A headline goes under it,
one short line for your role.

00:01:48.983 --> 00:01:52.293
Then a location, printed
exactly as you typed it.

00:01:53.090 --> 00:01:55.238
Next, the ways to reach you:

00:01:55.435 --> 00:01:58.837
an email address,
a phone number, and a website.

00:01:59.034 --> 00:02:02.285
These are gathered into one
row of links beneath your name.

00:02:03.198 --> 00:02:06.276
Write the phone number
in full international form.

00:02:06.379 --> 00:02:09.476
How it is displayed,
national, international,

00:02:09.560 --> 00:02:16.560
or E164, is decided over in the design
half of the file, by this long field name.

00:02:17.382 --> 00:02:21.969
Add a photo, and RenderCV places
the image itself on the page.

00:02:22.765 --> 00:02:27.654
Emails, phone numbers and websites can
each be a list rather than a single value.

00:02:28.106 --> 00:02:30.034
One address looks like this.

00:02:30.947 --> 00:02:32.898
Several of them look like this:

00:02:33.002 --> 00:02:36.044
the key on its own,
then a list underneath.

00:02:36.148 --> 00:02:38.760
They are printed
in the order you wrote them.

00:02:39.557 --> 00:02:43.389
Networks that RenderCV knows
about have a field of their own.

00:02:43.586 --> 00:02:47.902
Social networks takes a list,
and each item is a pair: which network,

00:02:47.986 --> 00:02:49.705
and your username on it.

00:02:50.018 --> 00:02:52.909
Two pairs here, LinkedIn and GitHub.

00:02:53.613 --> 00:02:55.445
Each pair becomes one link,

00:02:55.529 --> 00:02:59.605
carrying that network's own icon,
and the address is built for you.

00:03:00.517 --> 00:03:03.223
For anything else there
are custom connections.

00:03:03.420 --> 00:03:06.413
Give the text you want
shown, the address behind it,

00:03:06.497 --> 00:03:09.179
and the name of a Font Awesome icon.

00:03:10.394 --> 00:03:14.385
Leave the address out and the item
is printed as plain text beside its icon,

00:03:14.469 --> 00:03:17.639
which is a tidy way to show
something that is not a link.

00:03:17.836 --> 00:03:21.656
The icon names themselves come
from the Font Awesome search page.

00:03:22.453 --> 00:03:23.894
That is the header:

00:03:23.998 --> 00:03:26.503
nine fields, every one of them optional,

00:03:26.587 --> 00:03:29.722
and RenderCV lays out
whatever you provide.

00:03:29.826 --> 00:03:31.858
Now the sections underneath it.

00:03:32.965 --> 00:03:36.667
On the finished page a section
is just a title, a rule under it,

00:03:36.750 --> 00:03:38.504
and the entries beneath.

00:03:38.700 --> 00:03:42.648
In the file, one section
is one key with a list under it.

00:03:43.445 --> 00:03:46.511
So sections is a dictionary, not a list.

00:03:46.823 --> 00:03:51.631
Its keys are the titles you want printed,
and its values are lists of entries.

00:03:52.428 --> 00:03:56.109
A title can be any string,
and it is printed exactly as written.

00:03:56.422 --> 00:04:00.474
Nothing about that name tells
RenderCV what kind of entries are inside.

00:04:00.957 --> 00:04:04.116
Which means one section
can be written in several ways.

00:04:04.313 --> 00:04:06.868
Here is the same job, three times over.

00:04:06.972 --> 00:04:11.593
First as an experience entry, with the
company and the position as separate keys.

00:04:12.390 --> 00:04:15.409
Second, the same job as a normal entry.

00:04:15.513 --> 00:04:17.545
One name, and the dates.

00:04:17.742 --> 00:04:20.030
Everything else about it is optional.

00:04:20.827 --> 00:04:26.307
Third, as bullet entries: one line each,
with the emphasis written in Markdown.

00:04:26.504 --> 00:04:29.755
Same section title,
three quite different layouts.

00:04:30.552 --> 00:04:33.815
So the name of a section
never decides its entry type.

00:04:34.430 --> 00:04:38.367
You pick the type that suits
the content, section by section.

00:04:39.163 --> 00:04:41.054
There is one rule to obey.

00:04:41.137 --> 00:04:43.782
Here a section starts
as an experience entry,

00:04:43.865 --> 00:04:47.372
and then a school is added
underneath it as an education entry.

00:04:48.169 --> 00:04:50.283
RenderCV will not take it.

00:04:50.387 --> 00:04:53.449
Mixing two types inside
one section is refused,

00:04:53.532 --> 00:04:57.585
so keep one type per section
and open a second section for the other.

00:04:58.382 --> 00:05:02.411
One dictionary of titled sections,
and one entry type inside each.

00:05:02.608 --> 00:05:04.768
Next, the types themselves.

00:05:05.858 --> 00:05:08.260
RenderCV gives you nine entry types.

00:05:08.343 --> 00:05:12.662
They differ in the keys they accept
and in how they are laid out on the page.

00:05:13.575 --> 00:05:17.988
Four of them carry dates and highlights,
and this part is about those four:

00:05:18.091 --> 00:05:22.132
education, experience,
publication, and normal.

00:05:22.673 --> 00:05:27.443
The remaining five are the compact ones,
a single line or a single field each,

00:05:27.526 --> 00:05:29.002
and they come later.

00:05:29.798 --> 00:05:32.574
Start with the education
entry, for a school.

00:05:32.677 --> 00:05:36.068
It has nine fields,
and only two of them are required.

00:05:36.772 --> 00:05:40.570
Those two are the institution,
and the area you studied.

00:05:40.766 --> 00:05:42.741
Everything else may be left out.

00:05:43.793 --> 00:05:49.889
The degree is a field of its own, so BS,
MSc or PhD sits apart from the subject.

00:05:50.801 --> 00:05:56.108
Dates come as a pair, a start date
and an end date, in year and month form.

00:05:56.305 --> 00:06:00.601
There is also a plain date field, which
takes any string you like and overrides

00:06:00.601 --> 00:06:04.166
that pair, so you use one
or the other, never both.

00:06:04.962 --> 00:06:09.050
Then a location, and highlights,
which is a list of strings.

00:06:09.362 --> 00:06:12.649
Each string in it becomes
one bullet under the entry.

00:06:13.446 --> 00:06:16.405
The experience entry
has exactly the same shape,

00:06:16.488 --> 00:06:21.144
with two different keys at the front: the
company, and the position you held there.

00:06:22.057 --> 00:06:25.910
Everything after that is the pattern
you already know: the two dates,

00:06:25.993 --> 00:06:29.996
with the word present for a job
you still hold, then a location,

00:06:30.079 --> 00:06:35.421
a summary, and the highlights, one line
for each accomplishment you want to list.

00:06:36.217 --> 00:06:39.655
A publication entry needs
a title and a list of authors.

00:06:39.851 --> 00:06:41.800
Write the authors
as they should be printed,

00:06:41.883 --> 00:06:46.260
and wrap your own name in single asterisks
to have it emphasised in the list.

00:06:46.744 --> 00:06:52.303
The rest is optional. A journal
or venue, a DOI, a link, and a date.

00:06:52.386 --> 00:06:56.160
The identifier and the link
are rendered for you as addresses.

00:06:56.585 --> 00:06:59.265
The normal entry
is the general purpose one.

00:06:59.348 --> 00:07:00.579
It needs a single key,

00:07:00.579 --> 00:07:04.817
the name, and it is what you reach
for when nothing more specific fits.

00:07:05.614 --> 00:07:08.085
Its optional fields are the familiar set:

00:07:08.168 --> 00:07:12.023
the dates, a location,
a summary and highlights.

00:07:12.220 --> 00:07:17.608
Projects, awards, certificates
and talks all sit happily in one of these.

00:07:18.692 --> 00:07:20.733
The one line entry has two fields,

00:07:20.817 --> 00:07:25.670
and both are required: a label,
and the details that belong to it.

00:07:25.867 --> 00:07:28.654
It is what most people use for skills.

00:07:29.567 --> 00:07:34.421
On the page the label is set in bold, and
the details follow it on the same line.

00:07:34.617 --> 00:07:36.592
One pair, one line.

00:07:37.295 --> 00:07:39.104
A second pair gives a second line,

00:07:39.188 --> 00:07:43.310
and a whole skills section
is usually four or five of them, stacked.

00:07:44.107 --> 00:07:47.498
Three of the nine types
have exactly one field each.

00:07:47.694 --> 00:07:52.514
The bullet entry carries a single string,
and it is printed as one bullet point.

00:07:53.217 --> 00:07:57.592
The numbered entry works the same way,
except the items are counted for you,

00:07:57.676 --> 00:08:00.718
upward from one,
in the order you wrote them.

00:08:01.515 --> 00:08:04.786
The reversed numbered entry
counts the other way, downward,

00:08:04.870 --> 00:08:09.120
which is what you want for a publication
list where the newest paper comes first.

00:08:10.335 --> 00:08:12.724
All three take one field and nothing else,

00:08:12.808 --> 00:08:16.175
so they are the cheapest way
to put a plain list on the page.

00:08:16.972 --> 00:08:19.956
And the last type has no keys whatsoever.

00:08:20.060 --> 00:08:25.169
You write the string itself, as an item
of the list, and that is the entire entry.

00:08:26.221 --> 00:08:28.505
Each string becomes its own paragraph,

00:08:28.589 --> 00:08:32.418
which makes this the natural choice
for a summary at the top of a CV.

00:08:32.502 --> 00:08:34.674
That is all nine types.

00:08:35.709 --> 00:08:38.458
Every text field
in the file accepts Markdown,

00:08:38.542 --> 00:08:41.027
and there are four forms worth knowing.

00:08:41.224 --> 00:08:44.080
Two asterisks around
a phrase make it bold.

00:08:44.877 --> 00:08:46.523
Square brackets round the words,

00:08:46.607 --> 00:08:50.056
then round brackets round
the address, give you a link.

00:08:50.760 --> 00:08:56.469
A single asterisk either side is italic,
and backticks set a phrase apart as code,

00:08:56.553 --> 00:08:59.421
which is handy for file names and flags.

00:09:00.218 --> 00:09:02.815
Because the PDF is typeset with Typst,

00:09:02.899 --> 00:09:06.557
Typst's own notation
is available in those same fields.

00:09:06.754 --> 00:09:11.503
Surround an expression with double
dollar signs and it is set as mathematics.

00:09:12.300 --> 00:09:14.634
Typst commands work as well.

00:09:14.831 --> 00:09:20.126
Write a hash, then the command name,
then the content in square brackets.

00:09:20.322 --> 00:09:23.257
The emphasis command, spelled e m p h,

00:09:23.341 --> 00:09:27.649
gives you italics, exactly like
the phrase standing on the right.

00:09:28.445 --> 00:09:30.408
One last thing about entries.

00:09:30.721 --> 00:09:33.180
You may add keys
of your own to any of them.

00:09:33.263 --> 00:09:38.175
Here an experience entry carries a revenue
figure, which is not part of any schema.

00:09:38.879 --> 00:09:43.264
By default nothing happens: the extra
key is accepted and then ignored,

00:09:43.348 --> 00:09:45.857
so it is safe to keep notes in the file.

00:09:46.653 --> 00:09:49.402
It becomes useful
when a template asks for it.

00:09:49.486 --> 00:09:51.239
The templates field in the design half

00:09:51.239 --> 00:09:56.163
of the file can print any key you have
written, wherever you want it on the page.

00:09:56.960 --> 00:09:59.317
So, four things to take away.

00:09:59.514 --> 00:10:04.379
Your content lives under the cv key,
and every field of the header is optional.

00:10:05.176 --> 00:10:08.798
Sections are a dictionary, where the
keys are the titles that get printed

00:10:08.798 --> 00:10:11.365
and the values are lists of entries.

00:10:11.817 --> 00:10:15.730
Each section holds a single
entry type, chosen from the nine.

00:10:16.109 --> 00:10:19.602
And every text field in the whole
file takes Markdown and Typst,

00:10:19.685 --> 00:10:24.271
while any spare key you write sits
quietly until a template calls for it.

00:10:24.584 --> 00:10:28.881
That is the content half
of RenderCV, from top to bottom.