Module: JLPT::Furigana

Defined in:
lib/jlpt/formatters/furigana.rb

Overview

Furigana Generator and Romaji Transliteration Engine.

Attaches Hiragana readings to Kanji words in HTML () or Markdown/Anki format, and provides Hepburn Romaji transliteration.

Constant Summary collapse

KANJI_REGEX =
/[\u4E00-\u9FFF]/.freeze

Class Method Summary collapse

Class Method Details

.render(text, format: :html) ⇒ String

Render text with Furigana annotations

Parameters:

  • text (String)

    Japanese input text

  • format (Symbol) (defaults to: :html)

    :html or :markdown (:anki)

Returns:

  • (String)

    formatted string



18
19
20
21
22
23
# File 'lib/jlpt/formatters/furigana.rb', line 18

def render(text, format: :html)
  tokens = Tokenizer.tokenize(text)
  return '' if tokens.empty?

  tokens.map { |token| render_token(token, format: format) }.join
end

.to_romaji(text) ⇒ String

Transliterate Katakana/Hiragana to Hepburn Romaji

Parameters:

  • text (String)

    Japanese text

Returns:

  • (String)

    Romaji string



29
30
31
32
33
34
# File 'lib/jlpt/formatters/furigana.rb', line 29

def to_romaji(text)
  tokens = Tokenizer.tokenize(text)
  return '' if tokens.empty?

  tokens.map { |t| kana_to_romaji(t[:reading]) }.join(' ').strip
end