X-Git-Url: https://pere.pagekite.me/gitweb/text-madewithcc.git/blobdiff_plain/f9f76fdf645a98c9de721de9971203116f9ab9aa..32a19a8a012eb4230d41b8fbd4e0396fac6db4f8:/fixup-docbook.rb
diff --git a/fixup-docbook.rb b/fixup-docbook.rb
index 8fc325b..fb72e87 100755
--- a/fixup-docbook.rb
+++ b/fixup-docbook.rb
@@ -30,17 +30,17 @@ end
log 0, 'replace article* with book*'
xml.css('articleinfo').each do |node|
node.name = 'bookinfo'
- node.first_element_child.before(<<'XML')
-
- Gunnar Wolf
- Mexico City
-
-XML
- node.first_element_child.before(<<'XML')
+ node.last_element_child.after(<<'XML')
2017
Creative Commons
+XML
+ node.last_element_child.after(<<'XML')
+
+ Instituto de Investigaciones Económicas
+ Universidad Nacional Autónoma de México
+
XML
end
xml.css('article').each do |node|
@@ -51,8 +51,8 @@ end
log 0, 'change parts to colophon, dedication and chapter'
partreplace(xml, 'colophon', 'colophon')
partreplace(xml, 'dedication', 'dedication')
-partreplace(xml, 'foreword', 'chapter')
-partreplace(xml, 'introduction', 'chapter')
+partreplace(xml, 'foreword', 'preface')
+partreplace(xml, 'introduction', 'preface')
partreplace(xml, 'bibliography', 'chapter')
partreplace(xml, 'acknowledgments', 'chapter')
@@ -66,6 +66,148 @@ if s
end
end
+
+log 0, 'remove empty notes/web links sections'
+[
+ 'Notes',
+ 'Web links',
+ 'Web link',
+].each do |title|
+ xml.xpath("//title[text()='%s']" % title).each do |node|
+ p = node.parent
+ node.remove
+ if p.content =~ /^\s*$/
+ p.remove
+ else
+ raise RuntimeError, 'Non-empty «%s» found' % title
+ end
+ end
+end
+
+log 0, 'remove title from dedication'
+if ! xml.css('dedication title').empty?
+ xml.css('dedication title')[0].content = ""
+end
+
+log 0, 'move legal notice to bookinfo'
+xml.css('book bookinfo')[0].last_element_child.after('')
+ln = xml.css('book bookinfo legalnotice')[0]
+xml.css('para').each do |para|
+ if para.content =~ /This book is published under a/
+ log 0, 'found legal'
+ para.parent = ln
+ break
+ end
+end
+
+log 0, 'replace colophon page with one for this edition'
+ xml.xpath('//colophon/para').remove
+s = xml.xpath('//colophon')[0]
+s.first_element_child.after(<<'XML')
+Made with Creative Commons
+
+by Paul Stacey & Sarah Hinchliff Pearson
+
+© 2017 by the Creative Commons Foundation.
+
+Published under a Creative Commons Attribution-ShareAlike
+license (CC BY-SA), version 4.0.
+
+ISBN: YET-TO-BE-DECIDED (PDF), YET-TO-BE-DECIDED (ePub),
+YET-TO-BE-DECIDED (Paperback)
+
+Illustrations by Bryan Mathers,
+.
+
+Publisher: Gunnar Wolf.
+
+
+
+
+
+
+Downloadable e-book available at
+.
+
+This book is published under a CC BY-SA license, which means that you
+can copy, redistribute, remix, transform, and build upon the content for
+any purpose, even commercially, as long as you give appropriate credit,
+provide a link to the license, and indicate if changes were made. If you
+remix, transform, or build upon the material, you must distribute your
+contributions under the same license as the original. License details:
+
+
+Made With Creative Commons is published with the kind support of
+Creative Commons and backers of our crowdfunding-campaign on the
+Kickstarter.com platform.
+
+This edition of the book is maintained on
+, and the
+translations are maintained on
+. If
+you find any error in the book, please let us know via Gitlab or Weblate.
+
+
+Classifications:
+
+
+
+(Dewey) 346.048, 347.78
+
+
+
+(UDK) ?
+
+
+
+(US Library of Congress) Z286 O63 S73 2017
+
+
+
+(Melvil) 025.523
+
+
+
+(ACM CRCS) ?
+
+
+XML
+
+log 0, 'remove title from colophon'
+xml.css('colophon title')[0].content = ""
+
+log 0, 'change CC logo images to informalfigure'
+xml.css('figure mediaobject imageobject imagedata[width="40.0%"]').each do |id|
+ f = id.parent.parent.parent
+ f.name = 'informalfigure'
+end
+
+log 0, 'assigning IDs to formal figures'
+seq = 1
+xml.css('figure').each do |fig|
+ fig['id'] = 'fig-%d' % seq
+ seq = seq + 1
+end
+
+# Disabled as dblatex do not understand chapter/chapterinfo/author,
+# see .
+if false
+log 0, 'migrate chapter author into where relevant'
+xml.css('chapter para').each do |para|
+ if para.content =~ /^\s*((Paul|Sarah Hinchliff) (Stacey|Pearson))\s*$/
+ log 1, 'migrated %s %s' % [$2, $3]
+ para.parent.css('title')[0].before(<<'XML' % [$2, $3])
+
+
+ %s%s
+
+
+XML
+ para.remove
+ end
+end
+end
+
log 0, 'Writing processed file'
# Unable to figure out API way to replace DOCTYPE
data = xml.to_xml().gsub!(/DOCTYPE article/, 'DOCTYPE book')