X-Git-Url: https://pere.pagekite.me/gitweb/text-madewithcc.git/blobdiff_plain/c4ccb77f0d9c39597c222518a1d977a5a3cc54e8..ec1f99bc5a8174d85f26b89a7c86bfa895e35662:/fixup.rb diff --git a/fixup.rb b/fixup.rb index b60ebb8..7127318 100644 --- a/fixup.rb +++ b/fixup.rb @@ -201,6 +201,7 @@ log 0, 'Join erroneously split paragraphs' 'the kinds of participative communities that drive open', # 2157 'time', # 2220 'At a minimum, a CC-', # 2375 + '“Share Your Work” at', # 2508 'easier to trust a', # 2580 'free download, the', # 3086 'openness to fans remixing the game—give', # 3087 @@ -257,8 +258,8 @@ data.each_with_index do |lin, idx| scope=$1.gsub(" ", "-") end # First, mark note reference - lin.sub!(/([a-z]\.["”]?)(\d+)(\s)/, "\\1[^" + scope + "-\\2]\\3") - lin.sub!(/([a-z]\.["”]?)(\d+)$/, "\\1[^" + scope + "-\\2]") + lin.sub!(/([a-z][\.\)]+["”]?)(\d+)(\s)/, "\\1[^" + scope + "-\\2]\\3") + lin.sub!(/([a-z][\.\)]+["”]?)(\d+)$/, "\\1[^" + scope + "-\\2]") # Next, mark note content, only between /Web Links?|Notes/ and next heading if noteblock lin.sub!(/^(\d+)\. /, "[^" + scope + "-\\1]: ") @@ -274,6 +275,27 @@ data.each_with_index do |lin, idx| end end +log 0, 'verify every footnote/endnote is unique and used' +notes = Hash.new +data.each_with_index do |lin, idx| + if lin =~ /(\[\^[^\]]+\])(:)?/ +# log 0, "*** found %s %s" % [$1, $2] + if not notes.has_key?($1) + notes[$1] = Hash.new + end + if $2 == ':' + notes[$1]['def'] = true + else + notes[$1]['ref'] = true + end + end +end +notes.each do |key, val| + if val.has_key?('def') != val.has_key?('ref') + log 0, "error: check use of footnote %s" % key + end +end + log 0, 'Turn indented block after use cases into block quotes' inscope=false quote=false @@ -323,5 +345,9 @@ log 0, 'add figure titles required by Docbook for referable figures' data[at].gsub!(/!\[\]\(Pictures/, '![%s](Pictures' % fig[1]) end +log 0, 'adding http:// to all URLs and turn them into links' +data.map {|lin| lin.gsub!(/(^|\s+)([-a-z0-9\\.]+\.(cc|com|edu|eu|io|is|it|kr|net|nl|nz|org|se))/, '\\1http://\\2')} +data.map {|lin| lin.gsub!(/\b(https?:\/\/[-a-z0-9\\.]+)(\/[-\\.\/a-zA-Z0-9#_\?&=,]+[-\/a-zA-Z0-9#_\?&=,])?/, '[](\\1\\2)')} + log 0, 'Writing processed file' File.open(dstfile, 'w') {|f| f.puts data.join("\n")}