#!/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;
