]> pere.pagekite.me Git - text-madewithcc.git/blobdiff - fixup-docbook.rb
Translated using Weblate (Norwegian Bokmål)
[text-madewithcc.git] / fixup-docbook.rb
index 8fc325b1a0022e83b3dc97146ad3fea3c9832ff8..9566fc6fb730afe9ab5a3206fc2173a9ac3bf385 100755 (executable)
@@ -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,146 @@ 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'
+xml.css('dedication title')[0].content = ""
+
+log 0, 'move legal notice to bookinfo'
+xml.css('book bookinfo')[0].first_element_child.before('<legalnotice>')
+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')
+<para>Made with Creative Commons</para>
+
+<para>by Paul Stacey & Sarah Hinchliff Pearson</para>
+
+<para>© 2017 by the Creative Commons Foundation.</para>
+
+<para>Published under a Creative Commons Attribution-ShareAlike
+license (CC BY-SA), version 4.0.</para>
+
+<para>ISBN: YET-TO-BE-DECIDED (PDF), YET-TO-BE-DECIDED (ePub),
+YET-TO-BE-DECIDED (Paperback) </para>
+
+<para>Illustrations by Bryan Mathers,
+<ulink url="https://bryanmmathers.com/"/>.</para>
+
+<para>Publisher: Gunnar Wolf.</para>
+
+<para>
+<!--space for information about translators-->
+&nbsp;
+</para>
+
+<para>Downloadable e-book available at
+<ulink url="https://madewith.cc/"/>.</para>
+
+<para>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:
+<ulink url="http://creativecommons.org/licenses/by-sa/4.0/"/></para>
+
+<para>Made With Creative Commons is published with the kind support of
+Creative Commons and backers of our crowdfunding-campaign on the
+Kickstarter.com platform.</para>
+
+<para>This edition of the book is maintained on
+<ulink url="https://gitlab.com/gunnarwolf/madewithcc-es/"/>, and the
+translations are maintained on
+<ulink url="https://hosted.weblate.org/projects/madewithcc/"/>.  If
+you find any error in the book, please let us know via gitlab.</para>
+
+<para>
+Classifications:
+</para>
+
+<para>
+(Dewey) 346.048, 347.78
+</para>
+
+<para>
+(UDK) ?
+</para>
+
+<para>
+(US Library of Congress) Z286 O63 S73 2017
+</para>
+
+<para>
+(Melvil) 025.523
+</para>
+
+<para>
+(ACM CRCS) ?
+</para>
+
+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 <URL: https://bugs.debian.org/891183 >.
+if false
+log 0, 'migrate chapter author into <chapterinfo> 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])
+      <chapterinfo>
+       <author>
+         <firstname>%s</firstname><surname>%s</surname>
+       </author>
+      </chapterinfo>
+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')