split-graphemes
タイ語やクメール文字、一部の絵文字などが含まれた文字列を、Ligature単位でsplitする為のScrapboxの部品
src/share/grapheme-splitterにある
クメール文字を徹底的に解説するの研究を元に実装された
これnpmにした方がいいと思うshokai.icon
言語対応のpull requestを受けれる
+1 daiiz.icon
現状、まともに色々な言語の書記素を分割できるライブラリが無い
文字列を書記素クラスタに分割するで試しているnpmではクメール文字が駄目だった
scrapboxに限らず有用な処理だと思う
scrapboxの開発と分離して、言語を個別に追加しても問題ない
Nota organizationでやると良いと思う
やりたい daiiz.icon
適当にプルリクするのでやってみてくださいshokai.icon
https://github.com/nota/split-graphemes をつくっていくぞ!
ちなみに同名のnpm取られているね...rakusai.icon
https://www.npmjs.com/package/split-graphemes なら空いてたshokai.icon
関数名もsplitGraphemes(str)なのでこっちで良いと思います
npm publishした /daiiz/tada.icon daiiz.icon
正規表現のuフラグを使っている
Google botに正規表現のuフラグが無い
\u{}でUnicodeのCodePoint単位でmatchさせる
uフラグはSafari 9や、Googlebotに実装されていない
/./uと書くだけでjavascript構文エラーになってしまう
Google botに正規表現のuフラグが無いで、とりあえずクロールはしてもらえるようになった
uフラグ付きで書かれた正規表現はとても見やすいshokai.icon
言語を追加する時に素直に書ける。こっちで書きたい
2年もしないうちにuフラグを標準で使えるようになると思うので、2018年にもなってサロゲートペアで書きたくない
正規表現内のunicode codepoint指定部分を、サロゲートペアに変換できないだろうか?
ちょっと調べる
うーん、無理そうshokai.icon
なんかもうSafari9とかどうでもいい気がしてきた。自分が困ってないのでやる気が出ない
emojiの所だけなんとかすればいいのか
できたshokai.icon
https://github.com/nota/scrapbox/pull/2584
ツール作った → unicodeサロゲートペアにマッチする正規表現を作る
Googlebotがタイ語・カンボジア語をindexできるようになった
https://gyazo.com/5a746a08ad322704873204499d4cbce1