Anonymous avatar Anonymous committed 32bd8ed

Add the script to convert DocBook 5 double-qoutes to Unicode.

Comments (0)

Files changed (1)

bin/convert-to-unicode-double-quotes.pl

+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use utf8;
+
+use XML::LibXML;
+
+my $doc = XML::LibXML->load_xml(location => "lib/docbook/5/xml/human-hacking-field-guide-v2.xml");
+
+my $xc = XML::LibXML::XPathContext->new($doc);
+$xc->registerNs("db5", 'http://docbook.org/ns/docbook');
+$xc->registerNs('xlink', 'http://www.w3.org/1999/xlink');
+
+my $num_paras;
+foreach my $para ($xc->findnodes('//db5:para'))
+{
+    print STDERR +($num_paras++), "\n";
+    foreach my $text_node ($xc->findnodes('//text()', $para))
+    {
+        my $str = $text_node->nodeValue();
+        my $count = () = ($str =~ m{"}g);
+        if ($count > 0 and (($count % 2) == 0))
+        {
+            my $i = 0;
+            $str =~ s{"}{(($i++) % 2 == 0) ? '“' : '”'}eg;
+            $text_node->setData($str);
+        }
+    }
+}
+print $doc->toString();
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.