Files in the top-level directory from the latest check-in
- cdlc
- cdl-mode.el
- README.md
Career Description Language
Career Description Language (CDL) is a very simple language designed to describe the contents of your career. Using this information, resumes/CVs can be generated automatically without you having to think about formatting, allowing you to focus more on what actually matters (the content, not date abbreviations/margins/etc.).
An implementation of such a compiler (cdlc) can be found here.
Schema
This is version 2 of the schema is implemented by
cdlcversions 2.X.
The schema is composed of "directives" (instructions), signaled by the first character of each line (followed by a space). The rest of the line acts as the operand of the directive.
These directives are organized into "blocks" of directives grouped together to describe a section of data.
One special directive is # <text>, which represents a comment (the rest of the line is ignored).
The first non-comment directive must be V <number>, which declares the schema version.
This version of the schema must have <number> be 2 (aka V 2).
Head Block
The head block contains basic information (name/links). There is only one head block in a file. The head block must be the first block in a file.
The head block starts with a N <name> directive, which sets your name to <name>.
It then may be followed by zero or more H <display> <url> directives, signaling you want to have a link with <display> text that leads to <url>.
<display> may contain spaces, but <url> may not.
Example head block:
N John Doe
H duck.com https://duckduckgo.com/
H google.com https://www.google.com/
Area Block
Area blocks represent sections. Examples of areas are "education" and "experience."
Area blocks start with a A <id> directive, which declares an area with <id> which must be unique (this is not the title).
The A directive is then followed by some combination of the following directives:
T <text>which sets the title of the area to<text>. There should only be oneTdirective per area.C <count>which declares that for resumes, only use<count>entries from this area. Default count is 3. There should only be oneCdirective per area.I <include>which sets that this area should be included inresumeorcv. There may be more then oneIdirective per area.D <type>set the format type of the area. Must be eithershortortall. Default value istall. There should only be oneDdirective per area.
Example area block:
A experience
T Experience
I cv
I resume
C 2
Job Block
Job blocks represent single entries.
Job blocks start with a J <id> directive, which declares a new job in the area <id>.
The J directive is then followed by some combination of the following directives.
T <text>which sets the title of the job to<text>. There should only be oneTdirective per job.U <text>which sets the subtitle of the job to<text>. There should only be oneUdirective per job.H <display> <url>which declares you want to have a link with<display>that leads to<url>.<display>may contain spaces, but<url>may not. There may be more than oneHdirective per job.B <date>/E <date>set the beginning/end date of the job respectively. Dates must be inYYYY-MM-DDformat. No end date with a beginning date signifies an end date of "present." There may only be one of eachBandEdirectives per job.S <text>sets the short description of the job to<text>. There should only be oneSdirective per job.L <text>add a long-description bullet point of<text>. There may be more than oneLdirective per job.D <type>set the format type of the job. Must be eithershortortall. Default value is the format type for the area declared in theJdirective. There should only be oneDdirective per job.
Example job block:
J experience
T Professional Cool Guy
U Company
H example.com https://example.com/
B 2015-09-13
E 2017-12-13
S Did cool things.
L Did a cool thing.
L Did another cool guy.
Ideas/Open Questions
- Minimize non-information directives:
- In an ideal world we could remove the
D/I/Cdirectives. - This may mean that these three directives would be replaced by two completely different ones.
- In an ideal world we could remove the