This module is supposed to compose a wikitable containing Classical Japanese inflection information for templates.
It is used by {{ja-conj-bungo}}
. It requires Module:ja.
local export = {}
local rm_spaces_hyphens = require("Module:ja").rm_spaces_hyphens
local kana_to_romaji = require("Module:Hrkt-translit").tr
function export.japanese_classical_conjugation(frame)
local args = frame:getParent().args
local function _i(t, i)
if type(t) == 'table' then return t
else return t end
end
local function behead(s)
return mw.ustring.gsub(s, '', '', 1)
end
local function _l(s)
return '<span class="Jpan" lang="ja-Jpan">]</span>'
end
local t = {
= {
'か', 'き', 'く', 'く', 'け', 'け',
= { 'けり', 'きたり' }
},
= {
'が', 'ぎ', 'ぐ', 'ぐ', 'げ', 'げ',
= { 'げり', 'ぎたり' }
},
= {
'さ', 'し', 'す', 'す', 'せ', 'せ',
= { 'せり', 'したり' }
},
= {
'た', 'ち', 'つ', 'つ', 'て', 'て',
= { 'てり', 'ちたり' }
},
= {
'は', 'ひ', 'ふ', 'ふ', 'へ', 'へ',
= { 'へり', 'ひたり' }
},
= {
'ば', 'び', 'ぶ', 'ぶ', 'べ', 'べ',
= { 'べり', 'びたり' }
},
= {
'ま', 'み', 'む', 'む', 'め', 'め',
= { 'めり', 'みたり' }
},
= {
'ら', 'り', 'る', 'る', 'れ', 'れ',
= { 'れり', 'りたり' }
},
= { 'き', 'き', 'く', 'くる', 'くれ', 'き.よ' },
= { 'ぎ', 'ぎ', 'ぐ', 'ぐる', 'ぐれ', 'ぎ.よ' },
= { 'じ', 'じ', 'ず', 'ずる', 'ずれ', 'じ.よ' },
= { 'ち', 'ち', 'つ', 'つる', 'つれ', 'ち.よ' },
= { 'ぢ', 'ぢ', 'づ', 'づる', 'づれ', 'ぢ.よ' },
= { 'ひ', 'ひ', 'ふ', 'ふる', 'ふれ', 'ひ.よ' },
= { 'び', 'び', 'ぶ', 'ぶる', 'ぶれ', 'び.よ' },
= { 'み', 'み', 'む', 'むる', 'むれ', 'み.よ' },
= { '.い', '.い', '.ゆ', '.ゆる', '.ゆれ', '.い.よ' },
= { 'り', 'り', 'る', 'るる', 'るれ', 'り.よ' },
= { '.え', '.え', '.う', '.うる', '.うれ', '.えよ' },
= { 'け', 'け', 'く', 'くる', 'くれ', 'けよ' },
= { 'げ', 'げ', 'ぐ', 'ぐる', 'ぐれ', 'げよ' },
= { 'せ', 'せ', 'す', 'する', 'すれ', 'せよ' },
= { 'ぜ', 'ぜ', 'ず', 'ずる', 'ずれ', 'ぜよ' },
= { 'て', 'て', 'つ', 'つる', 'つれ', 'てよ' },
= { 'で', 'で', 'づ', 'づる', 'づれ', 'でよ' },
= { 'ね', 'ね', 'ぬ', 'ぬる', 'ぬれ', 'ねよ' },
= { 'へ', 'へ', 'ふ', 'ふる', 'ふれ', 'へよ' },
= { 'べ', 'べ', 'ぶ', 'ぶる', 'ぶれ', 'べよ' },
= { 'め', 'め', 'む', 'むる', 'むれ', 'めよ' },
= { '.え', '.え', '.ゆ', '.ゆる', '.ゆれ', '.えよ' },
= { '.𛀁', '.𛀁', '.ゆ', '.ゆる', '.ゆれ', '.𛀁よ' },
= { 'れ', 'れ', 'る', 'るる', 'るれ', 'れよ' },
= { 'ゑ', 'ゑ', '.う', '.うる', '.うれ', 'ゑよ' },
= { 'き', 'き', 'きる', 'きる', 'きれ', 'き.よ' },
= { 'に', 'に', 'にる', 'にる', 'にれ', 'に.よ' },
= { 'ひ', 'ひ', 'ひる', 'ひる', 'ひれ', 'ひ.よ' },
= { 'み', 'み', 'みる', 'みる', 'みれ', 'み.よ' },
= { '.い', '.い', '.いる', '.いる', '.いれ', '.い.よ' },
= { 'ゐ', 'ゐ', 'ゐる', 'ゐる', 'ゐれ', 'ゐ.よ' },
= { 'け', 'け', 'ける', 'ける', 'けれ', 'けよ' },
= { 'くゑ', 'くゑ', 'くゑる', 'くゑる', 'くゑれ', 'くゑよ' },
= {
'こ', 'き', 'く', 'くる', 'くれ', { 'こ', 'こよ' },
= { 'こし', 'きし' }
},
= {
'せ', 'し', 'す', 'する', 'すれ', 'せよ',
= { 'せり', 'したり' }
},
= {
'ぜ', 'じ', 'ず', 'ずる', 'ずれ', 'ぜよ',
= { 'ぜり', 'じたり' }
},
= { 'な', 'に', 'ぬ', 'ぬる', 'ぬれ', 'ね' },
= { 'ら', 'り', 'り', 'る', 'れ', 'れ' },
= {
{ 'く', 'から' }, { 'く', 'かり' }, 'し', { 'き', 'かる' }, 'けれ', 'かれ',
= 'く', = 'から', = 'く', = 'かり',
},
= {
{ 'しく', 'しから' }, { 'しく', 'しかり' }, 'し', { 'しき', 'しかる' }, 'しけれ', 'しかれ',
= 'しく', = 'しから', = 'しく', = 'しかり',
},
= {
{ 'じく', 'じから' }, { 'じく', 'じかり' }, 'じ', { 'じき', 'じかる' }, 'じけれ', 'じかれ',
= 'じく', = 'じから', = 'じく', = 'じかり',
},
= {
'なら', { 'に', 'なり' }, 'なり', 'なる', 'なれ', 'なれ',
= 'に', = 'なり'
},
= {
'たら', { 'と', 'たり' }, 'たり', 'たる', 'たれ', 'たれ',
= 'と', = 'たり',
},
}
local t_note = {
= { = 'Attributive form, as the terminal form (lemma) does not exist for this construction in this conjugation.' },
= { = 'Often proscribed due to a redundancy of having 2 '.._l('あり')..'.' },
= { { 'Without auxiliary verb.', 'With auxiliary verb.' }, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
= { { 'Without auxiliary verb.', 'With auxiliary verb.' }, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
= { { 'Without auxiliary verb.', 'With auxiliary verb.' }, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
= { nil, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
= { nil, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
}
local conj_name = {
= { '四段活用', 'カ行四段活用' },
= { '四段活用', 'ガ行四段活用' },
= { '四段活用', 'サ行四段活用' },
= { '四段活用', 'タ行四段活用' },
= { '四段活用', 'ハ行四段活用' },
= { '四段活用', 'バ行四段活用' },
= { '四段活用', 'マ行四段活用' },
= { '四段活用', 'ラ行四段活用' },
= { '上二段活用', 'カ行上二段活用' },
= { '上二段活用', 'ガ行上二段活用' },
= { '上二段活用', 'ザ行上二段活用' },
= { '上二段活用', 'タ行上二段活用' },
= { '上二段活用', 'ダ行上二段活用' },
= { '上二段活用', 'ハ行上二段活用' },
= { '上二段活用', 'バ行上二段活用' },
= { '上二段活用', 'マ行上二段活用' },
= { '上二段活用', 'ヤ行上二段活用' },
= { '上二段活用', 'ラ行上二段活用' },
= { '下二段活用', 'ア行下二段活用' },
= { '下二段活用', 'カ行下二段活用' },
= { '下二段活用', 'ガ行下二段活用' },
= { '下二段活用', 'サ行下二段活用' },
= { '下二段活用', 'ザ行下二段活用' },
= { '下二段活用', 'タ行下二段活用' },
= { '下二段活用', 'ダ行下二段活用' },
= { '下二段活用', 'ナ行下二段活用' },
= { '下二段活用', 'ハ行下二段活用' },
= { '下二段活用', 'バ行下二段活用' },
= { '下二段活用', 'マ行下二段活用' },
= { '下二段活用', 'ヤ行下二段活用' },
= { '下二段活用', 'ヤ行下二段活用' },
= { '下二段活用', 'ラ行下二段活用' },
= { '下二段活用', 'ワ行下二段活用' },
= { '上一段活用', 'カ行上一段活用' },
= { '上一段活用', 'ナ行上一段活用' },
= { '上一段活用', 'ハ行上一段活用' },
= { '上一段活用', 'マ行上一段活用' },
= { '上一段活用', 'ヤ行上一段活用' },
= { '上一段活用', 'ワ行上一段活用' },
= { '下一段活用', 'カ行下一段活用' },
= { '下一段活用', 'カ行下一段活用' },
= 'カ行変格活用',
= 'サ行変格活用',
= 'サ行変格活用',
= 'ナ行変格活用',
= 'ラ行変格活用',
= 'ク活用',
= 'シク活用',
= 'シク活用',
= 'ナリ活用',
= 'タリ活用',
}
local t_assumed_pagename_ending = {
= 'く',
= 'ぐ',
= 'す',
= 'つ',
= { 'ふ', 'う' },
= 'ぶ',
= 'む',
= 'る',
= { 'く', 'きる' },
= { 'ぐ', 'ぎる' },
= { 'ず', 'じる' },
= { 'つ', 'ちる' },
= { 'づ', 'ぢる', 'じる' },
= { 'ふ', 'いる', 'ひる' },
= { 'ぶ', 'びる' },
= { 'む', 'みる' },
= { 'ゆ', 'いる' },
= { 'りる', 'る' },
= { 'う', 'える' },
= { 'く', 'ける' },
= { 'ぐ', 'げる' },
= { 'す', 'せる' },
= { 'ず', 'ぜる' },
= { 'つ', 'てる' },
= { 'づ', 'でる' },
= { 'ぬ', 'ねる' },
= { 'ふ', 'える', 'へる' },
= { 'ぶ', 'べる' },
= { 'む', 'める' },
= { 'ゆ', 'える' },
= { 'ゆ', 'える', '𛀁る'},
= { 'れる', 'る' },
= { 'う', 'える', 'ゑる' },
= 'きる',
= 'にる',
= { 'ひる', 'いる' },
= 'みる',
= 'いる',
= { 'ゐる', 'いる' },
= 'ける',
= 'くゑる',
= { 'く', 'くる' },
= { 'す', 'する' },
= { 'ず', 'ずる', 'じる' },
= 'ぬ',
= { 'り', 'る' },
= { 'し', 'い' },
= { 'し', 'しい' },
= { 'じ', 'じい' },
= { 'なり', 'な' },
= { 'たり', 'と' },
}
local pagename = args or mw.title.getCurrentTitle().text
local stem = args or args or args or ''
local ctype = args or args or args or ''
local kanji = args or args or args
local suffix_in_kanji = args or args
local lemma = args or args
local function guess_kanji_from_pagename()
local suf
if type(t_assumed_pagename_ending) == 'table' then
suf = t_assumed_pagename_ending
else
suf = { t_assumed_pagename_ending }
end
local lemma_ending
if suffix_in_kanji then
for _, v in ipairs(suf) do
lemma_ending = behead(v)
if lemma_ending ~= '' and string.sub(pagename, - string.len(lemma_ending)) == lemma_ending then
kanji = kanji or string.sub(pagename, 1, - (string.len(lemma_ending) + 1))
break
end
end
kanji = kanji or pagename
lemma = lemma or kanji .. behead(_i(t, 1))
else
for _, v in ipairs(suf) do
lemma_ending = v
if string.sub(pagename, - string.len(lemma_ending)) == lemma_ending then
kanji = kanji or string.sub(pagename, 1, - (string.len(lemma_ending) + 1))
break
end
end
kanji = kanji or pagename
lemma = lemma or kanji .. _i(t, 1)
end
return
end
if conj_name == nil then
kanji = kanji or pagename
lemma = lemma or pagename
else
guess_kanji_from_pagename()
end
local f_irr = args or args
local f_adv = args or args
local f_ter = args or args
local f_adn = args or args
local f_rea = args or args
local f_imp = args or args
local f_neg = args or args
local f_conj_contr = args or args
local f_conj_caus = args or args
local f_conj_cond = args or args
local f_t_pas_ki = args or args
local f_t_pas_ker = args or args
local f_t_per_t = args or args
local f_t_per_n = args or args
local f_t_percon = args or args
local f_adverb = args or args
local f_volit = args or args
local f_irr__p = args
local f_adv__p = args
local f_ter__p = args
local f_adn__p = args
local f_rea__p = args
local f_imp__p = args
local f_neg__p = args
local f_conj_contr__p = args
local f_conj_caus__p = args
local f_conj_cond__p = args
local f_t_pas_ki__p = args
local f_t_pas_ker__p = args
local f_t_per_t__p = args
local f_t_per_n__p = args
local f_t_percon__p = args
local f_adverb__p = args
local f_volit__p = args
local hide_key_constructions = args or args
local notes = {}
local notes_rev ={}
local note_num = 0
local function insert_note(note)
local note_id
note_id = notes_rev
if note_id == nil then
note_num = note_num + 1
notes = note
notes_rev = note_num
note_id = note_num
end
return note_id
end
local function japanese_conj_row_classical_manual(form)
local r1, r2, r3 = {}, {}, {}
local form_no_note, kanji, kana, note
local forms = {}
local p1, p2
local identical_kanji_kana = true
string.gsub(form, '+', function(w) table.insert(forms, w) end)
for _, form_single in ipairs(forms) do
p1 = string.find(form_single, '?')
if p1 then
note = string.sub(form_single, p1 + 1)
form_no_note = string.sub(form_single, 1, p1 - 1)
else
note = nil
form_no_note = form_single
end
p2 = string.find(form_no_note, ':')
if p2 then
kanji = string.sub(form_no_note, 1, p2 - 1)
kana = string.sub(form_no_note, p2 + 1)
else
kanji = form_no_note
kana = form_no_note
end
identical_kanji_kana = identical_kanji_kana and kanji == kana
if note then
table.insert(r1,
'<span class="Jpan" lang="ja-Jpan">'
.. rm_spaces_hyphens(kanji)
.. '</span><small><sup>['
.. insert_note(note)
.. ']</sup></small>')
else
table.insert(r1,
'<span class="Jpan" lang="ja-Jpan">'
.. rm_spaces_hyphens(kanji)
.. '</span>')
end
table.insert(r2,
'<span class="Jpan" lang="ja-Jpan">'
.. rm_spaces_hyphens(kana)
.. '</span>')
table.insert(r3,
'<span class="Latn" lang="ja-Latn">'
.. kana_to_romaji(kana, "ja", nil, {hist = true})
.. '</span>')
end
if identical_kanji_kana then
return '| colspan ="2" |'
.. table.concat(r1, '<br/>')
.. '||'
.. table.concat(r3, '<br/>')
else
return '||'
.. table.concat(r1, '<br/>')
.. '||'
.. table.concat(r2, '<br/>')
.. '||'
.. table.concat(r3, '<br/>')
end
end
local function japanese_conj_row_classical_auto(_stem, _kanji, _suffix, _suffix_in_kanji, _note, _tail)
local result = {}
if type(_suffix) ~= 'table' then
if type(_suffix) == 'string' then
_suffix = { _suffix }
else
return '-'
end
end
_tail = _tail or ''
if _suffix_in_kanji then
if type(_note) == 'table' then
for i, suf in ipairs(_suffix) do
if _note then
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note)
else
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
elseif type(_note) == 'string' then
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note)
end
else
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
else
if type(_note) == 'table' then
for i, suf in ipairs(_suffix) do
if _note then
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note)
else
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
elseif type(_note) == 'string' then
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note)
end
else
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
end
return table.concat(result, ';')
end
f_irr = f_irr or japanese_conj_row_classical_auto(stem, kanji, _i(t, 1), suffix_in_kanji, _i(t_note, 1))
f_adv = f_adv or japanese_conj_row_classical_auto(stem, kanji, _i(t, 2), suffix_in_kanji, _i(t_note, 2))
f_ter = f_ter or japanese_conj_row_classical_auto(stem, kanji, _i(t, 3), suffix_in_kanji, _i(t_note, 3))
f_adn = f_adn or japanese_conj_row_classical_auto(stem, kanji, _i(t, 4), suffix_in_kanji, _i(t_note, 4))
f_rea = f_rea or japanese_conj_row_classical_auto(stem, kanji, _i(t, 5), suffix_in_kanji, _i(t_note, 5))
f_imp = f_imp or japanese_conj_row_classical_auto(stem, kanji, _i(t, 6), suffix_in_kanji, _i(t_note, 6))
if not hide_key_constructions and t then
f_neg = f_neg or
_i(t, 'neg') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 'neg'), suffix_in_kanji, _i(t_note, 'neg')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'irr_2') or _i(t, 1), suffix_in_kanji, _i(t_note, 'neg'), 'ず')
f_conj_contr = f_conj_contr or
_i(t, 'conj_contr') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 'conj_contr'), suffix_in_kanji, _i(t_note, 'conj_contr')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 5), suffix_in_kanji, _i(t_note, 'conj_contr'), 'ど')
f_conj_caus = f_conj_caus or
_i(t, 'conj_caus') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 'conj_caus'), suffix_in_kanji, _i(t_note, 'conj_caus')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 5), suffix_in_kanji, _i(t_note, 'conj_caus'), 'ば')
f_conj_cond = f_conj_cond or
_i(t, 'conj_cond') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 'conj_cond'), suffix_in_kanji, _i(t_note, 'conj_cond')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'irr_1') or _i(t, 1), suffix_in_kanji, _i(t_note, 'conj_cond'), 'ば')
f_t_pas_ki = f_t_pas_ki or
_i(t, 't_pas_ki') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 't_pas_ki'), suffix_in_kanji, _i(t_note, 't_pas_ki')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adv_2') or _i(t, 2), suffix_in_kanji, _i(t_note, 't_pas_ki'), 'き')
f_t_pas_ker = f_t_pas_ker or
_i(t, 't_pas_ker') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 't_pas_ker'), suffix_in_kanji, _i(t_note, 't_pas_ker')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adv_2') or _i(t, 2), suffix_in_kanji, _i(t_note, 't_pas_ker'), 'けり')
if string.sub(ctype, 1, 3) == 'adj' then
f_adverb = f_adverb or
_i(t, 'adverb') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adverb'), suffix_in_kanji, _i(t_note, 'adverb')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adv_1') or _i(t, 2), suffix_in_kanji, _i(t_note, 'adverb'))
else
f_t_per_t = f_t_per_t or
_i(t, 't_per_t') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 't_per_t'), suffix_in_kanji, _i(t_note, 't_per_t')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adv_2') or _i(t, 2), suffix_in_kanji, _i(t_note, 't_per_t'), 'つ')
f_t_per_n = f_t_per_n or
_i(t, 't_per_n') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 't_per_n'), suffix_in_kanji, _i(t_note, 't_per_n')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adv_2') or _i(t, 2), suffix_in_kanji, _i(t_note, 't_per_n'), 'ぬ')
f_t_percon = f_t_percon or
_i(t, 't_percon') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 't_percon'), suffix_in_kanji, _i(t_note, 't_percon')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'adv_2') or _i(t, 2), suffix_in_kanji, _i(t_note, 't_percon'), 'たり')
f_volit = f_volit or
_i(t, 'volit') and japanese_conj_row_classical_auto(stem, kanji, _i(t, 'volit'), suffix_in_kanji, _i(t_note, 'volit')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t, 'irr_1') or _i(t, 1), suffix_in_kanji, _i(t_note, 'volit'), 'む')
end
end
f_irr = f_irr and f_irr__p and f_irr ..';'.. f_irr__p or f_irr or f_irr__p
f_adv = f_adv and f_adv__p and f_adv ..';'.. f_adv__p or f_adv or f_adv__p
f_ter = f_ter and f_ter__p and f_ter ..';'.. f_ter__p or f_ter or f_ter__p
f_adn = f_adn and f_adn__p and f_adn ..';'.. f_adn__p or f_adn or f_adn__p
f_rea = f_rea and f_rea__p and f_rea ..';'.. f_rea__p or f_rea or f_rea__p
f_imp = f_imp and f_imp__p and f_imp ..';'.. f_imp__p or f_imp or f_imp__p
f_neg = f_neg and f_neg__p and f_neg ..';'.. f_neg__p or f_neg or f_neg__p
f_conj_contr = f_conj_contr and f_conj_contr__p and f_conj_contr ..';'.. f_conj_contr__p or f_conj_contr or f_conj_contr__p
f_conj_caus = f_conj_caus and f_conj_caus__p and f_conj_caus ..';'.. f_conj_caus__p or f_conj_caus or f_conj_caus__p
f_conj_cond = f_conj_cond and f_conj_cond__p and f_conj_cond ..';'.. f_conj_cond__p or f_conj_cond or f_conj_cond__p
f_t_pas_ki = f_t_pas_ki and f_t_pas_ki__p and f_t_pas_ki ..';'.. f_t_pas_ki__p or f_t_pas_ki or f_t_pas_ki__p
f_t_pas_ker = f_t_pas_ker and f_t_pas_ker__p and f_t_pas_ker ..';'.. f_t_pas_ker__p or f_t_pas_ker or f_t_pas_ker__p
f_t_per_t = f_t_per_t and f_t_per_t__p and f_t_per_t ..';'.. f_t_per_t__p or f_t_per_t or f_t_per_t__p
f_t_per_n = f_t_per_n and f_t_per_n__p and f_t_per_n ..';'.. f_t_per_n__p or f_t_per_n or f_t_per_n__p
f_t_percon = f_t_percon and f_t_percon__p and f_t_percon ..';'.. f_t_percon__p or f_t_percon or f_t_percon__p
local result = '<div class="NavFrame" style="border: 0; margin-bottom:0.1em">'
.. '<div class="NavHead" align="left" style="font-size:105%; margin: 0; border: 1px solid var(--border-color-base, #a2a9b1); background-color: var(--wikt-palette-indigo-3, #e0defa);">'
.. 'Classical conjugation of "<span class="Jpan" lang="ja-Jpan">'..rm_spaces_hyphens(lemma)..'</span>" '
.. (conj_name and '('.._l(conj_name)..', see ].)</div>' or '(irregular)</div>')
.. '<div class="NavContent" style="font-size:105%; border-top:0">\n'
.. '{| class="wikitable" style="margin-top: 0; text-align: center; width: 100%; border-top:0" rules="all"\n|-\n'
.. '! style="border-top:0" colspan="4" | Stem forms\n|-\n! style="width:20%;" |'
.. 'Irrealis ('.._l('未然形')..')\n'
.. japanese_conj_row_classical_manual(f_irr)
.. '\n|-\n!Continuative ('.._l('連用形')..')\n'
.. japanese_conj_row_classical_manual(f_adv)
.. '\n|-\n!Terminal ('.._l('終止形')..')\n'
.. japanese_conj_row_classical_manual(f_ter)
.. '\n|-\n!Attributive ('.._l('連体形')..')\n'
.. japanese_conj_row_classical_manual(f_adn)
.. '\n|-\n!Realis ('.._l('已然形')..')\n'
.. japanese_conj_row_classical_manual(f_rea)
.. '\n|-\n!Imperative ('.._l('命令形')..')\n'
.. japanese_conj_row_classical_manual(f_imp)
.. (not hide_key_constructions and '\n|-\n! colspan="4" | Key constructions' or '')
.. (f_neg and '\n|-\n! Negative\n' .. japanese_conj_row_classical_manual(f_neg) or '')
.. (f_conj_contr and '\n|-\n! Contrasting conjunction\n' .. japanese_conj_row_classical_manual(f_conj_contr) or '')
.. (f_conj_caus and '\n|-\n! Causal conjunction\n' .. japanese_conj_row_classical_manual(f_conj_caus) or '')
.. (f_conj_cond and '\n|-\n! Conditional conjunction\n' .. japanese_conj_row_classical_manual(f_conj_cond) or '')
.. (f_t_pas_ki and '\n|-\n! Past tense (firsthand knowledge)\n' .. japanese_conj_row_classical_manual(f_t_pas_ki) or '')
.. (f_t_pas_ker and '\n|-\n! Past tense (secondhand knowledge)\n' .. japanese_conj_row_classical_manual(f_t_pas_ker) or '')
.. (f_t_per_t and '\n|-\n! Perfect tense (conscious action)\n' .. japanese_conj_row_classical_manual(f_t_per_t) or '')
.. (f_t_per_n and '\n|-\n! Perfect tense (natural event)\n' .. japanese_conj_row_classical_manual(f_t_per_n) or '')
.. (f_t_percon and '\n|-\n! Perfect-continuative tense\n' .. japanese_conj_row_classical_manual(f_t_percon) or '')
.. (f_adverb and '\n|-\n! Adverbial\n' .. japanese_conj_row_classical_manual(f_adverb) or '')
.. (f_volit and '\n|-\n! Volitional\n' .. japanese_conj_row_classical_manual(f_volit) or '')
if note_num > 0 then
result = result .. '\n|-\n| style="text-align:left;" bgcolor="#FFFFFF" colspan="5" |<small>'
for i, v in ipairs(notes) do
result = result .. '<sup></sup>' .. v .. '<br/>'
end
result = result .. '</small>'
end
result = result .. '\n|}</div></div>'
return result
end
return export