Modul:title-l
Utseende
Modul som lenker alle forekomster av ord dersom frasen inneholder mellomrom. Basert på tilsvarende kode fra en:Module:headword. Modulen inneholder én funksjon, preprocess, som tar som første parameter en språkkode, andre parameter termen som skal sjekkes og eventuelt lenkes.
- {{#invoke:title-l|preprocess|no|hus}} gir tilbake teksten hus (ingen formatering)
- {{#invoke:title-l|preprocess|no|høre hjemme}} gir tilbake teksten [[høre#Norsk|høre]] [[hjemme#Norsk|hjemme]] (splitter på mellomrom, lenker til hvert enkeltord til riktig språkseksjon)
- {{#invoke:title-l|preprocess|no|[[ha]] [[hode]]t [[over]] [[vann]]et}} gir tilbake teksten [[ha#Norsk|ha]] [[hode#Norsk|hodet]] [[over#Norsk|over]] [[vann#Norsk|vannet]]
Merk at modulen skal brukes i maler, og aldri direkte i wikiteksten.
local String = require("Modul:string")
local link = require("Modul:link")
local export = {}
local m_pagename = mw.title.getCurrentTitle().text
function export.preprocess(frame)
local language_code = frame.args[1]
local default_head = frame.args[2]
default_head = mw.ustring.gsub(default_head, "'", "'")
local spacingPunctuation = "([%s%p]+)"
--[[ Variable containing anything that is
not a punctuation character found inside of words.
Used to exclude characters from the above regex. ]]
local notWordPunc = "([^-־׳״'.·*]+)"
local contains_words = false
local contains_links = mw.ustring.find(default_head, "%[%[")
for possibleWordBreak in mw.ustring.gmatch(default_head, spacingPunctuation) do
if mw.ustring.find(possibleWordBreak, notWordPunc) then
contains_words = true
break
end
end
if contains_words and not contains_links then
local function workaround_to_exclude_chars(s)
return mw.ustring.gsub(s, notWordPunc, "]]%1[[")
end
default_head = "[["
.. mw.ustring.gsub(
default_head,
spacingPunctuation,
workaround_to_exclude_chars)
.. "]]"
default_head = mw.ustring.gsub(default_head, "%[%[%]%]", "")
end
if contains_words then
return link.link(default_head, language_code)
else
return default_head
end
end
function export.contains_spaces(frame)
local head = frame.args[1]
return (String.find({args={head, " "}}) > 0)
end
return export