X-Git-Url: https://git.draconx.ca/gitweb/homepage.git/blobdiff_plain/1dc021529f88ca4f1ebfed76ffe6378272a23032..da4a13ce4868f32787813c76898cc9b39dec1bcc:/lib/sgml2xml.rb diff --git a/lib/sgml2xml.rb b/lib/sgml2xml.rb new file mode 100644 index 0000000..4b0bf95 --- /dev/null +++ b/lib/sgml2xml.rb @@ -0,0 +1,29 @@ +# Nick's web site: sgml2xml filter. Convert SGML tag soup to XML. +# +# Copyright © 2018 Nick Bowler +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +class SGMLToXMLFilter < Nanoc::Filter + identifier :sgml2xml + requires 'nokogiri' + + def run(content, params = {}) + doc = Nokogiri::HTML(content) + doc.internal_subset.remove + return doc.to_xml(:save_with => + Nokogiri::XML::Node::SaveOptions::FORMAT | + Nokogiri::XML::Node::SaveOptions::AS_XML ) + end +end