Перейти до вмісту

Модуль:grc-nouns-decl

Неперевірена версія
Матеріал з Вікісловника

Документацію для цього модуля можна створити у Модуль:grc-nouns-decl/документація

-- давньогрецька Іменники - Declension of nouns for Ancient Greek, Hellenistic Koine with |grc-koi=1
-- It includes dative case. Also can be used for Mediaeval Greek |gkm=1
	-- and other polytonic versions of Greek (καθαρεύουσα |kath=1).
-- Editors can suppress the module parameters (mod-xx=) by writing xx= (see /param page)
-- Κάθε κλίση έχει το Πρότυπό της / Each declension-function has its Template
--[=[
* previously by Flyax (2015-2018)
* additions & /param page: 2021, Sarri.greek
INSTRUCTIONS for modules see bottom of page /  ΟΔΗΓΙΕΣ γι' αυτό το module, βλ. τέλος σελίδας
	-- check https://en.wiktionary.org/wiki/Module:grc-decl/decl/staticdata/paradigms
Instructions for editors / Οδηγίες για συντάκτες: [[:Категорія:Πρότυπα κλίσης ουσιαστικών (давньогрецька)/οδηγίες]]
EDITOR_MUST_DEFINE extra parameters at the following templates:
	* δίχρ= (for dubious dichrona) #1χώρα #1νεανίας #1γνώμη #1στρατιώτης #3γείτων #3γέρων #3γίγας #3γυψ #3κτήτωρ
	* χαρ= (last letter of stem) #3φύλαξ #3γύψ
	* προπαροξ= (for the bug: capital+spirit+τόνος) #3φύλαξ #3γύψ
	* θέμα= (for second stem) = #3γυψ, #3φύλαξ
	* τύπος=  (for dubious pluralia tantum) #3βέλος #κτήμα
EXTERNAL_LINKS in args['mod-σημ'] at 3#βασιλεύς#αλιεύς 3#πατρίς(cf Adjectives 3#εύελπις)
]=]--

--[=[
STRUCTURE: 
	1. required modules, stem production
	2. links and style
	3. line 185: the TABLE
	4. line 1035: Categories
	5. line 1580: decl links to /param page (basic function for declensions in the functionpages)
	6. and: free links to /param page (invoke from pages)
	notes at bottom
]=]--

--[=[
PROBLEMS
* after 2021.12. changes, μείον= does not work (default stems) CHECK [[πῦρ]] [[Σουσάννα]]
* Fixed BUG for capital+spirit+tonos omits tonos when converted -- the stem['θ'] MUST BE REPEATED
	e.g.  3#πόλις [[Ἄλπεις]] 3#βέλος [[Ἄργος]]  
	3#φύλαξ  [[Ἶσις]] does not convert to Ἴσιδ (psile+okseia) it MUST BE handled separately
TO DO ΕΚΚΡΕΜΟΤΗΤΕΣ
* CORRECT θ2 with accent2syn_i (which recognizes diphthongs) --------####
* make doric articles and doric, epic declensions
* special flag for attested forms when they have a quotation at their page??
* auto articles CHECK [[κόρυμβος]]
]=]--



export = {} -- DO NOT write local export. It does not work.

--------------------------------------------------------------------------
-- 1. STEM PRODUCTION, REQUIRED MODULES / ΔΗΜΙΟΥΡΓΙΑ ΘΕΜΑΤΩΝ, MODULES   --
--------------------------------------------------------------------------

-- ==================== REQUIRED ======================= --
languages = mw.loadData("Module:Languages") -- to choose grc, gkm, kath, greek languages with same script

module_path = 'Module:grc-nouns-decl'

m_1 = require(module_path .. "/1") 
-- cannot call all subpages directly from here. Each one will call the next:
-- here we call m_1 = require(module_path .. "/1") -- 1st declension functions
		-- m_1 calls: m_2 = require(module_path .. "/2") -- 2nd declension functions
			-- m_2 calls m_3 and so forth

-- do not name 'local': it does not work for module subpages
m_stems = require("Module:grk-stems") -- stem production: 
	--functions:
		--word-3 subtracts 3 letters from end, word-2, word-1 etc
		--word0 = no accent, word1 = accent on ultima,  word2 = accent on penultima
		--hasaccent = tells us if it has an accent

m_data = require("Module:grk-stems/data") -- for finding vowels, vowels+tonos etc
-- m_data.vowel_perispomeni = '[ᾶᾷἆᾆἇᾇῆῇἦᾖἧᾗῖἶἷῗῦὖὗῧῶῷὦᾦὧᾧἎᾎἏᾏἮᾞἯᾟἾἿὟὮᾮὯᾯ]' -- vowel+perispomeni
-- m_data.brachy_oxeia = '[έὲἔἒἕἓόὸὄὂὅὃΈῈἜἚἝἛΌῸὌὊὍὋ]' -- brachy+okseia or vareia
-- m_data.macron_oxeia = '[ήῄὴῂἤᾔἢᾒἥᾕἣᾓώῴὼῲὤᾤὢᾢὥᾥὣᾣΉῊἬᾜἪᾚᾚἭᾝἫᾛῺὬᾬὪᾪὭᾭὫᾫ]' -- macron+okseia or vareia
-- m_data.dichronon_oxeia = '[άὰἄἂἅἃίὶἴἲἵἳΐῒύὺὔὒὕὓΰῢΆᾺἌἊἍἋΊῚἼἺἽἻΎῪὝὛ]' -- dichronon+okseia or vareia
-- m_data.diphthong_tonos = '[αΑεΕηΗοΟ][ίὶῖἴἲἶἵἳἷΊῚἼἺἾἽἻἿύὺῦὔὒὖὑὕὓὗΎῪὝὛὟ]' -- diphthong+tonos (okseia, vareia, perispomeni) NOT dialytics ΐῒῗΰῢῧ 

-- articles: USE at ARTICLES section: require ('Module:grc-articles').articles (args)
	-- DO NOT USE here,  m_art = require ('Module:grc-articles').articles (args)
	-- and DO NOT change at all any args for articles

-- call the page /param (it has all parameters) at bottom of this page


--------------------------------------------------------------------------
--             2. links & styles / σύνδεσμοι & στυλ                     --
--------------------------------------------------------------------------

-- =========== standard colours for grc: LightSteelBlue =  #b0c4de 70%-75%-GREY-95%)  GREY c3
-- borders
c_border = '#c9d7e8' -- same as c3 or stronger: same as c_1
c_bord = '#f4f4f4' -- 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 = '#93aed2' -- ROW title1 MAIN, number names, and border for title2 if it exists
c_2 = '#a5bcd9' -- title2 subtitles, genders of adjectives and border for title1
c_3 = '#e3e5e8' -- = from Grey --Lightsteelblue was '#c9d7e8' -- title3, all the subtitles 
c_4 = '#edf2f7' -- background for notes 
-- also, see below, at languages, special colours for different lang iso

-- font colours
c_ending = '#eb0000'			-- is DeepPink. For wikitext, template [[Πρότυπο:χκ]], never bold
c_stem = '#002000'			-- For wikitext, template [[Πρότυπο:χθ]], never bold
c_black = '#000000'			-- for subtitles
c_cccccc = '#cccccc'			-- not used here (possible for dubious forms)
c_green = '#008000'			-- not used here (possibly for infix)

-- =============== styles
-- for table style, cf. the beginning of fulltable

font_cell = "font-family:; letter-spacing:1px;"				-- tested, rejected: Palatino linotype; font-family:Times; 
fontsize_cell = "font-size:110%;"		-- tested: font-size:130%; (too big)

--  ============== apply font 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 exactly an inifix. It is extra letters of a 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:
--black_word = function(black_word)
--    return '<span style="color:' .. c_black ..'; font-weight:;">' .. black_word .. '</span>'
--end
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

-- 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, infixed letters and ending
linkcontrol3 = function(thema, infix, suffix)
	thema = thema or ''
	infix = infix or '' -- need for ὀστοῦν function
	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

-- if ambiguous dichrona vowels are not specified as macron or as brachy or as ?
-- όταν τα δίχρονα δεν έχουν προσωδία δίχρ=μ ή δίχρ=β ή δίχρ=?
-- use it with: if blahblah then return error_dichr end
error_dichr = function(errordichrstring)
	page = mw.title.getCurrentTitle()
	page.name = page.text:match( "^%s*(.-)%s*$" )
	if page.namespace == 0 then	-- Categories work only in MAIN namespace	
	return '<div style="font-size:15px; color:red;">* Κλίση: Θα πρέπει να ορίσουμε το δίχρονο φωνήεν με |δίχρ=β (βραχύ) ή |δίχρ=μ (μακρό).<br>Αν δεν υπάρχουν πληροφορίες, |δίχρ=?</div>'
	.. '[[Категорія:Λήμματα χωρίς προσωδία σε δίχρονο φωνήεν (давньогрецька)]]'	
	else
	return '<div style="font-size:15px; color:red;">* Κλίση: Θα πρέπει να ορίσουμε το δίχρονο φωνήεν με |δίχρ=β (βραχύ) ή |δίχρ=μ (μακρό).<br>Αν δεν υπάρχουν πληροφορίες, |δίχρ=?</div>'
	end
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) check [[Βαβυλωνίς]] Control: [[Λεβαδία]] (only mod-title, [[Βαβυλωνεύς]] (no title)) [[κρίνον]] (only editor's 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
	local dichr = args['δίχρ'] or ''		-- for dichronous (either macron or brachy δίχρ=β is brachy)

	cat_pos = args['μέρος λόγου'] or 'Іменники' -- pos: Part of Speech
	if args['τόπος'] == '1' or args['όνομα'] == '1' or args['πατρωνυμικό'] == '1' or args['κύριο'] == '1' then
		cat_pos = 'Κύρια ονόματα'
--		output = output .. '[[Категорія:' .. 'Κύρια ονόματα' .. " της κλίσης '" .. typos .. "' (" .. lang_name .. ")]]"
	end

-- typos, klisi
--	cat = args['κατ'] or ''
		-- this does not work from here
		-- if args['κατ'] ~= '' and args['κατ'] ~= nil then cat = args['τύπος'] end
	typos = args['τύπος'] or ''
	local klisi = args['κλίση'] or ''		-- also see notes and Categories
		if args['κλίση'] == '1' then klisi = '1' end
		if args['κλίση'] == '2' then klisi = '2' end
		if args['κλίση'] == '2αττ' then klisi = '2αττ' end
		if args['κλίση'] == '3' then klisi = '3' end
		if args['κλίση'] == 'ανώμαλα' then klisi = 'ανώμαλα' end 
		if args['κλίση'] == '0' then klisi = 'ανώμαλα' end

	local stem_line = ''
	local stem_cell = ''

-- row for subtitles (dialects or gender of numbers if different) 
	-- [[λάτρις]] [[Ἑρμῆς]]  [[Περσείδης]]
	-- ἑτερογενῆ =  ὁ λύχνος - τὰ λύχνα, ὁ σῖτος - τὰ σῖτα , ὁ δεσμὸς - οἱ δεσμοὶ та τὰ δεσμά, τὸ στάδιον - τὰ στάδια та οἱ στάδιοι
	-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
	local subtitle = ''
	local subtitle_sg = args['υπότιτλος-εν'] or '' 
		
		if args['υπότιτλος-εν'] == 'αθ' then args['υπότιτλος-εν'] = 'κοινού γένους'
	elseif args['υπότιτλος-εν'] == 'αρσ' then args['υπότιτλος-εν'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
			-- check [[λύχνος]]
			args['αοε'] = "αρσ"	args['αγε'] = "αρσ"	args['αδε'] = "αρσ"	args['ααε'] = "αρσ"		args['αοδ'] = "αρσ"	args['αγδ'] = "αρσ"
	elseif args['υπότιτλος-εν'] == 'θηλ' then args['υπότιτλος-εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-εν'] == 'ουδ' then args['υπότιτλος-εν'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-εν'] == 'θο' then args['υπότιτλος-εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-εν'] ~= 'αρσ' and args['υπότιτλος-εν'] ~= 'θηλ' and args['υπότιτλος-εν'] ~= 'ουδ' and args['υπότιτλος-εν'] ~= 'αθ' and args['υπότιτλος-εν'] ~= 'θο' then
		args['υπότιτλος-εν'] = args['υπότιτλος-εν'] or ''
	end
--  need subtitle_sg2 for ὁ [[ζυγός]] τό [[ζυγόν]] / text [[Αἰνείας]]
	local subtitle_sg2 = args['υπότιτλος-εν2'] or '' -- δεύτερος однина
		if args['υπότιτλος-εν2'] == 'αρσ' then args['υπότιτλος-εν2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
	elseif args['υπότιτλος-εν2'] == 'θηλ' then args['υπότιτλος-εν2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-εν2'] == 'ουδ' then args['υπότιτλος-εν2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-εν2'] == 'αθ' then args['υπότιτλος-εν2'] = 'κοινού γένους'
	elseif args['υπότιτλος-εν2'] == 'θο' then args['υπότιτλος-εν2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
	else
		args['υπότιτλος-εν2'] = args['υπότιτλος-εν2'] or ''
	end

	local subtitle_pl = args['υπότιτλος-πλ'] or ''
		if args['υπότιτλος-πλ'] == 'αρσ' then args['υπότιτλος-πλ'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
	elseif args['υπότιτλος-πλ'] == 'θηλ' then args['υπότιτλος-πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-πλ'] == 'ουδ' then args['υπότιτλος-πλ'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
			-- check [[λύχνος]]
			args['αοπ'] = "ουδ"	args['αγπ'] = "ουδ"	args['αδπ'] = "ουδ"	args['ααπ'] = "ουδ"		args['αοδ'] = "αρσ"	args['αγδ'] = "αρσ"
	elseif args['υπότιτλος-πλ'] == 'αθ' then args['υπότιτλος-πλ'] = 'κοινού γένους'
	elseif args['υπότιτλος-πλ'] == 'θο' then args['υπότιτλος-πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-πλ'] ~= 'αρσ' and args['υπότιτλος-πλ'] ~= 'θηλ' and args['υπότιτλος-πλ'] ~= 'ουδ' and args['υπότιτλος-πλ'] ~= 'αθ' and args['υπότιτλος-πλ'] ~= 'θο' then
		args['υπότιτλος-πλ'] = args['υπότιτλος-πλ'] or '' 
	end
-- check [[λάτρις]]
	local subtitle_pl2 = args['υπότιτλος-πλ2'] or ''	-- 2ος множина
	-- and see ΚΑΤΗΓΟΡΙΕΣ for Категорія:Ο με διαλεκτικούς τύπους
		if args['υπότιτλος-πλ2'] == 'αρσ' then args['υπότιτλος-πλ2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]'
	elseif args['υπότιτλος-πλ2'] == 'θηλ' then args['υπότιτλος-πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]'
	elseif args['υπότιτλος-πλ2'] == 'ουδ' then args['υπότιτλος-πλ2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]'
	elseif args['υπότιτλος-πλ2'] == 'αθ' then args['υπότιτλος-πλ2'] = 'κοινού γένους'
	elseif args['υπότιτλος-πλ2'] == 'θο' then args['υπότιτλος-πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']] ή [[ουδέτερο' .. black_color('ουδέτερο') .. ']]'
-- withdraw (see above))
--	elseif args['υπότιτλος-πλ2'] ~= 'αρσ' and args['υπότιτλος-πλ2'] ~= 'θηλ' and args['υπότιτλος-πλ2'] ~= 'ουδ' and args['υπότιτλος-πλ2'] ~= 'αθ' and args['υπότιτλος-πλ2'] ~= 'θο'
--		and args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil
--		then
--		args['υπότιτλος-πλ2'] = args['υπότιτλος-πλ2'] .. '[[Категорія:' .. cat_pos .. ' με διαλεκτικούς τύπους στον πίνακα κλίσης (' .. lang_name .. ')]]'
	else
		args['υπότιτλος-πλ2'] = args['υπότιτλος-πλ2'] or ''
	end

-- Σημείωση: οι παράμετρες .... = '' χρειάζονται αν ΔΕΝ υπάρχει το /param

	-- numbers
	local sg_title_str = ''			-- singularis title string / ἑνικός
	local sg2_title_str = ''		-- 2nd singualr title / 2ος однина αν υπάρχει
	local pl_title_str = ''			-- pluralis  title / множина
	local pl2_title_str = ''		-- 2nd plural title / 2ος множина αν υπάρχει
	local dualrow = ''				-- not always
	local du_title_str = ''			-- dualis title / подвійний
	-- cases
	local nom_sg_str = ''			-- nominativus singularis / ὀνομαστική ἑνικός
	local nom_sg2_str = ''
	local nom_pl_str = ''
	local nom_pl2_str = ''
	local nom_du_str = ''
	local gen_sg_str = ''			-- genitivus / родовий
	local gen_sg2_str = ''
	local gen_pl_str = ''
	local gen_pl2_str = ''
	local gen_du_str = ''
	local dat_sg_str = ''			-- dativus / давальний
	local dat_sg2_str = ''
	local dat_pl_str = ''
	local dat_pl2_str = ''
	local dat_du_str = ''
	local acc_sg_str = ''			-- accusativus / αἰτιατική
	local acc_sg2_str = ''
	local acc_pl_str = ''
	local acc_pl2_str = ''
	local acc_du_str = ''
	local voc_sg_str = ''			-- vocativus / кличний
	local voc_sg2_str = ''
	local voc_pl_str = ''
	local voc_pl2_str = ''
	local voc_du_str = ''
	-- articles / ἄρθρα (see [[Module:grc-articles]] (Also parameter άρθρα=0 to omit all articles)
	local a_nom_sg_str = ''
	local a_nom_sg2_str = ''
	local a_nom_pl_str = ''
	local a_nom_pl2_str = ''
	local a_nom_du_str = ''
	local a_gen_sg_str = ''
	local a_gen_sg2_str = ''
	local a_gen_pl_str = ''
	local a_gen_pl2_str = ''
	local a_gen_du_str = ''
	local a_dat_sg_str = ''
	local a_dat_sg2_str = ''
	local a_dat_pl_str = ''
	local a_dat_pl2_str = ''
	local a_dat_du_str = ''
	local a_acc_sg_str = ''
	local a_acc_sg2_str = ''
	local a_acc_pl_str = ''
	local a_acc_pl2_str = ''
	local a_acc_du_str = ''
	local a_voc_sg_str = ''
	local a_voc_sg2_str = ''
	local a_voc_pl_str = ''
	local a_voc_pl2_str = ''
	local a_voc_du_str = ''

-- ARTICLES ===========================================================
	-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
require ('Module:grc-articles').articles (args)

-- NUMBERS ================================================================
	local hassingular = true		-- (args['εν'] ~= nil)
	local hasplural = true			-- (args['πλ'] ~= nil)
	local hasdual = true			-- (args['δυ'] ~= '-')

	-- α = Іменники ΧΩΡΙΣ τον άλλο αριθμό / the other number does not exist. For pluralia and singularia tantum
	-- α2 = Υπάρχει γραμματικά και ο άλλος αριθμός / The other number grammatically exists (not used)
	-- ενδ = yes dual together with singular
	-- πλδ = yes dual together with plural
	if args['α'] == "πλδ" or args['α2'] == "πλδ" then hassingular = false end	-- get plural and dual
	if args['α'] == "πλ" or args['α2'] == "πλ" then								-- get plural only
		hassingular = false
		hasdual = false
	end

	if args['α'] == "ενδ" or args['α2'] == "ενδ" then hasplural = false end	-- get singular and dual
	if args['α'] == "εν" or args['α2'] == "εν" then							-- get singular only
		hasplural = false
		hasdual = false
	end
  
-- number of columns for full rows ?????? may write e.g. columns = '10' and it is ok
	-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
	-- 1+2 (only one number)
	if (args['α'] == 'εν' or args['α2'] == 'εν' or args['α'] == 'ενδ' or args['α2'] == 'ενδ') or (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['α'] ~= 'πλ' 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['α'] ~= 'πλ' 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['α'] ~= 'πλ' 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'] == 'εν') or (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'] == 'πλ') or (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 & whole LINES ================================================================
    local paratirisi = args['παρατήρηση'] or ''	 -- notes by editor
    local note = args['mod-σημ'] or  ''	-- standard notes by Template
    local appendix = ''				-- standard link for [[Appendix:Іменники (давньогрецька)]]

    local append = ''				-- link to gourp, category and specific paradigm at Appendix

-- group is a super-umbrella category if needed for similar declensions
    local group = args['ομάδα'] or ''    	-- at functions
    if args['ομάδα'] ~= '' and args['ομάδα'] ~= nil then
    	if args['ομάδα'] == 'συγκοπτόμενα' then
		group = "[[:Категорія:" .. "Іменники συγκοπτόμενα (давньогрецька)|συγκοπτόμενα]]," 
		else
    	-- make the group standard index, as cat_decl is
    	group = "[[:Категорія:" .. 'Іменники' .. " που κλίνονται όπως η ομάδα '" .. group .. "' (" .. 'давньогрецька' .. ")|ομάδα '" .. group .. "']]," 
		end
		-- NEED to WRITE AGAIN at CATEGORIES under if mainspace and under nocat
    end
    
-- cat_decl does ONE umbrella category for all the 'typos' categories in it, whatever PoS, whatever language (grc, koine)
    local cat_decl = args['κατηγορία κλίσης']	or ''    	--  at functions 
	if args['κατηγορία κλίσης'] == "-" or args['κατηγορία κλίσης'] == '' or args['κατηγορία κλίσης'] == nil then 
		cat_decl_str = '' -- control cat:
		
	elseif args['κατηγορία κλίσης'] ~= "-" and args['κατηγορία κλίσης'] ~= '' and args['κατηγορία κλίσης'] ~= nil then 
    	--write it aτ notes & add the category at ΚΑΤΗΓΟΡΙΕΣ under mainspace and uner nocat
    	-- all the neuter plurals:
    	if args['κατηγορία κλίσης'] == 'ανώμαλα' or args['κατηγορία κλίσης'] == 'ιδιόκλιτα' then
		  	cat_decl_str = " [[:Категорія:Іменники ανώμαλα (давньогрецька)|Категорія '" .. cat_decl .. "']]"
		elseif args['κατηγορία κλίσης'] == 'ετερόκλιτα' then
	   		cat_decl_str = " [[:Категорія:Іменники ετερόκλιτα (давньогрецька)|Категорія '" .. cat_decl .. "']]"
		elseif args['κατηγορία κλίσης'] == 'μεταπλαστά' then
	   		cat_decl_str = " [[:Категорія:Іменники μεταπλαστά (давньогрецька)|Категорія '" .. cat_decl .. "']]"
    	elseif args['κατηγορία κλίσης'] == 'συγκοπτόμενα' then
		   	cat_decl_str = " [[:Категорія:" .. 'Іменники' .. " με κλίση όπως τα " .. cat_decl .. " (" .. 'давньогрецька' .. ")|Категорія '" .. cat_decl .. "']]"
    	elseif args['κατηγορία κλίσης'] == 'μονοσύλλαβα με εξαιρέσεις' then
		   	cat_decl_str = " [[:Категорія:Іменники μονοσύλλαβα με εξαιρέσεις (давньогрецька)|Категорія 'μονοσύλλαβα']]"
    	else
    	-- in neuter singular
			cat_decl_str = " [[:Категорія:" .. 'Іменники' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'давньогрецька' .. ")|Категорія '" .. cat_decl .. "']]"
    	end
    end
    	
-- όπως = a link to Appendix's clitic paradigm
    local as_in = args['όπως'] or ''
    	if as_in ~= '' and as_in ~= nil then
    		if args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then
    		as_in = ' όπως «[[Appendix:Іменники (давньогрецька)/ανώμαλα#' .. as_in .. '|' .. as_in .. ']]»'
    		elseif args['κλίση'] == '2αττ' then
    		as_in = ' όπως «[[Appendix:Іменники (давньогрецька)/2#' .. as_in .. '|' .. as_in .. ']]»'
    		else -- klisi 1, 2, 3
    		as_in = ' όπως «[[Appendix:Іменники (давньогрецька)/' .. klisi .. '#' .. as_in .. '|' .. as_in .. ']]»'
    		end
    	end
    
-- append WRITE the first part of the appendix line
	if args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then
		append = '[[Appendix:Іменники (давньогрецька)/ανώμαλα|ανώμαλη κλίση]], ' .. group .. cat_decl_str .. as_in .. ' - '
	elseif args['κλίση'] == '2αττ' then
		append = '[[Appendix:Іменники (давньогрецька)/2#αττικόκλιτα|2η κλίση - αττικόκλιτα]], ' .. group .. cat_decl_str .. as_in .. ' - '
	elseif args['κλίση'] == '1' or args['κλίση'] == '2' or args['κλίση'] == '3' then
		append = '[[Appendix:Іменники (давньогрецька)/' .. klisi .. '|' .. klisi .. 'η κλίση]], ' .. group .. cat_decl_str .. as_in .. ' - '
	end

-- stem line MUST be placed at Section Rows
    
-- ============== note lines / σημείωση παρατήρηση

-- ### adding this, BECAUSE en-en2 does not work for notes
if (args['α'] == 'εν' or args['α2'] == 'εν') or (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
		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
	-- appendix
	if args['παράρτημα'] == '-' then appendix = ''
	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['παράρτημα'] .. about .. "\n"
	else
		appendix = '|-' .. "\n" .. [=[| colspan="]=] .. 5 .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
		appendix = appendix .. append .. '[[Appendix:Іменники (давньогрецька)|<span title="Appendix:Іменники (αρχαία)">Appendix:Іменники</span>]]' 
		.. about .. "\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 = ''
	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['παράρτημα'] .. about .. "\n"
	else
		appendix = '|-' .. "\n" .. [=[| colspan="]=] .. columns .. [=[" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
		appendix = appendix .. append .. '[[Appendix:Іменники (давньогрецька)|<span title="Appendix:Іменники (αρχαία)">Appendix:Іменники</span>]]'
		.. about .. "\n"
	end
end -- close ## addition
    
    
-- ========== CELLS  ===============================================    
-- extra title string
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then
		extratitle_str =  args['mod-τίτλος'] .. "\n"
	end
    
-- stem_cell --this is a full row, but it does not come first, it goes UNDER last row
	if args['θέματα'] ~= '' and args['θέματα'] ~= nil then
		-- colspan as in columms

		stem_cell = [=[| style="background:]=] .. c_3 .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell .. fontsize_cell ..
		[=["  colspan="]=] .. columns .. [=[" align="left" | ]=] .. args['θέματα'] .. "\n"
 
	end -- close stem_cell


-- (spaces added for good copy-paste result)
if hassingular then
	-- for 2 columns only (table_style1's border does not apply)
	if args['α'] == 'εν' or args['α2'] == 'εν' or args['α'] == 'ενδ' or args['α2'] == 'ενδ' then
		c_bordR = c_border
    	
        sg_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[однина|<span title="ἑνικός ἀριθμός" style="color:black;">'''''однина'''''</span>]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]=] .. "\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"
	else -- different right border
		c_bordR = c_bord -- soft right border if more columns follow
		
        sg_title_str =  [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[однина|<span title="ἑνικός ἀριθμός" style="color:black;">'''''однина'''''</span>]]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]=] .. "\n"
 
        subtitle_sg = [=[| 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"	
	end	
        a_nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αοε'] ..  "\n" --DO NOT TEST m_art(args['αοε'])
        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_dat_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδε'] ..  "\n"
        dat_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
		-- also see an exceptional singular + optional column for extra plurals, articles optional at [[αἰδώς]] function page/3
		
	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"| &nbsp;&nbsp;[[множина|<span title="множина ἀριθμός" style="color:black;">'''''множина'''''</span>]]&nbsp;&nbsp;]=] .. "\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_dat_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδπ'] ..  "\n"
        dat_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"| &nbsp;&nbsp;[[множина|<span title="множина ἀριθμός" style="color:black;">'''''множина'''''</span>]]&nbsp;&nbsp;]=] .. "\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_dat_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδπ'] ..  "\n"
        dat_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	-- 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 ''
		args['αεΛ2'] = args['αεΛ2'] or ''
		args['κεΛ2'] = args['κεΛ2'] or ''

        sg2_title_str = [=[! style="background:]=] .. c_1 ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;[[однина|<span title="ἑνικός ἀριθμός" style="color:black;">'''''однина'''''</span>]]&nbsp;&nbsp;]=] .. "\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_dat_sg2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδε2'] ..  "\n"
        dat_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ος множина
	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 ''
		args['απΛ2'] = args['απΛ2'] or ''
		args['κπΛ2'] = args['κπΛ2'] or ''

        pl2_title_str = [=[! style="background:]=] .. c_1 ..
        [=[;" colspan="2" align="center"| &nbsp;&nbsp;[[множина|<span title="множина ἀριθμός" style="color:black;">'''''множина'''''</span>]]&nbsp;&nbsp;]=] .. "\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_dat_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; ]=] .. font_cell .. fontsize_cell ..
        [=[" align="center" | ]=] .. args['αδπ2'] ..  "\n"
        dat_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

if hasdual then -- need lines only for nom, gen
-- yes dual

-- 2 cols	ενδ ΟΡ πλδ	
	if (args['α'] == 'ενδ' or args['α2'] == 'ενδ' or args['α'] == 'πλδ' or args['α2'] == 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
	then
    	
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="2" align="center" | [[подвійний|<span title="подвійний ἀριθμός" style="color:black;">'''''подвійний'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%;" align="center" colspan="1" | ]=] .. args['αοδ'] .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="1" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%;" align="center" colspan="1" | ]=] .. args['αγδ'] .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="1" | ]=] .. args['γδΛ'] .. "\n"
    
-- 4 cols 
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="4" align="center" | [[подвійний|<span title="подвійний ἀριθμός" style="color:black;">'''''подвійний'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['γδΛ'] .. "\n"
        
-- 6 cols for  en en2 pl
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
	and (args['υπότιτλος-πλ2'] == '' or args['υπότιτλος-πλ2'] == nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="6" align="center" | [[подвійний|<span title="подвійний ἀριθμός" style="color:black;">'''''подвійний'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['γδΛ'] .. "\n"
        
       
-- 6 cols for  en pl pl2
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] == '' or args['υπότιτλος-εν2'] == nil)
	and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="6" align="center" | [[подвійний|<span title="подвійний ἀριθμός" style="color:black;">'''''подвійний'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="3" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="3" | ]=] .. args['γδΛ'] .. "\n"
        
       
-- 8 cols for  en en2 pl pl2
	elseif (args['α'] ~= 'ενδ' and args['α2'] ~= 'ενδ' and args['α'] ~= 'πλδ' and args['α2'] ~= 'πλδ') and args['δυ'] ~= '-'
	and (args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= nil)
	and (args['υπότιτλος-πλ2'] ~= '' and args['υπότιτλος-πλ2'] ~= nil)
	then
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="8" align="center" | [[подвійний|<span title="подвійний ἀριθμός" style="color:black;">'''''подвійний'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="4" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="4" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="4" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="4" | ]=] .. args['γδΛ'] .. "\n"

-- 4 cols  for other combinations........ hope it is ok
	else
        du_title_str =  [=[! style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_border ..
        [=[; font-size:80%; line-height:100%;" colspan="4" align="center" | [[подвійний|<span title="подвійний ἀριθμός" style="color:black;">'''''подвійний'''''</span>]]]=] .. "\n"
        
        a_nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αοδ'] .. '&nbsp;' .. "\n"
        nom_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['οδΛ'] .. "\n"
        a_gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord ..
        [=[; font-size:90%; line-height:100%; text-align:right;" align="right" colspan="2" | ]=] .. args['αγδ'] .. '&nbsp;' .. "\n"
        gen_du_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[; ]=] .. font_cell ..
        [=[; font-size:90%; line-height:100%;" align="left" colspan="2" | ]=] .. args['γδΛ'] .. "\n"

	end -- close if ... numbers exist
end -- close dual


-- ============================= ROWS
-- extra title
	if args['mod-τίτλος'] ~= '' and args['mod-τίτλος'] ~= nil then extratitle =
'|-' .. extratitle_str .. "\n" ..   [=[|-]=]
	end

-- stem_line
	if args['θέματα'] ~= '' and args['θέματα'] ~= nil then stem_line =
'|-' .. "\n" .. [=[| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 .. [=[; line-height:100%;" align="left"|  ]=] .. "\n" .. stem_cell .. [=[|-]=]
	end


-- subtitle line
	-- sg, pl have different number
	if (args['υπότιτλος-εν'] ~= '' or args['υπότιτλος-πλ'] ~= '') 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, pl
	if 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 .. [=[|-]=]
	end
	-- sg, 2 plurals
	if 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 plurasl
	if args['υπότιτλος-εν2'] ~= '' and args['υπότιτλος-εν2'] ~= 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	
	
	
	-- ouput WIHTOUT dual
	if args['α'] == 'εν' or args['α2'] == 'εν' or args['α'] == 'πλ' or args['α2'] == 'πλ' or args['δυ'] == '-' or args['καθ'] == '1' or args['kath'] == '1' then
	
	-- + 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"| &darr;&nbsp;''відмінок'' ]=] ..
	"\n" .. sg_title_str.. sg2_title_str .. pl_title_str .. pl2_title_str .. stem_line .. 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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[родовий|<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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[давальний|<span title="відмінок давальний" style="color:black;">'''''давальний'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;[[знахідний|<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;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[кличний|<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"| &darr;&nbsp;''відмінок'' ]=] ..
	"\n" .. sg_title_str.. sg2_title_str .. pl_title_str .. pl2_title_str .. stem_line .. 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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[родовий|<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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[давальний|<span title="відмінок давальний" style="color:black;">'''''давальний'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;[[знахідний|<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;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[кличний|<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
		
		
	else -- WITH dual
	
	-- + 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"| &darr;&nbsp;''відмінок'' ]=] ..
	"\n" .. sg_title_str .. sg2_title_str .. pl_title_str .. pl2_title_str .. stem_line .. 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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[родовий|<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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[давальний|<span title="відмінок давальний" style="color:black;">'''''давальний'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;[[знахідний|<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;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[кличний|<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 .. [=[|-
! style="background:]=] .. c_3 .. [=[; border-top:1px solid ]=] .. c_4 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:center; font-size:90%; line-height:100%;" align="center"| &nbsp; ]=] ..
	"\n" .. du_title_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"|  <span title="відмінок називний, знахідний та кличний" style="color:black;">''ονομ-αιτ-κλ''</span>]=] ..
	"\n" .. a_nom_du_str .. nom_du_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"| <span title="відмінок родовий та давальний" style="color:black;">''γεν-δοτ''</span>]=] ..
	"\n" .. a_gen_du_str .. gen_du_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"| &darr;&nbsp;''відмінок'' ]=] ..
	"\n" .. sg_title_str .. sg2_title_str .. pl_title_str .. pl2_title_str .. stem_line .. 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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[родовий|<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%;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[давальний|<span title="відмінок давальний" style="color:black;">'''''давальний'''''</span>]]]=] ..
	"\n" .. a_dat_sg_str .. dat_sg_str .. a_dat_sg2_str .. dat_sg2_str .. a_dat_pl_str .. dat_pl_str .. a_dat_pl2_str .. dat_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:90%;"| &nbsp;&nbsp;&nbsp;&nbsp;[[знахідний|<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;"| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[кличний|<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 .. [=[|-
! style="background:]=] .. c_3 .. [=[; border-top:1px solid ]=] .. c_4 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:center; font-size:90%; line-height:100%;" align="center"| &nbsp; ]=] ..
	"\n" .. du_title_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"|  <span title="відмінок називний, знахідний та кличний" style="color:black;">''ονομ-αιτ-κλ''</span>]=] ..
	"\n" .. a_nom_du_str .. nom_du_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
	[=[; text-align:right; font-size:85%; line-height:100%;"| <span title="відмінок родовий та давальний" style="color:black;">''γεν-δοτ''</span>]=] ..
	"\n" .. a_gen_du_str .. gen_du_str .. paratirisi .. appendix .. [=[|}]=]
	end -- close extratitle_str

	end -- close output if dual exists



--------------------------------------------------------------------------
--                   4. Categories / Κατηγορίες                         --
-- DO NOTTT do anything with cat_decl here. Only typos categories
-- μέρος λόγου = the PartOfSpeech (plus as ProperNouns, Surnames etc) -- see above, if όνομα=1, then pos = κύρια...
-- τύπος = the catchword of the category in quotation marks
	-- may be τύπος=-
-- κατ = overrides τύπος
-- and free categories
--------------------------------------------------------------------------
-- Categories only in mainspace
local page = mw.title.getCurrentTitle()
page.name = page.text:match( "^%s*(.-)%s*$" )
if page.namespace == 0 then	-- Categories work only in MAIN namespace

-- nocat= 1
if (args['nocat'] ~= '' and args['nocat'] ~= nil) or (args['00'] ~= '' and args['00'] ~= nil) then
	output = output
else
	-- κατηγορία= overrides everything
	if args['κατηγορία'] ~= '' and args['κατηγορία'] ~= nil then -- free text for Category
		output = output .. '[[Категорія:' .. args['κατηγορία'] .. ']]'
	else
		
		local group = args['ομάδα']	or ''	-- need to write it AGAIN HERE
		if args['ομάδα'] ~= '' and args['ομάδα'] ~= nil then
		-- see above the appendix line
			if args['ομάδα'] == 'συγκοπτόμενα' then
		output = output .. "[[Категорія:" .. "Іменники συγκοπτόμενα (давньогрецька)]]"
			else
		output = output .. "[[Категорія:" .. 'Іменники' .. " που κλίνονται όπως η ομάδα '" .. group .. "' (" .. 'давньогрецька' .. ")]]"
--    	output = output .. "[[Категорія:" .. cat_pos .. " που κλίνονται όπως η ομάδα '" .. group .. "' (" .. lang_name .. ")]]"
			end
		end
--	if args['κατηγορία κλίσης'] ~= "-" and args['κατηγορία κλίσης'] ~= '' and args['κατηγορία κλίσης'] ~= nil then 
    	-- see above the appendix line
    	-- SEE notes & add the category at ΚΑΤΗΓΟΡΙΕΣ under mainspace and uner nocat
    	-- all the neuter plurals:
    	if args['κατηγορία κλίσης'] == 'ανώμαλα' or args['κατηγορία κλίσης'] == 'ετερόκλιτα'  or args['κατηγορία κλίσης'] == 'ιδιόκλιτα'
    	or args['κατηγορία κλίσης'] == 'μεταπλαστά' or args['κατηγορία κλίσης'] == 'συγκοπτόμενα'
    	or args['κατηγορία κλίσης'] == 'μονοσύλλαβα με εξαιρέσεις'
    	then
    	output = output .. "[[Категорія:" .. 'Іменники' ..  ' ' .. cat_decl .. " (" .. 'давньогрецька' .. ")]]"
    	else
    	-- in neuter singular
    	output = output .. "[[Категорія:" .. 'Іменники' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'давньогрецька' .. ")]]"
    	end
--	end		
		
		
		-- special categories (irregulars) override all categories for declensions, etc.
		-- ignore PoS Κύρια ονόματα
		if args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then -- βλ. και ανώμ+
			output = output .. '[[Категорія:Іменники ανώμαλα (' .. lang_name ..')]]'
			if args['αρσ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Категорія:Іменники ανώμαλα αρσενικά (' .. lang_name ..')]]'
			elseif args['θηλ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Категорія:Іменники ανώμαλα θηλυκά (' .. lang_name ..')]]'
			elseif args['ουδ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Категорія:Іменники ανώμαλα ουδέτερα (' .. lang_name ..')]]'
			elseif args['αθ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Категорія:Іменники ανώμαλα κοινού γένους (' .. lang_name ..')]]'	
			elseif args['α-θ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Категорія:Іменники ανώμαλα αρσενικά ή θηλυκά (' .. lang_name ..')]]'	
			elseif args['α-θ'] == '1' and (args['ανώμ'] == '1' or args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0') then
			output = output .. '[[Категорія:Іменники ανώμαλα θηλυκά ή αρσενικά (' .. lang_name ..')]]'	
			end
-- DO NOT add 'else' here. Irregulars also form categories of their own
--		else -- not irregular
		end -- close irregulars here



		--typos = args['τύπος'] or args['κατ'] or ''
		-- if irregular, assume typos = ['-'] to avoid  control category:  [[:Категорія:Іменники που κλίνονται όπως το '' (' .. lang_name ..')]]'
		-- but see NOTESQ  if typos is added then a Cateogry is added there too	
			if args['τύπος'] == '-' --or args['κατ'] == '-'
			then output = output		-- control category:  [[:Категорія:Іменники που κλίνονται όπως το '' (' .. lang_name ..')]]'
			else -- when τύπος is NOT '-'
				-- 'κατ'=
--				if args['κατ'] ~= '' and args ['κατ'] ~= nil and args ['κατ'] ~= '-' then
--				typos = args['κατ']
--				output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"

--				else -- NOT 'κατ'=
				typos = args['τύπος']

	
   	if args['κλίση'] == 'ανώμαλα' or args['κλίση'] == '0' then -- but not ανώμ=1, this is ONLY for categories
   	-- ανώμαλα: ... όπως τα 'μεταπλαστά' 'ετερόκλιτα' κλπ
   	cat_decl_str = ' [[:Категорія:' .. 'Іменники' .. " με κλίση όπως τα '" .. cat_decl .. "' (" .. 'давньогрецька' .. ')|Категорія]]'
   	.. '[[Категорія:' .. 'Іменники' .. " με κλίση όπως τα '" .. cat_decl .. "' (" .. 'давньогрецька' .. ')]]'
	elseif args['κλίση'] == '2αττ' then
	cat_decl_str = ' [[:Категорія:' .. 'Іменники' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'давньогрецька' .. ')|Категорія]]' 
	.. '[[Категорія:' .. 'Іменники' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'давньогрецька' .. ')]]'
	else -- klisi 1, 2, 3
	cat_decl_str = ' [[:Категорія:' .. 'Іменники' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'давньогрецька' .. ')|Категорія]]'
	.. '[[Категорія:' .. 'Іменники' .. " με κλίση όπως το '" .. cat_decl .. "' (" .. 'давньогрецька' .. ')]]'
	end

				
-- Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
-- CONTROL e.g. τέκνον 
-- SUPPRESS declensins in one number BY DEFAULT (from the functions) e.g. [[Νεκῶς]] [[Νεκώς]]
	-- εν =  νέκταρ ενDEFAULT = καμινώ εν+εξ = 
	if args['α'] == 'εν' or args['α'] == 'ενδ' 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
	end
	-- πλ = δίδακτρα Διονύσια πλDEF = no example  πλ+εξ = ἐτησίαι
	if args['α'] == 'πλ' or args['α'] == 'πλδ' 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
	end
	-- α2 εν ᾨδεῖον α2εν+εξ=
	if args['α2'] == 'εν' or args['α2'] == 'ενδ' 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
	end	
	-- α2πλ = Πεισιστρατίδαι  α2πλ+εξ
	if args['α2'] == 'πλ' or args['α2'] == 'πλδ' 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
	end	
	-- εξ=1 σκέτο δεσπότης
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		end
-- if nothing of the above, then the general 'που κλίνονται όπως το 'τύπος'
	if args['α'] ~= 'εν' and args['α'] ~= 'ενδ' and args['α'] ~= 'πλ' and args['α'] ~= 'πλδ'
	and args['α2'] ~= 'εν' and args['α2'] ~= 'ενδ' and args['α2'] ~= 'πλ' and args['α2'] ~= 'πλδ'
	and args['εξ'] ~= '1'
	then
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
	end
--[=[
	if args['α'] == 'εν' or args['α'] == 'ενδ' then -- and (args['κατ'] == '' or args['κατ'] == nil) then
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' χωρίς πληθυντικό (" .. lang_name .. ")]]"
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end
		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['α'] == 'πλ' or args['α'] == 'πλδ' then -- and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end
		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'] == 'εν' or args['α2'] == 'ενδ' then -- and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end
		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'] == 'πλ' or args['α2'] == 'πλδ' then --  and (args['κατ'] == '' or args['κατ'] == nil)  then
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end	
		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
	else
		-- SUPPRESS που κλίνονται όπως το.. when εξ=1 (exceptions), but keep the above.
		if args['εξ'] == '1' or args['εξαίρεση'] == '1' then -- check [[δεσπότης]] [[Σουσάννα]]
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
		else
		output = output .. '[[Категорія:' .. cat_pos .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
		end

	end -- close Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
]=]--
--				end -- close 'κατ'=

			end -- close if = '-'
        	
-- κλίσεις 1, 2, 3 & βλ. ανώμ=1 & ανώμ+
	if args['κλίση'] == '1' then output = output .. '[[Категорія:' .. cat_pos .. ' 1-а відміна (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна (' .. lang_name .. ')]]' end
-- κλίσεις + αριθμός-- check [[ἐτησίαι]]
	if args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна χωρίς πληθυντικό (' .. lang_name .. ')]]' end

	if args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна χωρίς ενικό (' .. lang_name .. ')]]' end	
-- γένος + κλίση  //  και κοινού γένους (τα διπλού γένους ο/η άνθρωπος) + πολλαπλά γένη 
	if args['αρσ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Категорія:' .. cat_pos .. ' 1-а відміна αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Категорія:' .. cat_pos .. ' 1-а відміна θηλυκά (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Категорія:' .. cat_pos .. ' 1-а відміна κοινού γένους (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '1' then output = output .. '[[Категорія:' .. cat_pos .. ' 1-а відміна αρσενικά ή θηλυκά (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '1' then output = output .. '[[Категорія:' .. cat_pos .. ' 1-а відміна θηλυκά ή αρσενικά (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна ουδέτερα (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна κοινού γένους (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά ή θηλυκά (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά ή αρσενικά (' .. lang_name .. ')]]' end
	if args['θο'] == '1' and args['κλίση'] == '2' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά ή ουδέτερα (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна ουδέτερα αττικόκλιτα (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2αττ' then output = output .. '[[Категорія:' .. cat_pos .. ' 2-а відміна κοινού γένους αττικόκλιτα (' .. lang_name .. ')]]' end
	-- α-θ θ-α
	if args['αρσ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна αρσενικά (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна θηλυκά (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна ουδέτερα (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна κοινού γένους (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна αρσενικά ή θηλυκά (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '3' then output = output .. '[[Категорія:' .. cat_pos .. ' 3-я відміна θηλυκά ή αρσενικά (' .. lang_name .. ')]]' end
-- γένος + κλίση + αριθμός -- check [[ἐτησίαι]]
	if args['αρσ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна κοινού γένους χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά ή θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά ή αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end	
	if args['θο'] == '1' and args['κλίση'] == '2' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά ή ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна ουδέτερα αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна κοινού γένους αττικόκλιτα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	-- α-θ θ-α
	if args['αρσ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна κοινού γένους χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна αρσενικά ή θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '3' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна θηλυκά ή αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end	

	if args['αρσ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 1-а відміна θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна κοινού γένους χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά ή θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά ή αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end	
	if args['θο'] == '1' and args['κλίση'] == '2' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά ή ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна αρσενικά αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна θηλυκά αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна ουδέτερα αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and args['κλίση'] == '2αττ' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 2-а відміна κοινού γένους αττικόκλιτα χωρίς ενικό (' .. lang_name .. ')]]' end
	-- α-θ θ-α
	if args['αρσ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end	
	if args['αθ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна κοινού γένους χωρίς ενικό (' .. lang_name .. ')]]' end	
	if args['α-θ'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна αρσενικά ή θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and args['κλίση'] == '3' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output 
		.. '[[Категорія:' .. cat_pos .. ' 3-я відміна θηλυκά ή αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end	

--		end -- close irregulars CANCELLED, ignor this
	end -- close κατηγορία
    	

-- subtitles / Κατηγορίες για γένη
	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
	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

	
-- γένος + αριθμός -- check [[ἐτησίαι]]
	if args['αρσ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' κοινού γένους χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['α-θ'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' αρσενικά ή θηλυκά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θ-α'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' θηλυκά ή αρσενικά χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['θο'] == '1' and (args['α'] == 'εν' or args['α'] == 'ενδ') then output = output .. '[[Категорія:' .. cat_pos .. ' θηλυκά ή ουδέτερα χωρίς πληθυντικό (' .. lang_name .. ')]]' end
	if args['αρσ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Категорія:' .. cat_pos .. ' αρσενικά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θηλ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Категорія:' .. cat_pos .. ' θηλυκά χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['ουδ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Категорія:' .. cat_pos .. ' ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['αθ'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Категорія:' .. cat_pos .. ' κοινού γένους χωρίς ενικό (' .. lang_name .. ')]]' end
	if args['θο'] == '1' and (args['α'] == 'πλ' or args['α'] == 'πλδ') then output = output .. '[[Категорія:' .. cat_pos .. ' θηλυκά ή ουδέτερα χωρίς ενικό (' .. lang_name .. ')]]' end

-- έξτρα: υποθετικό 
-- + and args['υποκατ'] == ''
	if args['αρσ'] ~= '1' and args['θηλ'] ~= '1' and args['ουδ'] ~= '1' 
	and args['αθ'] ~= '1' and args['α-θ'] ~= '1' and args['θ-α'] ~= '1' 
	and args['υποκατ'] == '' then
		output = output .. '[[Категорія:' .. cat_pos .. ' χωρίς γένος (' .. lang_name .. ')]]'
	end

-- numbers / Κατηγορίες για τον αριθμό
	if args['α'] == 'εν' or args['α'] == 'ενδ' then output = output .. '[[Категорія:' .. cat_pos .. ' χωρίς πληθυντικό (' .. lang_name .. ')]]' end		-- singularia tanutm
	if args['α'] == 'πλ' or args['α'] == 'πλδ' then output = output .. '[[Категорія:' .. cat_pos .. ' χωρίς ενικό (' .. lang_name .. ')]]' end			-- pluralia tantum
	if args['α2'] == 'εν' or args['α2'] == 'ενδ' then output = output .. '[[Категорія:' .. cat_pos .. ' στον ενικό (' .. lang_name .. ')]]' end			-- mostly in the singular
	if args['α2'] == 'πλ' or args['α2'] == 'πλδ' then output = output .. '[[Категорія:' .. cat_pos .. ' στον πληθυντικό (' .. lang_name .. ')]]' end		-- mostly in the plural

-- γενικές: αν εμφανίζεται ΜΟΝΟ στον αντίθετο αριθμό, να μην εισάγεται στην Категорія
-- βλ. και επιμέρους functions όπου υπάρχει αυτή η σύμβαση
-- όπως (...) ΜΑΛΛΟΝ μόνον για νέα ελληνικά
--[=[ MODERN GREEK ONLY
	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
]=]--
	
-- plus, see above,  args['εξ'] == '1' creates Категорія:..... εξαιρέσεις
		-- IF exception, then 

-- plus, if second column is added for a) second declension or b) for dialectal forms
	-- see above

-- free EXTRA category for nouns of other irregulara
	if args['ανώμ+'] == '1' then -- βλ. και ανώμ -- [[αἶρα]]
			output = output .. '[[Категорія:Іменники ανώμαλα (' .. lang_name ..')]]'
			if args['αρσ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Категорія:Іменники ανώμαλα αρσενικά (' .. lang_name ..')]]'
			elseif args['θηλ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Категорія:Іменники ανώμαλα θηλυκά (' .. lang_name ..')]]'
			elseif args['ουδ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Категорія:Іменники ανώμαλα ουδέτερα (' .. lang_name ..')]]'
			elseif args['αθ'] == '1' and args['ανώμ+'] == '1' then
				output = output .. '[[Категорія:Іменники ανώμαλα κοινού γένους (' .. lang_name ..')]]'	
			end
	end
	
-- ======= EXTRA CATEGORIES: zero is reserved for the module ONLY, not for editors
-- 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
	if args['υποκατ3'] ~= '' and args ['υποκατ3'] ~= nil then
		output = output .. '[[Категорія:' .. cat_pos .. ' ' .. args['υποκατ3'] .. ' (' .. 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['κατηγ'] ~= '' 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
	if args['κατηγ3'] ~= '' and args['κατηγ3'] ~= nil then
			output = output .. '[[Категорія:' .. args['κατηγ3'] .. ' (' .. lang_name .. ')]]'
	end
	-- for Module use ONLY 
	if args['κατηγ0'] ~= '' and args['κατηγ0'] ~= nil then
			output = output .. '[[Категорія:' .. args['κατηγ0'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ01'] ~= '' and args['κατηγ01'] ~= nil then
			output = output .. '[[Категорія:' .. args['κατηγ01'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ02'] ~= '' and args['κατηγ02'] ~= nil then
			output = output .. '[[Категорія:' .. args['κατηγ02'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ03'] ~= '' and args['κατηγ03'] ~= nil then
			output = output .. '[[Категорія:' .. args['κατηγ03'] .. ' (' .. lang_name .. ')]]'
	end
	if args['κατηγ04'] ~= '' and args['κατηγ04'] ~= nil then
			output = output .. '[[Категорія:' .. args['κατηγ04'] .. ' (' .. lang_name .. ')]]'
	end
	
-- free category, ελεύθερη κατηγορία NO LANGUAGE no restrictions, write free text
	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
	if args['cat-extra3'] ~= '' and args['cat-extra3'] ~= nil then
			output = output .. '[[Категорія:' .. args['cat-extra3'] .. ']]'
	end
	-- for Module use ONLY 
	if args['cat-extra0'] ~= '' and args['cat-extra0'] ~= nil then
			output = output .. '[[Категорія:' .. args['cat-extra0'] .. ']]'
	end
	if args['cat-extra01'] ~= '' and args['cat-extra01'] ~= nil then
			output = output .. '[[Категорія:' .. args['cat-extra01'] .. ']]'
	end
	if args['cat-extra02'] ~= '' and args['cat-extra02'] ~= nil then
			output = output .. '[[Категорія:' .. args['cat-extra02'] .. ']]'
	end
	if args['cat-extra03'] ~= '' and args['cat-extra03'] ~= nil then
			output = output .. '[[Категорія:' .. args['cat-extra03'] .. ']]'
	end
	if args['cat-extra04'] ~= '' and args['cat-extra04'] ~= nil then
			output = output .. '[[Категорія:' .. args['cat-extra04'] .. ']]'
	end
	
end -- close nocat	
end -- close 'if namespace'


return output -- close fulltable

end



----------------------------------------------------------------------------------------
--    GENERAL PATTERNS of DECLENSIONS  / ΜΗΤΡΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΚΛΙΣΕΩΝ
-----------------------------------------------------------------------------------------

--------------------------------5. 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:grc-nouns-decl/param').param (args)

------------
return fulltable(args)
end




--------------------------------------------------------------------------
--            CREATE a DECLENSION TABLE directly at lemma page          --
--------------------------------------------------------------------------
-- invoke directly from pages -- use with caution; better created a function

export.free = function(frame)
--local args = frame:getParent().args	-- for Templates
local args = frame.args		-- invoke

-- all the declension parameters & functions: ======================
require ('Module:grc-nouns-decl/param').param (args)

------------
return fulltable(args) .. '[[Категорія:grc-nouns-decl-manual]]'
end


--------------------------------------------------------------------------
--           SPECIFIC TEMPLAGES / ΕΠΙΜΕΡΟΥΣ ΠΡΟΤΥΠΑ                     --
--------------------------------------------------------------------------
-- =============== declensions 1-2-3 and 4=irregulars ================= --

-- see pages /1, /2, /3, /4

return export


--[=[ EXPLANATIONS
* monosyllable Template-catchwords, have no accents or diacritics for easytype. (αλς μην Τρως)
Abbreviations 
* cases: initial greek letters for case + number e.g. οε= nominative.singular. γε= gen.sg. γπ= gen.plural.
	and Λ = Λέξη (word) for whole words and the whole string e.g. οεΛ= word nom.sg.
	and θ = stem for this case, e.g. οεθ= stem for nom.sg.
	and + = WITH prosody e.g. οε+=
* mod- Prefix for params defined IN the module at function pages
	Without it, are the editor's choices at the lemma-page
STEM formation: (default stem is lemma minus 2 letters from the end)
	stem['θ'] = stem as found in lemma 
	θοξ = convert perispomeni to okseia, or let okseia be
	θπ = convert okseia to perispomeni, or let persipomeni be
	θ1 = stem with accent okseia on its last syllble θ1οξ = with okseia θ1π = with perispomeni
	θ2 = stem with accent (always okseia) on its 2nd syllable from the end
	Stem is defined in functions, when singular, and when plural if different from singular (pluarlia tantum)
For pluralia tantum by DEFAULT in functions with args['α'] = 'εν':
	suppress the Cat. Іменники που κλίνονται όπως το 'ΧΧ' χωρίς πληθυντικό (see ΚΑΤΗΓΟΡΙΕΣ)
	with args['sg-default'] = '1'
	Similarly, for pl-default
]=]--

--[=[ HELP for modules
See all parameters at the /param page.
STEMS: default stem is minus 2 letters from the end (stemnumber 3) args['μείον'] = 2 
		-- otherwise stems should be written out
		If special features are needed (brackets, etc), then the full line should be written, 
		with create_link, as in /param page or function linkcontrol
	Examples:
	local stem = {}
	stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-3)		-- stem as found in lemma 
				-- start from 1st letter of lemma, stop at 3rd from the end (minus 2 letters, stemnumber=3)
	stem["θ0"] = m_stems.word0(stem["θ"])			-- remove accent
	stem["θ1"] = m_stems.word1(stem["θ0"])			-- accent on 1st syllable from the end 
				--(Accent is tonos or oksia. Used mainly for monotonic script)
	stem["θο"] = m_stems.PerispomeniToOxia(stem["θ"])	-- convert perispomeni to okseia -- also named θ1ο
	stem["θπ"] = m_stems.OxiaToPerispomeni(stem["θ"])	-- convert okseia to perispomeni -- also named θ1π
	stem["θ2"] = m_stems.word2(stem["θ0"])			-- accent okseia on 2nd syllable from the end
EXAMPLES find in lemma: all letter strings at [[User:Sarri.greek/fonts-greek]]
if the lemma is (plus pluralia)
	if args["λήμμα"] == 'σφραγίς' or args["λήμμα"] == 'σφραγῖδες'
find in lemma
	if mw.ustring.find(args['λήμμα'], m_data.vowel_perispomeni) -- '[ᾶᾷἆᾆἇᾇῆῇἦᾖἧᾗῖἶἷῗῦὖὗῧῶῷὦᾦὧᾧἎᾎἏᾏἮᾞἯᾟἾἿὟὮᾮὯᾯ]') -- any vowel with perispomeni
	then
letters at end of word
	if mw.ustring.find(args['λήμμα'], 'υς$') or mw.ustring.find(args['λήμμα'], 'υνς$')

EXAMPLES for links
	args['γπΛ2'] = 	linkcontrol3((stem["θ1"]), "δ", "ων")
	args['δπΛ2'] = create_link(stem["θ"] .. "σι", stem_color(stem["θ"]) .. ending_color("σῐ")) .. '(' .. create_link(stem["θ"] .. "σιν", ending_color("ν")) .. ')'
	args['απΛ2'] = create_link(stem["θ"] .. "δ" .. "ας", stem_color(stem["θ"]) .. infix_color("δ") .. ending_color("ᾰς"))
κατηγ0 = Λέξεις οξύτονες
κατηγ01 = Іменники που κλίνονται όπως το ...
κατηγ02 = Λέξεις με άγνωστη προσωδία
κατηγ03 = Іменники με κλίση όπως το cat_decl με άγνωστη προσωδία
cat-extra0= Іменники με κλίση όπως το cat_decl με άγνωστη προσωδία (давньогрецька)
υποκατ0 = οξύτονα
υποκατ01 = γένος
υποκατ02 = γένος οξύτονα
υποκατ03 = που κλίνονται όπως to 'χχ' αρσενικά/θηλυκά κλπ
υποκατ04 = που κλίνονται όπως to 'χχ' προπερισπώμενα κλπ
]=]--