docbook_files 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.DS_Store +0 -0
- data/History.txt +6 -0
- data/README.md +4 -3
- data/Rakefile +2 -2
- data/bin/docbook_files +38 -25
- data/lib/docbook_files/docbook.rb +12 -0
- data/lib/docbook_files/file_data.rb +151 -143
- data/lib/docbook_files.rb +1 -1
- data/test/docbook_files/test_docbook.rb +18 -4
- data/test/docbook_files/test_file_data.rb +4 -3
- data/test/fixtures/refs/book-simple-err.xml +32 -0
- data/test/fixtures/refs/book-simple.xml +32 -0
- data/test/fixtures/refs/bookxi.xml +16 -0
- data/test/fixtures/refs/c4/chapter4xi.xml +8 -0
- data/test/fixtures/refs/chapter2xi.xml +30 -0
- data/test/fixtures/refs/chapter3xi.xml +8 -0
- data/test/fixtures/refs/img/orange.jpeg +0 -0
- data/test/fixtures/refs/img/orange.png +0 -0
- data/test/fixtures/refs/section1xi.xml +9 -0
- data/version.txt +1 -1
- metadata +20 -10
data/.DS_Store
ADDED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 0.2.0 / 2011-10-10
|
2
|
+
|
3
|
+
* Added search for referenced files (e.g. media files included via a 'fileref' attribute)
|
4
|
+
* Minor fixes
|
5
|
+
** Fixed output error for numbers and booleans
|
6
|
+
|
1
7
|
== 0.1.0 / 2011-10-07
|
2
8
|
|
3
9
|
* First release, the application currently only deals with included files
|
data/README.md
CHANGED
@@ -6,7 +6,8 @@ docbook_files lists and checks all files related to a DocBook writing project.
|
|
6
6
|
Features
|
7
7
|
--------
|
8
8
|
|
9
|
-
* lists and checks included files
|
9
|
+
* lists and checks included files (XInclude)
|
10
|
+
* lists and checks referenced files (media files and others, specidifed by _fileref_)
|
10
11
|
|
11
12
|
Synopsis
|
12
13
|
--------
|
@@ -15,13 +16,13 @@ docbook_files is a command line application, bin/docbook_files, which checks the
|
|
15
16
|
|
16
17
|
docbook_files myproject.xml
|
17
18
|
|
18
|
-
This will result in a indentet list of the file names, starting from file _myproject.xml_ and following every XInclude link. Files that could not be found are shown in red.
|
19
|
+
This will result in a indentet list of the file names, starting from file _myproject.xml_ and following every XInclude link or _fileref_ reference. _fileref_ attributes are used in _mediaobject_ tags to specify external image, video, and audio files. Files that could not be found are shown in red.
|
19
20
|
|
20
21
|
Using options the output can be enhanced with more file information, use the classical _docbook_files --help_ to see all available options. They range from file size to MIME types and XML namespaces. Example:
|
21
22
|
|
22
23
|
docbook_files --ts --namespace myproject.xml
|
23
24
|
|
24
|
-
would result in a list with the added information of the last modified timestamp and the XML namespace of each file.
|
25
|
+
would result in a list with the added information of the last modified timestamp and the XML namespace of each XML file.
|
25
26
|
|
26
27
|
Requirements
|
27
28
|
------------
|
data/Rakefile
CHANGED
data/bin/docbook_files
CHANGED
@@ -33,7 +33,7 @@ props = []
|
|
33
33
|
opts = OptionParser.new
|
34
34
|
ivs = DocbookFiles::FileData.init_vars
|
35
35
|
ivs.each do |k,v|
|
36
|
-
|
36
|
+
opts.on("--#{k.to_s}","#{v}") {|val| props << k}
|
37
37
|
end
|
38
38
|
opts.banner = banner
|
39
39
|
rest = opts.parse(ARGV)
|
@@ -53,33 +53,46 @@ end
|
|
53
53
|
puts("docbook_status, Version #{DocbookFiles::VERSION}") if @output_format == :screen
|
54
54
|
dbf = DocbookFiles::Docbook.new(rest[0])
|
55
55
|
table = dbf.list_as_table([:name,:exists]+props)
|
56
|
-
puts '-'*10
|
57
56
|
puts
|
58
|
-
|
57
|
+
puts 'File Hierarchy'
|
58
|
+
puts '-'*80
|
59
59
|
|
60
|
+
output_string = "%s %s" + props.map{|p| " %s"}.join
|
60
61
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
if (index == 0)
|
72
|
-
output = "+" + output
|
73
|
-
elsif (index == table.length-1)
|
74
|
-
output = "+" + output
|
75
|
-
else
|
76
|
-
output = "|" + output
|
77
|
-
end
|
78
|
-
if t[:exists] == false
|
79
|
-
puts output.red
|
80
|
-
else
|
81
|
-
puts output
|
82
|
-
end
|
62
|
+
def emptyval?(val)
|
63
|
+
if val.nil?
|
64
|
+
true
|
65
|
+
else
|
66
|
+
if (val.class == String)
|
67
|
+
val.empty?
|
68
|
+
else
|
69
|
+
false
|
70
|
+
end
|
71
|
+
end
|
83
72
|
end
|
73
|
+
|
74
|
+
table.each_with_index do |t,index|
|
75
|
+
vals = ['-'*t[:level]+'>',t[:name]] + props.map {|p|
|
76
|
+
if (emptyval?(t[p]))
|
77
|
+
'<>'
|
78
|
+
else
|
79
|
+
t[p]
|
80
|
+
end
|
81
|
+
}
|
82
|
+
output = output_string % vals
|
83
|
+
if (index == 0)
|
84
|
+
output = "+" + output
|
85
|
+
elsif (index == table.length-1)
|
86
|
+
output = "+" + output
|
87
|
+
else
|
88
|
+
output = "|" + output
|
89
|
+
end
|
90
|
+
if t[:exists] == false
|
91
|
+
puts output.red
|
92
|
+
else
|
93
|
+
puts output
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
84
97
|
puts
|
85
98
|
exit 0
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*-encoding:utf-8-*-
|
1
2
|
require 'xml'
|
2
3
|
module DocbookFiles
|
3
4
|
|
@@ -97,6 +98,16 @@ private
|
|
97
98
|
end
|
98
99
|
end
|
99
100
|
|
101
|
+
# Finds and returns all external files referenced in a DocBook document.
|
102
|
+
# Referenced files are mostly non-XML files needed for _mediaobjects_ etc.
|
103
|
+
# They can be searched via the _fileref_ attribute.
|
104
|
+
def find_referenced_files(doc,parent_dir,parent_fd)
|
105
|
+
refs = doc.find('//db:*[@fileref!=""]',:db => DOCBOOK_NS)
|
106
|
+
refs.map {|r|
|
107
|
+
fname = r.attributes['fileref']
|
108
|
+
FileData.new(fname,parent_dir,parent_fd)
|
109
|
+
}
|
110
|
+
end
|
100
111
|
|
101
112
|
# Opens a XML document and looks for included or referenced files.
|
102
113
|
# Returns a FileData object with its include-tree
|
@@ -110,6 +121,7 @@ private
|
|
110
121
|
fl.version = version(doc) if fl.docbook
|
111
122
|
fl.tag = start_tag(doc)
|
112
123
|
files = find_xincludes(doc)
|
124
|
+
fl.refs = find_referenced_files(doc,parent_dir,fl)
|
113
125
|
rescue Exception => e
|
114
126
|
files = []
|
115
127
|
end
|
@@ -1,148 +1,156 @@
|
|
1
|
+
# -*-encoding:utf-8-*-
|
1
2
|
module DocbookFiles
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
3
|
+
require 'date'
|
4
|
+
require 'digest/sha1'
|
5
|
+
require 'wand'
|
6
|
+
|
7
|
+
# Data about a member file of a DocBook project
|
8
|
+
class FileData
|
9
|
+
|
10
|
+
# file name, full file path, existence flag, last modified timestamp, size in bytes
|
11
|
+
# SHA1 checksum, MIME type, array of included FileDatas
|
12
|
+
#attr_accessor :name, :full_name, :exists, :ts, :size, :checksum, :mime, :includes
|
13
|
+
|
14
|
+
# XML namespace, Flag for DocBook NS, DocBook version, start tag
|
15
|
+
#attr_accessor :namespace, :docbook, :version, :tag
|
16
|
+
|
17
|
+
attr_accessor :name, :exists, :includes, :refs
|
18
|
+
|
19
|
+
def FileData.init_vars()
|
20
|
+
x = {:full_name => "file name + path",
|
21
|
+
:ts => "last modified timestamp",
|
22
|
+
:size => "file size",
|
23
|
+
:checksum => "file checksum",
|
24
|
+
:mime => "the file's MIME type",
|
25
|
+
:namespace => "XML namespace, if applicable",
|
26
|
+
:docbook => "DocBook type flag",
|
27
|
+
:version => "DocBook version number, if applicable",
|
28
|
+
:tag => "XML start tag, if applicable",
|
29
|
+
:parent => "parent file, if included or referenced"}
|
30
|
+
x.each { |s,ex|
|
31
|
+
attr_accessor s
|
32
|
+
}
|
33
|
+
x
|
34
|
+
end
|
35
|
+
|
36
|
+
@@vars = init_vars()
|
37
|
+
|
38
|
+
|
39
|
+
def initialize(name,parent_dir=".",parent_file=nil)
|
40
|
+
@name = name
|
41
|
+
@full_name = get_full_name(name, parent_dir)
|
42
|
+
@name = File.basename(name)
|
43
|
+
@namespace = ""
|
44
|
+
@docbook = false
|
45
|
+
@version = ""
|
46
|
+
@tag = ""
|
47
|
+
@parent = (parent_file.nil? ? nil : parent_file.name)
|
48
|
+
if (File.exists?(@full_name))
|
49
|
+
@exists = true
|
50
|
+
@ts = File.mtime(full_name)
|
51
|
+
@size = File.size(full_name)
|
52
|
+
@checksum = calc_checksum()
|
53
|
+
@mime = get_mime_type()
|
54
|
+
else
|
55
|
+
@exists = false
|
56
|
+
@ts = Time.now
|
57
|
+
@size = 0
|
58
|
+
@checksum = ""
|
59
|
+
@mime = ""
|
60
|
+
end
|
61
|
+
@includes = []
|
62
|
+
@refs = []
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
# Does the really file exist?
|
67
|
+
def exists?
|
68
|
+
@exists
|
69
|
+
end
|
70
|
+
|
71
|
+
# Return the names and parent files of non-existing files
|
72
|
+
def find_non_existing_files
|
73
|
+
files = traverse([:name, :exists, :parent])
|
74
|
+
files.flatten.reject{|f| f[:exists] == true}.map{|f| f.delete(:exists); f}
|
75
|
+
end
|
76
|
+
|
77
|
+
# Return a tree-like array with all names
|
78
|
+
def names
|
79
|
+
self.traverse([:name])
|
80
|
+
end
|
81
|
+
|
82
|
+
# Return a hash with the values for the passed symbols.
|
83
|
+
# If the property list is empty all instance variables
|
84
|
+
# are used, except the include.
|
85
|
+
#
|
86
|
+
# Example: to_hash([:name, :mime]) would return
|
87
|
+
# {:name => "name", :mime => "application/xml"}.
|
88
|
+
#
|
89
|
+
def to_hash(props=[])
|
90
|
+
me_hash = {}
|
91
|
+
if (props.empty?)
|
92
|
+
ivs = self.instance_variables
|
93
|
+
ivs.delete(:@includes)
|
94
|
+
props = ivs.map {|iv| ivs = iv.to_s; ivs[1,ivs.length].to_sym}
|
95
|
+
end
|
96
|
+
props.each {|p| me_hash[p] = self.send(p)}
|
97
|
+
me_hash
|
98
|
+
end
|
99
|
+
|
100
|
+
# Return a tree-like array of maps with the
|
101
|
+
# requested properties (symbols)
|
102
|
+
def traverse(props=[])
|
103
|
+
me = self.to_hash(props)
|
104
|
+
me2 = [me]
|
105
|
+
unless @refs.empty?()
|
106
|
+
me2 += @refs.map {|r| r.to_hash(props)}
|
107
|
+
end
|
108
|
+
if @includes.empty?()
|
109
|
+
me2
|
110
|
+
else
|
111
|
+
me2 + @includes.map {|i| i.traverse(props)}
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Return a table-like array of maps with the
|
116
|
+
# requested properties (symbols). Each entry gets a level
|
117
|
+
# indicator (:level) to show the tree-level.
|
118
|
+
#
|
119
|
+
def traverse_as_table(props=[],level=0)
|
120
|
+
me = self.to_hash(props)
|
121
|
+
me[:level] = level
|
122
|
+
me2 = [me]
|
123
|
+
unless @refs.empty?()
|
124
|
+
me2 += @refs.map {|r| x = r.to_hash(props); x[:level] = level+1; x}
|
125
|
+
end
|
126
|
+
unless @includes.empty?()
|
127
|
+
me2 += @includes.map {|i| i.traverse_as_table(props,level+1)}
|
128
|
+
end
|
129
|
+
me2.flatten
|
130
|
+
end
|
123
131
|
|
124
132
|
private
|
125
133
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
134
|
+
# Calculate the SHA1 checksum for the file
|
135
|
+
def calc_checksum
|
136
|
+
Digest::SHA1.hexdigest(IO.binread(@full_name))
|
137
|
+
end
|
138
|
+
|
139
|
+
# Produce the full path for a filename
|
140
|
+
def get_full_name(fname, parent_dir)
|
141
|
+
dir = File.dirname(fname)
|
142
|
+
file = File.basename(fname)
|
143
|
+
full_name = File.expand_path(file,dir)
|
144
|
+
unless File.exists?(full_name)
|
145
|
+
full_name = File.expand_path(fname, parent_dir)
|
146
|
+
end
|
147
|
+
full_name
|
148
|
+
end
|
149
|
+
|
150
|
+
# Try to find the file's MIME type
|
151
|
+
def get_mime_type
|
152
|
+
Wand.wave(@full_name)
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
148
156
|
end
|
data/lib/docbook_files.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'minitest/spec'
|
3
|
-
require 'minitest/autorun'
|
4
|
-
require "docbook_files"
|
5
3
|
require 'turn'
|
4
|
+
require "docbook_files"
|
5
|
+
|
6
|
+
MiniTest::Unit.use_natural_language_case_names = true
|
6
7
|
|
7
8
|
module DocbookFiles
|
8
9
|
describe Docbook do
|
@@ -16,7 +17,7 @@ module DocbookFiles
|
|
16
17
|
actual.docbook.must_equal(false)
|
17
18
|
end
|
18
19
|
|
19
|
-
it "finds namespace,
|
20
|
+
it "finds namespace, DocBookness, version" do
|
20
21
|
dbf = DocbookFiles::Docbook.new("test/fixtures/bookxi.xml")
|
21
22
|
actual = dbf.list()
|
22
23
|
actual.namespace.must_equal("http://docbook.org/ns/docbook")
|
@@ -24,7 +25,7 @@ module DocbookFiles
|
|
24
25
|
actual.version.must_equal("5.0")
|
25
26
|
end
|
26
27
|
|
27
|
-
it "finds no namespace,
|
28
|
+
it "finds no namespace, DocBookness, version" do
|
28
29
|
dbf = DocbookFiles::Docbook.new("test/fixtures/no-ns.xml")
|
29
30
|
actual = dbf.list()
|
30
31
|
actual.namespace.must_equal("")
|
@@ -58,5 +59,18 @@ module DocbookFiles
|
|
58
59
|
actual.must_equal(expected)
|
59
60
|
end
|
60
61
|
|
62
|
+
it "finds referenced files" do
|
63
|
+
dbf = DocbookFiles::Docbook.new("test/fixtures/refs/book-simple.xml")
|
64
|
+
actual = dbf.list()
|
65
|
+
actual.refs.map{|r|r.name}.must_equal(["orange.png","orange.jpeg"])
|
66
|
+
end
|
67
|
+
|
68
|
+
it "marks non-existing references" do
|
69
|
+
dbf = DocbookFiles::Docbook.new("test/fixtures/refs/book-simple-err.xml")
|
70
|
+
actual = dbf.list()
|
71
|
+
actual.refs.map{|r|r.name}.must_equal(["orange.png","orange.jpeg"])
|
72
|
+
actual.refs.map{|r|r.exists}.must_equal([true,false])
|
73
|
+
end
|
74
|
+
|
61
75
|
end
|
62
76
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require 'minitest/spec'
|
3
|
-
require '
|
3
|
+
require 'turn'
|
4
4
|
require "docbook_files"
|
5
5
|
require 'date'
|
6
|
-
|
6
|
+
|
7
|
+
MiniTest::Unit.use_natural_language_case_names = true
|
7
8
|
|
8
9
|
module DocbookFiles
|
9
10
|
describe FileData do
|
@@ -35,7 +36,7 @@ module DocbookFiles
|
|
35
36
|
:full_name=>"/Users/rv/Documents/Projekte/docbook_files/test/fixtures/bookxi.xml",
|
36
37
|
:namespace=>"", :docbook=>false, :version=>"", :tag=>"", :parent=>nil, :exists=>true,
|
37
38
|
:ts=>Time.parse("2011-10-06 20:45:01 +0200"), :size=>481,
|
38
|
-
:checksum=>"7d240e7a084c16665ac59e5b927acd6a06953897", :mime=>"application/xml"}
|
39
|
+
:checksum=>"7d240e7a084c16665ac59e5b927acd6a06953897", :mime=>"application/xml", :refs => []}
|
39
40
|
actual.must_equal(expected)
|
40
41
|
end
|
41
42
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<book xmlns="http://docbook.org/ns/docbook"
|
3
|
+
xmlns:xi="http://www.w3.org/2001/XInclude"
|
4
|
+
version="5.0">
|
5
|
+
<title>B1</title>
|
6
|
+
<chapter>
|
7
|
+
<title>C1</title>
|
8
|
+
<para>
|
9
|
+
Dies ist ein Test .. Dies ist ein Test.
|
10
|
+
In den Jahren 1900-1901 geschahen viele Überfälle von O`Reillys.
|
11
|
+
</para>
|
12
|
+
<mediaobject>
|
13
|
+
<info>
|
14
|
+
<othercredit>
|
15
|
+
<orgname>The artist</orgname>
|
16
|
+
</othercredit>
|
17
|
+
</info>
|
18
|
+
<alt>Orange</alt>
|
19
|
+
<imageobject>
|
20
|
+
<imagedata align="right" width="6cm" format="PNG" fileref="img/orange.png"/>
|
21
|
+
</imageobject>
|
22
|
+
<imageobject>
|
23
|
+
<imagedata align="right" width="6cm" format="JPEG" fileref="omg/orange.jpeg"/>
|
24
|
+
</imageobject>
|
25
|
+
<textobject>
|
26
|
+
<para>
|
27
|
+
Textobject inside a mediaboject.
|
28
|
+
</para>
|
29
|
+
</textobject>
|
30
|
+
</mediaobject>
|
31
|
+
</chapter>
|
32
|
+
</book>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<book xmlns="http://docbook.org/ns/docbook"
|
3
|
+
xmlns:xi="http://www.w3.org/2001/XInclude"
|
4
|
+
version="5.0">
|
5
|
+
<title>B1</title>
|
6
|
+
<chapter>
|
7
|
+
<title>C1</title>
|
8
|
+
<para>
|
9
|
+
Dies ist ein Test .. Dies ist ein Test.
|
10
|
+
In den Jahren 1900-1901 geschahen viele Überfälle von O`Reillys.
|
11
|
+
</para>
|
12
|
+
<mediaobject>
|
13
|
+
<info>
|
14
|
+
<othercredit>
|
15
|
+
<orgname>The artist</orgname>
|
16
|
+
</othercredit>
|
17
|
+
</info>
|
18
|
+
<alt>Orange</alt>
|
19
|
+
<imageobject>
|
20
|
+
<imagedata align="right" width="6cm" format="PNG" fileref="img/orange.png"/>
|
21
|
+
</imageobject>
|
22
|
+
<imageobject>
|
23
|
+
<imagedata align="right" width="6cm" format="JPEG" fileref="img/orange.jpeg"/>
|
24
|
+
</imageobject>
|
25
|
+
<textobject>
|
26
|
+
<para>
|
27
|
+
Textobject inside a mediaboject.
|
28
|
+
</para>
|
29
|
+
</textobject>
|
30
|
+
</mediaobject>
|
31
|
+
</chapter>
|
32
|
+
</book>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<book xmlns="http://docbook.org/ns/docbook"
|
3
|
+
xmlns:xi="http://www.w3.org/2001/XInclude"
|
4
|
+
version="5.0">
|
5
|
+
<title>B1</title>
|
6
|
+
<chapter>
|
7
|
+
<title>C1</title>
|
8
|
+
<para>
|
9
|
+
Dies ist ein Test .. Dies ist ein Test.
|
10
|
+
In den Jahren 1900-1901 geschahen viele Überfälle von O`Reillys.
|
11
|
+
</para>
|
12
|
+
</chapter>
|
13
|
+
<xi:include href="chapter2xi.xml"/>
|
14
|
+
<xi:include href="chapter3xi.xml"/>
|
15
|
+
<xi:include href="c4/chapter4xi.xml"/>
|
16
|
+
</book>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<chapter xmlns="http://docbook.org/ns/docbook"
|
2
|
+
xmlns:xi="http://www.w3.org/2001/XInclude"
|
3
|
+
version="5.0">
|
4
|
+
<title>C2</title>
|
5
|
+
<para>
|
6
|
+
Dies ist ein Test .. Dies ist ein Test.
|
7
|
+
In den Jahren 1900-1901 geschahen viele Überfälle von O`Reillys.
|
8
|
+
<remark>FIXME Ausbauen.</remark>
|
9
|
+
</para>
|
10
|
+
<mediaobject>
|
11
|
+
<info>
|
12
|
+
<othercredit>
|
13
|
+
<orgname>The artist</orgname>
|
14
|
+
</othercredit>
|
15
|
+
</info>
|
16
|
+
<alt>Orange</alt>
|
17
|
+
<imageobject>
|
18
|
+
<imagedata align="right" width="6cm" format="PNG" fileref="img/orange.png"/>
|
19
|
+
</imageobject>
|
20
|
+
<imageobject>
|
21
|
+
<imagedata align="right" width="6cm" format="JPEG" fileref="img/orange.jpeg"/>
|
22
|
+
</imageobject>
|
23
|
+
<textobject>
|
24
|
+
<para>
|
25
|
+
Textobject inside a mediaboject.
|
26
|
+
</para>
|
27
|
+
</textobject>
|
28
|
+
</mediaobject>
|
29
|
+
<xi:include href="section1xi.xml"/>
|
30
|
+
</chapter>
|
Binary file
|
Binary file
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docbook_files
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-10 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: libxml-ruby
|
16
|
-
requirement: &
|
16
|
+
requirement: &2160079640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.2.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2160079640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: term-ansicolor
|
27
|
-
requirement: &
|
27
|
+
requirement: &2160076200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.6
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2160076200
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: wand
|
38
|
-
requirement: &
|
38
|
+
requirement: &2160074160 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0.4'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2160074160
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bones
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152251960 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 3.7.1
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152251960
|
58
58
|
description: docbook_files lists and checks all files related to a DocBook writing
|
59
59
|
project.
|
60
60
|
email: dev@textmulch.de
|
@@ -65,6 +65,7 @@ extra_rdoc_files:
|
|
65
65
|
- History.txt
|
66
66
|
- bin/docbook_files
|
67
67
|
files:
|
68
|
+
- .DS_Store
|
68
69
|
- .gitignore
|
69
70
|
- Gemfile
|
70
71
|
- Gemfile.lock
|
@@ -87,6 +88,15 @@ files:
|
|
87
88
|
- test/fixtures/chapter3xi.xml
|
88
89
|
- test/fixtures/no-ns.xml
|
89
90
|
- test/fixtures/no-xml.xml
|
91
|
+
- test/fixtures/refs/book-simple-err.xml
|
92
|
+
- test/fixtures/refs/book-simple.xml
|
93
|
+
- test/fixtures/refs/bookxi.xml
|
94
|
+
- test/fixtures/refs/c4/chapter4xi.xml
|
95
|
+
- test/fixtures/refs/chapter2xi.xml
|
96
|
+
- test/fixtures/refs/chapter3xi.xml
|
97
|
+
- test/fixtures/refs/img/orange.jpeg
|
98
|
+
- test/fixtures/refs/img/orange.png
|
99
|
+
- test/fixtures/refs/section1xi.xml
|
90
100
|
- test/fixtures/section1xi.xml
|
91
101
|
- test/test_docbook_files.rb
|
92
102
|
- version.txt
|