redcloth-formatters-docbook 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/redcloth-formatters-docbook/formatters/docbook.rb +17 -8
- data/lib/redcloth-formatters-docbook/version.rb +1 -1
- data/spec/docbook_spec.rb +6 -0
- data/spec/fixtures/formatting.textile +12 -0
- data/spec/fixtures/formatting.xml +13 -0
- data/spec/fixtures/phrase.textile +1 -1
- data/spec/fixtures/phrase.xml +1 -1
- data/spec/fixtures/source.xml +1 -1
- metadata +8 -4
@@ -120,7 +120,7 @@ module RedCloth::Formatters::Docbook
|
|
120
120
|
|
121
121
|
# para
|
122
122
|
def p(opts)
|
123
|
-
"#{"\t" * @@stack.size}<para>#{opts[:text]}</para>\n"
|
123
|
+
"#{"\t" * @@stack.size}<para>#{clean_text(opts[:text])}</para>\n"
|
124
124
|
end
|
125
125
|
|
126
126
|
# lists
|
@@ -215,7 +215,7 @@ module RedCloth::Formatters::Docbook
|
|
215
215
|
alias :strong :b
|
216
216
|
|
217
217
|
def br(opts)
|
218
|
-
""
|
218
|
+
" "
|
219
219
|
end
|
220
220
|
|
221
221
|
def cite(opts)
|
@@ -234,12 +234,14 @@ module RedCloth::Formatters::Docbook
|
|
234
234
|
def image(opts)
|
235
235
|
title = opts[:title]
|
236
236
|
id = title.split(" ").join(".")
|
237
|
+
options = parse_css(opts[:style])
|
238
|
+
width = options[:width] || "100%"
|
237
239
|
|
238
240
|
out = "\n"
|
239
241
|
out += "<figure xml:id=\"#{id}\">\n"
|
240
242
|
out += "<title>#{title}</title>\n"
|
241
243
|
out += "<mediaobject>\n"
|
242
|
-
out += "\t<imageobject><imagedata fileref=\"#{opts[:src]}\" format=\"PNG\" /></imageobject>\n"
|
244
|
+
out += "\t<imageobject><imagedata fileref=\"#{opts[:src]}\" format=\"PNG\" width=\"#{width}\"/></imageobject>\n"
|
243
245
|
out += "</mediaobject>\n"
|
244
246
|
out += "</figure>\n"
|
245
247
|
out
|
@@ -261,9 +263,8 @@ module RedCloth::Formatters::Docbook
|
|
261
263
|
def bc_open(opts)
|
262
264
|
opts[:block] = true
|
263
265
|
options = parse_css(opts[:style])
|
264
|
-
id = options[:name].split(" ").join(".")
|
265
266
|
out = "<para>\n"
|
266
|
-
out += "\t<example xml:id=\"#{
|
267
|
+
out += "\t<example xml:id=\"#{parse_id(options[:name])}\">\n"
|
267
268
|
out += "\t<title>#{options[:name]}</title>\n"
|
268
269
|
out += "\t<programlisting width=\"100%\">\n"
|
269
270
|
out
|
@@ -309,6 +310,10 @@ module RedCloth::Formatters::Docbook
|
|
309
310
|
end
|
310
311
|
options
|
311
312
|
end
|
313
|
+
|
314
|
+
def parse_id name
|
315
|
+
name.gsub(",", "").gsub(".", "").squeeze(" ").strip.gsub(" ", "")
|
316
|
+
end
|
312
317
|
|
313
318
|
def close_level(type)
|
314
319
|
last = @@stack.last
|
@@ -322,20 +327,24 @@ module RedCloth::Formatters::Docbook
|
|
322
327
|
def open_level(type, tag)
|
323
328
|
@@stack << { :type => type, :tag => tag }
|
324
329
|
end
|
330
|
+
|
331
|
+
def clean_text(text)
|
332
|
+
text.gsub("\n", " ").gsub("\t", " ").squeeze(" ").strip
|
333
|
+
end
|
325
334
|
|
326
335
|
# escapement for regular HTML (not in PRE tag)
|
327
336
|
def escape(text)
|
328
|
-
|
337
|
+
text
|
329
338
|
end
|
330
339
|
|
331
340
|
# escapement for HTML in a PRE tag
|
332
341
|
def escape_pre(text)
|
333
|
-
|
342
|
+
text
|
334
343
|
end
|
335
344
|
|
336
345
|
# escaping for HTML attributes
|
337
346
|
def escape_attribute(text)
|
338
|
-
|
347
|
+
text
|
339
348
|
end
|
340
349
|
|
341
350
|
def after_transform(text)
|
data/spec/docbook_spec.rb
CHANGED
@@ -57,5 +57,11 @@ describe Redcloth::Formatters::Docbook do
|
|
57
57
|
docbook = File.open("spec/fixtures/cover.xml", 'rb') { |f| f.read }
|
58
58
|
RedCloth.new(textile).to_docbook.docbook_strip.should eql(docbook.docbook_strip)
|
59
59
|
end
|
60
|
+
|
61
|
+
it "formatting" do
|
62
|
+
textile = File.open("spec/fixtures/formatting.textile", 'rb') { |f| f.read }
|
63
|
+
docbook = File.open("spec/fixtures/formatting.xml", 'rb') { |f| f.read }
|
64
|
+
RedCloth.new(textile).to_docbook.docbook_strip.should eql(docbook.docbook_strip)
|
65
|
+
end
|
60
66
|
|
61
67
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0">
|
3
|
+
|
4
|
+
<chapter xmlns='http://docbook.org/ns/docbook' xmlns:xi='http://www.w3.org/2001/XInclude' version='5.0'>
|
5
|
+
<title>Hello</title>
|
6
|
+
<section>
|
7
|
+
<title>Basic</title>
|
8
|
+
<para>They're so cool!</para>
|
9
|
+
<para>This is some text that continues in the second line.</para>
|
10
|
+
<para>This is some text that continues in the second line.</para>
|
11
|
+
</section>
|
12
|
+
</chapter>
|
13
|
+
</book>
|
@@ -16,6 +16,6 @@ Simply run @rake db:migrate@ to install everything.
|
|
16
16
|
|
17
17
|
Simply got to "Google":http://www.google.com and search.
|
18
18
|
|
19
|
-
|
19
|
+
!{width: 90%;}../images/image.png(A great image)!
|
20
20
|
|
21
21
|
bq{by: Martin Luther King}. I have a dream. The dream is great. It will come true!
|
data/spec/fixtures/phrase.xml
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
<figure xml:id="A.great.image">
|
25
25
|
<title>A great image</title>
|
26
26
|
<mediaobject>
|
27
|
-
<imageobject><imagedata fileref="../images/image.png" format="PNG" /></imageobject>
|
27
|
+
<imageobject><imagedata fileref="../images/image.png" format="PNG" width="90%"/></imageobject>
|
28
28
|
</mediaobject>
|
29
29
|
</figure>
|
30
30
|
</para>
|
data/spec/fixtures/source.xml
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redcloth-formatters-docbook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Thomas Fankhauser
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-10-
|
18
|
+
date: 2011-10-18 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -77,6 +77,8 @@ files:
|
|
77
77
|
- spec/fixtures/cover.xml
|
78
78
|
- spec/fixtures/footnotes.textile
|
79
79
|
- spec/fixtures/footnotes.xml
|
80
|
+
- spec/fixtures/formatting.textile
|
81
|
+
- spec/fixtures/formatting.xml
|
80
82
|
- spec/fixtures/hello.textile
|
81
83
|
- spec/fixtures/hello.xml
|
82
84
|
- spec/fixtures/lists.textile
|
@@ -132,6 +134,8 @@ test_files:
|
|
132
134
|
- spec/fixtures/cover.xml
|
133
135
|
- spec/fixtures/footnotes.textile
|
134
136
|
- spec/fixtures/footnotes.xml
|
137
|
+
- spec/fixtures/formatting.textile
|
138
|
+
- spec/fixtures/formatting.xml
|
135
139
|
- spec/fixtures/hello.textile
|
136
140
|
- spec/fixtures/hello.xml
|
137
141
|
- spec/fixtures/lists.textile
|