1- import stripOkurigana from 'wanakana/es/stripOkurigana' ;
2- import tokenize from 'wanakana/es/tokenize' ;
3- import isKanji from 'wanakana/es/isKanji' ;
4- import isKana from 'wanakana/es/isKana' ;
5- import isHiragana from 'wanakana/es/isHiragana' ;
6- import isKatakana from 'wanakana/es/isKatakana' ;
1+ import { stripOkurigana , tokenize , isKanji , isKana , isHiragana , isKatakana } from 'wanakana' ;
72import zip from 'just-zip-it' ;
83
94/**
@@ -59,13 +54,11 @@ export function basicFuri(word = '', reading = '') {
5954 reading . slice ( stripOkurigana ( reading , { matchKanji : word } ) . length ) ,
6055 ] ;
6156
62- const innerWordTokens = tokenizeWithOdoriji ( removeExtraneousKana ( word , bikago , okurigana ) ) ;
57+ const innerWordTokens = tokenize ( removeExtraneousKana ( word , bikago , okurigana ) ) ;
6358 let innerReadingChars = removeExtraneousKana ( reading , bikago , okurigana ) ;
6459
6560 const kanjiOddKanaEvenRegex = RegExp (
66- innerWordTokens
67- . map ( ( char ) => ( isKanji ( char ) || char . includes ( '々' ) ? '(.*)' : `(${ char } )` ) )
68- . join ( '' )
61+ innerWordTokens . map ( ( char ) => ( isKanji ( char ) ? '(.*)' : `(${ char } )` ) ) . join ( '' ) ,
6962 ) ;
7063
7164 [ , ...innerReadingChars ] = innerReadingChars . match ( kanjiOddKanaEvenRegex ) || [ ] ;
@@ -83,23 +76,6 @@ export function basicFuri(word = '', reading = '') {
8376 return ret ;
8477}
8578
86- function tokenizeWithOdoriji ( input ) {
87- const tokenizedArray = tokenize ( input ) ;
88- // merge 々 with previous element
89- for ( let i = 0 ; i < tokenizedArray . length ; i += 1 ) {
90- if ( tokenizedArray [ i ] === '々' ) {
91- if ( i !== 0 ) {
92- tokenizedArray [ i - 1 ] = tokenizedArray [ i - 1 ] + tokenizedArray [ i ] ;
93- tokenizedArray [ i ] = '' ;
94- }
95- }
96- }
97- // remove empty element
98- const removedEmpty = tokenizedArray . filter ( ( element ) => element !== '' ) ;
99-
100- return removedEmpty ;
101- }
102-
10379function removeExtraneousKana ( str = '' , leading = '' , trailing = '' ) {
10480 return str . replace ( RegExp ( `^${ leading } ` ) , '' ) . replace ( RegExp ( `${ trailing } $` ) , '' ) ;
10581}
0 commit comments