#!/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 = $params{content}; my $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}'); $content =~ s/($cjk_regex)\n($cjk_regex)/$1$2/g; return $content; } 1;