MathJaxのCDNサーバ変更

MathJaxのCDNが変更になる。古いページには

<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
</script>

<script async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
</script>

や,あるいは1行で

<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"></script>

のような記述をしたものがたくさんある。これを

<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_CHTML"></script>

に書き直したい。そのため,次のようなスクリプト(fix.rb)を用意した:

#! /usr/bin/ruby
# coding: utf-8

ARGV.each do |file|
  x = File.open(file, "r") do |f|
    f.read
  end
  y = x.sub(%r|<script (async )?src="https://cdn.mathjax.org/mathjax/latest/MathJax.js\?config=TeX-AMS_CHTML">\n?</script>|m, %q|<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_CHTML"></script>|)
  if y != x
    File.open(file, "w") do |f|
      f.write(y)
    end
  end
end

これで

./fix.rb *.html

とすれば一斉に書き直しできる。