nix-conf/user/bin/furigana
2025-07-13 21:20:22 -05:00

23 lines
1,010 B
Plaintext
Executable file

"""
ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろわをんーゎゐゑゕゖゔゝゞ・「」。、
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロワヲンーヮヰヱヵヶヴヽヾ・「」。、
"""
import fugashi
import sys
if len(sys.argv) != 2:
print('usage: furigana <word>')
exit(1)
H, K = __doc__.strip().split('\n')
t = {ord(a): ord(b) for a, b in zip(K, H)}
r = []
for x in fugashi.Tagger().parseToNodeList(sys.argv[1]):
if all(c in H + K for c in x.surface) or not x.feature.kana:
r.append(x.surface)
else:
r.append(f" {x.surface}[{x.feature.kana.translate(t)}]")
print(''.join(r).strip())