deplate 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.TXT +26 -0
- data/CHANGES.TXT +177 -0
- data/LICENSE.TXT +340 -0
- data/NEWS.TXT +29 -0
- data/README.TXT +86 -0
- data/TODO.TXT +202 -0
- data/VERSION.TXT +1 -0
- data/bin/deplate +3 -0
- data/bin/deplate.bat +2 -0
- data/etc/deplate.ini +361 -0
- data/lib/deplate.rb +31 -0
- data/lib/deplate/abstract-class.rb +30 -0
- data/lib/deplate/builtin.rb +11 -0
- data/lib/deplate/cache.rb +59 -0
- data/lib/deplate/commands.rb +693 -0
- data/lib/deplate/common.rb +335 -0
- data/lib/deplate/converter.rb +99 -0
- data/lib/deplate/core.rb +2705 -0
- data/lib/deplate/css/article.css +545 -0
- data/lib/deplate/css/deplate.css +699 -0
- data/lib/deplate/css/heading-navbar.css +29 -0
- data/lib/deplate/css/layout-deplate-print.css +540 -0
- data/lib/deplate/css/layout-deplate.css +764 -0
- data/lib/deplate/css/sans-serif.css +160 -0
- data/lib/deplate/css/serif-e.css +170 -0
- data/lib/deplate/css/serif-rel.css +121 -0
- data/lib/deplate/css/serif.css +190 -0
- data/lib/deplate/css/slides.css +11 -0
- data/lib/deplate/css/tabbar-left.css +91 -0
- data/lib/deplate/css/tabbar-right-ie.css +14 -0
- data/lib/deplate/css/tabbar-right.css +118 -0
- data/lib/deplate/css/tabbar-top.css +64 -0
- data/lib/deplate/css/tabbar.css +81 -0
- data/lib/deplate/css/text-sans-serif.css +154 -0
- data/lib/deplate/css/text-serif.css +175 -0
- data/lib/deplate/define.rb +439 -0
- data/lib/deplate/docbook.rb +738 -0
- data/lib/deplate/elements.rb +1355 -0
- data/lib/deplate/etc.rb +199 -0
- data/lib/deplate/external.rb +135 -0
- data/lib/deplate/fmt/dbk-article-4.1.2.rb +21 -0
- data/lib/deplate/fmt/dbk-article.rb +46 -0
- data/lib/deplate/fmt/dbk-book.rb +46 -0
- data/lib/deplate/fmt/dbk-ref.rb +105 -0
- data/lib/deplate/fmt/dbk-slides.rb +47 -0
- data/lib/deplate/fmt/dbk-snippet.rb +21 -0
- data/lib/deplate/fmt/html-snippet.rb +21 -0
- data/lib/deplate/fmt/html.rb +1696 -0
- data/lib/deplate/fmt/htmlsite.rb +419 -0
- data/lib/deplate/fmt/htmlslides.rb +21 -0
- data/lib/deplate/fmt/htmlwebsite.rb +70 -0
- data/lib/deplate/fmt/latex-snippet.rb +22 -0
- data/lib/deplate/fmt/latex.rb +1242 -0
- data/lib/deplate/fmt/php.rb +19 -0
- data/lib/deplate/fmt/phpsite.rb +19 -0
- data/lib/deplate/fmt/plain.rb +598 -0
- data/lib/deplate/fmt/template.rb +34 -0
- data/lib/deplate/fmt/xhtml10t.rb +41 -0
- data/lib/deplate/formatter-snippet.rb +17 -0
- data/lib/deplate/formatter.rb +1210 -0
- data/lib/deplate/input.rb +492 -0
- data/lib/deplate/input/deplate-headings.rb +48 -0
- data/lib/deplate/input/deplate-restricted.rb +70 -0
- data/lib/deplate/input/deplate.rb +28 -0
- data/lib/deplate/input/rdoc.rb +277 -0
- data/lib/deplate/input/template.rb +29 -0
- data/lib/deplate/lib/latex/highlight-extra.sty +15 -0
- data/lib/deplate/lib/latex/highlight-typical.sty +15 -0
- data/lib/deplate/lib/tabmenu.js +146 -0
- data/lib/deplate/locale/de.latin1 +708 -0
- data/lib/deplate/locale/ru.koi8-r +48 -0
- data/lib/deplate/locale/zh_cn.gb2312 +35 -0
- data/lib/deplate/macros.rb +639 -0
- data/lib/deplate/messages.rb +120 -0
- data/lib/deplate/metadata.rb +77 -0
- data/lib/deplate/metadata/marshal.rb +24 -0
- data/lib/deplate/metadata/xml.rb +42 -0
- data/lib/deplate/metadata/yaml.rb +26 -0
- data/lib/deplate/mod/anyword.rb +56 -0
- data/lib/deplate/mod/babelfish.rb +27 -0
- data/lib/deplate/mod/code-gvim.rb +52 -0
- data/lib/deplate/mod/code-highlight.rb +91 -0
- data/lib/deplate/mod/colored-log.rb +17 -0
- data/lib/deplate/mod/de.rb +19 -0
- data/lib/deplate/mod/en.rb +17 -0
- data/lib/deplate/mod/endnotes.rb +60 -0
- data/lib/deplate/mod/fr.rb +46 -0
- data/lib/deplate/mod/html-asciimath.rb +40 -0
- data/lib/deplate/mod/html-deplate-button.rb +15 -0
- data/lib/deplate/mod/html-headings-navbar.rb +39 -0
- data/lib/deplate/mod/html-obfuscate-email.rb +47 -0
- data/lib/deplate/mod/html-sidebar.rb +232 -0
- data/lib/deplate/mod/htmlslides-navbar-fh.rb +32 -0
- data/lib/deplate/mod/iconv.rb +35 -0
- data/lib/deplate/mod/imgurl.rb +30 -0
- data/lib/deplate/mod/inlatex-compound.rb +69 -0
- data/lib/deplate/mod/koma.rb +109 -0
- data/lib/deplate/mod/latex-emph-table-head.rb +38 -0
- data/lib/deplate/mod/latex-styles.rb +461 -0
- data/lib/deplate/mod/latex-verbatim-small.rb +29 -0
- data/lib/deplate/mod/makefile.rb +194 -0
- data/lib/deplate/mod/mark-external-urls.rb +38 -0
- data/lib/deplate/mod/markup-1-warn.rb +37 -0
- data/lib/deplate/mod/markup-1.rb +41 -0
- data/lib/deplate/mod/navbar-png.rb +33 -0
- data/lib/deplate/mod/noindent.rb +32 -0
- data/lib/deplate/mod/numpara.rb +40 -0
- data/lib/deplate/mod/particle-math.rb +34 -0
- data/lib/deplate/mod/php-extra.rb +44 -0
- data/lib/deplate/mod/pstoedit.rb +71 -0
- data/lib/deplate/mod/recode.rb +57 -0
- data/lib/deplate/mod/ru_koi8-r.rb +20 -0
- data/lib/deplate/mod/smiley.rb +50 -0
- data/lib/deplate/mod/soffice.rb +23 -0
- data/lib/deplate/mod/symbols-latin1.rb +58 -0
- data/lib/deplate/mod/symbols-od-utf-8.rb +16 -0
- data/lib/deplate/mod/symbols-plain.rb +58 -0
- data/lib/deplate/mod/symbols-sgml.rb +97 -0
- data/lib/deplate/mod/symbols-utf-8.rb +81 -0
- data/lib/deplate/mod/symbols-xml.rb +34 -0
- data/lib/deplate/mod/syntax-region-alt.rb +37 -0
- data/lib/deplate/mod/utf8.rb +49 -0
- data/lib/deplate/mod/validate-html.rb +35 -0
- data/lib/deplate/mod/xmlrpc.rb +233 -0
- data/lib/deplate/mod/zh-cn-autospace.rb +108 -0
- data/lib/deplate/mod/zh-cn.rb +59 -0
- data/lib/deplate/once-method.rb +44 -0
- data/lib/deplate/output.rb +249 -0
- data/lib/deplate/particles.rb +815 -0
- data/lib/deplate/regions.rb +1076 -0
- data/lib/deplate/structured.rb +763 -0
- data/lib/deplate/template.rb +430 -0
- data/lib/deplate/templates/html-doc.html +28 -0
- data/lib/deplate/templates/html-left-tabbar-js.html +37 -0
- data/lib/deplate/templates/html-left-tabbar.html +31 -0
- data/lib/deplate/templates/html-tabbar-right-table.html +43 -0
- data/lib/deplate/templates/html-tabbar-right.html +23 -0
- data/lib/deplate/templates/html-tabbar-top.html +43 -0
- data/lib/deplate/templates/html-tabbar.html +31 -0
- data/lib/deplate/wiki-markup.rb +117 -0
- data/lib/deplate/xml.rb +109 -0
- data/lib/deplate/zh-cn.rb +59 -0
- data/lib/ps2ppm.rb +239 -0
- data/man/man1/deplate.1 +692 -0
- metadata +210 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
#Mingle type=pre slot=css:
|
2
|
+
<!--[if IE]>
|
3
|
+
<style type="text/css">
|
4
|
+
@media screen {
|
5
|
+
table.tabBarLeft {
|
6
|
+
border-collapse: collapse;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
</style>
|
10
|
+
<![endif]-->
|
11
|
+
#End
|
12
|
+
#Mingle type=pre slot=javascript:
|
13
|
+
<script src="tabmenu.js" type="text/javascript"></script>
|
14
|
+
#End
|
15
|
+
#PREMATTER
|
16
|
+
|
17
|
+
<div id="tabFrame">
|
18
|
+
<div id="tabFrameRow1">
|
19
|
+
<div id="tabBodyFrame">
|
20
|
+
<div class="tabBody">
|
21
|
+
<img width="700px" height="1px" src="spacer.png" alt="" />
|
22
|
+
#BODY: -navbar_top -navbar_bottom
|
23
|
+
</div>
|
24
|
+
#POSTMATTER: html_pageicons_beg..html_pageicons_end
|
25
|
+
</div>
|
26
|
+
<div id="tabBar" class="tabBar">
|
27
|
+
<div id="pin">
|
28
|
+
<a href="javascript:ToggleSticky()" title="Toggle Sticky">
|
29
|
+
<img id="pinImg" border=0 src="pin-up.png" alt="Pin" />
|
30
|
+
</a>
|
31
|
+
</div>
|
32
|
+
#ARG: tabBarLeft(progressBar! nextKey! spacer=spacer.png depth=2 depthInactive=1)
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
#POSTMATTER
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#Mingle type=pre slot=css:
|
2
|
+
<!--[if IE]>
|
3
|
+
<style type="text/css">
|
4
|
+
@media screen {
|
5
|
+
table.tabBarLeft {
|
6
|
+
border-collapse: collapse;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
</style>
|
10
|
+
<![endif]-->
|
11
|
+
#End
|
12
|
+
#PREMATTER
|
13
|
+
|
14
|
+
<div id="tabFrame">
|
15
|
+
<div class="tabFrameRow">
|
16
|
+
<div id="tabBar" class="tabBar">
|
17
|
+
#ARG: tabBarLeft(progressBar! nextKey! spacer=spacer.png depth=2 depthInactive=1)
|
18
|
+
</div>
|
19
|
+
<div id="tabBodyFrame">
|
20
|
+
<div class="tabBody">
|
21
|
+
<img width="700px" height="1px" src="spacer.png" alt="" />
|
22
|
+
#BODY: -navbar_top -navbar_bottom
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<div class="tabFrameRow">
|
27
|
+
#POSTMATTER: html_pageicons_beg..html_pageicons_end
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
#POSTMATTER
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#Mingle type=pre slot=css:
|
2
|
+
<style type="text/css">
|
3
|
+
<!--
|
4
|
+
div.tableNote {
|
5
|
+
text-align: left;
|
6
|
+
}
|
7
|
+
-->
|
8
|
+
</style>
|
9
|
+
<!--[if IE]>
|
10
|
+
<style type="text/css">
|
11
|
+
@media screen {
|
12
|
+
table.tabBarRight {
|
13
|
+
border-collapse: collapse;
|
14
|
+
}
|
15
|
+
#tabBar {
|
16
|
+
position: static;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
</style>
|
20
|
+
<![endif]-->
|
21
|
+
#End
|
22
|
+
#PREMATTER
|
23
|
+
|
24
|
+
<table id="tabFrame">
|
25
|
+
<tr class="tabFrameRow">
|
26
|
+
<td id="tabBodyFrame">
|
27
|
+
<div id="tabBody">
|
28
|
+
<img width="700px" height="1px" src="spacer.png" alt="" />
|
29
|
+
#BODY: -navbar_top -navbar_bottom
|
30
|
+
</div>
|
31
|
+
</td>
|
32
|
+
<td id="tabBar">
|
33
|
+
#ARG: tabBarRight(progressBar! nextKey! spacer=spacer.png depth=2 depthInactive=1)
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
<tr class="tabFrameRow">
|
37
|
+
<td class="tabFrameCell">
|
38
|
+
#POSTMATTER: html_pageicons_beg..html_pageicons_end
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
</table>
|
42
|
+
|
43
|
+
#POSTMATTER
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#Mingle type=pre slot=css:
|
2
|
+
<!--[if IE]>
|
3
|
+
<style type="text/css">
|
4
|
+
<link rel="stylesheet" type="text/css" href="tabbar-right-ie.css" media="screen">
|
5
|
+
</style>
|
6
|
+
<![endif]-->
|
7
|
+
#End
|
8
|
+
#PREMATTER
|
9
|
+
|
10
|
+
<div id="tabFrame">
|
11
|
+
<div id="tabBodyFrame">
|
12
|
+
<div id="tabBody">
|
13
|
+
<img width="600px" height="1px" src="spacer.png" alt="" />
|
14
|
+
#BODY: -navbar_top -navbar_bottom
|
15
|
+
</div>
|
16
|
+
#POSTMATTER: html_pageicons_beg..html_pageicons_end
|
17
|
+
</div>
|
18
|
+
<div id="tabBar">
|
19
|
+
#ARG: tabBarRight(progressBar! nextKey! spacer=spacer.png depth=2 depthInactive=1)
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
#POSTMATTER
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#Mingle type=pre slot=css:
|
2
|
+
<style type="text/css">
|
3
|
+
<!--
|
4
|
+
@media screen {
|
5
|
+
body {
|
6
|
+
background-color: #e9e9ff;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
-->
|
10
|
+
</style>
|
11
|
+
<!--[if IE]>
|
12
|
+
<style type="text/css">
|
13
|
+
@media screen {
|
14
|
+
table.tabBarTop {
|
15
|
+
border-collapse: collapse;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
</style>
|
19
|
+
<![endif]-->
|
20
|
+
#End
|
21
|
+
|
22
|
+
#PREMATTER
|
23
|
+
|
24
|
+
<div id="tabFrame">
|
25
|
+
<div id="tabBodyFrame" class="tabBodyFrame">
|
26
|
+
<div id="tabBar" class="tabBar">
|
27
|
+
#IF: tabBarPos==top
|
28
|
+
#ARG: tabBarTop()
|
29
|
+
#ELSEIF: tabBarPos==right
|
30
|
+
#ARG: tabBarRight(progressBar! nextKey! depth=2 depthInactive=1)
|
31
|
+
#ELSE
|
32
|
+
#ARG: tabBarLeft(progressBar! nextKey! depth=2 depthInactive=1)
|
33
|
+
#ENDIF
|
34
|
+
</div>
|
35
|
+
<div id="tabBody" class="tabBody">
|
36
|
+
#BODY
|
37
|
+
</div>
|
38
|
+
#POSTMATTER: html_pageicons_beg..html_pageicons_end
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
#POSTMATTER
|
43
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#Mingle type=pre slot=css:
|
2
|
+
<style type="text/css">
|
3
|
+
<!--
|
4
|
+
@media screen {
|
5
|
+
body {
|
6
|
+
background-color: #e9e9ff;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
-->
|
10
|
+
</style>
|
11
|
+
#End
|
12
|
+
#PREMATTER
|
13
|
+
|
14
|
+
<div id="tabBar" class="tabBar">
|
15
|
+
#IF: tabBarPos==top
|
16
|
+
#ARG: tabBarTop()
|
17
|
+
#ELSEIF: tabBarPos==right
|
18
|
+
#ARG: tabBarRight(progressBar! nextKey! depth=2 depthInactive=1)
|
19
|
+
#ELSE
|
20
|
+
#ARG: tabBarLeft(progressBar! nextKey! depth=2 depthInactive=1)
|
21
|
+
#ENDIF
|
22
|
+
</div>
|
23
|
+
<div id="tabBodyFrame" class="tabBodyFrame">
|
24
|
+
<div id="tabBody" class="tabBody">
|
25
|
+
#BODY: -navbar_top -navbar_bottom
|
26
|
+
</div>
|
27
|
+
#POSTMATTER: html_pageicons_beg..html_pageicons_end
|
28
|
+
</div>
|
29
|
+
|
30
|
+
#POSTMATTER
|
31
|
+
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# wiki-markup.rb
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 10-M�r-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.221
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# Various elements for defining input filters
|
11
|
+
# = Usage
|
12
|
+
# = TODO
|
13
|
+
# = CHANGES
|
14
|
+
|
15
|
+
module Deplate::Input::Wiki; end
|
16
|
+
|
17
|
+
class Deplate::Input::Wiki::ItalicWordSingleUnderscore < Deplate::Particle::Emphasize
|
18
|
+
@rx = /^\b_(\S+?)_\b/
|
19
|
+
end
|
20
|
+
|
21
|
+
class Deplate::Input::Wiki::BoldWordSingleAsterisk < Deplate::Particle::Emphasize
|
22
|
+
@rx = /^\B\*(\S+?)\*\B/
|
23
|
+
end
|
24
|
+
|
25
|
+
class Deplate::Input::Wiki::TypewriterWordSinglePlus < Deplate::Particle::Code
|
26
|
+
@rx = /^\B\+(\S+?)\+\B/
|
27
|
+
end
|
28
|
+
|
29
|
+
# Treat a reference to an image as included images. Requires subclassing and a
|
30
|
+
# definition of @rx.
|
31
|
+
class Deplate::Input::Wiki::AbstractImgUrl < Deplate::HyperLink::Url
|
32
|
+
def get_destination
|
33
|
+
@match[1]
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_anchor
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
|
40
|
+
def process
|
41
|
+
@elt = @deplate.formatter.include_image(@dest, @args, true)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Treat non-indented text as paragraph, indented as verbatim.
|
46
|
+
class Deplate::Input::Wiki::ParagraphIndentedVerbatim < Deplate::Element::Paragraph
|
47
|
+
@rx = /^([ \t]*)(.+)[ \t]*$/
|
48
|
+
def get_text
|
49
|
+
@leading_whitespace = @match[1]
|
50
|
+
@keep_whitespace = !@leading_whitespace.empty?
|
51
|
+
@match[2]
|
52
|
+
end
|
53
|
+
|
54
|
+
def to_be_continued?(line)
|
55
|
+
indent = get_indent(line).size
|
56
|
+
return @level > 0 || indent == 0
|
57
|
+
end
|
58
|
+
|
59
|
+
def format_special
|
60
|
+
if @level == 0
|
61
|
+
format_as_paragraph
|
62
|
+
else
|
63
|
+
@elt = @leading_whitespace + @accum.join("\n")
|
64
|
+
format_as_verbatim
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def format_as_paragraph
|
69
|
+
format_element(:format_paragraph, self)
|
70
|
+
end
|
71
|
+
|
72
|
+
def format_as_verbatim
|
73
|
+
margin = @args["wrap"]
|
74
|
+
if margin
|
75
|
+
@elt = @deplate.formatter.wrap_text(@elt, :margin => margin.to_i)
|
76
|
+
end
|
77
|
+
format_element(:format_verbatim, self)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
module Deplate::Input::Wiki::ListExtra
|
82
|
+
def continuation_level_ok?(otherLevel, thisLevel, thisMaxLevel)
|
83
|
+
return (otherLevel > 0 and otherLevel >= thisLevel and otherLevel <= thisMaxLevel)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
class Deplate::Input::Wiki::NumberedNotIndented < Deplate::List::Numbered
|
88
|
+
include Deplate::Input::Wiki::ListExtra
|
89
|
+
@formatter = :format_list
|
90
|
+
@name = "Numbered"
|
91
|
+
@rx = /^(()([0-9]+\.|[a-zA-Z]\.)[ \t]+)(.+)$/
|
92
|
+
end
|
93
|
+
|
94
|
+
class Deplate::Input::Wiki::ItemizeNotIndented < Deplate::List::Itemize
|
95
|
+
include Deplate::Input::Wiki::ListExtra
|
96
|
+
@formatter = :format_list
|
97
|
+
@name = "Itemize"
|
98
|
+
@rx = /^(()([-*])[ \t]+)(.+)$/
|
99
|
+
end
|
100
|
+
|
101
|
+
# Requires subclassing & definition of @rx.
|
102
|
+
class Deplate::Input::Wiki::AbstractDescription < Deplate::List::Description
|
103
|
+
include Deplate::Input::Wiki::ListExtra
|
104
|
+
@formatter = :format_list
|
105
|
+
@name = "Description"
|
106
|
+
end
|
107
|
+
|
108
|
+
class Deplate::Input::Wiki::HeadingPrefixEqual < Deplate::Element::Heading
|
109
|
+
@formatter = :format_heading
|
110
|
+
@rx = /^(=+)[ \t]+(.*?)$/
|
111
|
+
end
|
112
|
+
|
113
|
+
class Deplate::Input::Wiki::Break3Hyphens < Deplate::Element::Break
|
114
|
+
@formatter = :format_break
|
115
|
+
@rx = /^\s*-{3,}\s*$/
|
116
|
+
end
|
117
|
+
|
data/lib/deplate/xml.rb
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
# xml.rb
|
2
|
+
# @Author: Thomas Link (samul AT web.de)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 17-M�r-2004.
|
6
|
+
# @Last Change: 01-Nov-2005.
|
7
|
+
# @Revision: 0.2294
|
8
|
+
#
|
9
|
+
# TODO:
|
10
|
+
# -
|
11
|
+
|
12
|
+
# An abstract xml formatter
|
13
|
+
|
14
|
+
require "deplate/structured"
|
15
|
+
|
16
|
+
class Deplate::Formatter::XML < Deplate::Formatter::Structured
|
17
|
+
self.suffix = ".xml"
|
18
|
+
|
19
|
+
def initialize(deplate, args)
|
20
|
+
@consumed_ids = []
|
21
|
+
deplate.options.indentation_level = [0]
|
22
|
+
super
|
23
|
+
@special_symbols = {
|
24
|
+
"\"" => Proc.new {|e| symbol_quote(nil)},
|
25
|
+
"&" => Proc.new {|e| symbol_amp(nil)},
|
26
|
+
"�" => Proc.new {|e| symbol_paragraph(nil)},
|
27
|
+
"<" => Proc.new {|e| symbol_lt(nil)},
|
28
|
+
">" => Proc.new {|e| symbol_gt(nil)},
|
29
|
+
" " => Proc.new {|e| e ? nonbreakingspace(nil) : " "},
|
30
|
+
}
|
31
|
+
build_plain_text_rx
|
32
|
+
@encodings = {
|
33
|
+
'latin1' => 'ISO-8859-1',
|
34
|
+
'latin9' => 'ISO-8859-15',
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def pre_process
|
39
|
+
@encoding = canonic_enc_name(@deplate.variables["encoding"] || "utf-8")
|
40
|
+
if @deplate.options.symbols_encoding
|
41
|
+
symbols = @deplate.options.symbols_encoding
|
42
|
+
elsif @deplate.variables["sgml"]
|
43
|
+
symbols = :sgml
|
44
|
+
require "deplate/mod/symbols-sgml" unless @deplate.symbols[symbols]
|
45
|
+
@sgml = true
|
46
|
+
else
|
47
|
+
case @encoding
|
48
|
+
when "ISO-8859-1", "ISO-8859-15"
|
49
|
+
symbols = "ISO-8859-1"
|
50
|
+
require "deplate/mod/symbols-latin1" unless @deplate.symbols[symbols]
|
51
|
+
else
|
52
|
+
symbols = :xml
|
53
|
+
require "deplate/mod/symbols-xml" unless @deplate.symbols[symbols]
|
54
|
+
end
|
55
|
+
end
|
56
|
+
if @sgml
|
57
|
+
require "deplate/mod/noindent"
|
58
|
+
Deplate::NoIndent.setup(self)
|
59
|
+
end
|
60
|
+
@deplate.initialize_symbols
|
61
|
+
mod = @deplate.symbols[symbols]
|
62
|
+
if mod
|
63
|
+
self.extend(mod)
|
64
|
+
else
|
65
|
+
raise "Unknown symbols encoding: %s (%s)" % [symbols, @deplate.symbols.keys.join(", ")]
|
66
|
+
end
|
67
|
+
@deplate.variables["refButton"] ||= "[%s]" % format_symbol(nil, "->")
|
68
|
+
end
|
69
|
+
|
70
|
+
def prepare
|
71
|
+
creator = ["===================================================",
|
72
|
+
"== Created with deplate (http://deplate.sf.net) ==",
|
73
|
+
"==================================================="]
|
74
|
+
output_at(:pre, :doc_def, get_doc_def({:deplate => @deplate}))
|
75
|
+
output_at(:pre, :doc_def, get_comment(creator))
|
76
|
+
output_at(:pre, :doc_beg, get_doc_open({}))
|
77
|
+
output_at(:pre, :head_beg, get_doc_head_open({}))
|
78
|
+
output_at(:pre, :head, indent_text(get_doc_head({})))
|
79
|
+
output_at(:pre, :head_end, get_doc_head_close({}))
|
80
|
+
output_at(:pre, :body_beg, get_doc_body_open({}))
|
81
|
+
|
82
|
+
@deplate.postponed_print << Proc.new do
|
83
|
+
output_at(:post, :body_end, close_headings(0))
|
84
|
+
output_at(:post, :body_end, get_doc_body_close({}))
|
85
|
+
output_at(:post, :doc_end, get_doc_close({}))
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def plain_text(text, escaped=false, vapor_space=true)
|
90
|
+
super(text, escaped) do |accum|
|
91
|
+
if vapor_space
|
92
|
+
accum.join.gsub(/ {2,}/, " ")
|
93
|
+
else
|
94
|
+
accum.join
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def encode_id(text)
|
100
|
+
text ? text.gsub(/\W/, "00") : ""
|
101
|
+
end
|
102
|
+
|
103
|
+
def get_comment(strings)
|
104
|
+
strings.collect {|l| %{<!-- %s -->} % l}.join("\n")
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
# vim: ff=unix
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# zh-cn.rb -- Simplified Chinese messages
|
2
|
+
# @Author: Thomas Link; localization by Jjgod Jiang (gzjjgod@21cn.com)
|
3
|
+
# @Website: http://deplate.sf.net/
|
4
|
+
# @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
5
|
+
# @Created: 01-Aug-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.207
|
8
|
+
|
9
|
+
require 'deplate/messages'
|
10
|
+
|
11
|
+
class Deplate::Formatter
|
12
|
+
attr_reader :cjk_smart_blanks
|
13
|
+
|
14
|
+
def hook_pre_setup_zh_cn
|
15
|
+
# @deplate.variables["encoding"] = "gb2312"
|
16
|
+
@cjk_smart_blanks = !(@deplate.variables["noSmartBlanks"] || false)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Deplate::Formatter::LaTeX
|
21
|
+
def prepare_zh_cn
|
22
|
+
family = @deplate.variables["cjk_family"] || "gbsn"
|
23
|
+
encoding = @deplate.variables["cjk_encoding"] || "GB"
|
24
|
+
union_at(:pre, :mod_packages, "\\usepackage{CJK}")
|
25
|
+
union_at(:pre, :mod_packages, "\\usepackage{CJKnumb}")
|
26
|
+
union_at(:pre, :mod_packages, "\\usepackage{indentfirst}")
|
27
|
+
output_at(:pre, :body_beg, "\\begin{CJK*}{#{encoding}}{#{family}}",
|
28
|
+
"\\CJKtilde{}", "\\CJKcaption{GB}", "\\CJKindent{}")
|
29
|
+
output_at(:post, :prepend_body_end, "\\end{CJK*}")
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_document_encoding
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Deplate::Formatter
|
37
|
+
def multibyte_leader?(ch)
|
38
|
+
ch && ch >= 0xA1 && ch <= 0xFE
|
39
|
+
end
|
40
|
+
|
41
|
+
alias :get_first_char_re_zh_cn :get_first_char
|
42
|
+
|
43
|
+
def get_first_char(string, upcase=false)
|
44
|
+
if multibyte_leader?(string[0])
|
45
|
+
string[0..1]
|
46
|
+
else
|
47
|
+
get_first_char_re_zh_cn(string, upcase)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class Deplate::Messages::ZhCnGb2312 < Deplate::Messages
|
53
|
+
setup 'zh-cn'
|
54
|
+
def_prop 'lang', 'zh-cn'
|
55
|
+
def_prop 'encoding', 'gb2312'
|
56
|
+
def_prop 'latex_encoding', nil
|
57
|
+
load_catalog 'zh_cn.gb2312'
|
58
|
+
end
|
59
|
+
|