deplate 0.8.4 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. data/CHANGES.TXT +118 -0
  2. data/NEWS.TXT +6 -21
  3. data/VERSION.TXT +1 -1
  4. data/etc/deplate.ini +15 -2
  5. data/lib/action_view/helpers/deplate.rb +0 -0
  6. data/lib/deplate/abstract-class.rb +3 -2
  7. data/lib/deplate/bib.rb +3 -2
  8. data/lib/deplate/builtin.rb +3 -2
  9. data/lib/deplate/cache.rb +3 -2
  10. data/lib/deplate/commands.rb +3 -11
  11. data/lib/deplate/common.rb +7 -2
  12. data/lib/deplate/compat.rb +21 -0
  13. data/lib/deplate/compat/parsedate.rb +24 -0
  14. data/lib/deplate/converter.rb +3 -2
  15. data/lib/deplate/core.rb +135 -103
  16. data/lib/deplate/counters.rb +3 -2
  17. data/lib/deplate/css/article.css +2 -2
  18. data/lib/deplate/css/doc.css +3 -2
  19. data/lib/deplate/css/heading-navbar.css +2 -2
  20. data/lib/deplate/css/highlight.css +0 -0
  21. data/lib/deplate/css/layout-deplate-print.css +2 -2
  22. data/lib/deplate/css/layout-deplate.css +2 -2
  23. data/lib/deplate/css/presentation.css +2 -2
  24. data/lib/deplate/css/sans-serif.css +2 -2
  25. data/lib/deplate/css/screenplay.css +0 -0
  26. data/lib/deplate/css/serif-e.css +2 -2
  27. data/lib/deplate/css/serif-rel.css +3 -2
  28. data/lib/deplate/css/serif.css +2 -2
  29. data/lib/deplate/css/slides.css +3 -2
  30. data/lib/deplate/css/tabbar-top.css +2 -2
  31. data/lib/deplate/css/text-sans-serif.css +3 -2
  32. data/lib/deplate/css/text-serif.css +2 -2
  33. data/lib/deplate/css/website.css +0 -0
  34. data/lib/deplate/define.rb +3 -2
  35. data/lib/deplate/deplate-string.rb +3 -2
  36. data/lib/deplate/docbook.rb +4 -14
  37. data/lib/deplate/elements.rb +37 -4
  38. data/lib/deplate/encoding.rb +57 -0
  39. data/lib/deplate/etc.rb +7 -5
  40. data/lib/deplate/external.rb +5 -13
  41. data/lib/deplate/fmt/dbk-article-4.1.2.rb +3 -2
  42. data/lib/deplate/fmt/dbk-article.rb +3 -2
  43. data/lib/deplate/fmt/dbk-book.rb +3 -2
  44. data/lib/deplate/fmt/dbk-ref.rb +3 -2
  45. data/lib/deplate/fmt/dbk-slides.rb +3 -2
  46. data/lib/deplate/fmt/dbk-snippet.rb +3 -2
  47. data/lib/deplate/fmt/html-snippet.rb +3 -2
  48. data/lib/deplate/fmt/html.rb +40 -27
  49. data/lib/deplate/fmt/htmlsite.rb +3 -2
  50. data/lib/deplate/fmt/htmlslides.rb +3 -2
  51. data/lib/deplate/fmt/htmlwebsite.rb +3 -2
  52. data/lib/deplate/fmt/latex-dramatist.rb +2 -1
  53. data/lib/deplate/fmt/latex-snippet.rb +3 -2
  54. data/lib/deplate/fmt/latex.rb +88 -67
  55. data/lib/deplate/fmt/null.rb +3 -2
  56. data/lib/deplate/fmt/php.rb +3 -2
  57. data/lib/deplate/fmt/phpsite.rb +3 -2
  58. data/lib/deplate/fmt/plain.rb +4 -3
  59. data/lib/deplate/fmt/sweave.rb +104 -0
  60. data/lib/deplate/fmt/template.rb +3 -2
  61. data/lib/deplate/fmt/xhtml10t.rb +82 -2
  62. data/lib/deplate/fmt/xhtml11m.rb +3 -2
  63. data/lib/deplate/formatter-snippet.rb +3 -2
  64. data/lib/deplate/formatter.rb +203 -29
  65. data/lib/deplate/guesslanguage.rb +3 -2
  66. data/lib/deplate/input.rb +9 -8
  67. data/lib/deplate/input/deplate-headings.rb +3 -2
  68. data/lib/deplate/input/deplate-restricted.rb +3 -2
  69. data/lib/deplate/input/deplate.rb +3 -2
  70. data/lib/deplate/input/play.rb +3 -2
  71. data/lib/deplate/input/rdoc.rb +3 -2
  72. data/lib/deplate/input/template.rb +3 -2
  73. data/lib/deplate/lib/Makefile.config +8 -0
  74. data/lib/deplate/locale/de.latin1 +6 -0
  75. data/lib/deplate/macros.rb +4 -2
  76. data/lib/deplate/messages.rb +9 -5
  77. data/lib/deplate/metadata.rb +3 -2
  78. data/lib/deplate/metadata/marshal.rb +3 -2
  79. data/lib/deplate/metadata/xml.rb +3 -2
  80. data/lib/deplate/metadata/yaml.rb +3 -2
  81. data/lib/deplate/mod/anyword.rb +3 -2
  82. data/lib/deplate/mod/babelfish.rb +3 -2
  83. data/lib/deplate/mod/code-coderay.rb +3 -2
  84. data/lib/deplate/mod/code-gvim.rb +3 -2
  85. data/lib/deplate/mod/code-gvim71.rb +3 -2
  86. data/lib/deplate/mod/code-highlight.rb +3 -2
  87. data/lib/deplate/mod/colored-log.rb +3 -2
  88. data/lib/deplate/mod/encode.rb +33 -0
  89. data/lib/deplate/mod/endnotes.rb +3 -2
  90. data/lib/deplate/mod/entities-decode.rb +2 -1
  91. data/lib/deplate/mod/entities-encode.rb +2 -1
  92. data/lib/deplate/mod/guesslanguage.rb +3 -2
  93. data/lib/deplate/mod/html-asciimath.rb +3 -2
  94. data/lib/deplate/mod/html-deplate-button.rb +3 -2
  95. data/lib/deplate/mod/html-headings-navbar.rb +3 -2
  96. data/lib/deplate/mod/html-highstep.rb +3 -2
  97. data/lib/deplate/mod/html-jsmath.rb +3 -2
  98. data/lib/deplate/mod/html-mathml.rb +2 -1
  99. data/lib/deplate/mod/html-obfuscate-email.rb +3 -2
  100. data/lib/deplate/mod/html-sidebar.rb +3 -2
  101. data/lib/deplate/mod/htmlslides-navbar-fh.rb +3 -2
  102. data/lib/deplate/mod/iconv.rb +3 -2
  103. data/lib/deplate/mod/imgurl.rb +4 -3
  104. data/lib/deplate/mod/inlatex-compound.rb +3 -2
  105. data/lib/deplate/mod/koma.rb +3 -2
  106. data/lib/deplate/mod/lang-de.rb +3 -2
  107. data/lib/deplate/mod/lang-en.rb +3 -2
  108. data/lib/deplate/mod/lang-ru-koi8-r.rb +3 -2
  109. data/lib/deplate/mod/lang-ru.rb +3 -2
  110. data/lib/deplate/mod/lang-zh_CN-autospace.rb +3 -2
  111. data/lib/deplate/mod/lang-zh_CN.rb +3 -2
  112. data/lib/deplate/mod/latex-emph-table-head.rb +3 -2
  113. data/lib/deplate/mod/latex-styles.rb +3 -2
  114. data/lib/deplate/mod/latex-verbatim-small.rb +3 -2
  115. data/lib/deplate/mod/linkmap.rb +2 -1
  116. data/lib/deplate/mod/makefile.rb +39 -46
  117. data/lib/deplate/mod/mark-external-urls.rb +3 -2
  118. data/lib/deplate/mod/markup-1-warn.rb +3 -2
  119. data/lib/deplate/mod/markup-1.rb +3 -2
  120. data/lib/deplate/mod/navbar-png.rb +3 -2
  121. data/lib/deplate/mod/noindent.rb +3 -2
  122. data/lib/deplate/mod/numpara.rb +3 -2
  123. data/lib/deplate/mod/particle-math.rb +3 -2
  124. data/lib/deplate/mod/php-extra.rb +3 -2
  125. data/lib/deplate/mod/pstoedit.rb +3 -2
  126. data/lib/deplate/mod/recode.rb +3 -2
  127. data/lib/deplate/mod/smart-dash.rb +3 -2
  128. data/lib/deplate/mod/smiley.rb +3 -2
  129. data/lib/deplate/mod/soffice.rb +3 -2
  130. data/lib/deplate/mod/symbols-latin1.rb +8 -2
  131. data/lib/deplate/mod/symbols-od-utf-8.rb +3 -2
  132. data/lib/deplate/mod/symbols-plain.rb +3 -2
  133. data/lib/deplate/mod/symbols-sgml.rb +6 -5
  134. data/lib/deplate/mod/symbols-utf-8.rb +6 -5
  135. data/lib/deplate/mod/symbols-xml.rb +3 -2
  136. data/lib/deplate/mod/syntax-region-alt.rb +3 -2
  137. data/lib/deplate/mod/utf8.rb +3 -2
  138. data/lib/deplate/mod/validate-html.rb +3 -2
  139. data/lib/deplate/mod/xmlrpc.rb +3 -2
  140. data/lib/deplate/nukumi2.rb +3 -2
  141. data/lib/deplate/once-method.rb +3 -2
  142. data/lib/deplate/output.rb +3 -2
  143. data/lib/deplate/particles.rb +12 -6
  144. data/lib/{ps2ppm.rb → deplate/ps2ppm.rb} +11 -11
  145. data/lib/deplate/regions.rb +75 -52
  146. data/lib/deplate/skeletons.rb +3 -2
  147. data/lib/deplate/structured.rb +8 -24
  148. data/lib/deplate/template.rb +3 -2
  149. data/lib/deplate/themes/presentation.html/css/presentation.css +2 -2
  150. data/lib/deplate/themes/presentation.html/prelude.txt +1 -1
  151. data/lib/deplate/themes/presentation.html/resources/spacer.png +0 -0
  152. data/lib/deplate/themes/s5.xhtml/README.TXT +2 -0
  153. data/lib/deplate/themes/s5.xhtml/templates/s5.xhtml +42 -0
  154. data/lib/deplate/themes/s5.xhtml/theme.ini +11 -0
  155. data/lib/deplate/variables.rb +12 -2
  156. data/lib/deplate/wiki-markup.rb +3 -2
  157. data/lib/deplate/xml.rb +19 -21
  158. data/lib/deplate/zh_CN.rb +3 -2
  159. data/man/man1/deplate.1 +83 -128
  160. metadata +16 -4
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # null.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 17-M�r-2004.
6
- # @Last Change: 08-Jan-2006.
7
- # @Revision: 0.3747
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.3749
8
9
 
9
10
  require 'deplate/formatter'
10
11
 
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # php.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 17-M�r-2004.
6
- # @Last Change: 21-Apr-2006.
7
- # @Revision: 0.914
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.916
8
9
 
9
10
  require 'deplate/fmt/html'
10
11
  require 'deplate/mod/php-extra'
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # phpsite.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 17-M�r-2004.
6
- # @Last Change: 21-Apr-2006.
7
- # @Revision: 0.918
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.920
8
9
 
9
10
  require 'deplate/fmt/htmlsite'
10
11
  require 'deplate/mod/php-extra'
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # fmt-html.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 17-M�r-2004.
6
- # @Last Change: 2008-05-14.
7
- # @Revision: 0.3594
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.3597
8
9
 
9
10
  require "deplate/formatter"
10
11
 
@@ -65,7 +66,7 @@ class Deplate::Formatter::Plain < Deplate::Formatter
65
66
  end
66
67
  end
67
68
 
68
- def include_image(invoker, file, args, inline=false)
69
+ def include_image_general(invoker, file, args, inline=false)
69
70
  file = args['file'] if args['file']
70
71
  if inline or !@deplate.variables['asciiArt']
71
72
  return "[#{args["alt"] || @deplate.variables['imgAlt'] || file}]"
@@ -0,0 +1,104 @@
1
+ # encoding: ISO-8859-1
2
+ #!/usr/bin/env ruby
3
+ # @Last Change: 2009-01-17.
4
+ # Author:: Thomas Link (micathom AT gmail com)
5
+ # License:: GPL (see http://www.gnu.org/licenses/gpl.txt)
6
+ # Created:: 2008-11-24.
7
+
8
+
9
+ require 'deplate/fmt/latex.rb'
10
+
11
+
12
+ class Deplate::Formatter::Sweave < Deplate::Formatter::LaTeX
13
+ self.myname = 'sweave'
14
+ self.rx = /(la)?tex|sweave/i
15
+ self.related = ['latex']
16
+ self.suffix = ".Rnw"
17
+
18
+ self.latexDocClass = 'article'
19
+ # self.latexVariables = ['11pt', 'a4paper']
20
+
21
+
22
+ def prepare
23
+ super
24
+ sweave = @deplate.variables['sweaveOpts']
25
+ if sweave
26
+ output_at(:pre, :doc_def, "\\SweaveOpts{#{sweave}}")
27
+ end
28
+ sweavePath = @deplate.variables['sweavePath']
29
+ if sweavePath
30
+ # add_package('Sweave')
31
+ add_package(sweavePath)
32
+ end
33
+ end
34
+
35
+
36
+ def img_R(invoker, body)
37
+ if invoker.args['noFloat']
38
+ pre = post = nil
39
+ else
40
+ pre = with_agent(:figure_top, String, invoker)
41
+ post = with_agent(:figure_bottom, String, invoker).strip
42
+ end
43
+ opts = sweave_options(invoker, 'fig=TRUE')
44
+ return join_blocks([pre, "<<#{opts}>>=", body, '@', post].compact)
45
+ end
46
+
47
+
48
+ def region_R(invoker, body)
49
+ opts = sweave_options(invoker)
50
+ return join_blocks(["<<#{opts}>>=", body, '@'])
51
+ end
52
+
53
+
54
+ private
55
+
56
+ def sweave_options(invoker, rest=nil)
57
+ opts = [invoker.args['sweave'], rest]
58
+ if (id = invoker.args[:id])
59
+ opts << "label=#{id}"
60
+ end
61
+ if invoker.args[:hide]
62
+ opts << 'results=hide'
63
+ end
64
+ ['print', 'echo', 'results', 'height', 'width', 'engine'].each do |arg|
65
+ if invoker.args.has_key?(arg)
66
+ opts << "#{arg}=#{sweave_value(invoker.args[arg])}"
67
+ end
68
+ end
69
+ if invoker.args['swallow'] or invoker.args['drop']
70
+ opts << 'echo=FALSE,print=FALSE,results=hide'
71
+ end
72
+ return opts.compact.join(',')
73
+ end
74
+
75
+
76
+ def sweave_value(value)
77
+ case value
78
+ when TrueClass
79
+ return 'TRUE'
80
+ when FalseClass
81
+ return 'FALSE'
82
+ else
83
+ return value
84
+ end
85
+ end
86
+
87
+ end
88
+
89
+
90
+ class Deplate::Macro::Sweave < Deplate::Macro::Insert
91
+ register_as 'sweave'
92
+ register_as 'r'
93
+
94
+ def setup(text)
95
+ super
96
+ @text = "\\Sexpr{#{@text}}"
97
+ end
98
+ end
99
+
100
+
101
+
102
+ # Local Variables:
103
+ # revisionRx: REVISION\s\+=\s\+\'
104
+ # End:
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # template.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 25-M�r-2005.
6
- # @Last Change: 23-Okt-2005.
7
- # @Revision: 0.21
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.23
8
9
  #
9
10
  # = Description
10
11
  # The formatter for templates
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # fmt-xhtml.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 03-Aug-2004.
6
- # @Last Change: 23-Okt-2005.
7
- # @Revision: 0.35
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.48
8
9
 
9
10
  require "deplate/fmt/html"
10
11
 
@@ -37,5 +38,84 @@ class Deplate::Formatter::XHTML10transitional < Deplate::Formatter::HTML
37
38
  def head_link_tag(text)
38
39
  return %Q{<link #{text} />}
39
40
  end
41
+
42
+ def include_image_svg(invoker, file, args, inline=false)
43
+ if args['include']
44
+
45
+ svg = File.read(file)
46
+ svg.sub!(/^.*?<\?xml .*?\?>[^<]*/, '')
47
+ svg.sub!(/^<!DOCTYPE .*?>[^<]*/, '')
48
+ return svg
49
+
50
+ else
51
+
52
+ acc = ['type="image/svg+xml"']
53
+
54
+ file = args['file'] if args['file']
55
+ file = img_url(use_image_filename(file, args))
56
+ acc << %{data="#{file}"}
57
+
58
+ w = args['w'] || args['width']
59
+ acc << %{width="#{w}"} if w
60
+ h = args['h'] || args['heigth']
61
+ acc << %{height="#{h}"} if h
62
+
63
+ # b = args['border'] || '0'
64
+ # acc << %{border="#{b}"}
65
+
66
+ # # f = file[0..-(File.extname(file).size + 1)]
67
+ # alt = args['alt']
68
+ # if alt
69
+ # alt.gsub!(/[\\"&<>]/) do |s|
70
+ # case s
71
+ # when '\\'
72
+ # ''
73
+ # else
74
+ # plain_text(s).gsub(/\\([0-9&`'+])/, '\\1')
75
+ # end
76
+ # end
77
+ # else
78
+ # alt = File.basename(file, '.*')
79
+ # end
80
+ # acc << %{alt="#{alt}"}
81
+
82
+ style = args['style']
83
+ if style
84
+ style = Deplate::Core.split_list(style, ',', '; ', invoker.source)
85
+ else
86
+ style = []
87
+ end
88
+ style << (inline ? 'inline' : 'figure')
89
+ acc << %{class="#{class_attr(style)}"}
90
+
91
+ img_id = args['id']
92
+ unless img_id
93
+ fbase = Deplate::Core.clean_name(File.basename(fbase || 'imgid'))
94
+ img_id = @deplate.auto_numbered(fbase, :inc => 1, :fmt => %{#{fbase}_%s})
95
+ end
96
+ acc << %{id="#{img_id}" name="#{img_id}"}
97
+
98
+ # hi = args['hi']
99
+ # if hi
100
+ # case hi
101
+ # when String
102
+ # hi_img = img_url(use_image_filename(hi, args))
103
+ # else
104
+ # hi_img = [File.dirname(file), %{hi-#{File.basename(file)}}]
105
+ # hi_img = File.join(hi_img.compact)
106
+ # end
107
+ #
108
+ # setup_highlight_image
109
+ # acc << %{onMouseover="HighlightImage('%s', '%s')" onMouseout="HighlightImage('%s', '%s')"} % [
110
+ # img_id, img_url(hi_img, args),
111
+ # img_id, file
112
+ # ]
113
+ # end
114
+
115
+ return %{<object #{acc.join(' ')} ></object>}
116
+
117
+ end
118
+ end
119
+
40
120
  end
41
121
 
@@ -1,9 +1,10 @@
1
+ # encoding: ASCII
1
2
  # @Author: Thomas Link (micathom AT gmail com)
2
3
  # @Website: http://deplate.sf.net/
3
4
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
4
5
  # @Created: 2008-04-14.
5
- # @Last Change: 2008-04-14.
6
- # @Revision: 0.42
6
+ # @Last Change: 2009-02-02.
7
+ # @Revision: 0.44
7
8
 
8
9
  require "deplate/fmt/xhtml10t"
9
10
 
@@ -1,10 +1,11 @@
1
+ # encoding: ASCII
1
2
  # formatter-snippet.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 11-Aug-2005.
6
- # @Last Change: 23-Okt-2005.
7
- # @Revision: 0.3
7
+ # @Last Change: 2009-02-02.
8
+ # @Revision: 0.5
8
9
 
9
10
  module Deplate::Snippet
10
11
  def formatter_initialize_snippet
@@ -1,13 +1,15 @@
1
+ # encoding: ASCII
1
2
  # formatter.rb
2
3
  # @Author: Thomas Link (micathom AT gmail com)
3
4
  # @Website: http://deplate.sf.net/
4
5
  # @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
5
6
  # @Created: 31-Okt-2004.
6
- # @Last Change: 2008-07-10.
7
- # @Revision: 0.2017
7
+ # @Last Change: 2009-02-05.
8
+ # @Revision: 0.2062
8
9
 
9
10
  require 'deplate/abstract-class'
10
11
  require 'deplate/common'
12
+ require 'deplate/encoding'
11
13
  require 'strscan'
12
14
 
13
15
  # Description:
@@ -98,7 +100,7 @@ class Deplate::Formatter < Deplate::CommonObject
98
100
  elsif file.nil?
99
101
  options.out = '-'
100
102
  else
101
- options.out = Deplate::Core.get_out_fullname(file, options.suffix, options)
103
+ options.out = Deplate::Core.get_out_fullname(file, options.suffix, options, :raw => true)
102
104
  end
103
105
  end
104
106
  options
@@ -254,22 +256,7 @@ class Deplate::Formatter < Deplate::CommonObject
254
256
  end
255
257
 
256
258
  def canonic_enc_name(enc, table=@encodings)
257
- case enc.downcase
258
- when 'latin-1', 'latin1', 'l1', 'isolat1', 'iso-8859-1'
259
- cen = 'latin1'
260
- when 'latin-9', 'latin9', 'l9', 'isolat9', 'iso-8859-15'
261
- cen = 'latin9'
262
- when 'gb2312', 'gbk'
263
- cen = 'gb2312'
264
- when 'koi8-r'
265
- cen = 'koi8-r'
266
- when 'utf8', 'utf-8'
267
- cen = 'utf-8'
268
- else
269
- log(['Unsupported encoding', enc], :anyway)
270
- cen = enc
271
- end
272
- return table[cen] || cen
259
+ Deplate::Encoding.canonic_enc_name(enc, table)
273
260
  end
274
261
 
275
262
  def output_destination
@@ -445,6 +432,8 @@ class Deplate::Formatter < Deplate::CommonObject
445
432
  else
446
433
  r = @special_symbols[e]
447
434
  case r
435
+ when :identity
436
+ acc << e
448
437
  when String
449
438
  acc << r
450
439
  when Proc
@@ -549,10 +538,10 @@ class Deplate::Formatter < Deplate::CommonObject
549
538
  @symbol_proxy.nonbreakingspace(invoker)
550
539
  end
551
540
 
552
- def symbol_paragraph(invoker)
553
- check_symbol_proxy
554
- @symbol_proxy.symbol_paragraph(invoker)
555
- end
541
+ # def symbol_paragraph(invoker)
542
+ # check_symbol_proxy
543
+ # @symbol_proxy.symbol_paragraph(invoker)
544
+ # end
556
545
 
557
546
  def format_symbol(invoker, sym)
558
547
  check_symbol_proxy
@@ -716,9 +705,166 @@ class Deplate::Formatter < Deplate::CommonObject
716
705
  return %{#{plain_text("{")}#{invoker.elt}#{plain_text("}")}}
717
706
  end
718
707
 
708
+ def format_heading_close(invoker)
709
+ end
710
+
711
+ def close_headings(level, &block)
712
+ hds = @deplate.options.headings
713
+ if hds
714
+ acc = []
715
+ loop do
716
+ hd = hds.last
717
+ if hd and level <= hd.level
718
+ acc << indent_text(format_heading_close(hd), :mult => hd.level - level)
719
+ if block
720
+ acc << block.call(hd.level)
721
+ end
722
+ hds.pop
723
+ else
724
+ break
725
+ end
726
+ end
727
+ if acc.empty?
728
+ return nil
729
+ else
730
+ return join_blocks(acc)
731
+ end
732
+ end
733
+ end
734
+
735
+
736
+ def canonic_mime(type)
737
+ case type
738
+ when 'image/cgm'
739
+ when 'image/g3fax'
740
+ when 'image/gif', 'gif'
741
+ return 'image/gif'
742
+ when 'image/ief', 'ief'
743
+ when 'image/jpeg', 'jpeg', 'jpg', 'jpe'
744
+ return 'image/jpeg'
745
+ when 'image/naplps'
746
+ when 'image/pcx', 'pcx'
747
+ when 'image/png', 'png'
748
+ return 'image/png'
749
+ when 'image/prs.btif'
750
+ when 'image/prs.pti'
751
+ when 'image/svg'+'xml', 'svg', 'svgz'
752
+ return 'image/svg+xml'
753
+ when 'image/tiff', 'tiff', 'tif'
754
+ return 'image/tiff'
755
+ when 'image/vnd.cns.inf2'
756
+ when 'image/vnd.djvu', 'djvu', 'djv'
757
+ when 'image/vnd.dwg'
758
+ when 'image/vnd.dxf'
759
+ when 'image/vnd.fastbidsheet'
760
+ when 'image/vnd.fpx'
761
+ when 'image/vnd.fst'
762
+ when 'image/vnd.fujixerox.edmics-mmr'
763
+ when 'image/vnd.fujixerox.edmics-rlc'
764
+ when 'image/vnd.mix'
765
+ when 'image/vnd.net-fpx'
766
+ when 'image/vnd.svf'
767
+ when 'image/vnd.wap.wbmp', 'wbmp'
768
+ when 'image/vnd.xiff'
769
+ when 'image/x-cmu-raster', 'ras'
770
+ when 'image/x-coreldraw', 'cdr'
771
+ when 'image/x-coreldrawpattern', 'pat'
772
+ when 'image/x-coreldrawtemplate', 'cdt'
773
+ when 'image/x-corelphotopaint', 'cpt'
774
+ when 'image/x-icon', 'ico'
775
+ when 'image/x-jg', 'art'
776
+ when 'image/x-jng', 'jng'
777
+ when 'image/x-ms-bmp', 'bmp'
778
+ return 'image/x-ms-bmp'
779
+ when 'image/x-photoshop', 'psd'
780
+ when 'image/x-portable-anymap', 'pnm'
781
+ when 'image/x-portable-bitmap', 'pbm'
782
+ when 'image/x-portable-graymap', 'pgm'
783
+ when 'image/x-portable-pixmap', 'ppm'
784
+ when 'image/x-rgb', 'rgb'
785
+ when 'image/x-xbitmap', 'xbm'
786
+ when 'image/x-xpixmap', 'xpm'
787
+ when 'image/x-xwindowdump', 'xwd'
788
+ # wmf
789
+ # ps, eps
790
+ # pdf
791
+ end
792
+ end
793
+
794
+
795
+ def canonic_image_type(type)
796
+ case type
797
+ when 'image/cgm'
798
+ when 'image/g3fax'
799
+ when 'image/gif', 'gif'
800
+ return 'gif'
801
+ when 'image/ief', 'ief'
802
+ when 'image/jpeg', 'jpeg', 'jpg', 'jpe'
803
+ return 'jpg'
804
+ when 'image/naplps'
805
+ when 'image/pcx', 'pcx'
806
+ when 'image/png', 'png'
807
+ return 'png'
808
+ when 'image/prs.btif'
809
+ when 'image/prs.pti'
810
+ when 'image/svg'+'xml', 'svg', 'svgz'
811
+ return 'svg'
812
+ when 'image/tiff', 'tiff', 'tif'
813
+ return 'tif'
814
+ when 'image/vnd.cns.inf2'
815
+ when 'image/vnd.djvu', 'djvu', 'djv'
816
+ when 'image/vnd.dwg'
817
+ when 'image/vnd.dxf'
818
+ when 'image/vnd.fastbidsheet'
819
+ when 'image/vnd.fpx'
820
+ when 'image/vnd.fst'
821
+ when 'image/vnd.fujixerox.edmics-mmr'
822
+ when 'image/vnd.fujixerox.edmics-rlc'
823
+ when 'image/vnd.mix'
824
+ when 'image/vnd.net-fpx'
825
+ when 'image/vnd.svf'
826
+ when 'image/vnd.wap.wbmp', 'wbmp'
827
+ when 'image/vnd.xiff'
828
+ when 'image/x-cmu-raster', 'ras'
829
+ when 'image/x-coreldraw', 'cdr'
830
+ when 'image/x-coreldrawpattern', 'pat'
831
+ when 'image/x-coreldrawtemplate', 'cdt'
832
+ when 'image/x-corelphotopaint', 'cpt'
833
+ when 'image/x-icon', 'ico'
834
+ when 'image/x-jg', 'art'
835
+ when 'image/x-jng', 'jng'
836
+ when 'image/x-ms-bmp', 'bmp'
837
+ return 'bmp'
838
+ when 'image/x-photoshop', 'psd'
839
+ when 'image/x-portable-anymap', 'pnm'
840
+ when 'image/x-portable-bitmap', 'pbm'
841
+ when 'image/x-portable-graymap', 'pgm'
842
+ when 'image/x-portable-pixmap', 'ppm'
843
+ when 'image/x-rgb', 'rgb'
844
+ when 'image/x-xbitmap', 'xbm'
845
+ when 'image/x-xpixmap', 'xpm'
846
+ when 'image/x-xwindowdump', 'xwd'
847
+ # wmf
848
+ # ps, eps
849
+ # pdf
850
+ end
851
+ end
852
+
853
+
854
+ def include_image(invoker, file, args, *other_args)
855
+ type = args['type'] || File.extname(file).sub(/^\./, '')
856
+ type = canonic_image_type(type)
857
+ meth = "include_image_#{type}"
858
+ if respond_to?(meth)
859
+ return send(meth, invoker, file, args, *other_args)
860
+ else
861
+ include_image_general(invoker, file, args, *other_args)
862
+ end
863
+ end
864
+
719
865
 
720
866
  ### General
721
- def_abstract :format_label, :format_figure, :include_image, :image_suffixes
867
+ def_abstract :format_label, :format_figure, :include_image_general, :image_suffixes
722
868
 
723
869
  ### Elements
724
870
  def_abstract :format_note, :format_table, :format_heading, :format_list,
@@ -804,7 +950,7 @@ class Deplate::Formatter < Deplate::CommonObject
804
950
  break_at = args[:break_at]
805
951
  acc = []
806
952
  rx = /(\n|[[:space:]#{break_at}]+)/
807
- text.each do |text|
953
+ text.each_line do |text|
808
954
  # if text.kind_of?(Array)
809
955
  # log("We shouldn't be here. If you can track down when this happens, please send an example to the author.", :error)
810
956
  # puts caller[0..10].join("\n")
@@ -1145,7 +1291,8 @@ class Deplate::Formatter < Deplate::CommonObject
1145
1291
  shift = args[:shift]
1146
1292
  hanging = args[:hanging]
1147
1293
  indent = args[:indent] || format_indent(mult, shift)
1148
- return text.collect do |l|
1294
+ acc = []
1295
+ text.each_line do |l|
1149
1296
  rv = '%s%s' % [indent, l.chomp]
1150
1297
  if hanging
1151
1298
  indent = args[:indenttail] || \
@@ -1162,8 +1309,9 @@ class Deplate::Formatter < Deplate::CommonObject
1162
1309
  end
1163
1310
  hanging = false
1164
1311
  end
1165
- rv
1166
- end.join("\n")
1312
+ acc << rv
1313
+ end
1314
+ return acc.join("\n")
1167
1315
  end
1168
1316
  end
1169
1317
 
@@ -1220,12 +1368,38 @@ class Deplate::Formatter < Deplate::CommonObject
1220
1368
  end
1221
1369
 
1222
1370
 
1223
- private
1371
+ protected
1224
1372
  def initialize_services
1225
1373
  services = {}
1226
1374
  return services
1227
1375
  end
1228
1376
 
1377
+ # def clean_tags(text)
1378
+ # if text
1379
+ # t = text.gsub(/\<[^>]*?\>/, '')
1380
+ # t.gsub!(/^\s*$/, '')
1381
+ # t.gsub!(/^\n\s*/, '')
1382
+ # t.gsub!(/\n\s*$/, '')
1383
+ # t
1384
+ # end
1385
+ # end
1386
+
1387
+ def clean_tags(text, *tags)
1388
+ if text
1389
+ if tags.empty?
1390
+ t = text.gsub(/\<[^>]*?\>/, '')
1391
+ else
1392
+ # tags = tags.empty? ? '\w+' : tags.join('|')
1393
+ tags = tags.join('|')
1394
+ t = text.gsub(/<(#{tags}).*?\/>|<(#{tags}).*?>.*?<\/\1>/, '')
1395
+ end
1396
+ t.gsub!(/^\s*$/, '')
1397
+ t.gsub!(/^\n\s*/, '')
1398
+ t.gsub!(/\n\s*$/, '')
1399
+ t
1400
+ end
1401
+ end
1402
+
1229
1403
  def format_custom_list(invoker, elt)
1230
1404
  listing = @deplate.options.listings.get(elt, true)
1231
1405
  props = listing[:props]