#!ruby # -*- mode: ruby; coding: utf-8 -*- # Last updated: <2023/12/03 09:33:17 +0900> # # Yarle が出力した md ファイルの Tags: 行を変更。 # Source URL の行も削除する。 # カレントフォルダ内の *.md 全てを対象にして処理をする。 require "fileutils" write_enable = true # write_enable = false Dir.glob("./*.md").each do |fn| puts fn # backup file if write_enable FileUtils.cp(fn, fn + ".bak") end # read file # f = File.open(fn, "rb:utf-8") f = File.open(fn, "r:utf-8") buf = f.read() f.close # lines = buf.split(/\r\n/) # lines = buf.split(/\r/) lines = buf.split(/\R/) lines_new = [] lines.each { |s| if s =~ /Source URL: \[\]\(.+\)/ puts s next end if s =~ /^Tags:/ tags = s.split(" ") tags_new = [] tags.each do |t| if t == "Tags:" tags_new.push("tags:") elsif t =~ /^#(.+)/ tags_new.push(" - #{$1}") end end tags_new.each { |t| puts t } tags_new.each { |t| lines_new.push(t) } next end lines_new.push(s) } # write file if write_enable # LF # f = File.open(fn, mode = "wb") # CRLF f = File.open(fn, mode = "w") # f.write(lines_new.join("\r\n")) f.write(lines_new.join("\n")) f.close end end