X-Git-Url: https://git.draconx.ca/gitweb/homepage.git/blobdiff_plain/416270f184e1ffd23987a0299587fb0e69ceca78..3f707bce834daa1c9c3f5029611090430caa2178:/lib/xhtml-compat.rb 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