(original) (raw)
#!/usr/bin/perl package IkiWiki::Plugin::cjkfix; use warnings; use strict; use IkiWiki '3.00'; sub import { hook(type => "sanitize", id => "cjkfix", call => \&sanitize); } sub sanitize { my %params = @_; my content=content = content=params{content}; my cjkregex=join(′∣′,′pInBopomofoExtended′,′pInBopomofo′,′pInCJKCompatibilityForms′,′pInCJKCompatibilityIdeographs′,′pInCJKCompatibility′,′pInCJKSymbolsandPunctuation′,′pInCJKUnifiedIdeographsExtensionA′,′pInCJKUnifiedIdeographs′,′pInEnclosedCJKLettersandMonths′,′pInHalfwidthandFullwidthForms′,′pInHangulCompatibilityJamo′,′pInHangulSyllables′,′pInHiragana′,′pInKanbun′,′pInKatakanaPhoneticExtensions′,′pInKatakana′,′pInYiRadicals′,′pInYiSyllables′,′pInYijingHexagramSymbols′);cjk_regex = join('|', '\p{InBopomofo_Extended}', '\p{InBopomofo}', '\p{InCJK_Compatibility_Forms}', '\p{InCJK_Compatibility_Ideographs}', '\p{InCJK_Compatibility}', '\p{InCJK_Symbols_and_Punctuation}', '\p{InCJK_Unified_Ideographs_Extension_A}', '\p{InCJK_Unified_Ideographs}', '\p{InEnclosed_CJK_Letters_and_Months}', '\p{InHalfwidth_and_Fullwidth_Forms}', '\p{InHangul_Compatibility_Jamo}', '\p{InHangul_Syllables}', '\p{InHiragana}', '\p{InKanbun}', '\p{InKatakana_Phonetic_Extensions}', '\p{InKatakana}', '\p{InYi_Radicals}', '\p{InYi_Syllables}', '\p{InYijing_Hexagram_Symbols}'); cjkregex=join(′∣′,′pInBopomofoExtended′,′pInBopomofo′,′pInCJKCompatibilityForms′,′pInCJKCompatibilityIdeographs′,′pInCJKCompatibility′,′pInCJKSymbolsandPunctuation′,′pInCJKUnifiedIdeographsExtensionA′,′pInCJKUnifiedIdeographs′,′pInEnclosedCJKLettersandMonths′,′pInHalfwidthandFullwidthForms′,′pInHangulCompatibilityJamo′,′pInHangulSyllables′,′pInHiragana′,′pInKanbun′,′pInKatakanaPhoneticExtensions′,′pInKatakana′,′pInYiRadicals′,′pInYiSyllables′,′pInYijingHexagramSymbols′);content =~ s/($cjk_regex)\n($cjk_regex)/$1$2/g; return $content; } 1;