Module:yy
Μετάβαση στην πλοήγηση
Πήδηση στην αναζήτηση
Documentation for this module may be created at Module:yy/τεκμηρίωση
-- [[Module:yy]] -- [[Module:yy/param]] -- [[Module:yy/functions]] -- [[Template:yy]]
-- ## 2023.05.01. TEST [[Module:el-nouns-decl]] for params
-- [[:Κατηγορία:Σελίδες με σφάλματα δέσμης ενεργειών]]
export = {}
local m_functions = require("Module:yy/functions")
--------------------------------------------------------------------------
-- 1. STEM PRODUCTION, REQUIRED MODULES / ΔΗΜΙΟΥΡΓΙΑ ΘΕΜΑΤΩΝ, MODULES --
--------------------------------------------------------------------------
local languages = mw.loadData("Module:Languages") -- see LANGUAGES / only el used for lang_name = languages[lang_iso]['name']
-- possibly also for some dialects
-- do not name 'local': it does not work for Module:el-nouns-decl/functions
m_stems = require("Module:grk-stems") -- stem production:
--functions:
--word0 = no accent, word1 = accent on ultima, word2 = accent on penultima
--hasaccent = tells us if it has an accent
-- how to use [[Module:el-articles]]
-- DO NOT use m_art = require....
-- USE DIRECTLY -- require ('Module:el-articles').articles (args) instead of ARTICLES section.
--DO NOT USE: m_art = require("Module:el-articles") -- all args for articles
--DO NOT USE: m_art = require ('Module:el-articles').articles (args)
tinti = require("Module:tin") --tinti function:tin
-- chooses the correct acc.singular feminine article την (tin) or τη (ti)
--------------------------------------------------------------------------
-- 2. links & styles / σύνδεσμοι & στυλ --
--------------------------------------------------------------------------
-- =========== standard colours (BLUE) and styles
-- borders
c_border = '#a1bdea' -- same as c_1 previously #AAAACC
c_bord = '#eaf0fa' -- or '#eeeeee' -- inner lighter borders
c_bordR = '' -- right border: if there are more columns, it is soft c_bord. If it is the end, it is c_border
-- background colours
c_extra = '#b0c4de' -- for extratitle
c_1 = '#a1bdea' -- ROW title1 MAIN, and border for title2 if it exists
c_2 = '#c1d3f1' -- title2 (e.g. genders of adjectives) and border for title1
c_3 = '#d5e2f6' -- title3, all the subtitles --previously #BED9ED
c_4 = '#eaf0fa' -- background for notes - also test: #f8f8ff - previously #d9ebff
-- font colours
c_ending = '#EB0000' -- former DeepPink
c_stem = '#002000'
c_black = '#000000'
c_cccccc = '#cccccc'
c_green = '#008000'
-- styles
font_cell = "" -- ?? find out what the default family is
fontsize_cell = "" -- the default is ??
-- apply colours - εφαρμογή χρωμάτων
ending_color = function(suffix)
return '<span style="color:' .. c_ending ..'; font-weight:normal;">' .. suffix .. '</span>'
end
stem_color = function(thema)
return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. thema .. '</span>'
end
infix_color = function(infix) -- this is not an inifix. It is part of 2nd stem.
return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. infix .. '</span>'
end
-- for subtitles:
black_color = function(black_thing)
return '<span style="color:' .. c_black ..'; font-weight:normal;">' .. black_thing .. '</span>'
end
-- not used:
cccccc_color = function(cccccc_thing)
return '<span style="color:' .. c_cccccc ..'; font-weight:normal;">' .. cccccc_thing .. '</span>'
end
green_color = function(green_thing)
return '<span style="color:' .. c_green ..'; font-weight:normal;">' .. green_thing .. '</span>'
end
-- ====================== Links for the words in the table
-- create_link = function(page, text) -- see at /param page
-- ====================== Links
create_link = function(page, text)
if text then
return '[[' .. page .. '|' .. text .. ']]'
else
return '[[' .. page .. ']]'
end
end
-- it controls stem (thema) and ending (suffix)
linkcontrol2 = function(thema, suffix)
thema = thema or ''
suffix = suffix or ''
return create_link(thema .. suffix, stem_color(thema) .. ending_color(suffix))
end
--- it controls stem (thema), infix and ending (suffix)
linkcontrol3 = function(thema, infix, suffix)
thema = thema or ''
infix = infix or ''
suffix = suffix or ''
return create_link(thema .. infix .. suffix, stem_color(thema) .. infix_color(infix) .. ending_color(suffix))
end
-- Errors -- use it with writing: if blahblah then return errorhere('xxxxxx') end
errorhere = function(errstring)
return '<div class="error">' .. errstring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο τεστ ουσιαστικών (νέα ελληνικά)]]'
end
--------------------------------------------------------------------------
-- 3. TABLE / ΠΙΝΙΚΑΣ --
--------------------------------------------------------------------------
fulltable = function(args)
-- table: -- note: in some browsers, border is not visible. Need border="1"
local float = args['float'] or ''
if args['float'] == 'left' then
table_style1 = 'style="clear:left; float:left; position:relative; margin: 0px 1.5em 0.5em 0px; background:#ffffff; border:1px solid' .. c_border ..'; text-align:left;" rules="none" border="1" cellpadding="3" cellspacing="0"'
elseif args['float'] == 'center' then
table_style1 = 'style="margin-left:auto; margin-right:auto; margin-bottom:0.5em; background:#ffffff; border:1px solid' .. c_border ..'; text-align:center;" rules="none" border="1" cellpadding="3" cellspacing="0"'
else
table_style1 = 'style="clear:right; float:right; margin-left:0.5em; margin-bottom:0.5em;background:#ffffff; border:1px solid' .. c_border ..'; text-align:right;" rules="none" border="1" cellpadding="3" cellspacing="0"'
end
-- titles (title from module + extra title)
extratitle_str = args['mod-τίτλος'] or ''
if args['lang_title'] ~= '' and args['lang_title'] ~= nil then
args['mod-τίτλος'] = args['lang_title'] .. '<br>' .. args['mod-τίτλος']
end
-- =============== LANGUAGES for categories and notes
-- see /param page
-- =============== OTHER PARAMs
-- OTHER
local columns = args['cols'] or '' -- number of columns: 1+2 if only one number, 1+4 if 2 numbers 1+6 if double plural or double singular, 1+8 double sing & double pl
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά' -- pos: Part of Speech
-- typos, klisi
-- cat = args['κατ'] or ''
-- this does not work from here -- must be stated in functions
-- if args['κατ'] ~= '' and args['κατ'] ~= nil then cat = args['τύπος'] end
typos = args['τύπος'] or '' -- at the moment, coincides with as_in, but may differ -- example Surnmes όπως+
local klisi = args['κλίση'] or '' -- the subpages of Appendix -- see notes and Categories
if args['αρσ'] == '1' then klisi = 'αρσενικά' end
if args['θηλ'] == '1' then klisi = 'θηλυκά' end
if args['ουδ'] == '1' then klisi = 'ουδέτερα' end
if args['αθ'] == '1' then klisi = 'κοινά' end
if args[1] == 'επ' or args[1] == 'επ+' or args[1] == 'επ-ον' then klisi = 'επώνυμα' end
if args['ανώμαλο'] == '1' then klisi = 'ανώμαλα' end -- example?
local stem_line = ''
local stem_cell = ''
-- row for subtitles (gender of numbers if different) ([[πλούτος]])
local subtitle = ''
local subtitle_sg = args['υπότιτλος-εν'] or ''
if args['υπότιτλος-εν'] == 'αθ' then args['υπότιτλος-εν'] = 'κοινού γένους'
args['αοε'] = "αθ" args['αγε'] = "αθ" args['ααε'] = "αθ"
elseif args['υπότιτλος-εν'] == 'αρσ' then args['υπότιτλος-εν'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
args['αοε'] = "αρσ" args['αγε'] = "αρσ" args['ααε'] = "αρσ"
elseif args['υπότιτλος-εν'] == 'θηλ' then args['υπότιτλος-εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
args['αοε'] = "θηλ" args['αγε'] = "θηλ" args['ααε'] = "θηλ"
elseif args['υπότιτλος-εν'] == 'ουδ' then args['υπότιτλος-εν'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
args['αοε'] = "ουδ" args['αγε'] = "ουδ" args['ααε'] = "ουδ"
elseif args['υπότιτλος-εν'] ~= 'αρσ' and args['υπότιτλος-εν'] ~= 'θηλ' and args['υπότιτλος-εν'] ~= 'ουδ' and args['υπότιτλος-εν'] ~= 'αθ' then
args['υπότιτλος-εν'] = args['υπότιτλος-εν'] or ''
end
local subtitle_sg2 = args['υπότιτλος-εν2'] or '' -- δεύτερος ενικός
if args['υπότιτλος-εν2'] == 'αθ' then args['υπότιτλος-εν2'] = 'κοινού γένους'
args['αοε2'] = "αθ" args['αγε2'] = "αθ" args['ααε2'] = "αθ"
elseif args['υπότιτλος-εν2'] == 'αρσ' then args['υπότιτλος-εν2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
args['αοε2'] = "αρσ" args['αγε2'] = "αρσ" args['ααε2'] = "αρσ"
elseif args['υπότιτλος-εν2'] == 'θηλ' then args['υπότιτλος-εν2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
args['αοε2'] = "θηλ" args['αγε2'] = "θηλ" args['ααε2'] = "θηλ"
elseif args['υπότιτλος-εν2'] == 'ουδ' then args['υπότιτλος-εν2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
args['αοε2'] = "ουδ" args['αγε2'] = "ουδ" args['ααε2'] = "ουδ"
else
args['υπότιτλος-εν2'] = args['υπότιτλος-εν2'] or ''
end
local subtitle_pl = args['υπότιτλος-πλ'] or ''
if args['υπότιτλος-πλ'] == 'αθ' then args['υπότιτλος-πλ'] = 'κοινού γένους'
args['αοπ'] = "αθ" args['αγπ'] = "αθ" args['ααπ'] = "αθ"
elseif args['υπότιτλος-πλ'] == 'αρσ' then args['υπότιτλος-πλ'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
args['αοπ'] = "αρσ" args['αγπ'] = "αρσ" args['ααπ'] = "αρσ"
elseif args['υπότιτλος-πλ'] == 'θηλ' then args['υπότιτλος-πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
args['αοπ'] = "θηλ" args['αγπ'] = "θηλ" args['ααπ'] = "θηλ"
elseif args['υπότιτλος-πλ'] == 'ουδ' then args['υπότιτλος-πλ'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
args['αοπ'] = "ουδ" args['αγπ'] = "ουδ" args['ααπ'] = "ουδ"
elseif args['υπότιτλος-πλ'] ~= 'αρσ' and args['υπότιτλος-πλ'] ~= 'θηλ' and args['υπότιτλος-πλ'] ~= 'ουδ' and args['υπότιτλος-πλ'] ~= 'αθ' then
args['υπότιτλος-πλ'] = args['υπότιτλος-πλ'] or ''
end
local subtitle_pl2 = args['υπότιτλος-πλ2'] or '' -- 2ος πληθυντικός
if args['υπότιτλος-πλ2'] == 'αθ' then args['υπότιτλος-πλ2'] = 'κοινού γένους'
args['αοπ2'] = "αθ" args['αγπ2'] = "αθ" args['ααπ2'] = "αθ"
elseif args['υπότιτλος-πλ2'] == 'αρσ' then args['υπότιτλος-πλ2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
args['αοπ2'] = "αρσ" args['αγπ2'] = "αρσ" args['ααπ2'] = "αρσ"
elseif args['υπότιτλος-πλ2'] == 'θηλ' then args['υπότιτλος-πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
args['αοπ2'] = "θηλ" args['αγπ2'] = "θηλ" args['ααπ2'] = "θηλ"
elseif args['υπότιτλος-πλ2'] == 'ουδ' then args['υπότιτλος-πλ2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
args['αοπ2'] = "ουδ" args['αγπ2'] = "ουδ" args['ααπ2'] = "ουδ"
else
args['υπότιτλος-πλ2'] = args['υπότιτλος-πλ2'] or ''
end
-- Σημείωση: οι παράμετρες .... = '' χρειάζονται αν ΔΕΝ υπάρχει το /param
-- =============== string parameters
-- numbers
local sg_title_str = '' -- singularis title string / ἑνικός
local sg2_title_str = '' -- 2nd singular column NOT USED in this module
local pl_title_str = '' -- pluralis title / πληθυντικός
local pl2_title_str = '' -- 2nd plural title / 2ος πληθυντικός αν υπάρχει like [[βράχος]]
-- cases
local nom_sg_str = '' -- nominativus singularis / ονομαστική ενικός
local nom_sg2_str = ''
local nom_pl_str = ''
local nom_pl2_str = ''
local gen_sg_str = '' -- genitivus / γενική
local gen_sg2_str = ''
local gen_pl_str = ''
local gen_pl2_str = ''
local acc_sg_str = '' -- accusativus / αιτιατική
local acc_sg2_str = ''
local acc_pl_str = ''
local acc_pl2_str = ''
local voc_sg_str = '' -- vocativus / κλητική
local voc_sg2_str = ''
local voc_pl_str = ''
local voc_pl2_str = ''
-- articles
local a_nom_sg_str = ''
local a_nom_sg2_str = ''
local a_nom_pl_str = ''
local a_nom_pl2_str = ''
local a_gen_sg_str = ''
local a_gen_sg2_str = ''
local a_gen_pl_str = ''
local a_gen_pl2_str = ''
local a_acc_sg_str = ''
local a_acc_sg2_str = ''
local a_acc_pl_str = ''
local a_acc_pl2_str = ''
local a_voc_sg_str = ''
local a_voc_sg2_str = ''
local a_voc_pl_str = ''
local a_voc_pl2_str = ''
-- άρθρα - ARTICLES ===========================================================
require ('Module:el-articles').articles (args)
-- Αριθμοί - NUMBERS ==========================================================
local hassingular = true -- (args['εν'] ~= nil)
local hasplural = true -- (args['πλ'] ~= nil)
if args['α'] == "πλ" or args['α2'] == "πλ" then hassingular = false end
-- α= Ουσιαστικά ΧΩΡΙΣ ενικό / singular does not exist
-- α2 = Ουσιαστικά στον πληθυντικό (υπάρχει και ενικός) / but singular exists elsewhere
if args['α'] == "εν" or args['α2'] == "εν" then hasplural = false end
if args['α'] == 'εν' or args['α2'] == 'εν' then args['υπότιτλος-πλ'] = '' args['υπότιτλος-πλ2'] = '' end
if args['α'] == 'πλ' or args['α2'] == 'πλ' then args['υπότιτλος-εν'] = '' args['υπότιτλος-εν2'] = '' end
-- number of columns for full rows πτώσεις column + article+word
-- may write e.g. columns = '10' and it is ok ?!?
-- 1+2 (only one number)
if (args['α'] == 'εν' or args['α2'] == 'εν') or (args['α'] == 'πλ' or args['α2'] == 'πλ')
and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil) and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
then columns = '3'
-- 1+6 en-en2-pl
elseif (args['α'] ~= 'εν' and args['α2'] ~= 'εν') and (args['α'] ~= 'πλ' and args['α2'] ~= 'πλ')
and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
then columns = '7'
-- 1+6 en-pl-pl2
elseif (args['α'] ~= 'εν' and args['α2'] ~= 'εν') and (args['α'] ~= 'πλ' and args['α2'] ~= 'πλ')
and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
then columns = '7'
-- 1+8 --en-en2-pl-pl2
elseif (args['α'] ~= 'εν' and args['α2'] ~= 'εν') and (args['α'] ~= 'πλ' and args['α2'] ~= 'πλ')
and args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil and args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil
then columns = '9'
--[=[
-- 1+4 for en-en2 --??????? does not work
elseif (args['α'] == 'εν' or args['α2'] == 'εν')
and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
then columns = '5'
-- 1+4 for pl-pl2
elseif (args['α'] == 'πλ' or args['α2'] == 'πλ')
and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
then columns = '5'
]=]--
-- 1+4 sg + pl, normal ... hope it covers all other combinations
else
columns = '5'
end
-- σημειώσεις - NOTES ========================================================
local paratirisi = args['παρατήρηση'] or '' -- notes by editor
local note = args['mod-σημ'] or '' -- standard notes by Template
local appendix = '' -- standard link to the Appendix [[Παράρτημα:Ουσιαστικά (νέα ελληνικά)]]
local append = '' -- link to Appendix at specific paradigm
local as_in = args['όπως'] or '' -- editor must add: e.g. ασημόσκονη
-- exceptions:
local as_in_show = args['όπως+'] or '' -- π.χ. όπως=Γιάμαλος όπως+ = Γιάμαλος (κλίση:αντίλαλος)
if args['όπως+'] == '' or args['όπως+'] == nil then as_in_show = as_in end
-- added here for the (lang_name)
lang_iso = lang_iso or 'el'
lang_link = languages[lang_iso]['link'] or ''
lang_name = languages[lang_iso]['name'] or ''
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
klisi = klisi or '' -- the subpages /αρσενικά, θηλυκά etc
typos = args['τύπος'] or args['κατ'] or '' -- ALSO κατ= to override expected Category
if as_in == '' or as_in == nil then append = '' else
if typos == '-' or typos == '' or typos == nil then
append = "όπως «[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)/" .. klisi .. '#' .. as_in .. '|' .. as_in_show .. ']]» - '
else
append = '[[:Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")|Κατηγορία]] όπως «[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)/"
.. klisi .. '#' .. as_in .. '|' .. as_in_show .. ']]» - '
end
end
-- ============== note lines / σημείωση παρατήρηση π.χ. στο [[χάλυβας]]
-- ### adding this, BECAUSE en-en2 does not work for notes
if (args['α'] == 'εν' or args['α2'] == 'εν')
and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
then
if args['mod-σημ'] ~= '' or args['mod-σημ'] ~= nil then -- pre-edited notes όπως στο ίδης: [[Πρότυπο:el-κλίση-'ίδης']]
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. '<br>' .. args['παρατήρηση'] .. "\n"
else
paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. "\n"
end
end
if args['mod-σημ'] == '' or args['mod-σημ'] == nil then
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="5" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. args['παρατήρηση'] .. "\n"
else
paratirisi = ''
end
end
if args['παράρτημα'] == '-' then appendix = ''
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
elseif args['μέρος λόγου'] == 'Επώνυμα' or args[1] == "επ+" or args[1] == "επ-ον" then -- check [[Οικονόμου]] (επ-ον check --- )
appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. '[[Παράρτημα:Ονόματα και επώνυμα στα ελληνικά|Ονοματεπώνυμα]] -'
.. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
elseif args['παράρτημα'] ~= '-' and args['παράρτημα'] ~= '' and args['παράρτημα'] ~= nil then
appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. args['παράρτημα'] .. "\n"
else
appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
end
-- ##end of addition !!!!!!!! I have no idea why...
else -- NOT α=εν
if args['mod-σημ'] ~= '' or args['mod-σημ'] ~= nil then
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. '<br>' .. args['παρατήρηση'] .. "\n"
else
paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. "\n"
end
end
if args['mod-σημ'] == '' or args['mod-σημ'] == nil then
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. args['παρατήρηση'] .. "\n"
else
paratirisi = ''
end
end
-- appendix
if args['παράρτημα'] == '-' then appendix = ''
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
elseif args['μέρος λόγου'] == 'Επώνυμα' or args[1] == "επ+" or args[1] == "επ-ον" then -- check [[Οικονόμου]] (επ-ον check --- )
appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. '[[Παράρτημα:Ονόματα και επώνυμα στα ελληνικά|Ονοματεπώνυμα]] -'
.. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
elseif args['παράρτημα'] ~= '-' and args['παράρτημα'] ~= '' and args['παράρτημα'] ~= nil then
appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. args['παράρτημα'] .. "\n"
else
appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
end
end -- close ## addition
-- ========== CELLS ===============================================
-- extra title string
if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
extratitle_str = args['mod-τίτλος'] .. "\n"
end
-- columns (spaces added for good copy-paste result)
if hassingular then
-- make c_border, if not 5 columns (table_style1's border does not apply) check [[γιόκας]]
if args['α'] == 'εν' or args['α2'] == 'εν' then
c_bordR = c_border
else -- different right border
c_bordR = c_bord -- soft right border if more columns follow
end
sg_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
[=[;" colspan="2" align="center"| [[ενικός|<span title="ενικός αριθμός" style="color:black;">'''''ενικός'''''</span>]] ]=] .. "\n"
subtitle_sg = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-εν'] .. "\n"
a_nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[;" align="center" | ]=] .. args['αοε'] .. "\n"
nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[;" align="left" | ]=] .. args['οεΛ'] .. "\n"
a_gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αγε'] .. "\n"
gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['γεΛ'] .. "\n"
a_acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ααε'] .. "\n"
acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['αεΛ'] .. "\n"
a_voc_sg_str = [=[| style="]=] .. font_cell .. fontsize_cell .. [=[" align="center" | ]=] .. args['ακε'] .. "\n"
voc_sg_str = [=[| style="border-right:1px solid ]=] .. c_bordR .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['κεΛ'] .. "\n"
end -- close hassingular
if hasplural then
if args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil then -- if 2nd plural follows, right borders are soft
pl_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
[=[;" colspan="2" align="center"| [[πληθυντικός|<span title="πληθυντικός ἀριθμός" style="color:black;">'''''πληθυντικός'''''</span>]] ]=] .. "\n"
subtitle_pl = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-πλ'] .. "\n"
a_nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αοπ'] .. "\n"
nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['οπΛ'] .. "\n"
a_gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αγπ'] .. "\n"
gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['γπΛ'] .. "\n"
a_acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ααπ'] .. "\n"
acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['απΛ'] .. "\n"
a_voc_pl_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ακπ'] .. "\n"
voc_pl_str = [=[| style="border-right:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['κπΛ'] .. "\n"
else -- if 2nd plural does not follow we need strong right borders
pl_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
[=[;" colspan="2" align="center"| [[πληθυντικός|<span title="πληθυντικός ἀριθμός" style="color:black;">'''''πληθυντικός'''''</span>]] ]=] .. "\n"
subtitle_pl = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-πλ'] .. "\n"
a_nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αοπ'] .. "\n"
nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['οπΛ'] .. "\n"
a_gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αγπ'] .. "\n"
gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['γπΛ'] .. "\n"
a_acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ααπ'] .. "\n"
acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['απΛ'] .. "\n"
a_voc_pl_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ακπ'] .. "\n"
voc_pl_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['κπΛ'] .. "\n"
end -- close if 2nd plural
end -- close hasplural
-- 2nd singular - 2ος ενικός
if args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil then
args['αοε2'] = args['αοε2'] or ''
args['αγε2'] = args['αγε2'] or ''
args['ααε2'] = args['ααε2'] or ''
args['οεΛ2'] = args['οεΛ2'] or ''
args['γεΛ2'] = args['γεΛ2'] or ''
args['αεΛ2'] = args['αεΛ2'] or ''
args['κεΛ2'] = args['κεΛ2'] or ''
sg2_title_str = [=[! style="background:]=] .. c_1 ..
[=[;" colspan="2" align="center"| [[ενικός|<span title="ενικός αριθμός" style="color:black;">'''''ενικός'''''</span>]] ]=] .. "\n"
subtitle_sg2 = [=[| style="background:]=] .. c_2 ..
[=[; border-right:1px solid ]=] .. c_1 .. [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-εν2'] .. "\n"
a_nom_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αοε2'] .. "\n"
nom_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['οεΛ2'] .. "\n"
a_gen_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αγε2'] .. "\n"
gen_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['γεΛ2'] .. "\n"
a_acc_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ααε2'] .. "\n"
acc_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['αεΛ2'] .. "\n"
a_voc_sg2_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ακε2'] .. "\n"
voc_sg2_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['κεΛ2'] .. "\n"
end -- close sg2 exists
-- 2nd plural - 2ος πληθυντικός όπως [[Πρότυπο:el-κλίση'βράχος']]
if args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil then -- write free text
args['αοπ2'] = args['αοπ2'] or ''
args['αγπ2'] = args['αγπ2'] or ''
args['ααπ2'] = args['ααπ2'] or ''
args['οπΛ2'] = args['οπΛ2'] or ''
args['γπΛ2'] = args['γπΛ2'] or ''
args['απΛ2'] = args['απΛ2'] or ''
args['κπΛ2'] = args['κπΛ2'] or ''
pl2_title_str = [=[! style="background:]=] .. c_1 ..
[=[;" colspan="2" align="center"| [[πληθυντικός|<span title="πληθυντικός αριθμός" style="color:black;">'''''πληθυντικός'''''</span>]] ]=] .. "\n"
subtitle_pl2 = [=[| style="background:]=] .. c_2 ..
[=[; border-right:1px solid ]=] .. c_1 .. [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['υπότιτλος-πλ2'] .. "\n"
a_nom_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αοπ2'] .. "\n"
nom_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['οπΛ2'] .. "\n"
a_gen_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['αγπ2'] .. "\n"
gen_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['γπΛ2'] .. "\n"
a_acc_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ααπ2'] .. "\n"
acc_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['απΛ2'] .. "\n"
a_voc_pl2_str = [=[| style="]=] .. font_cell .. fontsize_cell ..
[=[" align="center" | ]=] .. args['ακπ2'] .. "\n"
voc_pl2_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
[=[" align="left" | ]=] .. args['κπΛ2'] .. "\n"
end -- close pl2 exists
-- ============================= ROWS
-- extra title
if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then extratitle =
'|-' .. extratitle_str .. "\n" .. [=[|-]=]
end
-- row for genders if different in number ([[πλούτος]])
-- subtitle line
-- sg, pl have different number
if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. subtitle_sg .. subtitle_pl .. [=[|-]=]
end
-- 2 singulars alone (args['α'] = 'εν'
if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil)
and (args['υπότιτλος-πλ'] == '' or args['υπότιτλος-πλ'] == nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. subtitle_sg .. subtitle_sg2 .. [=[|-]=]
end
-- 2 singulars, pl
if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil)
then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. subtitle_sg .. subtitle_sg2 .. subtitle_pl .. [=[|-]=]
end
-- sg, 2 plurals
if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil)
and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil) and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. subtitle_sg .. subtitle_pl .. subtitle_pl2 .. [=[|-]=]
end
-- 2 singulars + 2 plurals
if (args['υπότιτλος-εν'] ~= '' and args['υπότιτλος-εν'] ~= nil) and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
and (args['υπότιτλος-πλ'] ~= '' and args['υπότιτλος-πλ'] ~= nil) and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil) then subtitle =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. subtitle_sg .. subtitle_sg2 .. subtitle_pl .. subtitle_pl2 .. [=[|-]=]
end
-- + extratitle_str
if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
output = [=[{| ]=] .. table_style1 .. [=[
|-
| style="background:]=] .. c_extra .. [=[; border-right:1px solid ]=] .. c_extra ..
[=[; text-align:center; line-height:100%;" align="center" colspan="9" | ]=] .. extratitle_str ..
[=[|-
| style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
[=[; text-align:center; font-size:90%;" align="center"| ↓ ''πτώσεις'' ]=] ..
"\n" .. sg_title_str.. sg2_title_str .. pl_title_str .. pl2_title_str .. subtitle .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[ονομαστική|<span title="ονομαστική πτώση" style="color:black;">'''''ονομαστική'''''</span>]]]=] ..
"\n" .. a_nom_sg_str .. nom_sg_str .. a_nom_sg2_str .. nom_sg2_str .. a_nom_pl_str .. nom_pl_str .. a_nom_pl2_str .. nom_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[γενική|<span title="γενική πτώση" style="color:black;">'''''γενική'''''</span>]]]=] ..
"\n" .. a_gen_sg_str .. gen_sg_str .. a_gen_sg2_str .. gen_sg2_str .. a_gen_pl_str .. gen_pl_str .. a_gen_pl2_str .. gen_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[αιτιατική|<span title="αιτιατική πτώση" style="color:black;">'''''αιτιατική'''''</span>]]]=] ..
"\n" .. a_acc_sg_str .. acc_sg_str .. a_acc_sg2_str .. acc_sg2_str .. a_acc_pl_str .. acc_pl_str .. a_acc_pl2_str .. acc_pl2_str .. [=[|-
| style="background:]=] .. c_3 ..
[=[; text-align:right;"| [[κλητική|<span title="κλητική πτώση" style="color:black; font-size:90%;">'''''κλητική'''''</span>]]]=] ..
"\n" .. a_voc_sg_str .. voc_sg_str .. a_voc_sg2_str .. voc_sg2_str .. a_voc_pl_str .. voc_pl_str .. a_voc_pl2_str .. voc_pl2_str .. paratirisi .. appendix .. [=[|}]=]
else -- no extratitle_str
output = [=[{| ]=] .. table_style1 .. [=[
|-
| style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
[=[; text-align:center; font-size:90%;" align="center"| ↓ ''πτώσεις'' ]=] ..
"\n" .. sg_title_str.. sg2_title_str .. pl_title_str .. pl2_title_str .. subtitle .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[ονομαστική|<span title="ονομαστική πτώση" style="color:black;">'''''ονομαστική'''''</span>]]]=] ..
"\n" .. a_nom_sg_str .. nom_sg_str .. a_nom_sg2_str .. nom_sg2_str .. a_nom_pl_str .. nom_pl_str .. a_nom_pl2_str .. nom_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[γενική|<span title="γενική πτώση" style="color:black;">'''''γενική'''''</span>]]]=] ..
"\n" .. a_gen_sg_str .. gen_sg_str .. a_gen_sg2_str .. gen_sg2_str .. a_gen_pl_str .. gen_pl_str .. a_gen_pl2_str .. gen_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[αιτιατική|<span title="αιτιατική πτώση" style="color:black;">'''''αιτιατική'''''</span>]]]=] ..
"\n" .. a_acc_sg_str .. acc_sg_str .. a_acc_sg2_str .. acc_sg2_str .. a_acc_pl_str .. acc_pl_str .. a_acc_pl2_str .. acc_pl2_str .. [=[|-
| style="background:]=] .. c_3 ..
[=[; text-align:right;"| [[κλητική|<span title="κλητική πτώση" style="color:black; font-size:90%;">'''''κλητική'''''</span>]]]=] ..
"\n" .. a_voc_sg_str .. voc_sg_str .. a_voc_sg2_str .. voc_sg2_str .. a_voc_pl_str .. voc_pl_str .. a_voc_pl2_str .. voc_pl2_str .. paratirisi .. appendix .. [=[|}]=]
end -- close extratitle_str
--αφαιρείται, δίπλα από τη λέξη κλητική το: ([[ε|<span title="κλητικό επιφώνημα">ε</span>]]!)
--------------------------------------------------------------------------
-- 4. Categories / Κατηγορίες --
--------------------------------------------------------------------------
-- μέρος λόγου = the PartOfSpeech (plus as ProperNouns, Surnames etc)
-- τύπος = the catchword of the category in quotation marks
-- κατ = overrides τύπος
-- and FREE categories
local page = mw.title.getCurrentTitle()
page.name = page.text:match( "^%s*(.-)%s*$" )
if page.namespace == 0 then
-- nocat e.g. [[-ανός]]
if (args['nocat'] ~= '' and args['nocat'] ~= nil) or (args['00'] ~= '' and args['00'] ~= nil) then
output = output
else
if args['κατηγορία'] ~= '' and args['κατηγορία'] ~= nil then -- free text for Category
output = output .. '[[Κατηγορία:' .. args['κατηγορία'] .. ' (' .. lang_name .. ')]]'
else
-- param κατ= για δημιουργία κατηγοριών που συμπληρώνει ο συντάκτης - editor creates Categories ad libitum
-- Υπερισχύει του 'τύπος' - It overrides 'τύπος'
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
typos = args['τύπος'] or args['κατ'] or ''
if args['τύπος'] == '-' then output = output -- check [[πλους]] & control category: Κατηγορία:Ουσιαστικά που κλίνονται όπως το ''
else
if args['κατ'] ~= '' and args ['κατ'] ~= nil then
typos = args['κατ'] -- check ?
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
-- αν χρειαστούν ΔΥΟ παρόμοια, όπως στο [[σπετζοφάι]], μπορούμε να χρησιμοποιήσουμε free categories
else
typos = args['τύπος']
-- Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
cat_pos = args['μέρος λόγου'] or 'Ουσιαστικά'
-- SUPPRESS declensins in one number BY DEFAULT (from the functions) e.g. [[αιδώς]]
if args['α'] == 'εν' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['sg-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς πληθυντικό (" .. lang_name .. ')]]'
end
elseif args['α'] == 'πλ' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['pl-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς ενικό (" .. lang_name .. ')]]'
end
elseif args['α2'] == 'εν' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['sg-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' στον ενικό (" .. lang_name .. ')]]'
end
elseif args['α2'] == 'πλ' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['pl-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' στον πληθυντικό (" .. lang_name .. ')]]'
end
--
elseif (args['γε0'] ~= '' and args['γε0'] ~= nil) then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' με δύσχρηστη γενική ενικού (" .. lang_name .. ')]]'
elseif (args['γπ0'] ~= '' and args['γπ0'] ~= nil) then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' με δύσχρηστη γενική πληθυντικού (" .. lang_name .. ')]]'
elseif args['γε'] == '-' then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς γενική ενικού (" .. lang_name .. ')]]'
elseif args['γπ'] == '-' then output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς γενική πληθυντικού (" .. lang_name .. ')]]'
else
--η γλώσσα στην κατηγορία θα είναι απαραίτητη αν υπάρχουν ίδιοι "τύποι" σε διαφορετικές γλώσσες.
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
end -- close if typos=-
end -- close subcategories
end -- close 'κατ'
end -- close free text κατηγορία
-- genders / Κατηγορίες για γένη
if args['αρσ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' αρσενικά (' .. lang_name .. ')]]' end
if args['θηλ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' θηλυκά (' .. lang_name .. ')]]' end
if args['αθ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' κοινού γένους (' .. lang_name .. ')]]' end
if args['ουδ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' ουδέτερα (' .. lang_name .. ')]]' end
-- έξτρα: υποθετικό
-- + and args['υποκατ'] == '' βλ. [[τάρταρος]]
-- + when subgenders υπότιτλος-εν, βλ [[Οικονόμου]]
if args['αρσ'] ~= '1' and args['θηλ'] ~= '1' and args['αθ'] ~= '1' and args['ουδ'] ~= '1' and args['υποκατ'] == '' and (args['υπότιτλος-εν'] == '' or args['υπότιτλος-πλ'] == '' or args['υπότιτλος-εν'] == '') then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς γένος (' .. lang_name .. ')]]'
end
-- numbers / Κατηγορίες για τον αριθμό
if args['α'] == 'εν' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς πληθυντικό (' .. lang_name .. ')]]' end -- singularia tanutm
if args['α'] == 'πλ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς ενικό (' .. lang_name .. ')]]' end -- pluralia tantum
if args['α2'] == 'εν' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' στον ενικό (' .. lang_name .. ')]]' end -- mostly in the singular
if args['α2'] == 'πλ' then output = output .. '[[Κατηγορία:' .. cat_pos .. ' στον πληθυντικό (' .. lang_name .. ')]]' end -- mostly in the plural
-- κοινό
args['κοινό'] = args['κοινό'] or ''
if args['κοινό'] ~= '' and args['κοινό'] ~= nil then
args['κοινό'] = ' ' .. args['κοινό']
output = output .. '[[Κατηγορία:Πολυλεκτικοί όροι με ένα κλιτό (' .. lang_name .. ')]]' end
if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['αρσ'] == '1' then
output = output .. '[[Κατηγορία:Κλίση αρσενικών πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['θηλ'] == '1' then
output = output .. '[[Κατηγορία:Κλίση θηλυκών πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['ουδ'] == '1' then
output = output .. '[[Κατηγορία:Κλίση ουδέτερων πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
-- γενικές: αν εμφανίζεται ΜΟΝΟ στον αντίθετο αριθμό, να μην εισάγεται στην Κατηγορία
-- βλ. και επιμέρους functions όπου υπάρχει αυτή η σύμβαση (π.χ. όνομα, παιδάκι)
-- όπως (...)
if args['γε'] == '-' then
if args['α'] ~= 'πλ' and args['α2'] ~= 'πλ' then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς γενική ενικού (' .. lang_name .. ')]]'
end
end
-- όπως [[χειροπέδη]] μόνο στον ενικό. Αν όμως εξακολουθεί να υπάρχει γπ2, να μην μπαίνει στην κατηγορία (όπως [[μπαγάσας]])
if args['γπ'] == '-' and args['γπ2'] == nil then
if args['α'] ~= 'εν' and args['α2'] ~= 'εν' then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' χωρίς γενική πληθυντικού (' .. lang_name .. ')]]'
end
end
-- δύσχρηστη γενική ενικού όπως [[λιοστάσι]]
if args['γε0'] ~= '' and args['γε0'] ~= nil then
if args['α'] ~= 'πλ' and args['α2'] ~= 'πλ' then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' με δύσχρηστη γενική ενικού (' .. lang_name .. ')]]'
end
end
-- δύχρηστη γενική πληθυντικού όπως [[σκόνη]], [[νότα]]
if args['γπ0'] ~= '' and args['γπ0'] ~= nil then
if args['α'] ~= 'εν' and args['α2'] ~= 'εν' then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' με δύσχρηστη γενική πληθυντικού (' .. lang_name .. ')]]'
end
end
-- ΑΛΛΕΣ ΚΑΤΗΓΟΡΙΕΣ
-- ανώμαλα (irregulars) --perhaps no needed
if args['ανώμ'] == '1' then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ανώμαλα (' .. lang_name .. ')]]'
end
-- plus exceptions -- check [[μουσταλευριά]]
if args['εξ'] == '1' or args['εξαίρεση'] == '1' then
output = output .. '[[Κατηγορία:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
end
-- check [[πλούτος]], (για πολυλεκτικούς όρους [[Πρότυπο:el-κλίση-όροι]])
-- ======= EXTRA CATEGORIES: zero is reserved for the module ONLY, not for editor
-- free category, ελεύθερη κατηγορία +part of speech + language
if args['υποκατ'] ~= '' and args ['υποκατ'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ1'] ~= '' and args ['υποκατ1'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ1'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ2'] ~= '' and args ['υποκατ2'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ2'] .. ' (' .. lang_name .. ')]]'
end
-- for Module use ONLY
if args['υποκατ0'] ~= '' and args ['υποκατ0'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ0'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ01'] ~= '' and args ['υποκατ01'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ01'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ02'] ~= '' and args ['υποκατ02'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ02'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ03'] ~= '' and args ['υποκατ03'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ03'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ04'] ~= '' and args ['υποκατ04'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_pos .. ' ' .. args['υποκατ04'] .. ' (' .. lang_name .. ')]]'
end
-- free category, ελεύθερη κατηγορία + language
if args['κατηγ0'] ~= '' and args['κατηγ0'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ0'] .. ' (' .. lang_name .. ')]]'
end
if args['κατηγ'] ~= '' and args['κατηγ'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ'] .. ' (' .. lang_name .. ')]]'
end
if args['κατηγ1'] ~= '' and args['κατηγ1'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ1'] .. ' (' .. lang_name .. ')]]'
end
if args['κατηγ2'] ~= '' and args['κατηγ2'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ2'] .. ' (' .. lang_name .. ')]]'
end
-- free category, ελεύθερη κατηγορία NO LANGUAGE no restrictions, write free text -- -- test Template [[λύσας]]
if args['cat-extra0'] ~= '' and args['cat-extra0'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra0'] .. ']]'
end
if args['cat-extra'] ~= '' and args['cat-extra'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra'] .. ']]'
end
if args['cat-extra1'] ~= '' and args['cat-extra1'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra1'] .. ']]'
end
if args['cat-extra2'] ~= '' and args['cat-extra2'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra2'] .. ']]'
end
end -- close nocat
end -- close 'if namespace'
return output -- close fulltable
end
--------------------------------------------------------------------------
-- GENERAL DECLENSIONS / ΓΕΝΙΚΕΣ ΚΛΙΣΕΙΣ --
--------------------------------------------------------------------------
--------------------------------------------------------------------------
-- 5. klisi1 - the basic function --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- alterations of command names: 2020
klisi1 = function(args)
-- lemma
local lemma = args['λήμμα'] or ''
PAGENAME = mw.title.getCurrentTitle().text
if lemma == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else lemma = args['λήμμα']
end
-- stems if lemma is in plural number (οπ = nom.pl)
local stemnumber = 0
if args['α'] ~= "πλ" or args['α2'] ~= "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οε']))
end
if args['α'] == "πλ" or args['α2'] == "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οπ'])) -- but if λήμμα= it MUST be the plural
end
-- stems
local stem = {}
stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-stemnumber-1)
stem["θ0"] = m_stems.word0(stem["θ"])
if stem["θ0"] == nil then return stem["θ"] end
stem["θ1"] = m_stems.word1(stem["θ0"])
stem["θ2"] = m_stems.word2(stem["θ0"]) -- για τον πληθ -ούμενες, -όμεν-ες του [[κατηγορουμένη]] -- [[Πρότυπο:el-κλίση-'κατηγορουμένη']]
-- συνδυασμοί
for i, ptwsi in ipairs({'οε', 'γε', 'γε2', 'αε', 'κε', 'κε2', 'κε0', 'οπ', 'οπ2', 'γπ', 'γπ0', 'γπ2', 'απ', 'απ2'}) do
if args[ptwsi .. 'θ'] == nil then args[ptwsi .. 'θ'] = "θ" end
end
for i, ptwsi in ipairs({'γε', 'γε2', 'γπ', 'γπ0', 'γπ2'}) do
if args[ptwsi] ~= nil then
if m_stems.hasaccent(args[ptwsi]) then args[ptwsi .. 'θ'] = "θ0" end
end
end
if args['οπ'] == "άδες" then
args['οπθ'] = "θ0"
args['απθ'] = "θ0"
end
if args['οπ2'] == "άδες" or args['οπ2'] == "αίοι" then
args['οπ2θ'] = "θ0"
args['απ2θ'] = "θ0"
end
if args['απ'] == nil then
args['απ'] = args['οπ']
args['απθ'] = args['οπθ']
end
if args['απ2'] == nil then
args['απ2'] = args['οπ2']
args['απθ2'] = args['οπθ2']
end
if args['κε'] == nil then args['κε'] = args['αε'] end
-- ---------- Χτίσιμο των τύπων - Generate forms ----------------- --
---- ονομαστική ενικού
args['οεΛ'] = linkcontrol2(stem[args['οεθ']], args['οε'])
---- γενική ενικού
if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
args['αγε'] = '-'
args['γεΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γεΛ'] = linkcontrol2(stem[args['γεθ']], args['γε'])
end
if args['γε0'] ~= nil then
args['γεΛ'] = '(' .. linkcontrol2(stem[args['γε0θ']], args['γε0']) .. ')' -- όπως στο [[λιοστάσι]]
end
if args['γε2'] ~=nil and args['γε2'] ~= "" and args['γε2'] ~= "-" then
-- 2 γενικές, 2 άρθρα για μερικά κοινού γένους. Δεν θέλω το &
if args['α2γε'] ~= '' and args['α2γε'] ~= nil then
args['γε2Λ'] = "<br />" .. linkcontrol2(stem[args['γε2θ']], args['γε2']) -- όπως στο [[συγγραφέας]] και τα κοινού γένους με ΔΕΥΤΕΡΟ άρθρο δίπλα τους
else
args['γε2Λ'] = "<br />& " .. linkcontrol2(stem[args['γε2θ']], args['γε2']) -- όπως στο [[λύση]]
end
else
args['γε2Λ'] = ''
end
args['γεΛ'] = args['γεΛ'] .. args['γε2Λ']
---- αιτιατική ενικού
args['αεΛ'] = linkcontrol2(stem[args['αεθ']], args['αε'])
if args['αε2'] ~= '' and args['αε2'] ~= nil then -- όπως τον κατάπλουν στο [[κατάπλους]], function 'απόπλους'
args['αε2Λ'] = "<br />& " .. linkcontrol2(stem[args['αεθ']], args['αε2'])
else
args['αε2Λ'] = "" -- πρόβλημα
end
args['αεΛ'] = args['αεΛ'] .. args['αε2Λ']
---- κλητική ενικού
if args['κε0'] ~= nil then
args['κεΛ'] = '(' .. linkcontrol2(stem[args['κε0θ']], args['κε0']) .. ')' -- όπως στο [[έρημος]]
else
args['κεΛ'] = linkcontrol2(stem[args['κεθ']], args['κε'])
end
if args['κε2'] ~= nil and args['κε2'] ~= "" and args['κε2'] ~= "-" then
if args['κε2'] == "0" then
args['κε2Λ'] = " (" .. create_link((stem['θ']), (stem_color(stem['θ']))) .. ')' -- όπως θε! στο [[θεός]]
else
args['κε2Λ'] = "<br />(" .. linkcontrol2(stem[args['κε2θ']], args['κε2']) .. ')' -- σε παρένθεση, όχι με αστερίσκο
end
else
args['κε2Λ'] = ""
end
args['κεΛ'] = args['κεΛ'] .. args['κε2Λ']
---- ΟΝΟΜΑΣΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
if args['οπΛ'] == '-' then args['οπΛ'] = '<span style="color:#dddddd;">—</span>' else -- function θάλασσα for [[Αθήνα]]
args['οπΛ'] = linkcontrol2(stem[args['οπθ']], args['οπ'])
end
if args['οπ2'] ~= nil and args['οπ2'] ~= "" and args['οπ2'] ~= "-" then
args['οπ2Λ'] = "<br />& " .. linkcontrol2(stem[args['οπ2θ']], args['οπ2']) -- όπως στο [[πραματευτής]]
else
args['οπ2Λ'] = ''
end
args['οπΛ'] = args['οπΛ'] .. args['οπ2Λ']
args['κπΛ'] = args['οπΛ']
---- ΓΕΝΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
-- Προσοχή: Να μην εξαφανίζει το άρθρο όταν υπάρχει γπ0 αντί για γπ όπως [[νότα]]
-- Προσοχή: Να μην εξαφανίζει το άρθρο όταν υπάρχει γπ2 με γπ=- όπως
if args['γπ'] == "-" and (args['γπ2'] == '' or args['γπ2'] == nil) then
args['αγπ'] = '-'
args['γπΛ'] = '<span style="color:#dddddd;">—</span>'
elseif args['γπ'] == "-" and (args['γπ2'] ~= '' or args['γπ2'] ~= nil) then
args['γπΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γπΛ'] = linkcontrol2(stem[args['γπθ']], args['γπ'])
end
if args['γπ0'] ~= nil then
args['γπΛ'] = '(' .. linkcontrol2(stem[args['γπ0θ']], args['γπ0']) .. ')' -- όπως στο [[σκόνη]]
end
if args['γπ2'] ~= '' and args['γπ2'] ~= nil and args['γπ2'] ~= "-" then
args['γπ2Λ'] = linkcontrol2(stem[args['γπ2θ']], args['γπ2']) -- όπως στο [[καρδινάλιος]]
if args['γπΛ'] ~= "" then
args['γπ2Λ'] = "<br />& " .. args['γπ2Λ']
end
else
args['γπ2Λ'] = ""
end
args['γπΛ'] = args['γπΛ'] .. args['γπ2Λ']
---- ΑΙΤΙΑΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
if args['απΛ'] == '-' then args['απΛ'] = '<span style="color:#dddddd;">—</span>' else -- function θάλασσα for [[Αθήνα]]
args['απΛ'] = linkcontrol2(stem[args['απθ']], args['απ'])
end
if args['απ2'] ~=nil and args['απ2'] ~= "" and args['απ2'] ~= "-" then
-- 2 αιτιατ. πληθ, 2 άρθρα για μερικά κοινού γένους [[βιομήχανος]]. Δεν θέλω το &
if args['α2απ'] ~= '' and args['α2απ'] ~= nil then
args['απ2Λ'] = "<br />" .. linkcontrol2(stem[args['απ2θ']], args['απ2']) -- όπως στο [[βιομήχανος]] και τα κοινού γένους με ΔΕΥΤΕΡΟ άρθρο δίπλα τους
else
args['απ2Λ'] = "<br />& " .. linkcontrol2(stem[args['απ2θ']], args['απ2']) -- όπως στο [[καρδινάλιος]]
end
else
args['απ2Λ'] = ''
end
args['απΛ'] = args['απΛ'] .. args['απ2Λ']
---- ΚΛΗΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
-- όπως η αιτιατική πληθυντικού
return fulltable(args)
end
--------------------------------------------------------------------------
-- 6. klisi2 - double stems (infix added) --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- alterations: 2020
--κλίση ουδετέρων ουσιαστικών που παίρνουν επιπλέον σύμφωνο στο «θέμα», τσάι, προϊόν, μέλλον
klisi2 = function(args)
-- lemma
local lemma = args['λήμμα'] or ''
PAGENAME = mw.title.getCurrentTitle().text
if lemma == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else lemma = args['λήμμα']
end
-- stems if lemma is in plural number (οπ = nom.pl)
local stemnumber = 0
if args['α'] ~= "πλ" or args['α2'] ~= "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οε']))
end
if args['α'] == "πλ" or args['α2'] == "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οπ'])) -- but if λήμμα= it MUST be the plural
end
local stem = {}
stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-stemnumber-1)
stem["θ0"] = m_stems.word0(stem["θ"])
stem["θ1"] = m_stems.word1(stem["θ0"])
args['οεΛ'] = linkcontrol2(stem[args['οεθ']], args['οε'])
-- γε=- όπως στο [[σπετζοφάι]]
if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
args['αγε'] = '-'
args['γεΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γεΛ'] = linkcontrol3(stem[args['γεθ']], args['πρόσφ'], args['γε'])
end
args['αεΛ'] = args['οεΛ']
args['κεΛ'] = args['οεΛ']
args['οπΛ'] = linkcontrol3(stem[args['οπθ']], args['πρόσφ'], args['οπ'])
-- γπ==ιών όπως στο [[μπόι]]
if args['γπ0'] ~= "" and args['γπ0'] ~= nil then
args['γπΛ'] = '(' .. linkcontrol3(stem[args['γπθ']], args['πρόσφ'], args['γπ0']) .. ')'
-- γπ=- όπως στο [[σπετζοφάι]]
elseif (args['γπ'] == "-" or args['γπ'] == "" or args['γπ'] == nil) then
args['αγπ'] = '-'
args['γπΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γπΛ'] = linkcontrol3(stem[args['γπθ']], args['πρόσφ'], args['γπ'])
end
args['απΛ'] = args['οπΛ']
args['κπΛ'] = args['οπΛ']
return fulltable(args)
end
--------------------------------------------------------------------------
-- 7. FREE TABLE whole words or stems, endings, etc --
--------------------------------------------------------------------------
-- by Sarri.greek 2020
-- [[Πρότυπο:el-nouns-decl]]
--[=[
* για τους κωδικούς καταλήξεων με μηδέν (οε0=, γε0=, αε0=...) θεωρούμε, ότι το θέμα παραμένει όπως οε8, γε8, αε8, ...
Αν είναι αλλιώτικο, τότε χρησιμοποιούμε παράμετρο για ολόκληρη τη λέξη. Π.χ. γεΛ=([[....]])
]=]--
export.free = function(frame)
--local args = frame:getParent().args -- for Templates
local args = frame.args -- invoke
-- lemma. This is needed, to define the feminine accusative singular article (required Module:tin)
local lemma = args['λήμμα'] or ''
PAGENAME = mw.title.getCurrentTitle().text
if lemma == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else lemma = args['λήμμα']
end
-- stems
local stem = {}
minusletters = args['μείον'] or ''
if args['μείον'] == '' and args['μείον'] == nil then args['μείον'] = 2 end
stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-(minusletters+1))
stem["θ0"] = m_stems.word0(stem["θ"])
stem["θ1"] = m_stems.word1(stem["θ0"])
stem["θ2"] = m_stems.word2(stem["θ0"])
--
args['οεΛ'] = args['οεΛ'] or ''
args['γεΛ'] = args['γεΛ'] or ''
args['αεΛ'] = args['αεΛ'] or ''
args['κεΛ'] = args['κεΛ'] or ''
args['οπΛ'] = args['οπΛ'] or ''
args['γπΛ'] = args['γπΛ'] or ''
args['απΛ'] = args['απΛ'] or ''
args['κπΛ'] = args['κπΛ'] or ''
--
args['οε2Λ'] = args['οε2Λ'] or ''
args['γε2Λ'] = args['γε2Λ'] or ''
args['αε2Λ'] = args['αε2Λ'] or ''
args['κε2Λ'] = args['κε2Λ'] or ''
args['οπ2Λ'] = args['οπ2Λ'] or ''
args['γπ2Λ'] = args['γπ2Λ'] or ''
args['απ2Λ'] = args['απ2Λ'] or ''
args['κπ2Λ'] = args['κπ2Λ'] or ''
-- για γε, οπ, γπ, απ, κπ
args['πρόσφ'] = args['πρόσφ'] or ''
args['πρόσφ2'] = args['πρόσφ2'] or ''
args['κοινό1'] = args['κοινό1'] or ''
args['κοινό'] = args['κοινό'] or ''
-- ονομαστική ενικού PLUS stem only, ending='0' όπως [[πυρ]]
args['οεΛκειμ'] = args['οεΛκειμ'] or ''
args['οε2Λκειμ'] = args['οε2Λκειμ'] or ''
if args['οεθ'] == '' or args['οεθ'] == nil then
args['οεθ'] = stem["θ"]
else args['οεθ'] = args['οεθ']
end
if args['οε'] == '0' then -- το πυρ
args['οεΛ'] = args['κοινό1'] .. create_link((args['οεθ']), (stem_color(args['οεθ']))) .. args['κοινό'] .. args['οεΛκειμ']
end
if args['οε'] ~= '-' and args['οε'] ~= '0' and args['οε'] ~= '' and args['οε'] ~= nil then
args['οεΛ'] = args['κοινό1'] .. create_link((args['οεθ'] .. args['οε']), (stem_color(args['οεθ']) .. ending_color(args['οε']))) .. args['κοινό'] .. args['οεΛκειμ']
elseif args['οε'] == '-' then
args['οεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οεΛκειμ']
end
if args['οε2'] ~= '-' and args['οε2'] ~= '' and args['οε2'] ~= nil then
args['οε2Λ'] = '<br />& ' .. create_link((args['οε2θ'] .. args['οε2']), (stem_color(args['οε2θ']) .. ending_color(args['οε2']))) .. args['οε2Λκειμ']
elseif args['οε2'] == '-' then
args['οε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οε2Λκειμ']
end
if args['οε0'] ~= '' and args['οε0'] ~= nil then
args['οεΛ'] = '(' .. args['κοινό1'] .. create_link((args['οεθ'] .. args['οε0']), (stem_color(args['οεθ']) .. ending_color(args['οε0']))) .. args['κοινό'] .. ')' .. args['οεΛκειμ']
end
args['οεΛ'] = args['οεΛ'] .. args['οε2Λ']
-- γενική ενικού PLUS infix, PLUS stem only, ending='0' όπως [[νους]] του νου
args['γεΛκειμ'] = args['γεΛκειμ'] or ''
args['γε2Λκειμ'] = args['γε2Λκειμ'] or ''
if args['γεθ'] == '' or args['γεθ'] == nil then
args['γεθ'] = stem["θ"]
else args['γεθ'] = args['γεθ']
end
if args['γε'] == '0' then -- ο [[νους]], του νου
args['γεΛ'] = args['κοινό1'] .. create_link((args['γεθ']), (stem_color(args['γεθ']))) .. args['κοινό'] .. args['γεΛκειμ']
end
if args['γε'] ~= '-' and args['γε'] ~= '0' and args['γε'] ~= '' and args['γε'] ~= nil then
args['γεΛ'] = args['κοινό1'] .. create_link((args['γεθ'] .. args['πρόσφ'] .. args['γε']), (stem_color(args['γεθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γε']))) .. args['κοινό'] .. args['γεΛκειμ']
elseif args['γε'] == '-' then
args['γεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γεΛκειμ']
end
if args['γε2'] ~= '-' and args['γε2'] ~= '' and args['γε2'] ~= nil then
-- δεύτερη γραμμή άρθρου για κοινού γένους ([[συγγραφέας]]) με 2 άρθρα, δεν θέλω το &
if args['α2γε'] ~= '' and args['α2γε'] ~= nil then
args['γε2Λ'] = '<br />' .. create_link((args['γε2θ'] .. args['πρόσφ2'] .. args['γε2']), (stem_color(args['γε2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γε2']))) .. args['γε2Λκειμ']
else
args['γε2Λ'] = '<br />& ' .. create_link((args['γε2θ'] .. args['πρόσφ2'] .. args['γε2']), (stem_color(args['γε2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γε2']))) .. args['γε2Λκειμ']
end
elseif args['γε2'] == '-' then
args['γε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γε2Λκειμ']
end
if args['γε0'] ~= '' and args['γε0'] ~= nil then
args['γεΛ'] = '(' .. args['κοινό1'] .. create_link((args['γεθ'] .. args['πρόσφ'] .. args['γε0']), (stem_color(args['γεθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γε0']))) .. args['κοινό'] .. ')' .. args['γεΛκειμ']
end
args['γεΛ'] = args['γεΛ'] .. args['γε2Λ']
-- αιτιατική ενικού PLUS stem only, ending='0' όπως [[ισχύς]], την ισχύ
args['αεΛκειμ'] = args['αεΛκειμ'] or ''
args['αε2Λκειμ'] = args['αε2Λκειμ'] or ''
if args['αεθ'] == '' or args['αεθ'] == nil then
args['αεθ'] = stem["θ"]
else args['αεθ'] = args['αεθ']
end
if args['αε'] == '0' then -- την ισχύ, τον ιχθύ
args['αεΛ'] = args['κοινό1'] .. create_link((args['αεθ']), (stem_color(args['αεθ']))) .. args['κοινό'] .. args['αεΛκειμ']
end
if args['αε'] ~= '-' and args['αε'] ~= '0' and args['αε'] ~= '' and args['αε'] ~= nil then
args['αεΛ'] = args['κοινό1'] .. create_link((args['αεθ'] .. args['αε']), (stem_color(args['αεθ']) .. ending_color(args['αε']))) .. args['κοινό'] .. args['αεΛκειμ']
elseif args['αε'] == '-' then
args['αεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['αεΛκειμ']
end
if args['αε2'] ~= '-' and args['αε2'] ~= '' and args['αε2'] ~= nil then
args['αε2Λ'] = '<br />& ' .. create_link((args['αε2θ'] .. args['αε2']), (stem_color(args['αε2θ']) .. ending_color(args['αε2']))) .. args['αε2Λκειμ']
elseif args['αε2'] == '-' then
args['αε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['αε2Λκειμ']
end
if args['αε0'] ~= '' and args['αε0'] ~= nil then
args['αεΛ'] = '(' .. args['κοινό1'] .. create_link((args['αεθ'] .. args['αε0']), (stem_color(args['αεθ']) .. ending_color(args['αε0']))) .. args['κοινό'] .. ')' .. args['αεΛκειμ']
end
args['αεΛ'] = args['αεΛ'] .. args['αε2Λ']
-- κλητική ενικού PLUS stem only, ending='0' όπως [[ισχύς]], ω ισχύ!
args['κεΛκειμ'] = args['κεΛκειμ'] or ''
args['κε2Λκειμ'] = args['κε2Λκειμ'] or ''
if args['κεθ'] == '' or args['κεθ'] == nil then
args['κεθ'] = stem["θ"]
else args['κεθ'] = args['κεθ']
end
if args['κε'] == '0' then -- ω ισχύ, ω ιχθύ
args['κεΛ'] = args['κοινό1'] .. create_link((args['κεθ']), (stem_color(args['κεθ']))) .. args['κοινό'] .. args['κεΛκειμ']
end
if args['κε'] ~= '-' and args['κε'] ~= '0' and args['κε'] ~= '' and args['κε'] ~= nil then
args['κεΛ'] = args['κοινό1'] .. create_link((args['κεθ'] .. args['κε']), (stem_color(args['κεθ']) .. ending_color(args['κε']))) .. args['κοινό'] .. args['κεΛκειμ']
elseif args['κε'] == '-' then
args['κεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κεΛκειμ']
end
if args['κε2'] ~= '-' and args['κε2'] ~= '' and args['κε2'] ~= nil then
args['κε2Λ'] = '<br />& ' .. create_link((args['κε2θ'] .. args['κε2']), (stem_color(args['κε2θ']) .. ending_color(args['κε2']))) .. args['κε2Λκειμ']
elseif args['κε2'] == '-' then
args['κε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κε2Λκειμ']
end
if args['κε0'] ~= '' and args['κε0'] ~= nil then
args['κεΛ'] = '(' .. args['κοινό1'] .. create_link((args['κεθ'] .. args['κε0']), (stem_color(args['κεθ']) .. ending_color(args['κε0']))) .. args['κοινό'] .. ')' .. args['κεΛκειμ']
end
args['κεΛ'] = args['κεΛ'] .. args['κε2Λ']
-- ΟΝΟΜΑΣΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
args['οπΛκειμ'] = args['οπΛκειμ'] or ''
args['οπ2Λκειμ'] = args['οπ2Λκειμ'] or ''
if args['οπθ'] == '' or args['οπθ'] == nil then
args['οπθ'] = stem["θ"]
else args['οπθ'] = args['οπθ']
end
if args['οπ'] ~= '-' and args['οπ'] ~= '' and args['οπ'] ~= nil then
args['οπΛ'] = args['κοινό1'] .. create_link((args['οπθ'] .. args['πρόσφ'] .. args['οπ']), (stem_color(args['οπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['οπ']))) .. args['κοινό'] .. args['οπΛκειμ']
elseif args['οπ'] == '-' then
args['οπΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οπΛκειμ']
end
if args['οπ2'] ~= '-' and args['οπ2'] ~= '' and args['οπ2'] ~= nil then
args['οπ2Λ'] = '<br />& ' .. create_link((args['οπ2θ'] .. args['πρόσφ2'] .. args['οπ2']), (stem_color(args['οπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['οπ2']))) .. args['οπ2Λκειμ']
elseif args['οπ2'] == '-' then
args['οπ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οπ2Λκειμ']
end
if args['οπ0'] ~= '' and args['οπ0'] ~= nil then
args['οπΛ'] = '(' .. args['κοινό1'] .. create_link((args['οπθ'] .. args['πρόσφ'] .. args['οπ0']), (stem_color(args['οπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['οπ0']))) .. args['κοινό'] .. ')' .. args['οπΛκειμ']
end
args['οπΛ'] = args['οπΛ'] .. args['οπ2Λ']
-- ΓΕΝΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix Check [[κανάγιας]]
args['γπΛκειμ'] = args['γπΛκειμ'] or ''
args['γπ2Λκειμ'] = args['γπ2Λκειμ'] or ''
if args['γπθ'] == '' or args['γπθ'] == nil then
args['γπθ'] = stem["θ"]
else args['γπθ'] = args['γπθ']
end
-- όπως [[κανάγιας]], των - + check [[ναύλος]]
if args['γπ'] ~= '-' and args['γπ'] ~= '' and args['γπ'] ~= nil then
args['γπΛ'] = args['κοινό1'] .. create_link((args['γπθ'] .. args['πρόσφ'] .. args['γπ']), (stem_color(args['γπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γπ']))) .. args['κοινό'] .. args['γπΛκειμ']
elseif args['γπ'] == '-' then
args['γπΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γπΛκειμ']
end
if args['γπ2'] ~= '-' and args['γπ2'] ~= '' and args['γπ2'] ~= nil then
args['γπ2Λ'] = '<br />& ' .. create_link((args['γπ2θ'] .. args['πρόσφ2'] .. args['γπ2']), (stem_color(args['γπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γπ2']))) .. args['γπ2Λκειμ']
elseif args['γπ2'] == '-' then
args['γπ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γπ2Λκειμ']
end
if args['γπ0'] ~= '' and args['γπ0'] ~= nil then
args['γπΛ'] = '(' .. args['κοινό1'] .. create_link((args['γπθ'] .. args['πρόσφ'] .. args['γπ0']), (stem_color(args['γπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γπ0']))) .. args['κοινό'] .. ')' .. args['γπΛκειμ']
end
args['γπΛ'] = args['γπΛ'] .. args['γπ2Λ']
-- ΑΙΤΙΑΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
args['απΛκειμ'] = args['απΛκειμ'] or ''
args['απ2Λκειμ'] = args['απ2Λκειμ'] or ''
if args['απθ'] == '' or args['απθ'] == nil then
args['απθ'] = stem["θ"]
else args['απθ'] = args['απθ']
end
if args['απ'] ~= '-' and args['απ'] ~= '' and args['απ'] ~= nil then
args['απΛ'] = args['κοινό1'] .. create_link((args['απθ'] .. args['πρόσφ'] .. args['απ']), (stem_color(args['απθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['απ']))) .. args['κοινό'] .. args['απΛκειμ']
elseif args['απ'] == '-' then
args['απΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['απΛκειμ']
end
if args['απ2'] ~= '-' and args['απ2'] ~= '' and args['απ2'] ~= nil then
-- 2 αιτιατ. πληθ, 2 άρθρα για μερικά κοινού γένους [[βιομήχανος]]. Δεν θέλω το &
if args['α2απ'] ~= '' and args['α2απ'] ~= nil then
args['απ2Λ'] = '<br />' .. create_link((args['απ2θ'] .. args['πρόσφ2'] .. args['απ2']), (stem_color(args['απ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['απ2']))) .. args['απ2Λκειμ']
else
args['απ2Λ'] = '<br />& ' .. create_link((args['απ2θ'] .. args['πρόσφ2'] .. args['απ2']), (stem_color(args['απ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['απ2']))) .. args['απ2Λκειμ']
end
elseif args['απ2'] == '-' then
args['απ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['απ2Λκειμ']
end
if args['απ0'] ~= '' and args['απ0'] ~= nil then
args['απΛ'] = '(' .. args['κοινό1'] .. create_link((args['απθ'] .. args['πρόσφ'] .. args['απ0']), (stem_color(args['απθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['απ0']))) .. args['κοινό'] .. ')' .. args['απΛκειμ']
end
args['απΛ'] = args['απΛ'] .. args['απ2Λ']
-- ΚΛΗΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
args['κπΛκειμ'] = args['κπΛκειμ'] or ''
args['κπ2Λκειμ'] = args['κπ2Λκειμ'] or ''
if args['κπθ'] == '' or args['κπθ'] == nil then
args['κπθ'] = stem["θ"]
else args['κπθ'] = args['κπθ']
end
if args['κπ'] ~= '-' and args['κπ'] ~= '' and args['κπ'] ~= nil then
args['κπΛ'] = args['κοινό1'] .. create_link((args['κπθ'] .. args['πρόσφ'] .. args['κπ']), (stem_color(args['κπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['κπ']))) .. args['κοινό'] .. args['κπΛκειμ']
elseif args['κπ'] == '-' then
args['κπΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κπΛκειμ']
end
if args['κπ2'] ~= '-' and args['κπ2'] ~= '' and args['κπ2'] ~= nil then
args['κπ2Λ'] = '<br />& ' .. create_link((args['κπ2θ'] .. args['πρόσφ2'] .. args['κπ2']), (stem_color(args['κπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['κπ2']))) .. args['κπ2Λκειμ']
elseif args['κπ2'] == '-' then
args['κπ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κπ2Λκειμ']
end
if args['κπ0'] ~= '' and args['κπ0'] ~= nil then
args['κπΛ'] = '(' .. args['κοινό1'] .. create_link((args['κπθ'] .. args['πρόσφ'] .. args['κπ0']), (stem_color(args['κπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['κπ0']))) .. args['κοινό'] .. ')' .. args['κπΛκειμ']
end
args['κπΛ'] = args['κπΛ'] .. args['κπ2Λ']
-- 2ος πληθυντικός
args['οπΛ2'] = args['οπΛ2'] or ''
args['γπΛ2'] = args['γπΛ2'] or ''
args['απΛ2'] = args['απΛ2'] or ''
args['κπΛ2'] = args['κπΛ2'] or ''
return fulltable(args)
end
-------------------------------- DECL--------------------------------------
-- decl - it creates functions for specific declensions at the function pages
-- otherwise, it is EXACTLY like free
-----------------------------------------------------------------------------
decl = function(args) -- creates functions at the /function page
-- all the declension parameters & functions: ======================
require ('Module:yy/param').param (args)
------------
return fulltable(args)
end
--------------------------------------------------------------------------
-- 8. SPECIFIC TEMPLAGES / ΕΠΙΜΕΡΟΥΣ ΠΡΟΤΥΠΑ --
--------------------------------------------------------------------------
-- =================== α...ω ======================= --
-- see [[Module:el-nouns-decl/functions]]
return export