From 88f8c9269d9f7778a622825349678ba0373d2c7d Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Fri, 7 Sep 2018 06:17:00 +0000 Subject: [PATCH] Revert "Fixed fixup-docbook.rb, as changes in Nokogiri rendered it useless", The real problem was that pandoc suddenly started generating docbook 5 files by default. We need docbook 4. This reverts commit 9053be44ba67f2816ea16ea85b5251bf1172c144. --- fixup-docbook.rb | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/fixup-docbook.rb b/fixup-docbook.rb index d568f21..7ed81df 100755 --- a/fixup-docbook.rb +++ b/fixup-docbook.rb @@ -21,16 +21,15 @@ def log(level,what) end def partreplace(xml, partid, tag) - xml.css('part').select {|p| p.attributes['id'].value == partid}.each do |part| + xml.css('part[id=' + partid + ']').each do |part| part.name = tag end end log 0, 'replace article* with book*' -xml.children[0].name = 'book' -xml.children[1].name = 'book' -xml.css('info').each do |node| +xml.css('articleinfo').each do |node| + node.name = 'bookinfo' node.last_element_child.after(<<'XML') 2017 @@ -58,16 +57,13 @@ partreplace(xml, 'bibliography', 'chapter') partreplace(xml, 'acknowledgments', 'chapter') log 0, 'place part introduction into ' -s = xml.search('part title').select {|tit| tit.content =~ /The Case Studies/}[0] - +s = xml.xpath("//part/title[text()='The Case Studies']")[0] if s s.after('') p = xml.css('part partintro')[0] - s.parent.children.select{|c| c.name == 'para'}.each do |node| + s.parent.xpath("//part/para").each do |node| node.parent = p end -else - log 0, 'Adding failed!' end @@ -77,7 +73,7 @@ log 0, 'remove empty notes/web links sections' 'Web links', 'Web link', ].each do |title| - xml.search('title').select {|t| t.content == title}.each do |node| + xml.xpath("//title[text()='%s']" % title).each do |node| p = node.parent node.remove if p.content =~ /^\s*$/ @@ -92,8 +88,8 @@ log 0, 'remove title from dedication' xml.css('dedication title')[0].content = "" log 0, 'move legal notice to bookinfo' -xml.css('book info')[0].last_element_child.after('') -ln = xml.css('book info legalnotice')[0] +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' @@ -103,8 +99,8 @@ xml.css('para').each do |para| end log 0, 'replace colophon page with one for this edition' - xml.search('colophon para').map {|p| p.remove} -s = xml.search('colophon')[0] + xml.xpath('//colophon/para').remove +s = xml.xpath('//colophon')[0] s.first_element_child.after(<<'XML') Made with Creative Commons @@ -210,5 +206,7 @@ XML end end -log 0, 'Writing processed file (%s)' % dstfile -File.open(dstfile, 'w') {|f| f.write(xml.to_xml())} +log 0, 'Writing processed file' +# Unable to figure out API way to replace DOCTYPE +data = xml.to_xml().gsub!(/DOCTYPE article/, 'DOCTYPE book') +File.open(dstfile, 'w') {|f| f.write(data)} -- 2.47.2