Module:Ricepeure
I gn a nén co di dzo-pådje /doc pol notule d’ esplikêyes. Clitchîz cial po l’ ahiver.
-- This module is used for caesuras of a word for printers
-- Only use with Modele:Ric as :
-- {{ric|word}}
local p = {}
local builder = require("Module:Builder");
local language = require("Module:Lingaedje");
-- don't use dot (.) as separator but MIDDLE DOT (U+00B7)
local _ricChar = "·"
local _litNum = {"deus", "troes", "cwate", "cénk", "shijh", "set", "ût", "nouv", "dijh"}
-- number of first caesura in string
function countRic(s)
return select(2, s:gsub(_ricChar, ""))
end
function render(text, lang)
-- escaped dot as in [[bran.mint]],…
local text = string.gsub(text, '\\%.', '__DOT__')
-- use _ricChar as separator, not dot
local text = string.gsub(text, '%.', _ricChar)
-- replace escaped dot
local text = string.gsub(text, '__DOT__', '.')
-- number or separators in text
local c = countRic(text)
-- number of syllables
local p = c+1
-- namespace number
local ns = mw.title.getCurrentTitle().namespace
-- remove not real separators as in a(.)wè
text = string.gsub(text, '%('.._ricChar..'%)', '')
-- first part of return content
-- TODO make link for each language if page exists
if lang == 'wa' then
builder.add_content("[[Rawete:Ricepeure e walon|Ricepeures]] : ")
else
builder.add_content("Ricepeures : ")
end
-- if text cleaned != pagename
local pagename = mw.title.getCurrentTitle().text
local text_c = string.gsub(text, _ricChar, '')
local text_c = string.gsub(text_c, " ", ' ') -- no U+00A0 in real page title but U+0020
if text ~= ""
and text_c ~= pagename
and ns == 0 then
builder.error("li mot dins l’ ricepeure <code>"..text_c.."</code> est diferin do tite <code>"..pagename.."</code>")
return false
end
if c > 0 then
if string.sub(text, 1, string.len(_ricChar)) == _ricChar
or string.sub(text, -string.len(_ricChar)) == _ricChar
then
builder.error("<code>"..text .. "</code> n’ est nén ene coreke ricepeure")
elseif text == pagename then
builder.add_content("nén [[rcepåve]]")
builder.add_category(language.grammar({args={"Mots", lang, "di deus pîs", vowel="1"}}), 0)
else
builder.add_content(text)
if _litNum[(p-1)] ~= nil then
builder.add_category(language.grammar({args={"Mots", lang, "di ".._litNum[(p-1)].." pîs", vowel="1"}}), 0)
end
end
else
builder.add_content("nén [[rcepåve]]")
builder.add_category(language.grammar({args={"Mots", lang, "d' on seu pî", vowel="1"}}), 0)
end
return true
end
-- Entry point of the module
function p.init(frame)
local text = ''
local lang = "wa"
if frame.args[1] then
text = mw.text.trim(frame.args[1])
end
if frame.args["lang"] then
lang = mw.text.trim(frame.args["lang"])
end
builder.init(frame, "Årtikes avou ene flotche dins l' ricepeure")
render(text, lang)
return builder.get_content()
end
return p