1
0
Fork 0

some utils and readme update

This commit is contained in:
Oscar Najera 2023-10-21 22:14:27 +02:00
parent f62d53b82e
commit e3146f494c
4 changed files with 97 additions and 87 deletions

View File

@ -14,7 +14,6 @@ The basic structure of an org file containing your CV is shown next.
put your foreseen job. put your foreseen job.
<div class="ox-hugo-table table table-striped"> <div class="ox-hugo-table table table-striped">
<div></div>
| Field | Description | | Field | Description |
|----------|----------------------------------------------------| |----------|----------------------------------------------------|
@ -47,10 +46,18 @@ put your foreseen job.
``` ```
You can use org-modes hierarchical structure to describe your CV. To make a 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, specific subtree an item describing an experience point (Job you have, degree
degree you pursued, etc.) you use the org properties drawer and with the you pursued, etc.) you use the org properties drawer and with the `:CV_ENV:
`:CV_ENV: cventry` property. You should also include the `FROM` and `TO` cventry` property. You should also include the `FROM` and `TO` properties
properties defining the span of the event, as `LOCATION` and `EMPLOYER`. defining the span of the entry, as well as `LOCATION` and `EMPLOYER`.
Because work isn't everything we do, it is more meaningful to label differently
the host of those other events like studies, events, certifications, etc. Thus
`HOST`, `ORGANIZATION`, `INSTITUTION`, `SCHOOL`, `EMPLOYER` or `EVENT` are all
equivalent and the first match in that order has precedence.
`DATE` is a shortcut for `FROM` and `TO` when you have a single date in mind
instead of a range. Both `FROM` and `TO` override `DATE`.
```org ```org
* Employement * Employement

View File

@ -12,7 +12,7 @@ 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 <https://github.com/Titan-C/moderncv.git> Feel free to use any or even your
personal fork for your desired use case. personal fork for your desired use case.
To configure the export for moderncv you need the addition options in your To configure the export for moderncv you need the additional options in your
org file. org file.
```org ```org
@ -120,27 +120,26 @@ Note that AwesomeCV uses the `fontspec` package, so you need to set `org-latex-c
In addition to the regular document attributes, the following are supported: In addition to the regular document attributes, the following are supported:
<div class="ox-hugo-table table table-striped"> <div class="ox-hugo-table table table-striped">
<div></div>
| Field | Description | | Field | Description |
|------------------|-------------------------------------------------------------| |-----------------|-------------------------------------------------------------|
| PHOTOSTYLE | Style of photo to use. Comma-separated values can include | | PHOTOSTYLE | Style of photo to use. Comma-separated values can include |
| | circle/rectangle,edge/noedge,left/right. | | | circle/rectangle,edge/noedge,left/right. |
| CVCOLOR | Color of highlights. | | CVCOLOR | Color of highlights. |
| STACKOVERFLOW | Stack overflow info, must be specified as "`ID username`" | | STACKOVERFLOW | Stack overflow info, must be specified as "`ID username`" |
| FONTDIR | Directory where the fonts can be found, defaults | | FONTDIR | Directory where the fonts can be found, defaults |
| | to `fonts/` (as in the standard AwesomeCV) | | | to `fonts/` (as in the standard AwesomeCV) |
| CVHIGHLIGHTS | Whether to colorize highlights. Defaults to true | | CVHIGHLIGHTS | Whether to colorize highlights. Defaults to true |
| QUOTE | Optional quote to include at the top of the CV | | QUOTE | Optional quote to include at the top of the CV |
| FIRSTNAME | First name to be shown in the CV. By default the first | | FIRSTNAME | First name to be shown in the CV. By default the first |
| | space-separated part of AUTHOR is used. | | | space-separated part of AUTHOR is used. |
| LASTNAME | Last name to be shown in the CV. By default the second | | LASTNAME | Last name to be shown in the CV. By default the second |
| | space-separated part of AUTHOR is used. | | | space-separated part of AUTHOR is used. |
| CVFOOTER\_LEFT | Text to include in the left footer. None by default | | 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_MIDDLE | Text to include in the middle footer. None by default. |
| CVFOOTER\_RIGHT | Text to include in the right footer. None by default. | | CVFOOTER_RIGHT | Text to include in the right footer. None by default. |
| LATEX\_TITLE | Text to use as the title section. \makecvheader by default. | | LATEX_TITLE | Text to use as the title section. \makecvheader by default. |
| | (Can specify \makecvheader[R] to justify to the right) | | | (Can specify \makecvheader[R] to justify to the right) |
</div> </div>
@ -152,24 +151,23 @@ including `cvemployer`, `cvskills`, `cvhonors` and `cvschool` (see full list bel
Some of these support additional property fields: Some of these support additional property fields:
<div class="ox-hugo-table table table-striped"> <div class="ox-hugo-table table table-striped">
<div></div>
| Field | Description | | Field | Description |
|------------|----------------------------------------------------------------------| |-----------|----------------------------------------------------------------------|
| FROM | Start date of the entry | | FROM | Start date of the entry |
| TO | End date of the entry | | TO | End date of the entry |
| DATE | Shortcut to specify both `FROM` and `TO` as the same date. | | DATE | Shortcut to specify both `FROM` and `TO` as the same date. |
| | Both `FROM` and `TO` override `DATE`. | | | Both `FROM` and `TO` override `DATE`. |
| EMPLOYER | Employer or organization, can also be specified | | EMPLOYER | Employer or organization, can also be specified |
| | as `ORGANIZATION`, `SCHOOL`, `EVENT` or `POSITION` (different | | | as `ORGANIZATION`, `SCHOOL`, `EVENT` or `POSITION` (different |
| | names make more sense depending on the type of environment) | | | names make more sense depending on the type of environment) |
| LABEL | In `cvsubentry` environments, adds the given text to the left | | LABEL | In `cvsubentry` environments, adds the given text to the left |
| | of the date range, can be used to add additional information | | | of the date range, can be used to add additional information |
| | to the entry. | | | to the entry. |
| RIGHT\_IMG | path to an image to include floating to the right of a `cventry`, | | 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. | | | a `cvsubentry` or `cvschool` entry. Meant to be used to show a logo. |
| PAGEBREAK | Causes a LaTeX `\clearpage` statement to be inserted in the | | PAGEBREAK | Causes a LaTeX `\clearpage` statement to be inserted in the |
| | exported output before the heading. | | | exported output before the heading. |
</div> </div>
@ -262,19 +260,18 @@ They will *not* be exported.
``` ```
<div class="ox-hugo-table table table-striped"> <div class="ox-hugo-table table table-striped">
<div></div>
| Field | Description | | Field | Description |
|------------------|----------------------------------------------------------------------------------| |-----------------|----------------------------------------------------------------------------------|
| RECIPIENT | Addressee E.g. Company Recruitment Team | | RECIPIENT | Addressee E.g. Company Recruitment Team |
| EMPLOYER | Company name | | EMPLOYER | Company name |
| LOCATION | Company address | | LOCATION | Company address |
| LETTER\_OPENING | Letter opening, E.g. Dear Ms./Mr./Dr. LastName | | LETTER_OPENING | Letter opening, E.g. Dear Ms./Mr./Dr. LastName |
| LETTER\_CLOSING | Letter closing, E.g. Yours Sincerely, | | LETTER_CLOSING | Letter closing, E.g. Yours Sincerely, |
| DATE | The date used for the letter, uses \\\today as default if unspecified | | DATE | The date used for the letter, uses \\\today as default if unspecified |
| DATEFORMAT | Specify an alternative date format for the letter header | | DATEFORMAT | Specify an alternative date format for the letter header |
| | E.g. %e %M %Y might provide 19 March 2021 | | | E.g. %e %M %Y might provide 19 March 2021 |
| LETTER\_ATTACHED | Attachments to the letter, will be listed at the bottom. E.g. "Curriculum Vitae" | | LETTER_ATTACHED | Attachments to the letter, will be listed at the bottom. E.g. "Curriculum Vitae" |
</div> </div>

View File

@ -50,22 +50,21 @@ today => today"
FROM-DATE -- TO-DATE FROM-DATE -- TO-DATE
in case TO-DATE is nil return Present. in case TO-DATE is nil return Present.
If both dates are the same, return just FROM-DATE" If both dates are the same, return just FROM-DATE"
(let ((from (when from-date (org-cv-utils-org-timestamp-to-shortdate from-date))) (let ((from (org-cv-utils-org-timestamp-to-shortdate from-date))
(to (if (not to-date) "Present" (to (if (not to-date) "Present"
(org-cv-utils-org-timestamp-to-shortdate to-date)))) (org-cv-utils-org-timestamp-to-shortdate to-date))))
(if (or (string= from to))
(if from from
(if (or (string= from to)) (concat from " -- " to))))
from
(concat from " -- " to))
"")))
(defun org-cv-utils--parse-cventry (headline info) (defun org-cv-utils--parse-cventry (headline info)
"Return alist describing the entry in HEADLINE. "Return alist describing the entry in HEADLINE.
INFO is a plist used as a communication channel." INFO is a plist used as a communication channel."
(let* ((title (org-export-data (org-element-property :title headline) info)) (let* ((title (org-export-data (org-element-property :title headline) info))
(date (org-element-property :DATE headline)) (date (org-element-property :DATE headline))
(from-date (or (org-element-property :FROM headline) date)) (from-date (or (org-element-property :FROM headline)
date
(user-error "No FROM property provided for cventry %s" title)))
(to-date (or (org-element-property :TO headline) date)) (to-date (or (org-element-property :TO headline) date))
(host (or (org-element-property :HOST headline) (host (or (org-element-property :HOST headline)
(org-element-property :ORGANIZATION headline) (org-element-property :ORGANIZATION headline)
@ -74,9 +73,7 @@ INFO is a plist used as a communication channel."
(org-element-property :EMPLOYER headline) (org-element-property :EMPLOYER headline)
(org-element-property :EVENT headline) ""))) (org-element-property :EVENT headline) "")))
`((title . ,title) `((title . ,title)
(from-date . ,(or from-date (date . , (org-cv-utils--format-time-window from-date to-date))
(error "No FROM property provided for cventry %s" title)))
(to-date . ,to-date)
(host . ,host) (host . ,host)
(location . ,(or (org-element-property :LOCATION headline) "")) (location . ,(or (org-element-property :LOCATION headline) ""))
(image . ,(org-element-property :IMAGE headline))))) (image . ,(org-element-property :IMAGE headline)))))

View File

@ -81,10 +81,19 @@ put your foreseen job.
#+END_SRC #+END_SRC
You can use org-modes hierarchical structure to describe your CV. To make a 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, specific subtree an item describing an experience point (Job you have, degree
degree you pursued, etc.) you use the org properties drawer and with the you pursued, etc.) you use the org properties drawer and with the =:CV_ENV:
=:CV_ENV: cventry= property. You should also include the =FROM= and =TO= cventry= property. You should also include the =FROM= and =TO= properties
properties defining the span of the event, as =LOCATION= and =EMPLOYER=. defining the span of the entry, as well as =LOCATION= and =EMPLOYER=.
Because work isn't everything we do, it is more meaningful to label differently
the host of those other events like studies, events, certifications, etc. Thus
=HOST=, =ORGANIZATION=, =INSTITUTION=, =SCHOOL=, =EMPLOYER= or =EVENT= are all
equivalent and the first match in that order has precedence.
=DATE= is a shortcut for =FROM= and =TO= when you have a single date in mind
instead of a range. Both =FROM= and =TO= override =DATE=.
#+BEGIN_SRC org :tangle workcontent.org #+BEGIN_SRC org :tangle workcontent.org
,* Employement ,* Employement
,** One job ,** One job
@ -124,7 +133,7 @@ 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 https://github.com/Titan-C/moderncv.git Feel free to use any or even your
personal fork for your desired use case. personal fork for your desired use case.
To configure the export for moderncv you need the addition options in your To configure the export for moderncv you need the additional options in your
org file. org file.
#+BEGIN_SRC org :tangle moderncv.org #+BEGIN_SRC org :tangle moderncv.org
# CV theme - options include: 'casual' (default), 'classic', 'oldstyle' and 'banking' # CV theme - options include: 'casual' (default), 'classic', 'oldstyle' and 'banking'
@ -253,9 +262,9 @@ Note that AwesomeCV uses the =fontspec= package, so you need to set =org-latex-c
| PHOTOSTYLE | Style of photo to use. Comma-separated values can include | | PHOTOSTYLE | Style of photo to use. Comma-separated values can include |
| | circle/rectangle,edge/noedge,left/right. | | | circle/rectangle,edge/noedge,left/right. |
| CVCOLOR | Color of highlights. | | CVCOLOR | Color of highlights. |
| STACKOVERFLOW | Stack overflow info, must be specified as "=ID username=" | | STACKOVERFLOW | Stack overflow info, must be specified as "=ID username=" |
| FONTDIR | Directory where the fonts can be found, defaults | | FONTDIR | Directory where the fonts can be found, defaults |
| | to =fonts/= (as in the standard AwesomeCV) | | | to =fonts/= (as in the standard AwesomeCV) |
| CVHIGHLIGHTS | Whether to colorize highlights. Defaults to true | | CVHIGHLIGHTS | Whether to colorize highlights. Defaults to true |
| QUOTE | Optional quote to include at the top of the CV | | QUOTE | Optional quote to include at the top of the CV |
| FIRSTNAME | First name to be shown in the CV. By default the first | | FIRSTNAME | First name to be shown in the CV. By default the first |
@ -275,22 +284,22 @@ including =cvemployer=, =cvskills=, =cvhonors= and =cvschool= (see full list bel
Some of these support additional property fields: Some of these support additional property fields:
#+attr_html: :class table table-striped #+attr_html: :class table table-striped
| Field | Description | | Field | Description |
|-----------+------------------------------------------------------------------| |-----------+----------------------------------------------------------------------|
| FROM | Start date of the entry | | FROM | Start date of the entry |
| TO | End date of the entry | | TO | End date of the entry |
| DATE | Shortcut to specify both =FROM= and =TO= as the same date. | | DATE | Shortcut to specify both =FROM= and =TO= as the same date. |
| | Both =FROM= and =TO= override =DATE=. | | | Both =FROM= and =TO= override =DATE=. |
| EMPLOYER | Employer or organization, can also be specified | | EMPLOYER | Employer or organization, can also be specified |
| | as =ORGANIZATION=, =SCHOOL=, =EVENT= or =POSITION= (different | | | as =ORGANIZATION=, =SCHOOL=, =EVENT= or =POSITION= (different |
| | names make more sense depending on the type of environment) | | | names make more sense depending on the type of environment) |
| LABEL | In =cvsubentry= environments, adds the given text to the left | | LABEL | In =cvsubentry= environments, adds the given text to the left |
| | of the date range, can be used to add additional information | | | of the date range, can be used to add additional information |
| | to the entry. | | | to the entry. |
| RIGHT_IMG | path to an image to include floating to the right of a =cventry=, | | 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. | | | a =cvsubentry= or =cvschool= entry. Meant to be used to show a logo. |
| PAGEBREAK | Causes a LaTeX =\clearpage= statement to be inserted in the | | PAGEBREAK | Causes a LaTeX =\clearpage= statement to be inserted in the |
| | exported output before the heading. | | | exported output before the heading. |
All the supported values of =CV_ENV= for CVs are described below. All the supported values of =CV_ENV= for CVs are described below.