deplate 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/AUTHORS.TXT +2 -1
- data/CHANGES.TXT +56 -211
- data/NEWS.TXT +15 -38
- data/VERSION.TXT +1 -1
- data/bin/deplate +0 -0
- data/bin/deplate.bat +0 -0
- data/etc/deplate.ini +11 -0
- data/lib/deplate/commands.rb +8 -3
- data/lib/deplate/common.rb +2 -2
- data/lib/deplate/core.rb +157 -45
- data/lib/deplate/css/article.css +19 -3
- data/lib/deplate/css/doc.css +770 -0
- data/lib/deplate/elements.rb +7 -7
- data/lib/deplate/ents/general-latin1.entities +100 -0
- data/lib/deplate/ents/general-utf-8.entities +252 -0
- data/lib/deplate/external.rb +3 -2
- data/lib/deplate/fmt/html.rb +12 -10
- data/lib/deplate/fmt/latex.rb +25 -14
- data/lib/deplate/fmt/plain.rb +4 -5
- data/lib/deplate/fmt/xhtml11m.rb +25 -0
- data/lib/deplate/formatter.rb +106 -32
- data/lib/deplate/input.rb +8 -7
- data/lib/deplate/lib/Makefile.config +11 -1
- data/lib/deplate/locale/de.latin1 +9 -0
- data/lib/deplate/macros.rb +23 -18
- data/lib/deplate/mod/code-coderay.rb +45 -0
- data/lib/deplate/mod/code-gvim.rb +3 -2
- data/lib/deplate/mod/code-gvim71.rb +3 -6
- data/lib/deplate/mod/code-highlight.rb +3 -2
- data/lib/deplate/mod/entities-decode.rb +72 -0
- data/lib/deplate/mod/entities-encode.rb +50 -0
- data/lib/deplate/mod/guesslanguage.rb +3 -3
- data/lib/deplate/mod/html-jsmath.rb +5 -5
- data/lib/deplate/mod/html-mathml.rb +40 -0
- data/lib/deplate/mod/latex-styles.rb +21 -11
- data/lib/deplate/mod/makefile.rb +21 -11
- data/lib/deplate/mod/markup-1.rb +3 -3
- data/lib/deplate/mod/particle-math.rb +15 -6
- data/lib/deplate/particles.rb +2 -2
- data/lib/deplate/regions.rb +50 -15
- data/lib/deplate/template.rb +7 -2
- data/lib/deplate/themes/presentation.html/css/highstep.css +29 -0
- data/lib/deplate/themes/presentation.html/css/presentation.css +206 -0
- data/lib/deplate/themes/presentation.html/css/website.css +281 -0
- data/lib/deplate/themes/presentation.html/prelude.txt +19 -0
- data/lib/deplate/themes/presentation.html/resources/spacer.png +0 -0
- data/lib/deplate/themes/presentation.html/templates/presentation.html +26 -0
- data/lib/deplate/themes/presentation.html/theme.ini +20 -0
- data/man/man1/deplate.1 +147 -73
- metadata +67 -40
- data/bin/deplate.exy +0 -192
data/AUTHORS.TXT
CHANGED
@@ -11,7 +11,7 @@ Contributors:
|
|
11
11
|
[[http://odur.let.rug.nl/~kleiweg/postscript/#conversion]]).
|
12
12
|
Fritz Heinrichmeyer :: html-website.rb formatter,
|
13
13
|
htmlslides-navbar-fh module.
|
14
|
-
Frederik Eaton :: Suggestions
|
14
|
+
Frederik Eaton :: Suggestions concerning inline latex support.
|
15
15
|
Csaba Henk :: Nested elements in lists (patch).
|
16
16
|
Andrea Rota :: blosxom plugin, generic textpipe perl module.
|
17
17
|
Chen Shuo :: Posted some modifications on
|
@@ -19,6 +19,7 @@ Contributors:
|
|
19
19
|
were the basis for several improvements.
|
20
20
|
Lucas Wilcox :: ''dvipng'' support for rendering LaTeX snippets.
|
21
21
|
Jeff Barczewski :: ''linkmap'' module.
|
22
|
+
Kelly Hunter :: Patches for the latex formatter.
|
22
23
|
|
23
24
|
Credits:
|
24
25
|
- The manual-directory contains ASCIIMathML.js by
|
data/CHANGES.TXT
CHANGED
@@ -1,216 +1,61 @@
|
|
1
|
-
This version contains an incompatible change (with respect to 0.8)
|
2
|
-
concerning the use of arg/ARG and xarg/XARG macros/commands.
|
3
|
-
|
4
1
|
Current issues are listed in TODO.TXT.
|
5
2
|
|
6
|
-
deplate 0.8.
|
7
|
-
*
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
*
|
17
|
-
|
18
|
-
|
19
|
-
*
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
*
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
*
|
29
|
-
|
30
|
-
|
31
|
-
*
|
32
|
-
|
33
|
-
*
|
34
|
-
|
35
|
-
*
|
36
|
-
|
37
|
-
*
|
38
|
-
|
39
|
-
|
40
|
-
*
|
41
|
-
|
42
|
-
|
43
|
-
*
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
*
|
48
|
-
|
49
|
-
*
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
*
|
60
|
-
|
61
|
-
|
62
|
-
* core.rb, commands.rb: Abbreviations are now formatter-sensible and
|
63
|
-
resetted like normal options.
|
64
|
-
* elements.rb: A whitespace line is a valid region delimiter.
|
65
|
-
* regions.rb, elements.rb, define.rb: Deprecated the use of @regNote
|
66
|
-
in regions (use qualified arguments instead). This way we should
|
67
|
-
sooner or later be able to smoothly unify regions and commands.
|
68
|
-
Adequately named arguments will be added later on. For the moment,
|
69
|
-
stick to the old (now deprecated) syntax.
|
70
|
-
* commands.rb: The #INCLUDE command can now set any variable for the
|
71
|
-
included document.
|
72
|
-
* core.rb: The environment variables are accessible from within a
|
73
|
-
deplate document through the env[] variable (a hash).
|
74
|
-
* elements.rb: Enabled the use of hashes & arrays in conditional
|
75
|
-
statements. If '':'' is allowed, options now now take precedence
|
76
|
-
over variables.
|
77
|
-
* html.rb: Support for news feed integration via the ''newsFeed''
|
78
|
-
variable.
|
79
|
-
* particles.rb: If ''useParentSuffix'' is set, use the source files
|
80
|
-
extension when expanding wiki references as fallback strategy.
|
81
|
-
* formatter.rb, external.rb: Applied a patch by Lucas Wilcox for
|
82
|
-
support of dvipng to render inline LaTeX snippets. (Set ''ltxSfx''
|
83
|
-
to png to make this the default.)
|
84
|
-
* screenplay.rb, screenplay.css: Preliminary support for writing
|
85
|
-
screenplays.
|
86
|
-
* core.rb, input.rb: Fixed problem with using many input formats
|
87
|
-
within one document. (Some input classes probably still need some
|
88
|
-
plumbing.)
|
89
|
-
* input.rb: Catch malformed arguments (containing ! or =) that could
|
90
|
-
cause the "parser" to hang.
|
91
|
-
* regions.rb: The #For region is by default passed through the
|
92
|
-
template filter too.
|
93
|
-
* commands.rb: Fixed problem when temporarily setting variables with
|
94
|
-
#INC.
|
95
|
-
* elements.rb, input.rb: If commentsShow is set, display comments in
|
96
|
-
the output.
|
97
|
-
* elements.rb, particles.rb: Commands, regions, and macros now use
|
98
|
-
arguments defined globally in the variable args@NAME[] (a hash).
|
99
|
-
* variables.rb: Variables with upper-case letter names cannot be set
|
100
|
-
by the user.
|
101
|
-
* commands.rb: The #INCLUDE command sets the variable INCLUDED to
|
102
|
-
the command's source file name.
|
103
|
-
* macros.rb: ''{nop}'' macro (a placeholder).
|
104
|
-
* elements.rb: FIX: exception when adding a caption with the #OPT
|
105
|
-
command etc.
|
106
|
-
* particles.rb: FIX: Error for wiki links referring to an interwiki
|
107
|
-
per se.
|
108
|
-
* elements.rb: Accept task lists of the form ''#A'' or ''#3'' for
|
109
|
-
compatibility with vim's viki plugin.
|
110
|
-
* screenplay.rb: Set screenplayStyle for different section styles;
|
111
|
-
currently 2 styles are known, tentatively named: hollywood (which
|
112
|
-
can be used to get output similar to screenplay.tex), austria (which
|
113
|
-
formats section headings like "LOCATION AUSSEN/TAG").
|
114
|
-
* formatter.rb: Improved simple_bibtex_parser().
|
115
|
-
* macros.rb: New ''~''/''mark1st'' macros: mark a text's first
|
116
|
-
occurrence, i.e. put the text in upper case letters.
|
117
|
-
* macros.rb: New macros: downcase, upcase, capitalize
|
118
|
-
* commands.rb: FIX: Problem with word abbreviations that were
|
119
|
-
followed by international word characters (eg umlauts).
|
120
|
-
* input.rb: EXPERIMENTAL: Elements may now have a ''tag''
|
121
|
-
attribute/option (a comma-separated list). You can thus filter
|
122
|
-
elements that should be included in the output by setting the
|
123
|
-
''efilter'' variable (a comma-separated list). ''any'' matches any
|
124
|
-
untagged element. If the variable ''styledTags'' is set, tags will
|
125
|
-
automatically add style attributes (style=''TAG#{tagname}'') too.
|
126
|
-
* commands.rb: In order to further inconsistent naming conventions,
|
127
|
-
#PROP, and #PP are now synonyms for #OPT.
|
128
|
-
* core.rb: Changed the way some string variables are split into a
|
129
|
-
list. As a general rule, most lists now are comma-separated lists.
|
130
|
-
One exception is ''KEYWORDS'', which is separated by semi-colons as
|
131
|
-
many journals follow a ''major, minor'' scheme for keywords.
|
132
|
-
Separators in list elements can be escaped by backslashes. For the
|
133
|
-
moment, deplate tries to be smart and detect old-style separators.
|
134
|
-
* commands.rb: New ''#PUSH'' command, which is basically the same as
|
135
|
-
''#VAR add=,: ...''.
|
136
|
-
* html.rb: INCOMPATIBLE CHANGE: The ''css'' variable now has to be
|
137
|
-
separated by commas.
|
138
|
-
* input.rb: Respect tags defined in the global variable ''tag'' --
|
139
|
-
which, e.g., can be defined as argument to the ''#INCLUDE'' command
|
140
|
-
what would the tag all elements included with this command with the
|
141
|
-
specified tag(s).
|
142
|
-
* common.rb: Arguments for specific types of elements can be stored
|
143
|
-
in a global hash variable.
|
144
|
-
E.g. ''#VAR: $ElementHeading[tag]=heading'' will tag all headings as
|
145
|
-
"heading". The variable name is ''classname.split(/::/)[-2..-1].join''.
|
146
|
-
* macros.rb: New eprop macro. Set container element properties.
|
147
|
-
* input.rb: EXPERIMENTAL: The variable ''pfilter'' can be used to
|
148
|
-
filter particles.
|
149
|
-
* core.rb: #clean_file_name (renamed to #clean_name) now returns a
|
150
|
-
properly encoded filename.
|
151
|
-
* html.rb: FIX: Make sure the labels used in the index are properly
|
152
|
-
encoded.
|
153
|
-
* elements.rb: The text of TODO notes (''+++'') is printed out
|
154
|
-
during conversion.
|
155
|
-
* core.rb: "mod -MODULE" in a deplate.ini file will remove MODULE
|
156
|
-
from the list of (previously) required modules.
|
157
|
-
* regions.rb: ''#Write file=-'' will write/print to STDOUT.
|
158
|
-
* messages.rb: Don't reset document encoding defined as variable.
|
159
|
-
* latex.rb: Define 'book', 'memoir', 'scrbook', 'report', 'scrreprt'
|
160
|
-
as book classes (that use a ''\\chapter{}'' command). Users can use
|
161
|
-
the bookClass variable to define additional book classes or set the
|
162
|
-
variable to true.
|
163
|
-
* screenplay.rb: Dialog lines are automatically tagged with
|
164
|
-
Name_speaks and can be filtered using the efilter variable.
|
165
|
-
* formatter.rb: When wrapping text, a space is added to lines that
|
166
|
-
will be continued on the next line (for compatibility with vim's
|
167
|
-
:set fo+=w).
|
168
|
-
* code-gvim71.rb: Modified version of the code-gvim module that
|
169
|
-
works with newer versions of vim's 2html. (This requires hpricot to
|
170
|
-
be installed.)
|
171
|
-
* play.rb, play.css: Renamed ''screenplay.*'' to ''play.*''.
|
172
|
-
* All files: Changed contact e-mail address.
|
173
|
-
* rdoc.rb, input.rb, template.rb: Unset input-related options in
|
174
|
-
template inherited from the master object in order to make sure the
|
175
|
-
input filter is template.
|
176
|
-
* rdoc.rb: Fixed description class.
|
177
|
-
* latex.rb: Clean style names.
|
178
|
-
* formatter.rb: Load after files for related formatters, too.
|
179
|
-
* messages.rb: Load messages for related formatters, too.
|
180
|
-
* latex-dramatist.rb: Output for the dramatist latex package (should
|
181
|
-
be used with the play input filter).
|
182
|
-
* regions.rb: Run R with ''q(runLast=FALSE)''.
|
183
|
-
* latex.rb: Made typeareaDIV a synonym for DIV (because upper-case
|
184
|
-
variables are considered as constants).
|
185
|
-
* latex.rb: typeareaDIV_, DIV_ set the DIV parameter as document
|
186
|
-
class option; typeareaDIV and DIV as package option
|
187
|
-
* core.rb: Delete excluded elements (via efilter) from listings.
|
188
|
-
They are unprocessed when formatted. (This still doesn't work yet
|
189
|
-
with lists though as lists are still excluded when the last item
|
190
|
-
doesn't match.)
|
191
|
-
* linkmap.rb: New module contributed by Jeff Barczewski.
|
192
|
-
* particles.rb: A $ in extended wiki names sets rel=nofollow
|
193
|
-
\(proposed by by Jeff Barczewski).
|
194
|
-
* plain.rb: List URLs only once; reuse the index if necessary.
|
195
|
-
* core.rb: Use level of a container's top heading not of the
|
196
|
-
container itself. (In some situations, the top heading currently
|
197
|
-
gets lost, though. As a result, some auto-generated index entries
|
198
|
-
may get lost.)
|
199
|
-
* regions.txt: Renamed Deplate::Regions::Doc to
|
200
|
-
Deplate::Regions::Var.
|
201
|
-
* regions.txt: Generic regions.
|
202
|
-
* core.rb, counters.rb, common.rb: When increasing a counter, save a
|
203
|
-
reference to the current element.
|
204
|
-
* html.rb: In the index, always use the headings level.
|
205
|
-
* guesslanguage.rb: Guess only once.
|
206
|
-
* elements.rb, input.rb: When unifying elements, join tag lists.
|
207
|
-
Apply efilter before unification, this solved the problem with lists
|
208
|
-
that were filtered entirely when the last item didn't match.
|
209
|
-
* latex.rb: Escape & in hrefs.
|
210
|
-
* linkmap.rb: Format name as plain text; don't patch classes but
|
211
|
-
replace their entries in the input filter with subclasses.
|
212
|
-
* html.rb: cssInclude option: The contents of the CSS file will be
|
213
|
-
included in the output.
|
3
|
+
deplate 0.8.2
|
4
|
+
* entities-decode.rb: New module that defines &#NNN; entities.
|
5
|
+
* entities-encode.rb: New experimental module that encodes special
|
6
|
+
characters as entities.
|
7
|
+
* latex.rb, core.rb: Enable page! parameter for the #MAKETITLE
|
8
|
+
command for latex output (thanks Hunter Kelly)
|
9
|
+
* html.rb: Fixed inconsistent handling of the css option (sometimes
|
10
|
+
a css suffix was required, sometimes not)
|
11
|
+
* latex.rb: Add unicode option to hyperref's package options if
|
12
|
+
encoding is utf8 (K Hunter)
|
13
|
+
* core.rb (#in_working_dir): If cwd is false, don't change the
|
14
|
+
directory.
|
15
|
+
* input.rb: The arguments of #parse() have slightly changed.
|
16
|
+
* commands.rb: The #CAPTION command takes an optional argument
|
17
|
+
"extended!" that will case the caption to be parsed with all defined
|
18
|
+
particles. Be aware though that autogenerated index markers and the
|
19
|
+
like could break output. Certain other particles don't work either
|
20
|
+
which is why this is disabled by default.
|
21
|
+
* elements.rb: #set_caption takes an extra argument to define
|
22
|
+
whether the text should be parsed with the full set of rules.
|
23
|
+
* html.rb, format_table(): table_args() isn't call via
|
24
|
+
format_particle().
|
25
|
+
* latex-styles.rb: The font size is set inside of the table
|
26
|
+
environment (as proposed by retnuh).
|
27
|
+
* makefile.rb: Additional OFLAGS option (other flags).
|
28
|
+
* formatter.rb: @format_advice_blacklist: Disable advices for
|
29
|
+
certain agents/methods.
|
30
|
+
* latex-styles.rb: Disable standard-processing of the style property
|
31
|
+
for tables.
|
32
|
+
* core.rb: ''allow=all'' pseudo state, run in "unsafe" mode and
|
33
|
+
allow everything.
|
34
|
+
* html-mathml.rb: Experimental support for mathml (requires to use
|
35
|
+
xhtml11m output format; you'll have to install the mathml package by
|
36
|
+
KURODA Hiraku: http://mathml.rubyforge.org).
|
37
|
+
* makefile: Made xhtml a "first-class" :) goal.
|
38
|
+
* macros.rb: The math macro takes a block! argument that makes it
|
39
|
+
wrap the text in ''\\[latex\\]''.
|
40
|
+
* particle-math.rb: Support for ''$$formula$$'' for block formulas.
|
41
|
+
* xhtml11m.rb: An uninformed hack on top of xhtml10t to support
|
42
|
+
mathml.
|
43
|
+
* makefile: xhtml now defaults to xhtml11m.
|
44
|
+
* code-coderay.rb: Support for the ruby syntax markup library
|
45
|
+
coderay http://coderay.rubychan.de
|
46
|
+
* latex.rb: format_quote(): Body gets wrapped twice.
|
47
|
+
TBD: Check if this is a more subtle problem. See
|
48
|
+
https://sourceforge.net/forum/message.php?msg_id=5041702
|
49
|
+
* formatter.rb: New variables ''wrapMargin'' and
|
50
|
+
''wrapMarginInner''.
|
51
|
+
* core.rb: Some support for themes (aka collections of an ini file,
|
52
|
+
css files, templates, a library, and a prelude)
|
53
|
+
* regions.rb: Fixed problem with R & newer version of xtable.
|
54
|
+
* core.rb: The rule for creating "clean" file names has slightly
|
55
|
+
changed again (_ becomes __ and not _5F)
|
56
|
+
* elements.rb: register_heading(): use @id instead of id in order to
|
57
|
+
prevent double cleansing.
|
58
|
+
* core.rb: Resource files for themes.
|
214
59
|
|
215
60
|
|
216
61
|
# vim: ft=changelog:tw=72
|
data/NEWS.TXT
CHANGED
@@ -1,48 +1,25 @@
|
|
1
|
-
* deplate 0.8.
|
1
|
+
* deplate 0.8.2
|
2
2
|
|
3
|
-
This release incorporates the usual set of bugfixes
|
3
|
+
This release incorporates the usual set of bugfixes and general improvements.
|
4
4
|
|
5
5
|
Incompatible changes:
|
6
|
-
|
7
|
-
- the locale-related modules were renamed to lang-* (in some cases underscores and dashes were transposed)
|
8
|
-
- most lists (e.g. css variable) are now comma-separated lists
|
9
|
-
- many regions (e.g. #For, #Def*) are first processed by the template filter before being actually expanded
|
10
|
-
- The use of @regNote (the part after the colon) will be deprecated in some future version; deplate currently displays a warning message that isn't always useful/correct and should currently be ignored in certain cases
|
6
|
+
* Fixed inconsistent handling of the css option with regard to the suffix
|
11
7
|
|
12
8
|
Improvements:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- The environment variables are accessible from within a deplate document through the env[] variable (a hash).
|
21
|
-
- ''$ClassName[property]'' variable to set properties for all elements of a certain class.
|
22
|
-
- Can filter elements or particles according to the ''tag'' property by setting the efilter and/or pfilter variables.
|
23
|
-
- The #INCLUDE command can set variables for the included document.
|
24
|
-
- A whitespace line can be a valid region delimiter
|
25
|
-
|
26
|
-
New input format:
|
27
|
-
- play
|
28
|
-
|
29
|
-
New output format:
|
30
|
-
- latex-dramatist
|
31
|
-
|
32
|
-
New commands:
|
33
|
-
- #PUSH
|
34
|
-
- #PP, #PROP (synonyms for #OPT)
|
35
|
-
|
36
|
-
New macros:
|
37
|
-
- mark1st, ~
|
38
|
-
- downcase, upcase, capitalize
|
39
|
-
- eprop
|
9
|
+
* Themes (aka collections of css files, templates etc.)
|
10
|
+
* Enable page! parameter for the #MAKETITLE command for latex output
|
11
|
+
* The #CAPTION command takes an optional argument "extended!" that
|
12
|
+
will case the caption to be parsed with all defined particles.
|
13
|
+
* allow=all -> run in "unsafe" mode
|
14
|
+
* hackish support for xhtml11/mathml
|
15
|
+
* particle-math: Support for ''$$formula$$'' for block formulas.
|
40
16
|
|
41
17
|
New modules:
|
42
|
-
-
|
43
|
-
-
|
44
|
-
|
45
|
-
|
18
|
+
* entities-decode.rb: support for &#NNN; entities.
|
19
|
+
* entities-encode.rb: Encodes special characters as entities.
|
20
|
+
* html-mathml.rb: Experimental support for mathml (requires the
|
21
|
+
mathml package by KURODA Hiraku: http://mathml.rubyforge.org).
|
22
|
+
* code-coderay.rb: Support for coderay http://coderay.rubychan.de
|
46
23
|
|
47
24
|
For other changes please see the CHANGES.TXT.
|
48
25
|
|
data/VERSION.TXT
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2final-3103
|
data/bin/deplate
CHANGED
File without changes
|
data/bin/deplate.bat
CHANGED
File without changes
|
data/etc/deplate.ini
CHANGED
@@ -68,6 +68,8 @@
|
|
68
68
|
; class :: The document class; used in LaTeX (= document class) or
|
69
69
|
; HTML output (= CSS) (STRING)
|
70
70
|
|
71
|
+
; codeLineNumbers :: Display line numbers (BOOLEAN, default: false)
|
72
|
+
|
71
73
|
; codeStyle :: The default style used for formatting code regions;
|
72
74
|
; depends on the backend (STRING)
|
73
75
|
|
@@ -227,6 +229,11 @@
|
|
227
229
|
|
228
230
|
; verbatimMargin :: Wrap verbatim regions at this width (NUMBER)
|
229
231
|
|
232
|
+
; wrapMargin :: Outer wrap margin; set to 0 to prevent text wrap
|
233
|
+
; (NUMBER, default: 72)
|
234
|
+
|
235
|
+
; wrapMarginInner :: Inner wrap margin (NUMBER, default: 66)
|
236
|
+
|
230
237
|
|
231
238
|
; *** Output Format
|
232
239
|
; **** HTML
|
@@ -425,6 +432,10 @@
|
|
425
432
|
; the output (BOOLEAN, default: false)
|
426
433
|
|
427
434
|
|
435
|
+
; **** entities
|
436
|
+
; entities :: List of entities names (COMMA-SEPARATED LIST, default:
|
437
|
+
; general)
|
438
|
+
|
428
439
|
; **** html-headings-navbar
|
429
440
|
; headingsNavbarMaxLevel :: Add heading up to this level to the
|
430
441
|
; navigation bar (NUMBER)
|
data/lib/deplate/commands.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
5
|
# @Created: 08-Mai-2004.
|
6
|
-
# @Last Change:
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2008-07-06.
|
7
|
+
# @Revision: 0.1309
|
8
8
|
|
9
9
|
# Description:
|
10
10
|
#
|
@@ -114,7 +114,7 @@ class Deplate::Command::CAP < Deplate::Command
|
|
114
114
|
Deplate::Core.log("%s: %s" % [cmd, text], :debug, src)
|
115
115
|
last = array.last
|
116
116
|
if last
|
117
|
-
last.set_caption(Deplate::CaptionDef.new(text, args, src))
|
117
|
+
last.set_caption(Deplate::CaptionDef.new(text, args, src), false, args['extended'])
|
118
118
|
else
|
119
119
|
Deplate::Core.log(["Cannot attach caption to", nil], :error, src)
|
120
120
|
end
|
@@ -529,6 +529,11 @@ end
|
|
529
529
|
class Deplate::Command::MAKETITLE < Deplate::Command
|
530
530
|
register_as 'MAKETITLE'
|
531
531
|
set_formatter :format_title
|
532
|
+
def setup_command
|
533
|
+
if @args['page']
|
534
|
+
@deplate.variables['classOptions'] = Deplate::Core.push_value(@deplate.variables['classOptions'], 'titlepage')
|
535
|
+
end
|
536
|
+
end
|
532
537
|
end
|
533
538
|
|
534
539
|
|
data/lib/deplate/common.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
5
|
# @Created: 02-Aug-2004.
|
6
|
-
# @Last Change: 2007-
|
7
|
-
# @Revision: 0.
|
6
|
+
# @Last Change: 2007-12-27.
|
7
|
+
# @Revision: 0.903
|
8
8
|
#
|
9
9
|
# = Description:
|
10
10
|
# Misc classes
|
data/lib/deplate/core.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# @Website: http://deplate.sf.net/
|
4
4
|
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
5
|
# @Created: 24-Feb-2004.
|
6
|
-
# @Last Change:
|
6
|
+
# @Last Change: 2008-07-06.
|
7
7
|
|
8
8
|
require 'uri'
|
9
9
|
require 'optparse'
|
@@ -26,10 +26,10 @@ module Deplate; end
|
|
26
26
|
class Deplate::Core
|
27
27
|
extend Forwardable
|
28
28
|
|
29
|
-
Version = '0.8.
|
29
|
+
Version = '0.8.2'
|
30
30
|
# VersionSfx = 'a'
|
31
31
|
VersionSfx = 'final'
|
32
|
-
MicroRev = '
|
32
|
+
MicroRev = '3103'
|
33
33
|
|
34
34
|
if ENV['HOME']
|
35
35
|
CfgDir = File.join(ENV['HOME'].gsub(/\\/, '/'), '.deplate')
|
@@ -50,11 +50,13 @@ MESSAGE
|
|
50
50
|
end
|
51
51
|
LibDir = File.dirname(__FILE__)
|
52
52
|
DataDir = File.join(Config::CONFIG['datadir'], 'deplate')
|
53
|
+
EtcDirs = []
|
53
54
|
# FileCache = File.join(CfgDir, 'file_list.dat')
|
54
55
|
FileCache = nil
|
55
56
|
|
56
57
|
# If true, don't load user configuration files.
|
57
|
-
@vanilla
|
58
|
+
@vanilla = false
|
59
|
+
@@vanilla = false
|
58
60
|
|
59
61
|
# see #log_valid_condition?
|
60
62
|
@log_treshhold = 4
|
@@ -177,11 +179,11 @@ MESSAGE
|
|
177
179
|
key, val = keyval.split(/\s*=\s*/)
|
178
180
|
case key
|
179
181
|
when 'vanilla'
|
180
|
-
@vanilla = true
|
182
|
+
@@vanilla = @vanilla = true
|
181
183
|
end
|
182
184
|
end
|
183
185
|
end
|
184
|
-
modules, formatters, csss, templates, input_defs, meta_fmts = collect_standard
|
186
|
+
modules, formatters, themes, csss, templates, input_defs, meta_fmts = collect_standard
|
185
187
|
|
186
188
|
options = deplate_options
|
187
189
|
opts = OptionParser.new do |opts|
|
@@ -386,7 +388,7 @@ MESSAGE
|
|
386
388
|
end
|
387
389
|
|
388
390
|
opts.on('-t', '--template NAME', String, 'Template to use') do |str|
|
389
|
-
if templates.
|
391
|
+
if @@templates.has_key?(str) or File.exist?(str)
|
390
392
|
log("options.template = #{@@templates[str]}")
|
391
393
|
options.template = str
|
392
394
|
else
|
@@ -394,10 +396,14 @@ MESSAGE
|
|
394
396
|
exit 5
|
395
397
|
end
|
396
398
|
end
|
397
|
-
|
399
|
+
|
400
|
+
opts.on('--theme THEME', String, 'Theme to use') do |value|
|
401
|
+
set_theme(options, value)
|
402
|
+
end
|
403
|
+
|
398
404
|
opts.on('--[no-]vanilla', 'Ignore user configuration') do |bool|
|
399
405
|
log("options.vanilla = #{bool}")
|
400
|
-
|
406
|
+
@@vanilla = bool
|
401
407
|
end
|
402
408
|
|
403
409
|
opts.on('-x', '--allow-ruby [RUBY SAFE]', Integer,
|
@@ -419,8 +425,8 @@ MESSAGE
|
|
419
425
|
log("options.allow_external = #{bool}")
|
420
426
|
end
|
421
427
|
|
422
|
-
opts.separator
|
423
|
-
opts.separator
|
428
|
+
opts.separator ' '
|
429
|
+
opts.separator 'LaTeX Formatter:'
|
424
430
|
|
425
431
|
opts.on('--[no-]pdf', 'Prepare for use with pdf(la)tex') do |bool|
|
426
432
|
log("options.pdftex = #{bool}")
|
@@ -428,31 +434,37 @@ MESSAGE
|
|
428
434
|
options.variables['pdfOutput'] = true
|
429
435
|
end
|
430
436
|
|
431
|
-
opts.separator ''
|
437
|
+
opts.separator ' '
|
432
438
|
opts.separator 'Available input defintions:'
|
433
439
|
opts.separator input_defs.join(', ')
|
434
440
|
|
435
|
-
opts.separator ''
|
441
|
+
opts.separator ' '
|
436
442
|
opts.separator 'Available formatters:'
|
437
443
|
opts.separator formatters.join(', ')
|
438
444
|
|
439
|
-
opts.separator ''
|
445
|
+
opts.separator ' '
|
440
446
|
opts.separator 'Available metadata formats:'
|
441
447
|
opts.separator meta_fmts.join(', ')
|
442
448
|
|
443
|
-
opts.separator ''
|
449
|
+
opts.separator ' '
|
444
450
|
opts.separator 'Available modules:'
|
445
451
|
opts.separator modules.join(', ')
|
446
452
|
|
447
|
-
|
453
|
+
if themes
|
454
|
+
opts.separator ' '
|
455
|
+
opts.separator 'Available themes:'
|
456
|
+
opts.separator themes.join(', ')
|
457
|
+
end
|
458
|
+
|
459
|
+
opts.separator ' '
|
448
460
|
opts.separator 'Available css files:'
|
449
461
|
opts.separator csss.join(', ')
|
450
462
|
|
451
|
-
opts.separator ''
|
463
|
+
opts.separator ' '
|
452
464
|
opts.separator 'Available templates:'
|
453
465
|
opts.separator templates.join(', ')
|
454
466
|
|
455
|
-
opts.separator ''
|
467
|
+
opts.separator ' '
|
456
468
|
opts.separator 'Other Options:'
|
457
469
|
|
458
470
|
opts.on('--debug [LEVEL]', Integer, 'Show debug messages') do |v|
|
@@ -507,10 +519,12 @@ MESSAGE
|
|
507
519
|
exit 0
|
508
520
|
end
|
509
521
|
end
|
522
|
+
options.opts = opts
|
510
523
|
|
511
524
|
@@command_line_args = args.dup
|
512
|
-
|
525
|
+
unless options.ini_command_line_arguments.empty?
|
513
526
|
args += options.ini_command_line_arguments
|
527
|
+
options.ini_command_line_arguments = []
|
514
528
|
end
|
515
529
|
options.files = opts.parse!(args)
|
516
530
|
|
@@ -567,7 +581,7 @@ MESSAGE
|
|
567
581
|
|
568
582
|
# load general user config
|
569
583
|
options.cfg ||= ['config.rb', CfgDir]
|
570
|
-
unless
|
584
|
+
unless @@vanilla
|
571
585
|
user_config(options, *options.cfg)
|
572
586
|
user_setup(options) if defined?(user_setup)
|
573
587
|
end
|
@@ -600,6 +614,9 @@ MESSAGE
|
|
600
614
|
# Check whether a certain action is allowed
|
601
615
|
def is_allowed?(options, ids, args={})
|
602
616
|
arr = options.allow
|
617
|
+
if arr.include?('all')
|
618
|
+
return true
|
619
|
+
end
|
603
620
|
case ids
|
604
621
|
when String
|
605
622
|
ids = Deplate::Core.split_list(ids, ',', '; ')
|
@@ -616,6 +633,32 @@ MESSAGE
|
|
616
633
|
logger.log(['No permission', ids.join(', ')], :anyway) if logger
|
617
634
|
return false
|
618
635
|
end
|
636
|
+
|
637
|
+
|
638
|
+
def set_theme(options, name)
|
639
|
+
theme_dir = @@themes[name]
|
640
|
+
if theme_dir
|
641
|
+
EtcDirs.unshift(theme_dir)
|
642
|
+
collect_theme(@@css, theme_dir, 'css', '.css')
|
643
|
+
collect_theme(@@templates, theme_dir, 'templates', '')
|
644
|
+
for resource in Dir[File.join(theme_dir, 'resources', '*')]
|
645
|
+
options.resources << [resource, false]
|
646
|
+
end
|
647
|
+
prelude = File.join(theme_dir, 'prelude.txt')
|
648
|
+
if File.exist?(prelude)
|
649
|
+
options.prelude.concat(File.readlines(prelude).map {|l| l.chomp})
|
650
|
+
end
|
651
|
+
if is_allowed?(options, 's')
|
652
|
+
read_ini_file(options, File.join(theme_dir, 'theme.ini'))
|
653
|
+
unless options.ini_command_line_arguments.empty?
|
654
|
+
options.opts.parse!(options.ini_command_line_arguments)
|
655
|
+
end
|
656
|
+
end
|
657
|
+
else
|
658
|
+
log(['Unknown theme', theme], :error)
|
659
|
+
end
|
660
|
+
end
|
661
|
+
|
619
662
|
|
620
663
|
# Read CfgDir/deplate.ini
|
621
664
|
#
|
@@ -650,7 +693,6 @@ MESSAGE
|
|
650
693
|
# comment
|
651
694
|
next
|
652
695
|
elsif line =~ /^(-\S+)(\s+(.*?)\s*)?$/
|
653
|
-
options.ini_command_line_arguments ||= []
|
654
696
|
options.ini_command_line_arguments << $1
|
655
697
|
options.ini_command_line_arguments << $3 if $3
|
656
698
|
elsif line =~ /^\s*allow\s+(.+?)\s*$/
|
@@ -790,7 +832,7 @@ MESSAGE
|
|
790
832
|
# file:: Either a file name or a directory; if it is a
|
791
833
|
# directory, all ruby files in that directory will be loaded
|
792
834
|
def user_config(options, file, dir=nil)
|
793
|
-
unless
|
835
|
+
unless @@vanilla
|
794
836
|
if dir
|
795
837
|
dirs = [dir]
|
796
838
|
dirs << File.join(current_pwd, 'deplate.rc') if is_allowed?(options, 'r')
|
@@ -820,7 +862,10 @@ MESSAGE
|
|
820
862
|
# inherit:: A OpenStruct; if provided, reuse it
|
821
863
|
def deplate_options(inherit=nil)
|
822
864
|
options = inherit || OpenStruct.new
|
865
|
+
options.ini_command_line_arguments ||= []
|
823
866
|
options.modules ||= []
|
867
|
+
options.resources ||= []
|
868
|
+
options.prelude ||= []
|
824
869
|
options.clean ||= true
|
825
870
|
options.force ||= true
|
826
871
|
options.css ||= []
|
@@ -910,6 +955,7 @@ MESSAGE
|
|
910
955
|
if data['version'] == Deplate::Core.microversion
|
911
956
|
modules, @@modules = data['modules']
|
912
957
|
formatters, @@formatters = data['formatters']
|
958
|
+
themes, @@themes = data['themes']
|
913
959
|
csss, @@css = data['css']
|
914
960
|
templates, @@templates = data['templates']
|
915
961
|
input_defs, @@input_defs = data['input']
|
@@ -925,6 +971,10 @@ MESSAGE
|
|
925
971
|
formatters, @@formatters = collect_deplate_options('formatters','fmt')
|
926
972
|
input_defs, @@input_defs = collect_deplate_options('input', 'input')
|
927
973
|
meta_fmts, @@metadata_formats = collect_deplate_options('metadata', 'metadata')
|
974
|
+
themes, @@themes = collect_deplate_options('themes', 'themes',
|
975
|
+
:directories => true,
|
976
|
+
:suffix => '',
|
977
|
+
:rc => true)
|
928
978
|
csss, @@css = collect_deplate_options('css', 'css',
|
929
979
|
:suffix => '.css',
|
930
980
|
:rc => true)
|
@@ -938,6 +988,7 @@ MESSAGE
|
|
938
988
|
'version' => Deplate::Core.microversion,
|
939
989
|
'modules' => [modules, @@modules],
|
940
990
|
'formatters' => [formatters, @@formatters],
|
991
|
+
'themes' => [themes, @@themes],
|
941
992
|
'css' => [csss, @@css],
|
942
993
|
'templates' => [templates, @@templates],
|
943
994
|
'input' => [input_defs, @@input_defs],
|
@@ -947,7 +998,7 @@ MESSAGE
|
|
947
998
|
Deplate::Core.log(['Create file cache', FileCache])
|
948
999
|
end
|
949
1000
|
end
|
950
|
-
return modules, formatters, csss, templates, input_defs, meta_fmts
|
1001
|
+
return modules, formatters, themes, csss, templates, input_defs, meta_fmts
|
951
1002
|
end
|
952
1003
|
|
953
1004
|
# This is the actual logging method. Every log message should pass
|
@@ -1051,6 +1102,14 @@ MESSAGE
|
|
1051
1102
|
end
|
1052
1103
|
end
|
1053
1104
|
|
1105
|
+
def push_value(var, value, sep=',')
|
1106
|
+
if var and !var.empty?
|
1107
|
+
[var, sep, value].join
|
1108
|
+
else
|
1109
|
+
value
|
1110
|
+
end
|
1111
|
+
end
|
1112
|
+
|
1054
1113
|
def escape_characters(text, args)
|
1055
1114
|
esc = args[:esc] || args[:escape] || args['esc'] || args['escape'] || ''
|
1056
1115
|
ebs = args[:escapebackslash] || args['escapebackslash'] || args['template'] || 0
|
@@ -1121,13 +1180,18 @@ MESSAGE
|
|
1121
1180
|
# Return an encoded name
|
1122
1181
|
def clean_name(text, args={})
|
1123
1182
|
if text
|
1124
|
-
|
1125
|
-
chars
|
1183
|
+
chars = args[:chars] || '[:cntrl:].+*:"?<>|&\\\/'
|
1184
|
+
chars += replacement = args[:replacement] || '_'
|
1126
1185
|
if (extrachars = args[:extra])
|
1127
1186
|
chars += extrachars
|
1128
1187
|
end
|
1129
1188
|
text.gsub(/[#{chars}]/) do |text|
|
1130
|
-
|
1189
|
+
case text
|
1190
|
+
when replacement
|
1191
|
+
replacement * 2
|
1192
|
+
else
|
1193
|
+
replacement + "%02X" % text[0]
|
1194
|
+
end
|
1131
1195
|
end
|
1132
1196
|
end
|
1133
1197
|
end
|
@@ -1153,6 +1217,15 @@ MESSAGE
|
|
1153
1217
|
end
|
1154
1218
|
end
|
1155
1219
|
|
1220
|
+
def ensure_suffix(name, suffix)
|
1221
|
+
ext = File.extname(name)
|
1222
|
+
if ext != suffix
|
1223
|
+
return name + suffix
|
1224
|
+
else
|
1225
|
+
return name
|
1226
|
+
end
|
1227
|
+
end
|
1228
|
+
|
1156
1229
|
# Return the output directory for +fname+
|
1157
1230
|
def get_out_name_dir(fname, options)
|
1158
1231
|
if options.recurse_hierarchy
|
@@ -1221,6 +1294,13 @@ MESSAGE
|
|
1221
1294
|
end
|
1222
1295
|
end
|
1223
1296
|
|
1297
|
+
def collect_theme(hash, theme_dir, subdir, suffix)
|
1298
|
+
for f in Dir[File.join(theme_dir, subdir, "*#{suffix}")]
|
1299
|
+
name = File.basename(f, suffix)
|
1300
|
+
hash[name] = f
|
1301
|
+
end
|
1302
|
+
end
|
1303
|
+
|
1224
1304
|
# Collect all available modules/parts/libraries etc. Check the
|
1225
1305
|
# file system and the "builtin" modules (e.g., when using the
|
1226
1306
|
# win32 exerb distribution).
|
@@ -1228,27 +1308,28 @@ MESSAGE
|
|
1228
1308
|
suffix = args[:suffix] || '.rb'
|
1229
1309
|
use_rc = args[:rc] || false
|
1230
1310
|
hash = {}
|
1231
|
-
for d in library_directories(use_rc, subdir)
|
1232
|
-
collect_deplate_options_in_hash(hash, suffix, Dir[File.join(d, '*%s' % suffix)])
|
1311
|
+
for d in library_directories(@@vanilla, use_rc, [subdir])
|
1312
|
+
collect_deplate_options_in_hash(hash, suffix, Dir[File.join(d, '*%s' % suffix)], nil, args)
|
1233
1313
|
end
|
1234
1314
|
|
1235
1315
|
builtin = "builtin_#{id}"
|
1236
1316
|
if id and respond_to?(builtin)
|
1237
1317
|
files = send(builtin)
|
1238
1318
|
# files.collect! {|f| "#{f}.rb"}
|
1239
|
-
collect_deplate_options_in_hash(hash, suffix, files, File.join('deplate', subdir))
|
1319
|
+
collect_deplate_options_in_hash(hash, suffix, files, File.join('deplate', subdir), args)
|
1240
1320
|
end
|
1241
1321
|
|
1242
1322
|
return hash.keys.sort, hash
|
1243
1323
|
end
|
1244
1324
|
|
1245
|
-
# Return an array of
|
1325
|
+
# Return an array of directories that could contain deplate
|
1246
1326
|
# files.
|
1247
|
-
def library_directories(use_rc,
|
1327
|
+
def library_directories(vanilla, use_rc, subdirs)
|
1248
1328
|
@library_directories ||= {}
|
1249
1329
|
acc = []
|
1250
1330
|
dirs = [DataDir, LibDir]
|
1251
|
-
dirs.unshift(CfgDir) unless
|
1331
|
+
dirs.unshift(CfgDir) unless vanilla
|
1332
|
+
dirs.unshift(*EtcDirs)
|
1252
1333
|
dirs.unshift(File.join(current_pwd, 'deplate.rc')) if use_rc
|
1253
1334
|
for subdir in subdirs
|
1254
1335
|
unless @library_directories[subdir]
|
@@ -1307,9 +1388,9 @@ MESSAGE
|
|
1307
1388
|
end
|
1308
1389
|
|
1309
1390
|
# Collect files in +array+ in +hash+.
|
1310
|
-
def collect_deplate_options_in_hash(hash, suffix, array, subdir=nil)
|
1391
|
+
def collect_deplate_options_in_hash(hash, suffix, array, subdir=nil, args={})
|
1311
1392
|
for m in array
|
1312
|
-
unless !subdir and File.directory?(m)
|
1393
|
+
unless !subdir and !args[:directories] and File.directory?(m)
|
1313
1394
|
key = File.basename(m, suffix) || m
|
1314
1395
|
hash[key] ||= subdir ? File.join(subdir, m) : m
|
1315
1396
|
hash[key] ||= subdir ? File.join(subdir, m) : m
|
@@ -1477,6 +1558,8 @@ MESSAGE
|
|
1477
1558
|
# A open structure that holds this instance's options.
|
1478
1559
|
attr_reader :options
|
1479
1560
|
|
1561
|
+
attr_reader :vanilla
|
1562
|
+
|
1480
1563
|
# The formatter this instance of deplate uses.
|
1481
1564
|
attr_reader :formatter
|
1482
1565
|
|
@@ -1549,7 +1632,7 @@ MESSAGE
|
|
1549
1632
|
@options = Deplate::Core.deplate_options(args[:options])
|
1550
1633
|
@sources = args[:sources] || @options.files
|
1551
1634
|
@dest = args[:dest] || @options.out || ''
|
1552
|
-
@vanilla = args[:vanilla] || false
|
1635
|
+
@vanilla = @@vanilla || args[:vanilla] || false
|
1553
1636
|
|
1554
1637
|
# set_safe
|
1555
1638
|
|
@@ -1905,9 +1988,13 @@ MESSAGE
|
|
1905
1988
|
|
1906
1989
|
# Read input file, process, write the output if writeFile is true.
|
1907
1990
|
def go(writeFile=true)
|
1991
|
+
process_prelude
|
1908
1992
|
read_file
|
1909
1993
|
process_document
|
1910
|
-
|
1994
|
+
if writeFile
|
1995
|
+
body_write
|
1996
|
+
copy_resources
|
1997
|
+
end
|
1911
1998
|
print_endmessages
|
1912
1999
|
end
|
1913
2000
|
|
@@ -1927,13 +2014,19 @@ MESSAGE
|
|
1927
2014
|
# Evaluate block in the working directory; take care
|
1928
2015
|
# of the auxiliaryDirSuffix variable
|
1929
2016
|
def in_working_dir(cwd=nil, &block)
|
1930
|
-
pwd
|
1931
|
-
cwd
|
1932
|
-
|
1933
|
-
begin
|
2017
|
+
pwd = Dir.pwd
|
2018
|
+
cwd = auxiliary_dirname(true, true) if cwd.nil?
|
2019
|
+
if cwd.empty? or cwd == false or pwd == cwd
|
1934
2020
|
block.call
|
1935
|
-
|
1936
|
-
|
2021
|
+
else
|
2022
|
+
log(['CHDIR ->', cwd], :debug)
|
2023
|
+
Dir.chdir(cwd)
|
2024
|
+
begin
|
2025
|
+
block.call
|
2026
|
+
ensure
|
2027
|
+
log(['CHDIR <-', pwd], :debug)
|
2028
|
+
Dir.chdir(pwd)
|
2029
|
+
end
|
1937
2030
|
end
|
1938
2031
|
end
|
1939
2032
|
|
@@ -2024,7 +2117,7 @@ MESSAGE
|
|
2024
2117
|
end
|
2025
2118
|
end
|
2026
2119
|
files << File.join(args['subdir'] || 'lib', fname)
|
2027
|
-
files = Deplate::Core.library_directories(true,
|
2120
|
+
files = Deplate::Core.library_directories(@vanilla, true, files)
|
2028
2121
|
for fn in files
|
2029
2122
|
if Deplate::Core.is_file?(fn)
|
2030
2123
|
log(['File in lib', fn])
|
@@ -2610,6 +2703,18 @@ MESSAGE
|
|
2610
2703
|
rv || @dest
|
2611
2704
|
end
|
2612
2705
|
|
2706
|
+
|
2707
|
+
def copy_resources
|
2708
|
+
@options.resources.each do |src, anyway|
|
2709
|
+
res = File.basename(src)
|
2710
|
+
dest = auxiliary_filename(res, true)
|
2711
|
+
if anyway or !File.exist?(dest)
|
2712
|
+
copy_file(src, dest)
|
2713
|
+
end
|
2714
|
+
end
|
2715
|
+
end
|
2716
|
+
|
2717
|
+
|
2613
2718
|
# Make sure +dir+ exists (create it if it doesn't).
|
2614
2719
|
def ensure_dir_exists(dir)
|
2615
2720
|
Deplate::Core.ensure_dir_exists(dir, @options)
|
@@ -2931,8 +3036,8 @@ MESSAGE
|
|
2931
3036
|
end
|
2932
3037
|
|
2933
3038
|
# Parse +text+ and return a formatted string.
|
2934
|
-
def parse_and_format(container, text, alt=true, excluded=
|
2935
|
-
t = parse(container, text, alt, excluded)
|
3039
|
+
def parse_and_format(container, text, alt=true, excluded=nil)
|
3040
|
+
t = parse(container, text, alt, :excluded => excluded)
|
2936
3041
|
return format_particles(t)
|
2937
3042
|
end
|
2938
3043
|
|
@@ -3066,6 +3171,13 @@ MESSAGE
|
|
3066
3171
|
end
|
3067
3172
|
end
|
3068
3173
|
|
3174
|
+
def process_prelude
|
3175
|
+
prelude = @options.prelude
|
3176
|
+
unless prelude.empty?
|
3177
|
+
include_stringarray(prelude, @accum_elements, nil, "[prelude]")
|
3178
|
+
end
|
3179
|
+
end
|
3180
|
+
|
3069
3181
|
# Read the file
|
3070
3182
|
def read_file(sources=@sources)
|
3071
3183
|
for f in sources
|