deplate 0.7.3 → 0.8

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.
Files changed (160) hide show
  1. data/AUTHORS.TXT +3 -0
  2. data/CHANGES.TXT +248 -175
  3. data/LICENSE.TXT +0 -0
  4. data/NEWS.TXT +28 -24
  5. data/README.TXT +0 -0
  6. data/TODO.TXT +174 -88
  7. data/VERSION.TXT +1 -1
  8. data/bin/deplate +0 -0
  9. data/bin/deplate.bat +0 -0
  10. data/etc/deplate.ini +91 -3
  11. data/lib/action_view/helpers/deplate.rb +45 -0
  12. data/lib/deplate.rb +6 -1
  13. data/lib/deplate/abstract-class.rb +0 -0
  14. data/lib/deplate/bib.rb +576 -0
  15. data/lib/deplate/builtin.rb +0 -0
  16. data/lib/deplate/cache.rb +55 -5
  17. data/lib/deplate/commands.rb +346 -183
  18. data/lib/deplate/common.rb +209 -48
  19. data/lib/deplate/converter.rb +12 -6
  20. data/lib/deplate/core.rb +777 -378
  21. data/lib/deplate/counters.rb +254 -0
  22. data/lib/deplate/css/article.css +4 -3
  23. data/lib/deplate/css/deplate.css +121 -5
  24. data/lib/deplate/css/heading-navbar.css +0 -0
  25. data/lib/deplate/css/layout-deplate-print.css +0 -0
  26. data/lib/deplate/css/layout-deplate.css +0 -0
  27. data/lib/deplate/css/sans-serif.css +0 -0
  28. data/lib/deplate/css/serif-e.css +0 -0
  29. data/lib/deplate/css/serif-rel.css +0 -0
  30. data/lib/deplate/css/serif.css +9 -3
  31. data/lib/deplate/css/slides.css +0 -0
  32. data/lib/deplate/css/tabbar-left.css +0 -0
  33. data/lib/deplate/css/tabbar-right-ie.css +3 -9
  34. data/lib/deplate/css/tabbar-right.css +51 -18
  35. data/lib/deplate/css/tabbar-top.css +7 -1
  36. data/lib/deplate/css/tabbar.css +0 -0
  37. data/lib/deplate/css/text-sans-serif.css +0 -0
  38. data/lib/deplate/css/text-serif.css +0 -0
  39. data/lib/deplate/define.rb +183 -177
  40. data/lib/deplate/deplate-string.rb +82 -0
  41. data/lib/deplate/docbook.rb +236 -128
  42. data/lib/deplate/elements.rb +584 -417
  43. data/lib/deplate/etc.rb +163 -101
  44. data/lib/deplate/external.rb +42 -11
  45. data/lib/deplate/fmt/dbk-article-4.1.2.rb +0 -0
  46. data/lib/deplate/fmt/dbk-article.rb +0 -0
  47. data/lib/deplate/fmt/dbk-book.rb +0 -0
  48. data/lib/deplate/fmt/dbk-ref.rb +3 -3
  49. data/lib/deplate/fmt/dbk-slides.rb +0 -0
  50. data/lib/deplate/fmt/dbk-snippet.rb +0 -0
  51. data/lib/deplate/fmt/html-snippet.rb +0 -0
  52. data/lib/deplate/fmt/html.rb +783 -550
  53. data/lib/deplate/fmt/htmlsite.rb +192 -199
  54. data/lib/deplate/fmt/htmlslides.rb +0 -0
  55. data/lib/deplate/fmt/htmlwebsite.rb +3 -3
  56. data/lib/deplate/fmt/latex-snippet.rb +0 -0
  57. data/lib/deplate/fmt/latex.rb +242 -83
  58. data/lib/deplate/fmt/null.rb +32 -0
  59. data/lib/deplate/fmt/php.rb +4 -4
  60. data/lib/deplate/fmt/phpsite.rb +6 -5
  61. data/lib/deplate/fmt/plain.rb +160 -106
  62. data/lib/deplate/fmt/template.rb +0 -0
  63. data/lib/deplate/fmt/xhtml10t.rb +0 -0
  64. data/lib/deplate/formatter-snippet.rb +0 -0
  65. data/lib/deplate/formatter.rb +613 -301
  66. data/lib/deplate/input.rb +202 -142
  67. data/lib/deplate/input/deplate-headings.rb +4 -6
  68. data/lib/deplate/input/deplate-restricted.rb +15 -9
  69. data/lib/deplate/input/deplate.rb +2 -4
  70. data/lib/deplate/input/rdoc.rb +39 -38
  71. data/lib/deplate/input/template.rb +0 -0
  72. data/lib/deplate/lib/Makefile.config +29 -0
  73. data/lib/deplate/lib/latex/deplate.sty +54 -0
  74. data/lib/deplate/lib/latex/highlight-extra.sty +0 -0
  75. data/lib/deplate/lib/latex/highlight-typical.sty +0 -0
  76. data/lib/deplate/lib/php/page-comment.inc.php +216 -0
  77. data/lib/deplate/lib/tabmenu.js +0 -0
  78. data/lib/deplate/locale/de.latin1 +155 -17
  79. data/lib/deplate/locale/ru.koi8-r +0 -0
  80. data/lib/deplate/locale/zh_cn.gb2312 +0 -0
  81. data/lib/deplate/macros.rb +133 -82
  82. data/lib/deplate/messages.rb +6 -4
  83. data/lib/deplate/metadata.rb +0 -0
  84. data/lib/deplate/metadata/marshal.rb +0 -0
  85. data/lib/deplate/metadata/xml.rb +0 -0
  86. data/lib/deplate/metadata/yaml.rb +0 -0
  87. data/lib/deplate/mod/anyword.rb +3 -3
  88. data/lib/deplate/mod/babelfish.rb +4 -4
  89. data/lib/deplate/mod/code-gvim.rb +8 -4
  90. data/lib/deplate/mod/code-highlight.rb +3 -3
  91. data/lib/deplate/mod/colored-log.rb +0 -0
  92. data/lib/deplate/mod/de.rb +2 -2
  93. data/lib/deplate/mod/en.rb +0 -0
  94. data/lib/deplate/mod/endnotes.rb +0 -0
  95. data/lib/deplate/mod/fr.rb +0 -0
  96. data/lib/deplate/mod/html-asciimath.rb +0 -0
  97. data/lib/deplate/mod/html-deplate-button.rb +0 -0
  98. data/lib/deplate/mod/html-headings-navbar.rb +5 -13
  99. data/lib/deplate/mod/html-jsmath.rb +39 -0
  100. data/lib/deplate/mod/html-obfuscate-email.rb +3 -3
  101. data/lib/deplate/mod/html-sidebar.rb +0 -0
  102. data/lib/deplate/mod/htmlslides-navbar-fh.rb +3 -3
  103. data/lib/deplate/mod/iconv.rb +0 -0
  104. data/lib/deplate/mod/imgurl.rb +4 -4
  105. data/lib/deplate/mod/inlatex-compound.rb +7 -10
  106. data/lib/deplate/mod/koma.rb +0 -0
  107. data/lib/deplate/mod/latex-emph-table-head.rb +0 -0
  108. data/lib/deplate/mod/latex-styles.rb +7 -4
  109. data/lib/deplate/mod/latex-verbatim-small.rb +0 -0
  110. data/lib/deplate/mod/makefile.rb +23 -7
  111. data/lib/deplate/mod/mark-external-urls.rb +3 -3
  112. data/lib/deplate/mod/markup-1-warn.rb +10 -10
  113. data/lib/deplate/mod/markup-1.rb +0 -0
  114. data/lib/deplate/mod/navbar-png.rb +24 -8
  115. data/lib/deplate/mod/noindent.rb +0 -0
  116. data/lib/deplate/mod/numpara.rb +0 -0
  117. data/lib/deplate/mod/particle-math.rb +4 -4
  118. data/lib/deplate/mod/php-extra.rb +46 -6
  119. data/lib/deplate/mod/pstoedit.rb +0 -0
  120. data/lib/deplate/mod/recode.rb +0 -0
  121. data/lib/deplate/mod/ru_koi8-r.rb +0 -0
  122. data/lib/deplate/mod/smart-dash.rb +26 -0
  123. data/lib/deplate/mod/smiley.rb +69 -7
  124. data/lib/deplate/mod/soffice.rb +0 -0
  125. data/lib/deplate/mod/symbols-latin1.rb +14 -23
  126. data/lib/deplate/mod/symbols-od-utf-8.rb +5 -3
  127. data/lib/deplate/mod/symbols-plain.rb +5 -35
  128. data/lib/deplate/mod/symbols-sgml.rb +8 -9
  129. data/lib/deplate/mod/symbols-utf-8.rb +8 -9
  130. data/lib/deplate/mod/symbols-xml.rb +5 -9
  131. data/lib/deplate/mod/syntax-region-alt.rb +5 -5
  132. data/lib/deplate/mod/utf8.rb +0 -0
  133. data/lib/deplate/mod/validate-html.rb +0 -0
  134. data/lib/deplate/mod/xmlrpc.rb +0 -0
  135. data/lib/deplate/mod/zh-cn-autospace.rb +18 -20
  136. data/lib/deplate/mod/zh-cn.rb +4 -6
  137. data/lib/deplate/nukumi2.rb +71 -0
  138. data/lib/deplate/once-method.rb +0 -0
  139. data/lib/deplate/output.rb +19 -21
  140. data/lib/deplate/particles.rb +178 -116
  141. data/lib/deplate/regions.rb +99 -58
  142. data/lib/deplate/skeletons.rb +122 -0
  143. data/lib/deplate/structured.rb +164 -106
  144. data/lib/deplate/template.rb +67 -43
  145. data/lib/deplate/templates/html-doc.html +0 -0
  146. data/lib/deplate/templates/html-left-tabbar-js.html +0 -0
  147. data/lib/deplate/templates/html-left-tabbar.html +0 -0
  148. data/lib/deplate/templates/html-tabbar-right-pcomments.php +22 -0
  149. data/lib/deplate/templates/html-tabbar-right-step.html +24 -0
  150. data/lib/deplate/templates/html-tabbar-right-table.html +0 -0
  151. data/lib/deplate/templates/html-tabbar-right.html +2 -4
  152. data/lib/deplate/templates/html-tabbar-top.html +0 -9
  153. data/lib/deplate/templates/html-tabbar.html +0 -0
  154. data/lib/deplate/variables.rb +127 -0
  155. data/lib/deplate/wiki-markup.rb +99 -33
  156. data/lib/deplate/xml.rb +18 -18
  157. data/lib/deplate/zh-cn.rb +0 -0
  158. data/lib/ps2ppm.rb +0 -0
  159. data/man/man1/deplate.1 +564 -474
  160. metadata +201 -186
File without changes
@@ -19,8 +19,8 @@ Abbildungsverzeichnis
19
19
  List of Tables
20
20
  Tabellenverzeichnis
21
21
 
22
- p.\\
23
- S.\\
22
+ p.\
23
+ S.\
24
24
 
25
25
  see
26
26
  siehe
@@ -79,11 +79,71 @@ ob der Verweis tats
79
79
 
80
80
 
81
81
 
82
+ ################################## Bibliography
83
+
84
+ Ed.
85
+ Hg.
86
+
87
+ Eds.
88
+ Hg.
89
+
90
+ Edition
91
+ Auflage
92
+
93
+ Chapter
94
+ Kapitel
95
+
96
+ Available online at:
97
+ Online verf�gbar unter:
98
+
99
+ Available online at (%s):
100
+ Online verf�gbar unter (letzter Zugriff am: %s):
101
+
102
+ January
103
+ Januar
104
+
105
+ February
106
+ Februar
107
+
108
+ March
109
+ M�rz
110
+
111
+ April
112
+ April
113
+
114
+ May
115
+ Mai
116
+
117
+ June
118
+ Juni
119
+
120
+ July
121
+ Juli
122
+
123
+ August
124
+ August
125
+
126
+ September
127
+ September
128
+
129
+ October
130
+ Oktober
131
+
132
+ November
133
+ November
134
+
135
+ December
136
+ Dezember
137
+
138
+
82
139
  ################################## Messages in the log
83
140
 
84
141
  Already required package with different options
85
142
  LaTeX-Package wurde bereits mit anderen Optionen angefordert
86
143
 
144
+ Anonymous
145
+ Anonym
146
+
87
147
  Argument parse error
88
148
  Fehler beim Aufschl�sseln der Argumente
89
149
 
@@ -114,12 +174,18 @@ Kann
114
174
  Can't copy css file
115
175
  Kann CSS Datei nicht kopieren
116
176
 
177
+ Can't include remote images in current document
178
+ Dieses Dokument kann keine entfernten Bilder beinhalten
179
+
117
180
  Can't parse date
118
181
  Kann Datumsangabe nicht aufschl�sseln
119
182
 
120
183
  Can't refer to id
121
184
  Kann nicht auf ID verweisen
122
185
 
186
+ Cancel
187
+ Abbrechen
188
+
123
189
  Clip is nil, which is quite strange and most likely deplate's error but as I haven't had the time yet to track this down this error still occurs.
124
190
  Das Textst�ck ist nil, was ziemlich seltsam und vermutlich ein wirrer Fehler in der Programmlogik ist
125
191
 
@@ -138,15 +204,21 @@ Code: Du musst evtl. die Stildefinition ins Ausgabeverzeichnis kopieren
138
204
  Command
139
205
  Kommando
140
206
 
207
+ Command already defined
208
+ Kommando existiert bereits
209
+
210
+ Comment
211
+ Kommentar
212
+
141
213
  Conflicting arguments
142
214
  Widerspr�chliche Argumente
143
215
 
144
- Conversion if Inline LaTeX failed
145
- Fehler bei der Konvertierung eines LaTeX-Fragments
146
-
147
216
  Copy css file
148
217
  Kopiere CSS Datei
149
218
 
219
+ Copy file
220
+ Kopiere Datei
221
+
150
222
  Creating directory
151
223
  Erzeuge Verzeichnis
152
224
 
@@ -197,6 +269,9 @@ Wurde weggelassen!
197
269
  Dropping
198
270
  Wird weggelassen
199
271
 
272
+ E-Mail
273
+ E-Mail
274
+
200
275
  Element already has a caption
201
276
  Element hat bereits eine �berschrift
202
277
 
@@ -236,6 +311,9 @@ Da sollte etwas einer anderen Klasse sein
236
311
  File not found
237
312
  Datei nicht gefunden
238
313
 
314
+ File already exists
315
+ Datei ist bereits vorhanden
316
+
239
317
  Files exist! Using
240
318
  Bereits vorhandene Datei wird wiederverwendet
241
319
 
@@ -297,17 +375,26 @@ Internal error
297
375
  Interner Programmfehler
298
376
 
299
377
  Internal error: Bad log text
300
- Programmfehler: Schlecht definierter Protokolleintrag
378
+ Interner Programmfehler: Schlecht definierter Protokolleintrag
379
+
380
+ Internal error: No @elt
381
+ Interner Programmfehler: Kein @elt
301
382
 
302
- Internal error: no @elt
303
- Programmfehler: Kein @elt
383
+ Internal error: No ID
384
+ Interner Programmfehler: Keine ID
304
385
 
305
386
  Internal error in #output_file_name
306
- Programmfehler in #output_file_name
387
+ Interner Programmfehler in #output_file_name
307
388
 
308
- Invalid id
389
+ Internal error: Unknown level
390
+ Interner Programmfehler: Unbekannte Abschnittsnummer
391
+
392
+ Invalid ID
309
393
  Ung�ltige ID
310
394
 
395
+ Invoking method failed
396
+ Fehler bei Methodenaufruf
397
+
311
398
  Is no file
312
399
  Ist keine Datei
313
400
 
@@ -320,6 +407,9 @@ Fehler beim Laden von Programmmodul
320
407
  Loading
321
408
  Lade
322
409
 
410
+ Macro already defined
411
+ Makro existiert bereits
412
+
323
413
  Malformed command
324
414
  Fehlerhafter Befehl
325
415
 
@@ -359,6 +449,9 @@ Ung
359
449
  Missing arguments
360
450
  Fehlendes Argument
361
451
 
452
+ Name
453
+ Name
454
+
362
455
  Negative indentation level
363
456
  Negatives Einr�ckniveau
364
457
 
@@ -380,16 +473,16 @@ Kein Argument
380
473
  No bib entry type given
381
474
  Fehlender BIBTEX-Eintragstyp
382
475
 
383
- No clip-id given
384
- Fehlende Textst�ck-ID
385
-
386
476
  No element given
387
477
  Fehlendes Blockelement
388
478
 
389
- No footnote id
479
+ No filename
480
+ Fehlender Dateiname
481
+
482
+ No footnote ID
390
483
  Fehlende Fu�noten-ID
391
484
 
392
- No id given
485
+ No ID given
393
486
  Keine ID
394
487
 
395
488
  No input! Skip
@@ -404,7 +497,7 @@ Fehlender Ausgabeort f
404
497
  No more input on STDIN
405
498
  Keine weitere Eingabe auf STDIN
406
499
 
407
- No object with that id
500
+ No object with that ID
408
501
  Unbekannte Objekt-ID
409
502
 
410
503
  No or unknown formatter
@@ -416,9 +509,15 @@ Keine Ausgabedatei
416
509
  No pattern specified
417
510
  Fehlendes Muster
418
511
 
512
+ No permission
513
+ Fehlende Berechtigung
514
+
419
515
  No programm name given!
420
516
  Fehlender Programmname
421
517
 
518
+ No separator
519
+ Fehlendes Trennungszeichen
520
+
422
521
  No slot
423
522
  Fehlende Ausgabeposition
424
523
 
@@ -428,6 +527,9 @@ Fehlende Angabe einer Schablone
428
527
  Not yet implemented!
429
528
  Noch nicht implementiert!
430
529
 
530
+ Nothing to register
531
+ Kein Element, um es zu registrieren
532
+
431
533
  Object has no label
432
534
  Objekt hat keine Marke
433
535
 
@@ -481,10 +583,13 @@ Verweis auf unbekannte Marke
481
583
  Regexp error when parsing
482
584
  Regexp-Fehler bei der Textanalyse
483
585
 
586
+ Region already defined
587
+ Region existiert bereits
588
+
484
589
  Register heading
485
590
  Registriere �berschrift
486
591
 
487
- Register id
592
+ Register ID
488
593
  Registriere ID
489
594
 
490
595
  Require failed
@@ -535,6 +640,9 @@ Einrichten der Ausgabeformatierung
535
640
  Setting up text scanner
536
641
  Einrichten des Einlesemoduls
537
642
 
643
+ Setting variable
644
+ Setze Variable
645
+
538
646
  Should be excluded
539
647
  Soll nicht eingelesen werden
540
648
 
@@ -559,6 +667,12 @@ Text hat sich ge
559
667
  Source not found; assume that output is okay
560
668
  Kein Quelltext gefunden; nehme an, dass die Ausgabe aktuell ist
561
669
 
670
+ Subject
671
+ Betreff
672
+
673
+ Submit
674
+ Senden
675
+
562
676
  Table: Can't join with above cell
563
677
  Tabelle: Kann Zelle nicht mit der dar�berliegenden vereinen
564
678
 
@@ -580,6 +694,12 @@ Unbekannte Marke
580
694
  Undefined slot
581
695
  Unbekannte Ausgabeposition
582
696
 
697
+ Unexpected argument
698
+ Unerwartetes Argument
699
+
700
+ Unexpected number of output files
701
+ Unerwartete Anzahl von Ausgabedateien
702
+
583
703
  Unexpected R output (Please check the output for errors!)
584
704
  Unerwartete Ausgabe von R (Bitte pr�fe die Ausgabedatei auf Fehler!)
585
705
 
@@ -595,6 +715,9 @@ Unbekanntes Textst
595
715
  Unknown command
596
716
  Unbekanntes Kommando
597
717
 
718
+ Unknown counter
719
+ Unbekannter Z�hler
720
+
598
721
  Unknown doc variable
599
722
  Unbekannte Variable
600
723
 
@@ -610,15 +733,27 @@ Unbekanntes Ausgabeformat
610
733
  Unknown formatting agent
611
734
  Unbekannter Formatierungsagent
612
735
 
736
+ Unknown ID
737
+ Unbekannte Kennung
738
+
739
+ Unknown indentation mode
740
+ Unbekannter Einr�ckungsmodus
741
+
613
742
  Unknown input format
614
743
  Unbekanntes Eingabeformat
615
744
 
616
745
  Unknown InterWiki name
617
746
  Unbekannter InterWiki-Name
618
747
 
748
+ Unknown list
749
+ Unbekannte Liste
750
+
619
751
  Unknown LIST type
620
752
  Unbekannter Typ f�r LIST
621
753
 
754
+ Unknown list type
755
+ Unbekannter Listentyp
756
+
622
757
  Unknown macro
623
758
  Unbekanntes Makro
624
759
 
@@ -634,6 +769,9 @@ Unbekannte Regionenklasse
634
769
  Unknown service
635
770
  Unbekannter Dienst
636
771
 
772
+ Unknown skeleton
773
+ Unbekannte Textschablone
774
+
637
775
  Unknown smiley
638
776
  Unbekannter Smiley
639
777
 
File without changes
File without changes
@@ -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: 25-M�r-2004.
6
- # @Last Change: 01-Nov-2005.
7
- # @Revision: 0.1104
6
+ # @Last Change: 14-Mai-2006.
7
+ # @Revision: 0.1261
8
8
 
9
9
  require 'forwardable'
10
10
 
@@ -27,16 +27,33 @@ class Deplate::Macro < Deplate::BaseParticle
27
27
 
28
28
  def exec(deplate, container, context, cmd, *args)
29
29
  c = deplate.input.macros[cmd]
30
+ if c.nil?
31
+ m = /^([[:alnum:]_]+)(\[.*?\])?(\.|!)?/.match(cmd)
32
+ if m
33
+ if deplate.clips[m[1]]
34
+ args[2] = cmd
35
+ c = deplate.input.macros['get']
36
+ elsif deplate.variables.include?(m[1])
37
+ if m[3]
38
+ args[2] = cmd[0..-2]
39
+ c = deplate.input.macros['var']
40
+ else
41
+ args[2] = cmd
42
+ c = deplate.input.macros['arg']
43
+ end
44
+ end
45
+ end
46
+ end
30
47
  if c
31
48
  begin
32
49
  return c.new(deplate, container, context, *args)
33
50
  rescue Exception => e
34
- puts e.backtrace[0..10].join("\n")
35
- puts "Internal error when initializing " + c.name
51
+ # puts e.backtrace[0..10].join("\n")
52
+ puts 'Internal error when initializing ' + c.name
36
53
  raise e
37
54
  end
38
55
  else
39
- container.log(["Unknown macro", cmd, args.inspect], :unknown_macro)
56
+ container.log(['Unknown macro', cmd, args.inspect], :unknown_macro)
40
57
  end
41
58
  end
42
59
  end
@@ -68,7 +85,7 @@ class Deplate::Macro < Deplate::BaseParticle
68
85
  @elt = @elt.compact
69
86
  end
70
87
 
71
- def join_elt(sep="")
88
+ def join_elt(sep='')
72
89
  process_elt
73
90
  if block_given?
74
91
  yield
@@ -84,7 +101,7 @@ class Deplate::Macro < Deplate::BaseParticle
84
101
  elsif @text
85
102
  return @text
86
103
  else
87
- return ""
104
+ return ''
88
105
  end
89
106
  end
90
107
  end
@@ -106,42 +123,9 @@ end
106
123
 
107
124
  class Deplate::Macro::Footnote < Deplate::Macro
108
125
  register_as 'fn'
109
- attr_reader :fnId
110
-
111
- # Quack like Deplate::Region
112
- attr_reader :accum, :regNote, :label, :level, :caption, :captionOptions
113
-
114
- def setup(text)
115
- if text
116
- @fnId = @args["id"]
117
- if @fnId and text and !text.empty?
118
- @regNote = @fnId
119
- @accum = text
120
- # @level = @container.level
121
- fn = Deplate::Regions::Footnote.new(@deplate, @source, @regNote, {}, self)
122
- fn.finish
123
- else
124
- @fnId ||= text
125
- end
126
- if @container.kind_of?(Deplate::Element::Table)
127
- @container.contains_footnotes = true
128
- end
129
- else
130
- log("No footnote id", :error)
131
- end
132
- end
133
-
134
- def process
135
- fn = @deplate.footnotes[@fnId]
136
- if fn
137
- fn.elt.consumed = true
138
- @elt = fn
139
- else
140
- log(["Unknown footnote", @fnId, @deplate.footnotes.keys.inspect], :error)
141
- @elt = nil
142
- end
143
- return format_particle(:format_footnote, self)
144
- end
126
+ include Deplate::Footnote
127
+ alias :setup :footnote_setup
128
+ alias :process :footnote_process
145
129
  end
146
130
 
147
131
 
@@ -151,7 +135,7 @@ class Deplate::Macro::Cite < Deplate::Macro
151
135
 
152
136
  def setup(text)
153
137
  @deplate.options.citations << self
154
- @elt = text.split(/\s*;\s*/)
138
+ @elt = text.split(/\s*[;, ]\s*/)
155
139
  for c in @elt
156
140
  @container.add_metadata(@source,
157
141
  "type" => "citation",
@@ -187,30 +171,77 @@ class Deplate::Macro::Date < Deplate::Macro
187
171
  end
188
172
 
189
173
 
174
+ class Deplate::Argument < Deplate::Macro
175
+ def value(text)
176
+ @deplate = @deplate.options.master if @deplate.options.master
177
+ val = @deplate.variables[text]
178
+ if val.nil?
179
+ val = @args['default']
180
+ log(['Unknown variable', '{arg}', text]) if val.nil?
181
+ end
182
+ transformed_value(val)
183
+ end
184
+
185
+ def transformed_value(val)
186
+ case val
187
+ when Array
188
+ if (j = @args['join'])
189
+ return val.join(j)
190
+ end
191
+ when Hash
192
+ if @args['keys']
193
+ return transformed_value(val.keys)
194
+ elsif @args['values']
195
+ return transformed_value(val.values)
196
+ elsif @args['join']
197
+ return transformed_value(val.to_a)
198
+ end
199
+ end
200
+ return val
201
+ end
202
+
203
+ def process
204
+ post_process_text(super)
205
+ end
206
+ end
207
+
208
+
190
209
  # Access document options set with DOC.
191
- class Deplate::Macro::Doc < Deplate::Macro
210
+ class Deplate::Macro::Var < Deplate::Argument
192
211
  register_as 'doc'
193
212
  register_as 'var'
194
213
 
195
214
  def setup(text)
196
- @text = plain_text(@deplate.variables[text].inspect)
215
+ val = value(text)
216
+ unless val.nil?
217
+ @text = plain_text(val.inspect)
218
+ end
197
219
  end
198
220
  end
199
221
 
200
222
 
201
223
  # Access template arguments or document options set with DOC and parse.
202
- class Deplate::Macro::Arg < Deplate::Macro
224
+ class Deplate::Macro::Arg < Deplate::Argument
203
225
  register_as 'arg'
204
226
  register_as 'val'
205
227
 
206
228
  def setup(text)
207
- @deplate = @deplate.options.master if @deplate.options.master
208
- val = @deplate.variables[text]
209
- val = @args["default"] if val.nil?
210
- if val.nil?
211
- log(['Unknown variable', '{arg}', text])
212
- else
213
- @text = val.to_s
229
+ val = value(text)
230
+ unless val.nil?
231
+ case val
232
+ when String
233
+ @text = val
234
+ # when TrueClass
235
+ # @text = '{true}'
236
+ # when FalseClass
237
+ # @text = '{false}'
238
+ # when Numeric
239
+ # @text = "{0d#{val}}"
240
+ else
241
+ # @text = val.to_s
242
+ @text = val.inspect
243
+ end
244
+ @text = Deplate::Core.escape_characters(@text, @args)
214
245
  if !@args['asString']
215
246
  @elt = @deplate.parse(@container, @text)
216
247
  end
@@ -220,14 +251,15 @@ end
220
251
 
221
252
 
222
253
  # Access template arguments or document options set with DOC and parse.
223
- class Deplate::Macro::XArg < Deplate::Macro
254
+ class Deplate::Macro::XArg < Deplate::Argument
224
255
  register_as 'xarg'
225
256
  register_as 'xval'
226
257
 
227
258
  def setup(text)
228
259
  c = @deplate.variables[text] || @args["default"]
229
260
  if c
230
- @elt = @deplate.parse(@container, c)
261
+ c = Deplate::Core.escape_characters(c, @args)
262
+ @elt = @deplate.parse(@container, c)
231
263
  else
232
264
  log(["Unknown variable", '{xarg}', text])
233
265
  end
@@ -245,6 +277,17 @@ class Deplate::Macro::Opt < Deplate::Macro
245
277
  end
246
278
 
247
279
 
280
+ # Access element options set with OPT
281
+ class Deplate::Macro::Msg < Deplate::Macro
282
+ register_as 'msg'
283
+
284
+ def setup(text)
285
+ @elt = @deplate.parse(@container, @deplate.msg(text))
286
+ # @text = @deplate.msg(text)
287
+ end
288
+ end
289
+
290
+
248
291
  # Access clips (probably requires some processing?)
249
292
  class Deplate::Macro::Clip < Deplate::Macro
250
293
  register_as 'clip'
@@ -270,7 +313,7 @@ class Deplate::Macro::Clip < Deplate::Macro
270
313
  log(["Unknown clip", @id], :error) unless @elt
271
314
  end
272
315
  else
273
- log(["No id given", @id], :error)
316
+ log(["No ID given", @id], :error)
274
317
  end
275
318
  end
276
319
  end
@@ -292,7 +335,15 @@ class Deplate::Macro::Ruby < Deplate::Macro
292
335
  register_as 'ruby'
293
336
 
294
337
  def setup(text)
295
- @text = @deplate.eval_ruby(self, @args, text)
338
+ rv = @deplate.eval_ruby(self, @args, text)
339
+ if rv
340
+ rv = rv.to_s
341
+ if @args['native'] or @args['ins']
342
+ @text = rv
343
+ else
344
+ @elt = @deplate.parse(self, rv)
345
+ end
346
+ end
296
347
  end
297
348
  end
298
349
 
@@ -307,13 +358,13 @@ class Deplate::Macro::Ref < Deplate::Macro
307
358
  end
308
359
 
309
360
  def process
310
- id = @args["byId"]
311
- if id
312
- @text = @deplate.get_label_by_id(self, id)
313
- unless @text
314
- log(["Can't refer to id", id], :error)
315
- end
316
- end
361
+ # id = @args["byId"]
362
+ # if id
363
+ # @text = @deplate.get_label_by_id(self, id)
364
+ # unless @text
365
+ # log(["Can't refer to ID", id], :error)
366
+ # end
367
+ # end
317
368
  return format_particle(:format_ref, self)
318
369
  end
319
370
  end
@@ -325,7 +376,7 @@ class Deplate::Macro::Label < Deplate::Macro
325
376
  register_as 'lab'
326
377
 
327
378
  def setup(text)
328
- @deplate.add_label(self, text, @level_as_string, :container => @container)
379
+ @deplate.add_label(self, text, level_as_string, :container => @container)
329
380
  @text = format_particle(:format_label, self, :string, [text])
330
381
  end
331
382
  end
@@ -344,16 +395,13 @@ class Deplate::Macro::Latex < Deplate::Macro
344
395
  register_as 'ltx'
345
396
  set_formatter :format_ltx
346
397
 
347
- class << self
348
- attr_reader :formatter
349
- end
350
-
351
398
  attr_reader :accum, :caption
352
399
 
353
400
  def setup(text)
354
401
  prelude = @deplate.formatter.prelude('ltxPrelude')
355
402
  @accum = [ prelude, text ].flatten.compact
356
403
  @text = text
404
+ @args['inline'] = true
357
405
  @deplate.formatter.inlatex(self)
358
406
  end
359
407
 
@@ -385,7 +433,7 @@ class Deplate::Macro::List < Deplate::Macro
385
433
  when "dl"
386
434
  @type = "Description"
387
435
  when "ol"
388
- @type = "Numbered"
436
+ @type = "Ordered"
389
437
  else
390
438
  @type = "Itemize"
391
439
  end
@@ -498,10 +546,9 @@ class Deplate::Macro::Text < Deplate::Macro
498
546
  @elt = @deplate.parse(@container, text, @alt)
499
547
  end
500
548
 
501
- # def process
502
- # join_elt
503
- # return @elt
504
- # end
549
+ def process
550
+ format_particle(:format_void, self, super)
551
+ end
505
552
  end
506
553
 
507
554
 
@@ -553,7 +600,7 @@ class Deplate::Macro::Image < Deplate::Macro
553
600
  end
554
601
 
555
602
  def process
556
- return @deplate.formatter.include_image(@text, @args, true)
603
+ return @deplate.formatter.include_image(self, @text, @args, true)
557
604
  end
558
605
  end
559
606
 
@@ -586,12 +633,6 @@ class Deplate::Macro::Idx < Deplate::Macro
586
633
  register_as 'idx'
587
634
 
588
635
  def setup(text)
589
- # auto = @args["auto"]
590
- # auto = @deplate.variables["autoindex"] if auto.nil?
591
- # @acc = []
592
- # for i in text.split(/\s*;\s*/)
593
- # @acc << @deplate.add_index(self, i)
594
- # end
595
636
  @acc = Deplate::Command::IDX.get_indices(@container, @deplate, @args, text, @source)
596
637
  end
597
638
 
@@ -622,9 +663,19 @@ class Deplate::Macro::Let < Deplate::Macro
622
663
  end
623
664
 
624
665
 
666
+ class Deplate::Macro::Counter < Deplate::Macro
667
+ register_as 'counter'
668
+
669
+ def setup(text)
670
+ @text = @deplate.options.counters.get_s(text, @args)
671
+ end
672
+ end
673
+
674
+
625
675
  class Deplate::Core
626
676
  def self.simple_macro(name, body)
627
677
  cn = name.capitalize
678
+ cn.gsub!(/\W/, '_')
628
679
  eval %{
629
680
  class Deplate::Macro::#{cn} < Deplate::Macro
630
681
  register_as #{name.inspect}