update tags with new web references
[populate.git] / README.txt
1
2 PREAMBLE
3
4   The program is uncomplete (but work)
5   The program is more a Bash exercize then a application
6   
7 GOAL
8   Create a template system to produce multi-format/multi-language documents from a single
9   content file.
10   As test the template system is used to produce a curriculum vitae.
11
12 IDEA
13   The basic idea behind this program is the possibility to have three type of files:
14   - an infrastructural template (one for each format)
15   - a user-independent multi-language content template file
16   - a user-dependent multi-language content file
17   and combine them to produce all the output matrix [ formats X languages ] using a single file
18   as content description with all the languages inside.
19
20 USAGE
21   - copy cv_exa_mple.data to cv_<your-name>_<your-surname>.data
22   - edit it to describe your curriculum
23   - run ./populate.sh cv_<your-name>_<your-surname>
24   - at the end you will find
25       cv_<your-name>_<your-surname>.tex
26       cv_<your-name>_<your-surname>_eng.tex
27       cv_<your-name>_<your-surname>.htm
28       cv_<your-name>_<your-surname>_eng.htm
29
30 SUPPORTED FILE FORMATS
31   Currently html and latex are supported.
32
33 SUPPORTED LANGUAGES
34   populate.sh havn't limitation but the europecv module (included in the texlive-latex-extra package)
35   have some language limitation.
36
37 CHAR-SET SUPPORT
38   UTF-8 is the only supported charset.
39
40 FILE FORMAT
41   Simple tag
42     Definition:  "#T_<tagname>#"
43     Description: Each simple tag will be substitute by the content of T_<tagname> variable for the main
44                  language and of T_<tagname>_<lang> for the others languages; if the T_<tagname>_<lang>
45                  is not defined the program fault-back to the T_<tagname> var.
46
47   Row block 
48     Definition:  "##T_<blkname>:start## ... ##T_<blkname>:stop##"
49     Description: Each block will be replaced by N occurences of itself with valorized tags (see below
50                  for the policy to define N)
51
52   Indexed row tag
53     Definition:  (start of a block) ... "#T_<tagname>_X#" ... (stop of a block)
54     Description: Each indexed row tag is substitute with the T_<blkname>_<tagname>_1 variable in the first line,
55                  with the T_<blkname>_<tagname>_2 variable in the second and so on.
56                  The number of blocks row (N) is defined by the index of the variable associated with
57                  the first indexed row tag in the alphabetical order (in the group of index row tags
58                  of the current block).
59
60   Simple row tag
61     Definition:  (start of a block) ... "#T_<tagname>#" ... (stop of a block)
62     Description: Each simple row tag is substitute with the T_<blkname>_<tagname> variable for each line
63                  of the block.
64
65   Recursive tag
66     Definition: ..[#T_[#T_]]#T_<tagname>#[#[#]]..
67     Description: If a tag substitution produce a new tag this tag will be substitute with the relate var value.
68                  Recursive tags can be found in or out blocks.
69
70 CONTENT FORMAT
71   further then normal content you can use XML-like tags to specify minimal text attributes:
72     <b>...</b>      to set bold 
73     <i>...</i>      to set italic
74     <u>...</u>      to set underline
75     <url>...</url>  to set a text as url
76
77 REQUIREMENTS
78   Packages:
79     latex
80     pdflatex
81     texlive-latex-extra
82
83 UPGRADE YOUR .data FILE
84   to add entries to your document you can use something like:
85   for i in 3 2 1; do n=$((i + 1)) ; sed -i "s/\(^T_ESPROF_[^_]\+\)_${i}\([=_]\)/\1_${n}\2/g" cv_matteo_nastasi.data ; done