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,120 @@
|
|
1
|
+
# mod-en.rb -- Standard messages
|
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: 07-Mai-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.193
|
8
|
+
|
9
|
+
# The base class for localizations
|
10
|
+
class Deplate::Messages
|
11
|
+
class << self
|
12
|
+
def setup(lang)
|
13
|
+
@properties ||= {}
|
14
|
+
@catalog ||= {}
|
15
|
+
Deplate::Core.module_eval <<-CODE
|
16
|
+
@@messages['#{lang}'] = #{self.name}
|
17
|
+
@@messages_last = #{self.name}
|
18
|
+
CODE
|
19
|
+
end
|
20
|
+
|
21
|
+
# Obsolete. Messages should be defined in a file in the locale
|
22
|
+
# subdirectory
|
23
|
+
def def_msg(id, text)
|
24
|
+
@catalog[id] = text
|
25
|
+
end
|
26
|
+
|
27
|
+
# Define a "property" like lang, latex_cmd etc.
|
28
|
+
def def_prop(key, val)
|
29
|
+
@properties[key] = val
|
30
|
+
end
|
31
|
+
|
32
|
+
# Get the localized message with this id
|
33
|
+
def msg(id)
|
34
|
+
case id
|
35
|
+
when Symbol
|
36
|
+
mid = "@#{id}"
|
37
|
+
else
|
38
|
+
mid = id
|
39
|
+
end
|
40
|
+
rv = @catalog[mid] || (id.kind_of?(String) ? id : nil)
|
41
|
+
rv
|
42
|
+
end
|
43
|
+
|
44
|
+
# was property key defined?
|
45
|
+
def has_property?(key)
|
46
|
+
@properties.keys.include?(key)
|
47
|
+
end
|
48
|
+
|
49
|
+
# get property key; check if there exists a specific property for
|
50
|
+
# the formatter fmt (e.g., latex_lang instead of lang)
|
51
|
+
def prop(key, fmt=nil)
|
52
|
+
if fmt
|
53
|
+
af = [fmt.formatter_name, key].join('_')
|
54
|
+
if has_property?(af)
|
55
|
+
return @properties[af]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
return @properties[key]
|
59
|
+
end
|
60
|
+
|
61
|
+
# Load the message catalog for lang from the locale subdirectory
|
62
|
+
#
|
63
|
+
# The format is simply (repeating):
|
64
|
+
# MESSAGE/ID/HEAD/KEY
|
65
|
+
# LOCALIZED TEXT
|
66
|
+
# <BLANK LINE>
|
67
|
+
#
|
68
|
+
# Filter out comments -- lines starting with # in the first
|
69
|
+
# position. Comments can only occur in the head/key position as
|
70
|
+
# there is no message starting with #.
|
71
|
+
def load_catalog(lang)
|
72
|
+
langs, catalogs = Deplate::Core.collect_deplate_options('locale', 'locale', '')
|
73
|
+
fname = catalogs[lang]
|
74
|
+
if fname
|
75
|
+
cat = []
|
76
|
+
File.open(fname) do |io|
|
77
|
+
cat = io.readlines
|
78
|
+
end
|
79
|
+
key = nil
|
80
|
+
text = []
|
81
|
+
for e in cat
|
82
|
+
e.chomp!
|
83
|
+
if key
|
84
|
+
if e =~ /^\s*$/
|
85
|
+
@catalog[key] = text.join("\n")
|
86
|
+
key = nil
|
87
|
+
text = []
|
88
|
+
else
|
89
|
+
text << e
|
90
|
+
end
|
91
|
+
elsif e !~ /^#/ and e !~ /^\s*$/
|
92
|
+
key = e
|
93
|
+
end
|
94
|
+
end
|
95
|
+
else
|
96
|
+
raise "Unknown language: #{lang} (#{catalogs.keys.join(', ')})"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
def initialize(deplate)
|
103
|
+
@deplate = deplate
|
104
|
+
@deplate.variables['encoding'] = prop('encoding')
|
105
|
+
@deplate.options.lang = prop('lang', false)
|
106
|
+
end
|
107
|
+
|
108
|
+
# See Deplate::Messages.msg
|
109
|
+
def msg(key)
|
110
|
+
self.class.msg(key)
|
111
|
+
end
|
112
|
+
|
113
|
+
# See Deplate::Messages.prop
|
114
|
+
def prop(key, fmt=nil)
|
115
|
+
fmt = @deplate.formatter if fmt.nil?
|
116
|
+
self.class.prop(key, fmt)
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# metadata.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: 15-Aug-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.6
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# = Usage
|
11
|
+
# = TODO
|
12
|
+
# = CHANGES
|
13
|
+
|
14
|
+
# require ''
|
15
|
+
|
16
|
+
# Metadata:
|
17
|
+
class Deplate::Metadata
|
18
|
+
attr_accessor :metadata
|
19
|
+
|
20
|
+
def initialize(deplate, output=nil)
|
21
|
+
@deplate = deplate
|
22
|
+
@output = output
|
23
|
+
@metadata = {}
|
24
|
+
end
|
25
|
+
|
26
|
+
def merge_metadata(metadata)
|
27
|
+
if @deplate.options.metadata_model
|
28
|
+
for e in metadata
|
29
|
+
push_metadata(e)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def push_metadata(data)
|
35
|
+
if @deplate.options.metadata_model
|
36
|
+
type = data["type"]
|
37
|
+
@metadata[type] ||= []
|
38
|
+
@metadata[type] << data
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def metadata_available?
|
43
|
+
!@metadata.empty?
|
44
|
+
end
|
45
|
+
|
46
|
+
def destination(destination=nil)
|
47
|
+
if destination
|
48
|
+
destination
|
49
|
+
elsif @output
|
50
|
+
@output.destination
|
51
|
+
else
|
52
|
+
# <+TBD+>
|
53
|
+
''
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def metadata_destination(master_file=nil)
|
58
|
+
dest = destination(master_file)
|
59
|
+
Deplate::Core.canonic_file_name(dest, @deplate.options.metadata_suffix)
|
60
|
+
end
|
61
|
+
|
62
|
+
def format_metadata(metadata=@metadata)
|
63
|
+
unless metadata.nil? or metadata.empty?
|
64
|
+
for type, value in metadata
|
65
|
+
if value
|
66
|
+
for e in value
|
67
|
+
e['file'] = destination.dup
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
metadata['creator'] = 'deplate'
|
72
|
+
metadata['creator_version'] = Deplate::Core.version
|
73
|
+
@deplate.dump_metadata(metadata)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# yaml.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: 20-M�r-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.13
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# = Usage
|
11
|
+
# = TODO
|
12
|
+
# = CHANGES
|
13
|
+
|
14
|
+
class Deplate::Core
|
15
|
+
def module_initialize_metadata_marshal
|
16
|
+
@options.metadata_model = "marshal"
|
17
|
+
@options.metadata_suffix = ".dat"
|
18
|
+
end
|
19
|
+
|
20
|
+
def put_metadata(io, metadata)
|
21
|
+
Marshal.dump(metadata, io)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,42 @@
|
|
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: 20-M�r-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.29
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# = Usage
|
11
|
+
# = TODO
|
12
|
+
# = CHANGES
|
13
|
+
|
14
|
+
require 'rexml/document'
|
15
|
+
|
16
|
+
class Deplate::Core
|
17
|
+
def module_initialize_metadata_marshal
|
18
|
+
@options.metadata_model = "xml"
|
19
|
+
@options.metadata_suffix = ".xml"
|
20
|
+
@options.metadata_xml = REXML::Document.new <<EOXML
|
21
|
+
<deplate>
|
22
|
+
</deplate>
|
23
|
+
EOXML
|
24
|
+
@options.metadata_xml << REXML::XMLDecl.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def put_metadata(io, metadata)
|
28
|
+
@options.metadata_xml.write(io, 2)
|
29
|
+
end
|
30
|
+
|
31
|
+
alias :push_metadata_re_metadata_xml :push_metadata
|
32
|
+
def push_metadata(data, array=@metadata)
|
33
|
+
if @options.metadata_model
|
34
|
+
type = data["type"]
|
35
|
+
d = data.dup
|
36
|
+
d.delete('type')
|
37
|
+
@options.metadata_xml.root.add_element(type, d)
|
38
|
+
push_metadata_re_metadata_xml(data, array)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# yaml.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: 20-M�r-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.10
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# = Usage
|
11
|
+
# = TODO
|
12
|
+
# = CHANGES
|
13
|
+
|
14
|
+
require 'yaml'
|
15
|
+
|
16
|
+
class Deplate::Core
|
17
|
+
def module_initialize_metadata_yaml
|
18
|
+
@options.metadata_model = "yaml"
|
19
|
+
@options.metadata_suffix = ".yml"
|
20
|
+
end
|
21
|
+
|
22
|
+
def dump_metadata(data)
|
23
|
+
YAML.dump(data)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# anyword.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: 11-Sep-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.93
|
8
|
+
|
9
|
+
class Deplate::Core
|
10
|
+
def module_initialize_anyword
|
11
|
+
list = @variables["anyword_list"]
|
12
|
+
acc = list ? list.split(/\s*,\s*/) : []
|
13
|
+
|
14
|
+
cat = @variables["anyword_catalog"]
|
15
|
+
if cat
|
16
|
+
acc += File.open(cat) do |io|
|
17
|
+
io.readlines.collect {|l| l.chomp}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
suffix = @variables["anyword_suffix"] || ""
|
22
|
+
|
23
|
+
pattern = @variables["anyword_pattern"]
|
24
|
+
if pattern
|
25
|
+
acc += Dir[pattern].collect {|f| File.basename(f, suffix)}
|
26
|
+
end
|
27
|
+
|
28
|
+
unless list or cat or pattern
|
29
|
+
files = @options.files.collect do |src|
|
30
|
+
Dir[File.join(File.dirname(src), "*" + suffix)]
|
31
|
+
end
|
32
|
+
acc += files.flatten.collect {|f| File.basename(f, suffix)}
|
33
|
+
end
|
34
|
+
|
35
|
+
rx = acc.collect {|n| "(?i:\\b%s\\b)" % Regexp.escape(n)}.join("|")
|
36
|
+
body = <<-EOR
|
37
|
+
@rx = /^#{rx}/
|
38
|
+
def setup_element
|
39
|
+
@inter = nil
|
40
|
+
@literal = nil
|
41
|
+
@anchor = ""
|
42
|
+
@dest = @match[0]
|
43
|
+
@name = @dest
|
44
|
+
idx = [@deplate.add_index(self, @name)]
|
45
|
+
@idx = indexing(idx)
|
46
|
+
end
|
47
|
+
def process
|
48
|
+
@name = @deplate.formatter.plain_text(Deplate::Core.remove_backslashes(@name))
|
49
|
+
@elt = [@name, @dest, @anchor]
|
50
|
+
super
|
51
|
+
end
|
52
|
+
EOR
|
53
|
+
cls = Deplate::Cache.particle(deplate, body, :register => true)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# babelfish.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: 05-Sep-2004.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.21
|
8
|
+
#
|
9
|
+
# Description:
|
10
|
+
#
|
11
|
+
# Usage:
|
12
|
+
#
|
13
|
+
# TODO:
|
14
|
+
#
|
15
|
+
# CHANGES:
|
16
|
+
#
|
17
|
+
|
18
|
+
class Deplate::Formatter::HTML
|
19
|
+
def prepare_babelfish
|
20
|
+
if @deplate.formatter.matches?("html")
|
21
|
+
babel = %{<script type="text/javascript" language="JavaScript1.2" src="http://www.altavista.com/r?entr"></script>}
|
22
|
+
# babel = %{<script type="text/javascript" language="JavaScript1.2" src="http://www.altavista.com/r?inc_translate"></script>}
|
23
|
+
output_at(:post, :pre_body_end, %{<div align="right" class="pageicons">%s</div>} % babel)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# code-gvim.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: 26-Feb-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.93
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# This module provides a specialized syntax highlighter using gvim. Adds
|
11
|
+
# Deplate::Regions::Code#gvim_to_html.
|
12
|
+
#
|
13
|
+
# = Usage
|
14
|
+
# = TODO
|
15
|
+
# = CHANGES
|
16
|
+
|
17
|
+
require 'fileutils'
|
18
|
+
require 'tmpdir'
|
19
|
+
|
20
|
+
class Deplate::Regions::Code
|
21
|
+
add_highlighter(nil, "html", :gvim_to_html)
|
22
|
+
add_highlighter(nil, "htmlslides", :gvim_to_html)
|
23
|
+
add_highlighter(nil, "htmlsite", :gvim_to_html)
|
24
|
+
|
25
|
+
def gvim_to_html(syntax, style, text)
|
26
|
+
unless @deplate.options.allow_external
|
27
|
+
return
|
28
|
+
end
|
29
|
+
gvim = %{#{Deplate::External.get_app('gvim')} -f +"syn on" +"let use_xhtml = 1" +"setf #{syntax}" +"colorscheme #{style || "default"}" +"run! syntax/2html.vim" +"wq" +"q" deplateGvim}
|
30
|
+
@deplate.in_working_dir(Dir.tmpdir) do
|
31
|
+
FileUtils.rm("deplateGvim.html") if File.exist?("deplateGvim.html")
|
32
|
+
Deplate::External.write_file(self, "deplateGvim") {|io| io.puts(text)}
|
33
|
+
IO.popen(gvim) {|io| puts io.gets until io.eof }
|
34
|
+
if File.exist?("deplateGvim.html")
|
35
|
+
rv = [%{<div class="code">}]
|
36
|
+
File.open("deplateGvim.html") do |io|
|
37
|
+
until io.eof?
|
38
|
+
line = io.gets
|
39
|
+
line.chomp!
|
40
|
+
rv << line if line =~ /^<pre>$/ .. line =~ /^<\/pre\>$/
|
41
|
+
end
|
42
|
+
end
|
43
|
+
rv << %{</div>}
|
44
|
+
return rv.join("\n")
|
45
|
+
else
|
46
|
+
log("Error when running gvim", :error)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
return nil
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# code-highlight.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: 27-Feb-2005.
|
6
|
+
# @Last Change: 23-Okt-2005.
|
7
|
+
# @Revision: 0.41
|
8
|
+
#
|
9
|
+
# = Description
|
10
|
+
# Highlight code regions using Andr� Simon's
|
11
|
+
# highlight[http://www.andre-simon.de/]. Adds
|
12
|
+
# Deplate::Regions::Code#highlight.
|
13
|
+
#
|
14
|
+
# = Usage
|
15
|
+
# = TODO
|
16
|
+
# = CHANGES
|
17
|
+
|
18
|
+
|
19
|
+
class Deplate::Formatter::LaTeX
|
20
|
+
def hook_code_process_highlight(style)
|
21
|
+
unless @deplate.options.did_highlight_init
|
22
|
+
style_ext = Deplate::Regions::Code::get_style_ext(style)
|
23
|
+
add_package(%{color})
|
24
|
+
add_package(%{alltt})
|
25
|
+
add_package(%{highlight#{style_ext}})
|
26
|
+
@deplate.options.did_highlight_init = true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class Deplate::Regions::Code
|
32
|
+
add_highlighter(nil, "html", :highlight)
|
33
|
+
add_highlighter(nil, "htmlslides", :highlight)
|
34
|
+
add_highlighter(nil, "xhtml", :highlight)
|
35
|
+
add_highlighter(nil, "latex", :highlight)
|
36
|
+
|
37
|
+
class << self
|
38
|
+
def get_style_ext(style)
|
39
|
+
style_ext = style ? "-#{style}" : nil
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def highlight(syntax, style, text)
|
44
|
+
unless @deplate.options.allow_external
|
45
|
+
return
|
46
|
+
end
|
47
|
+
formatter = @deplate.formatter
|
48
|
+
style_ext = Deplate::Regions::Code::get_style_ext(style)
|
49
|
+
if defined?(Deplate::Formatter::XHTML10transitional) and formatter.kind_of?(Deplate::Formatter::XHTML10transitional)
|
50
|
+
mode = :xhtml
|
51
|
+
args = "--xhtml"
|
52
|
+
style_out = "highlight#{style_ext}.css"
|
53
|
+
elsif defined?(Deplate::Formatter::HTML) and formatter.kind_of?(Deplate::Formatter::HTML)
|
54
|
+
mode = :html
|
55
|
+
args = "--css-outfile=highlight#{style_ext}.css"
|
56
|
+
style_out = "highlight#{style_ext}.css"
|
57
|
+
css = formatter.head_link_tag(%{rel="stylesheet" type="text/css" href="#{style_out}"})
|
58
|
+
log(["Code: You need to copy highlight's style definition", "highlight#{style_ext}.css"], :anyway)
|
59
|
+
@postponed_format << Proc.new do |container|
|
60
|
+
container.deplate.formatter.union_at(:pre, :css, css)
|
61
|
+
end
|
62
|
+
elsif defined?(Deplate::Formatter::LaTeX) and formatter.kind_of?(Deplate::Formatter::LaTeX)
|
63
|
+
mode = :latex
|
64
|
+
args = "--latex"
|
65
|
+
style_out = "highlight#{style_ext}.sty"
|
66
|
+
log(["Code: You need to copy highlight's style definition", "highlight#{style_ext}.sty"], :anyway)
|
67
|
+
elsif defined?(Deplate::Formatter::Docbook) and formatter.kind_of?(Deplate::Formatter::Docbook)
|
68
|
+
log("Code: ''highlight'' doesn't support docbook!", :error)
|
69
|
+
return nil
|
70
|
+
else
|
71
|
+
log("Code: ''highlight'' can't create output for this formatter!", :error)
|
72
|
+
return nil
|
73
|
+
end
|
74
|
+
if style
|
75
|
+
style = %{--style=#{style}}
|
76
|
+
end
|
77
|
+
tw = @deplate.variables["tabwidth"] || 4
|
78
|
+
cmd = "#{Deplate::External.get_app('highlight')} --fragment --wrap --replace-tabs=#{tw} --syntax #{syntax} --style-outfile=#{style_out} #{style} #{args}"
|
79
|
+
Deplate::External.log_popen(self, cmd) do |io|
|
80
|
+
io.puts(text)
|
81
|
+
io.close_write
|
82
|
+
text = io.read
|
83
|
+
end
|
84
|
+
case mode
|
85
|
+
when :html, :xhtml
|
86
|
+
text = [%{<div class="code">}, "<pre>", text, "</pre>", %{</div>}].join
|
87
|
+
end
|
88
|
+
return text
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|