diff --git a/unkf.lua b/unkf.lua new file mode 100644 index 0000000..3513f1a --- /dev/null +++ b/unkf.lua @@ -0,0 +1,43 @@ +local tr = aegisub.gettext + +script_name = tr"unkf" +script_description = tr"replace kf/ko tags in selected lines by regular k tags" +script_author = "amoethyst" +script_version = "1.0" + + +function split_line(subs, sel) + local expr_kof = "^(.-{[^}]*\\k)[of](.*)$" + local expr_K = "^(.-{[^}]*\\)K(.*)$" + local before, after + + for _, i in ipairs(sel) do + line = subs[i] + + -- replace ko and kf tags + while true do + before, after = line.text:match(expr_kof) + if before == nil then + break + else + line.text = before .. after + end + end + + -- replace K tags + while true do + before, after = line.text:match(expr_K) + if before == nil then + break + else + line.text = before .. "k" .. after + end + end + + subs[i] = line + end + + aegisub.set_undo_point(script_name) +end + +aegisub.register_macro(script_name, script_description, split_line)