From: Nick Bowler Date: Sun, 21 Feb 2021 05:17:00 +0000 (-0500) Subject: Merge the remove_wj filter into xhtml_compat. X-Git-Url: https://git.draconx.ca/gitweb/homepage.git/commitdiff_plain/3f707bce834daa1c9c3f5029611090430caa2178 Merge the remove_wj filter into xhtml_compat. Both these filters are used together and in every relevant compilation rule. The remove_wj filter is just one line and can be easily added to xhtml_compat. --- diff --git a/Rules b/Rules index 43f27a4..ebe9cf2 100644 --- a/Rules +++ b/Rules @@ -134,7 +134,6 @@ compile '/**/index.lst' do layout '/default.xsl' filter :relativize_paths, type: :xml filter :xhtml_compat - filter :remove_wj write item.identifier.without_ext + ".xhtml" end @@ -145,7 +144,6 @@ compile '/license/gpl*.md' do layout '/default.xsl' filter :relativize_paths, type: :xml filter :xhtml_compat - filter :remove_wj write to_xhtml end @@ -157,7 +155,6 @@ compile '/**/*.md' do layout '/default.xsl' filter :relativize_paths, type: :xml filter :xhtml_compat - filter :remove_wj write to_xhtml end @@ -168,7 +165,6 @@ compile '/license/cc*.sgml' do layout '/default.xsl', "section-links": "yes" filter :relativize_paths, type: :xml filter :xhtml_compat - filter :remove_wj write to_xhtml end @@ -178,7 +174,6 @@ compile '/license/cc*.xhtml' do layout '/default.xsl', "section-links": "yes" filter :relativize_paths, type: :xml filter :xhtml_compat - filter :remove_wj write to_xhtml end @@ -195,7 +190,6 @@ compile '/images/*.jpg', rep: :info do layout '/default.xsl' filter :relativize_paths, type: :xml filter :xhtml_compat - filter :remove_wj write to_xhtml end diff --git a/lib/removewj.rb b/lib/removewj.rb deleted file mode 100644 index 18264dd..0000000 --- a/lib/removewj.rb +++ /dev/null @@ -1,25 +0,0 @@ -# Nick's web site: remove_wj filter. Delete all zero-width word joiners -# which were added during XSLT processing. -# -# Copyright © 2019 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 RemoveWJFilter < Nanoc::Filter - identifier :remove_wj - - def run(content, params = {}) - return content.delete "\u2060" - end -end diff --git a/lib/xhtml-compat.rb b/lib/xhtml-compat.rb index 25fe2e2..1c738d9 100644 --- a/lib/xhtml-compat.rb +++ b/lib/xhtml-compat.rb @@ -1,7 +1,7 @@ -# Nick's web site: xhtml_compat filter. Add whitespace before the end -# of empty element tags to improve compatibility with old browsers. +# Nick's web site: xhtml_compat filter. Perform fixups to improve +# XHTML compatibility with various user agents. # -# Copyright © 2020 Nick Bowler +# Copyright © 2019-2021 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 @@ -20,9 +20,17 @@ class XhtmlCompatFilter < Nanoc::Filter identifier :xhtml_compat def run(content, params = {}) + # Old versions of Netscape get confused by
but have no problem + # with
, so avoid that by adding spaces to such elements. text = content.gsub(/([^[:space:]])\/>/m, '\1 />'); + + # Even older versions of Netscape interpret any script as Javascript, + # which causes major problems with the CDATA hack; solve that by making + # the whole thing look like a Javascript comment. text.gsub!("]]>", '\&*/') - return text + + # Delete any zero-width word joiners added for XSLT processing. + return text.delete "\u2060" end end