Wikiorðabók
iswiktionary
https://is.wiktionary.org/wiki/Wikior%C3%B0ab%C3%B3k:Fors%C3%AD%C3%B0a
MediaWiki 1.47.0-wmf.21
case-sensitive
Miðill
Kerfissíða
Spjall
Notandi
Notandaspjall
Wikiorðabók
Wikiorðabókarspjall
Mynd
Myndaspjall
Melding
Meldingarspjall
Snið
Sniðaspjall
Hjálp
Hjálparspjall
Flokkur
Flokkaspjall
Viðauki
Viðaukaspjall
Samheitasafn
Samheitasafnsspjall
Skjátexti
Skjátextaspjall
Module
Module talk
Event
Event talk
Snið:-en-sagnorð-
10
18334
393711
67784
2026-09-28T16:36:19Z
Ow! That Hurts!
8952
393711
wikitext
text/x-wiki
Sagnorð<includeonly>[[Flokkur:Ensk sagnorð]] [[Flokkur:Sagnorð]]</includeonly><noinclude>
[[Flokkur:Sagnorðasnið]]</noinclude>
sbz68zm3rq8q5uhdytrdqvyoi1h8nww
búningsklefi
0
25606
393716
278413
2026-09-29T04:13:02Z
Ow! That Hurts!
8952
uppfært í nýja innviði
393716
wikitext
text/x-wiki
=={{-is-}}==
==={{-is-nafnorð-}}===
{{höfuð|IPA=/ˈpuːniŋsˌkʰlɛːvɪ/|kyn=kk}}
# [[klefi]] til að [[skipta um]] föt
===={{-is-fallbeyging-}}====
{{Fallbeyging kk vb 01|búningsklef|ný=já}}
===={{-þýðingar-}}====
{{þýðingar
|en= {{þýðing|en|locker room}}, {{þýðing|en|changing room}}
|de= {{þýðing|de|}}
|es= {{þýðing|es|}}
|ca= {{þýðing|ca|}}
}}
===={{-tilvísun-}}====
* {{Wikipedia|búningsklefi}}
* {{Ref-IcelandicOnlineDictionary|búningsklefi}}
{{Ref-Orðabók Háskólans|b%FAningsklefi}}
q2dfvx5bqtcbadfe5spk3rv2gfbaqtp
water
0
31839
393712
332140
2026-09-28T16:40:11Z
Ow! That Hurts!
8952
/* */ uppfært í nýja innviði
393712
wikitext
text/x-wiki
=={{-en-}}==
==={{-en-nafnorð-}}===
{{höfuð|IPA=/ˈwatər/}}
# [[vatn]]
==={{-en-sagnorð-}}===
{{höfuð|IPA=/ˈwatər/}}
# [[vatna]], [[brynna]]
# [[vökva]]
qdxkoeu0rztvnnah2c2d226x5nzfw6o
393713
393712
2026-09-28T16:41:56Z
Ow! That Hurts!
8952
393713
wikitext
text/x-wiki
=={{-en-}}==
==={{-en-nafnorð-}}===
{{höfuð|IPA=/ˈwɔːtər/}}
# [[vatn]]
==={{-en-sagnorð-}}===
{{höfuð|IPA=/ˈwɔːtər/}}
# [[vatna]], [[brynna]]
# [[vökva]]
kczpk2om3gxgsx754nqs1ewq3rfc2hs
Literaturgeschichte
0
56776
393718
305316
2026-09-29T05:50:07Z
Ow! That Hurts!
8952
uppfært í nýja innviði
393718
wikitext
text/x-wiki
=={{-de-}}==
[[File:JGM 2014 Bronnbach.jpg|thumb|Johannes Gottfried Mayer, ein bedeutender Forscher der Literaturgeschichte]]
==={{-de-nafnorð-}}===
{{höfuð|IPA=/lɪtəraˈtuːrɡəˌʃɪçtə/|kyn=kvk}}
# [[bókmenntasaga]] {{afleitt|de|<titill:nafnorð>Literaturgeschichtsschreibung<þ:bókmenntasöguritun>|<titill:lýsingarorð>literaturgeschichtlich<þ:frá sjónarhóli bókmenntasögunnar>}}
===={{-de-fallbeyging-}}====
{{Fallbeyging de|Literaturgeschichte|Literaturgeschichte|Literaturgeschichte|Literaturgeschichte|-|-|-|-|ný=já}}
===={{-tilvísun-}}====
* {{til:de:DWDS|sótt=29. september 2026}}
8jr0t06m52hflabd7788k8cxpe2vidv
bulle
0
72608
393726
330865
2026-09-29T06:28:28Z
Ow! That Hurts!
8952
uppfært í nýja innviði
393726
wikitext
text/x-wiki
=={{-fr-}}==
==={{-fr-nafnorð-}}===
{{fr-höfuð|IPA=/byl/|kyn=kvk}}
# [[bulla]]
# [[talblaðra]], [[talbóla]]
fm00h6zew8xj6btdzscw34cjm3mtg2u
Venice
0
81717
393714
343801
2026-09-28T17:59:15Z
Ow! That Hurts!
8952
/* */ uppfært í nýja innviði
393714
wikitext
text/x-wiki
=={{-en-}}==
==={{-en-örnefni-}}===
{{höfuð|IPA=/ˈvɛnɪs/}}
# [[Feneyjar]]
61l2qyzgbhuivusbt9t49yzuwn13t3w
jarðbrú
0
85194
393715
348126
2026-09-29T01:50:07Z
Ow! That Hurts!
8952
uppfært í nýja innviði
393715
wikitext
text/x-wiki
=={{-is-}}==
==={{-is-nafnorð-}}===
{{höfuð|[[jarð]][[brú]]|IPA=/ˈjarðpruː/|kyn=kvk}}
# [[brú]] úr steini eða jörðu
===={{-þýðingar-}}====
{{þýðingar
|en= {{þýðing|en|stone bridge}}
|fr= {{þýðing|fr|}}
|es= {{þýðing|es|}}
|de= {{þýðing|de|Steinbrücke}}
}}
===={{-tilvísun-}}====
* {{Wikipedia|jarðbrú}}
* {{Ref-IcelandicOnlineDictionary|jarðbrú}}
{{Ref-Orðabók Háskólans|jarðbrú}}
8ufm9b0ilq04kko2esukga7afv5g6gi
Module:tilvitnun
828
118910
393720
392623
2026-09-29T06:18:26Z
Ow! That Hurts!
8952
393720
Scribunto
text/plain
local p = {}
local metadata = mw.loadData('Module:tilvísun/data')
-- Helper: Fetch argument, checking aliases natively, allowing for suffix (-2, -3, etc.)
local function get_arg(args, key, suffix)
suffix = suffix or ""
local val = args[key .. suffix]
if not val or val == "" then
for alias, standard_key in pairs(metadata.aliases) do
if standard_key == key then
local alias_key = alias .. suffix
if args[alias_key] and args[alias_key] ~= "" then
val = args[alias_key]
break
end
end
end
end
if val and val ~= "" then return mw.text.trim(val) end
return nil
end
-- Helper: Process custom wikilink shorthand with prefixes (t:, w:, wm:, etc.) and <h:Display>
local function process_shorthand(text)
if not text or text == "" then return text end
text = mw.text.trim(text)
local prefix, content = string.match(text, "^([a-zA-Z]+):(.*)")
if prefix then
local lower_prefix = string.lower(prefix)
local valid_prefixes = {
t=true, w=true, wm=true, m=true, mw=true,
q=true, s=true, b=true, c=true, d=true, v=true,
wikt=true, meta=true, species=true,
wikipedia=true, wikimedia=true
}
if valid_prefixes[lower_prefix] then
content = mw.text.trim(content)
local h_match = string.match(content, "<h:(.-)>")
local target = content
if h_match then
target = string.gsub(content, "%s*<h:.->", "")
target = mw.text.trim(target)
h_match = mw.text.trim(h_match)
if lower_prefix == "t" then
return "[[" .. target .. "|" .. h_match .. "]]"
else
return "[[" .. lower_prefix .. ":" .. target .. "|" .. h_match .. "]]"
end
else
target = mw.text.trim(target)
if lower_prefix == "t" then
return "[[" .. target .. "]]"
else
return "[[" .. lower_prefix .. ":" .. target .. "|" .. target .. "]]"
end
end
end
end
return text
end
-- Helper: Parse inline translations like <þ:Dagarnar> and apply style correctly
local function format_field(text, style)
if not text or text == "" then return nil end
local trans = string.match(text, "<þ:(.-)>")
local base = text
if trans then
base = string.gsub(text, "%s*<þ:.->", "")
end
base = mw.text.trim(base)
trans = trans and mw.text.trim(trans) or nil
base = process_shorthand(base)
if trans then trans = process_shorthand(trans) end
if style == "quotes" then
local inner = base
if trans then inner = inner .. " [" .. trans .. "]" end
return "„" .. inner .. "“"
elseif style == "italic" then
local styled_base = "''" .. base .. "''"
if trans then
return styled_base .. " [''" .. trans .. "'']"
end
return styled_base
else
if trans then
return base .. " [" .. trans .. "]"
end
return base
end
end
-- Helper: Format chapter or section with number in the requested format
local function format_subdivision(title, num, unit_suffix, use_quotes)
if (not title or title == "") and (not num or num == "") then return nil end
local formatted_title = nil
if title and title ~= "" then
if use_quotes then
formatted_title = format_field(title, "quotes")
else
formatted_title = format_field(title, "plain")
end
end
local formatted_num = nil
if num and num ~= "" then
local clean_num = string.gsub(num, "%.$", "")
formatted_num = "(" .. clean_num .. ". " .. unit_suffix .. ")"
end
if formatted_title and formatted_num then
return formatted_title .. " " .. formatted_num
elseif formatted_title then
return formatted_title
elseif formatted_num then
return formatted_num
end
return nil
end
-- Helper: Small Caps HTML wrapper
local function small_caps(text)
if not text or text == "" then return "" end
return '<span style="font-variant: small-caps;">' .. text .. '</span>'
end
-- Helper: Format semicolon-separated names with "og" (without Oxford comma)
local function format_names(name_str)
if not name_str then return nil end
local names = {}
for name in string.gmatch(name_str, "([^;]+)") do
name = mw.text.trim(name)
name = process_shorthand(name)
table.insert(names, small_caps(name))
end
if #names == 0 then return nil end
local result_str = names[1]
if #names == 2 then
result_str = names[1] .. " og " .. names[2]
elseif #names > 2 then
result_str = names[1]
for j = 2, #names do
if j == #names then
result_str = result_str .. " og " .. names[j]
else
result_str = result_str .. ", " .. names[j]
end
end
end
return result_str
end
-- DATA EXTRACTOR
local function extract_data(args, suffix)
local d = {}
local raw_tegund = get_arg(args, 'tegund', suffix) or get_arg(args, 'type', suffix) or "vef"
raw_tegund = mw.ustring.lower(raw_tegund)
if raw_tegund == "bók" then raw_tegund = "bok" end
if raw_tegund == "tímarit" then raw_tegund = "timarit" end
if raw_tegund == "bókarkafli" then raw_tegund = "bok" end
d.tegund = raw_tegund
-- Core & Roles
d.mainauthor = get_arg(args, 'aðalhöfundur', suffix) or get_arg(args, 'mainauthor', suffix)
d.authors = get_arg(args, 'höfundur', suffix) or get_arg(args, 'author', suffix)
if d.authors then d.authors = format_names(d.authors) end
d.unregistered = get_arg(args, 'óskráður', suffix) or get_arg(args, 'óskráð', suffix)
d.raw_translator = get_arg(args, 'þýðandi', suffix) or get_arg(args, 'translator', suffix)
d.translators = format_names(d.raw_translator)
d.raw_editor = get_arg(args, 'ritstjóri', suffix) or get_arg(args, 'editor', suffix)
d.editors = format_names(d.raw_editor)
-- Date & Titles
d.year = get_arg(args, 'dags', suffix) or get_arg(args, 'ár', suffix) or get_arg(args, 'year', suffix)
if d.year then d.year = process_shorthand(d.year) end
d.title = get_arg(args, 'titill', suffix) or get_arg(args, 'title', suffix)
-- Edition Formatting
d.edition = get_arg(args, 'útgáfa', suffix) or get_arg(args, 'edition', suffix)
if d.edition then
d.edition = process_shorthand(d.edition)
local clean_ed = string.gsub(d.edition, "%.$", "")
if not string.find(string.lower(clean_ed), "útgáfa") then
d.edition = clean_ed .. ". útgáfa"
end
end
-- Chapters & Sections
d.chapter = get_arg(args, 'kafli', suffix) or get_arg(args, 'chapter', suffix) or get_arg(args, 'kaflanafn', suffix) or get_arg(args, 'kaflaheiti', suffix) or get_arg(args, 'kaflititill', suffix) or get_arg(args, 'chapter-name', suffix) or get_arg(args, 'chapter_name', suffix)
d.chapter_number = get_arg(args, 'kaflanúmer', suffix) or get_arg(args, 'chapter-number', suffix) or get_arg(args, 'chapter_number', suffix)
d.section = get_arg(args, 'hluti', suffix) or get_arg(args, 'deild', suffix) or get_arg(args, 'grein', suffix) or get_arg(args, 'section', suffix) or get_arg(args, 'hlutanafn', suffix) or get_arg(args, 'hlutaheiti', suffix) or get_arg(args, 'section-name', suffix) or get_arg(args, 'section_name', suffix)
d.section_number = get_arg(args, 'deildarnúmer', suffix) or get_arg(args, 'hlutanúmer', suffix) or get_arg(args, 'section-number', suffix) or get_arg(args, 'section_number', suffix)
-- Containers, Series & Volumes
d.container = get_arg(args, 'tímarit', suffix) or get_arg(args, 'journal', suffix) or get_arg(args, 'albúm', suffix) or get_arg(args, 'album', suffix)
d.bindi = get_arg(args, 'bindi', suffix)
if d.bindi then d.bindi = process_shorthand(d.bindi) end
d.series = get_arg(args, 'ritröð', suffix) or get_arg(args, 'series', suffix)
if d.series then d.series = process_shorthand(d.series) end
-- Locators & Positions
d.volume = get_arg(args, 'árgangur', suffix) or get_arg(args, 'volume', suffix)
if d.volume then d.volume = process_shorthand(d.volume) end
d.issue = get_arg(args, 'tölublað', suffix) or get_arg(args, 'issue', suffix)
if d.issue then d.issue = process_shorthand(d.issue) end
d.pages = get_arg(args, 'síður', suffix) or get_arg(args, 'síða', suffix) or get_arg(args, 'pages', suffix)
if d.pages then d.pages = process_shorthand(d.pages) end
-- Publication Info
d.location = get_arg(args, 'útgáfustaður', suffix) or get_arg(args, 'location', suffix)
if d.location then d.location = process_shorthand(d.location) end
d.publisher = get_arg(args, 'útgefandi', suffix) or get_arg(args, 'publisher', suffix)
if d.publisher then d.publisher = process_shorthand(d.publisher) end
d.printer = get_arg(args, 'prentari', suffix) or get_arg(args, 'printer', suffix)
if d.printer then d.printer = process_shorthand(d.printer) end
d.print_location = get_arg(args, 'prentunarstaður', suffix) or get_arg(args, 'print-location', suffix) or get_arg(args, 'print_location', suffix)
if d.print_location then d.print_location = process_shorthand(d.print_location) end
-- Identifiers & URLs
d.doi = get_arg(args, 'doi', suffix)
d.isbn = get_arg(args, 'isbn', suffix)
d.issn = get_arg(args, 'issn', suffix)
d.url = get_arg(args, 'vefslóð', suffix) or get_arg(args, 'url', suffix)
d.access = get_arg(args, 'sótt', suffix) or get_arg(args, 'access-date', suffix)
d.note = get_arg(args, 'athugasemd', suffix) or get_arg(args, 'note', suffix)
if d.note then d.note = process_shorthand(d.note) end
d.is_empty = not (d.authors or d.raw_editor or d.raw_translator or d.year or d.title or d.edition or d.container or d.publisher or d.printer or d.url or d.access or d.section or d.section_number or d.chapter or d.chapter_number or d.bindi or d.series or d.unregistered)
return d
end
-- BUILDER (Flexible Type-Aware Wiktionary Citation Style)
local function build_citation(d, is_secondary)
local tegund = d.tegund or "vef"
local auth_date = ""
-- 1. Author and Date construction (Fallback checks: unregistered -> translator -> editor)
local auth = nil
if d.unregistered then
auth = "''óskráð''"
else
auth = d.authors or (d.mainauthor and format_names(d.mainauthor))
end
local editor_as_author = false
local translator_as_author = false
if not auth then
if d.raw_translator then
local translator_names = format_names(d.raw_translator)
if translator_names then
auth = translator_names .. ", þýð."
translator_as_author = true
end
elseif d.raw_editor then
local editor_names = format_names(d.raw_editor)
if editor_names then
auth = editor_names .. ", ritstj."
editor_as_author = true
end
end
end
if auth then
if d.year and not is_secondary then
auth_date = auth .. " (" .. d.year .. ")"
else
auth_date = auth
end
else
if d.year and not is_secondary then
auth_date = "(" .. d.year .. ")"
end
end
local body_parts = {}
local chapter_str = format_subdivision(d.chapter, d.chapter_number, "kafli", true)
local section_str = format_subdivision(d.section, d.section_number, "hluti", false)
if tegund == "bok" or tegund == "bók" then
if d.title then
table.insert(body_parts, format_field(d.title, "italic"))
end
if d.editors and not editor_as_author then
table.insert(body_parts, d.editors .. ", ritstj.")
end
if d.translators and not translator_as_author then
table.insert(body_parts, d.translators .. ", þýð.")
end
if d.edition then
table.insert(body_parts, d.edition)
end
if d.bindi then
table.insert(body_parts, d.bindi .. ". bindi")
end
if chapter_str then
table.insert(body_parts, chapter_str)
end
if section_str then
table.insert(body_parts, section_str)
end
if d.series then
table.insert(body_parts, format_field(d.series, "italic"))
end
local pub_parts = {}
if d.location and d.publisher then
table.insert(pub_parts, d.location .. ": " .. d.publisher)
elseif d.publisher then
table.insert(pub_parts, d.publisher)
elseif d.location then
table.insert(pub_parts, d.location)
end
if d.print_location and d.printer then
table.insert(pub_parts, d.print_location .. ": " .. d.printer)
elseif d.printer then
table.insert(pub_parts, d.printer)
elseif d.print_location then
table.insert(pub_parts, d.print_location)
end
if #pub_parts > 0 then
table.insert(body_parts, table.concat(pub_parts, ", "))
end
if is_secondary and d.year then
table.insert(body_parts, d.year)
end
if d.pages then
table.insert(body_parts, d.pages)
end
elseif tegund == "timarit" or tegund == "tímarit" then
if d.title then
table.insert(body_parts, format_field(d.title, "quotes"))
end
if d.translators and not translator_as_author then
table.insert(body_parts, d.translators .. ", þýð.")
end
if d.bindi then
table.insert(body_parts, d.bindi .. ". bindi")
end
if chapter_str then
table.insert(body_parts, chapter_str)
end
if section_str then
table.insert(body_parts, section_str)
end
local container_parts = {}
if d.editors and not editor_as_author then
table.insert(container_parts, d.editors .. ", ritstj.")
end
if d.container then
table.insert(container_parts, "í " .. format_field(d.container, "italic"))
end
if d.edition then
table.insert(container_parts, d.edition)
end
if d.series then
table.insert(container_parts, format_field(d.series, "italic"))
end
if #container_parts > 0 then
table.insert(body_parts, table.concat(container_parts, ", "))
end
local loc_parts = {}
if d.volume then table.insert(loc_parts, d.volume .. ". árgangur") end
if d.issue then table.insert(loc_parts, d.issue .. ". tölublað") end
local pub_str = ""
if d.location and d.publisher then
pub_str = d.location .. ": " .. d.publisher
elseif d.publisher then
pub_str = d.publisher
elseif d.location then
pub_str = d.location
end
if pub_str ~= "" then table.insert(loc_parts, pub_str) end
local print_str = ""
if d.print_location and d.printer then
print_str = d.print_location .. ": " .. d.printer
elseif d.printer then
print_str = d.printer
elseif d.print_location then
print_str = d.print_location
end
if print_str ~= "" then table.insert(loc_parts, print_str) end
if #loc_parts > 0 then
table.insert(body_parts, table.concat(loc_parts, ", "))
end
if is_secondary and d.year then
table.insert(body_parts, d.year)
end
if d.pages then table.insert(body_parts, d.pages) end
else
-- Standard/Web fallback
if d.title then
table.insert(body_parts, format_field(d.title, "quotes"))
end
if d.editors and not editor_as_author then
table.insert(body_parts, d.editors .. ", ritstj.")
end
if d.translators and not translator_as_author then
table.insert(body_parts, d.translators .. ", þýð.")
end
if d.bindi then
table.insert(body_parts, d.bindi .. ". bindi")
end
if chapter_str then
table.insert(body_parts, chapter_str)
end
if section_str then
table.insert(body_parts, section_str)
end
if d.container then
table.insert(body_parts, "í " .. format_field(d.container, "italic"))
end
if d.edition then
table.insert(body_parts, d.edition)
end
if d.series then
table.insert(body_parts, format_field(d.series, "italic"))
end
local pub_parts = {}
if d.location and d.publisher then
table.insert(pub_parts, d.location .. ": " .. d.publisher)
elseif d.publisher then
table.insert(pub_parts, d.publisher)
elseif d.location then
table.insert(pub_parts, d.location)
end
if d.print_location and d.printer then
table.insert(pub_parts, d.print_location .. ": " .. d.printer)
elseif d.printer then
table.insert(pub_parts, d.printer)
elseif d.print_location then
table.insert(pub_parts, d.print_location)
end
if #pub_parts > 0 then
table.insert(body_parts, table.concat(pub_parts, ", "))
end
if is_secondary and d.year then
table.insert(body_parts, d.year)
end
if d.pages then
table.insert(body_parts, d.pages)
end
end
-- Identifiers & URLs & Notes
local ids = {}
if d.doi then table.insert(ids, "DOI: " .. d.doi) end
if d.isbn then table.insert(ids, "ISBN " .. d.isbn) end
if d.issn then table.insert(ids, "ISSN " .. d.issn) end
if d.url then
if d.access then
table.insert(ids, "[" .. d.url .. " sótt " .. d.access .. "]")
else
table.insert(ids, d.url)
end
elseif d.access then
table.insert(ids, "sótt " .. d.access)
end
if #ids > 0 then
table.insert(body_parts, table.concat(ids, ", "))
end
if d.note then
table.insert(body_parts, "(" .. d.note .. ")")
end
-- Assemble final citation string
local final_parts = {}
if auth_date ~= "" then
table.insert(final_parts, auth_date)
end
if #body_parts > 0 then
table.insert(final_parts, table.concat(body_parts, ", "))
end
return table.concat(final_parts, ", ")
end
function p.tilvisun(frame)
local args = frame:getParent().args
if not args['höfundur'] and not args['ritstjóri'] and not args['þýðandi'] and not args['titill'] and not args['author'] and not args['editor'] and not args['translator'] and not args['óskráður'] and not args['óskráð'] then
args = frame.args
end
local final_str = ""
local i = 1
while true do
local suffix = (i == 1) and "" or ("-" .. i)
local d = extract_data(args, suffix)
-- Break if the current sequential group of data is empty
if d.is_empty then
break
end
local cite_str = build_citation(d, i > 1)
if final_str ~= "" then
-- Attempt to get a specific tenging (like tenging-3), fallback to root 'tenging', then default to "þýtt sem"
local tenging = get_arg(args, 'tenging', suffix) or get_arg(args, 'tenging', "") or "þýtt sem"
final_str = final_str .. "; " .. tenging .. " " .. cite_str
else
final_str = cite_str
end
i = i + 1
-- Safety cap to prevent runaways on templates with massive empty arg lists
if i > 50 then break end
end
return final_str
end
return p
1vuwh1jjt2o8h2wajn6zinyjok0atx0
393721
393720
2026-09-29T06:20:08Z
Ow! That Hurts!
8952
Afturkallaði útgáfu [[Special:Diff/393720|393720]] frá [[Special:Contributions/Ow! That Hurts!|Ow! That Hurts!]] ([[User talk:Ow! That Hurts!|spjall]])
393721
Scribunto
text/plain
local p = {}
-- Helper function to capitalize the first letter of a string safely using mw.ustring
local function capitalizeFirst(str)
if not str or str == "" then return "" end
local first = mw.ustring.upper(mw.ustring.sub(str, 1, 1))
local rest = mw.ustring.sub(str, 2)
return first .. rest
end
-- Helper function to lower the first letter of a string safely using mw.ustring
local function lowerFirst(str)
if not str or str == "" then return "" end
local first = mw.ustring.lower(mw.ustring.sub(str, 1, 1))
local rest = mw.ustring.sub(str, 2)
return first .. rest
end
-- Helper function to process a text passage into linked/bolded tokens
local function processText(text, lang, args, currentPage, addBullet)
if not text or text == "" then return "" end
local wordCounts = {}
local tokens = {}
local isFirstToken = true
local uncapitalizeNextWord = true -- Replaces isFirstWord, now true initially or after specific punctuation
-- Phase 1: Group chunks together if they are inside a wikilink (to support multi-word links)
local rawChunks = {}
local currentToken = ""
local inLink = false
for chunk in string.gmatch(text, "%S+%s*") do
if not inLink then
local opens = select(2, string.gsub(chunk, "%[%[", ""))
local closes = select(2, string.gsub(chunk, "%]%]", ""))
if opens > closes then
inLink = true
currentToken = chunk
else
table.insert(rawChunks, chunk)
end
else
currentToken = currentToken .. chunk
local opens = select(2, string.gsub(currentToken, "%[%[", ""))
local closes = select(2, string.gsub(currentToken, "%]%]", ""))
if closes >= opens then
inLink = false
table.insert(rawChunks, currentToken)
currentToken = ""
end
end
end
if inLink then table.insert(rawChunks, currentToken) end
-- Phase 2: Process the collected tokens
for _, chunk in ipairs(rawChunks) do
-- Extract the token and any trailing spaces attached to it
local token, space = string.match(chunk, "^(.-)(%s*)$")
if token and token ~= "" then
local leadingPunct, innerLink, trailingPunct = mw.ustring.match(token, "^(.-)(%[%[.+%]%])(.-)$")
if innerLink and innerLink ~= "" then
local linkTarget, linkDisplay = mw.ustring.match(innerLink, "^%[%[([^%|%]]+)%|([^%|%]]+)%]$")
if not linkTarget then
linkTarget = mw.ustring.match(innerLink, "^%[%[([^%|%]]+)%]$")
linkDisplay = linkTarget
end
local isPageMatch = linkTarget and (mw.ustring.lower(linkTarget) == mw.ustring.lower(currentPage))
local processedLink = ""
if isPageMatch then
processedLink = string.format('<strong style="color:#999999;">%s</strong>', linkDisplay)
else
local formatted = mw.ustring.gsub(innerLink, "%|([^%|%]]+)%]%]", '|<span style="color:#999999;">%1</span>]]')
if formatted == innerLink then
formatted = mw.ustring.gsub(innerLink, "%[%[([^%|%]]+)%]%]", '[[%1|<span style="color:#999999;">%1</span>]]')
end
processedLink = formatted
end
local formattedToken = ""
if leadingPunct and leadingPunct ~= "" then
formattedToken = formattedToken .. string.format('<span style="color:#999999;">%s</span>', leadingPunct)
end
formattedToken = formattedToken .. processedLink
if trailingPunct and trailingPunct ~= "" then
formattedToken = formattedToken .. string.format('<span style="color:#999999;">%s</span>', trailingPunct)
end
if isFirstToken and addBullet then
formattedToken = string.format('<span style="color:#999999;">• </span>%s', formattedToken)
isFirstToken = false
end
table.insert(tokens, formattedToken)
-- Update state for the next word based on trailing punctuation
if trailingPunct and mw.ustring.match(trailingPunct, "[%.…;]") then
uncapitalizeNextWord = true
else
uncapitalizeNextWord = false
end
else
if mw.ustring.match(token, "^[%p]+$") then
local puncToken = string.format('<span style="color:#999999;">%s</span>', token)
if isFirstToken and addBullet then
puncToken = string.format('<span style="color:#999999;">• </span>%s', puncToken)
isFirstToken = false
end
table.insert(tokens, puncToken)
-- Update state if pure punctuation contains a trigger
if mw.ustring.match(token, "[%.…;]") then
uncapitalizeNextWord = true
else
uncapitalizeNextWord = false
end
else
local leadingPunct = mw.ustring.match(token, "^([%p]+)") or ""
local trailingPunct = mw.ustring.match(token, "([%p]+)$") or ""
local coreWord = token
if leadingPunct ~= "" then
coreWord = mw.ustring.sub(coreWord, mw.ustring.len(leadingPunct) + 1)
end
if trailingPunct ~= "" and mw.ustring.len(coreWord) >= mw.ustring.len(trailingPunct) then
coreWord = mw.ustring.sub(coreWord, 1, mw.ustring.len(coreWord) - mw.ustring.len(trailingPunct))
end
if not coreWord or coreWord == "" then
coreWord = token
leadingPunct = ""
trailingPunct = ""
end
-- If leading punctuation contains a trigger, we should uncapitalize THIS word
if leadingPunct and mw.ustring.match(leadingPunct, "[%.…;]") then
uncapitalizeNextWord = true
end
wordCounts[coreWord] = (wordCounts[coreWord] or 0) + 1
local index = wordCounts[coreWord]
-- Apply uncapitalization logic unless overridden
local target = args[coreWord .. "_" .. index] or args[coreWord]
if not target then
if uncapitalizeNextWord then
target = lowerFirst(coreWord)
else
target = coreWord
end
end
local isPageMatch = (mw.ustring.lower(target) == mw.ustring.lower(currentPage))
local processedWord = ""
if isPageMatch then
processedWord = string.format('<strong style="color:#999999;">%s</strong>', coreWord)
else
if lang ~= "" then
local capitalizedLang = capitalizeFirst(lang)
processedWord = string.format('[[%s#%s|<span style="color:#999999;">%s</span>]]', target, capitalizedLang, coreWord)
else
processedWord = string.format('[[%s|<span style="color:#999999;">%s</span>]]', target, coreWord)
end
end
local finalFormatted = ""
if leadingPunct and leadingPunct ~= "" then
finalFormatted = finalFormatted .. string.format('<span style="color:#999999;">%s</span>', leadingPunct)
end
finalFormatted = finalFormatted .. processedWord
if trailingPunct and trailingPunct ~= "" then
finalFormatted = finalFormatted .. string.format('<span style="color:#999999;">%s</span>', trailingPunct)
end
if isFirstToken and addBullet then
finalFormatted = string.format('<span style="color:#999999;">• </span>%s', finalFormatted)
isFirstToken = false
end
table.insert(tokens, finalFormatted)
-- Update state for the next word based on trailing punctuation
if trailingPunct and mw.ustring.match(trailingPunct, "[%.…;]") then
uncapitalizeNextWord = true
else
uncapitalizeNextWord = false
end
end
end
if space and space ~= "" then
table.insert(tokens, space)
end
elseif space and space ~= "" then
table.insert(tokens, space)
end
end
return table.concat(tokens)
end
function p.main(frame)
local args = frame:getParent().args
local lang = args[1] or ""
local text = args[2] or ""
if text == "" then
text = args[1] or ""
lang = ""
end
if text == "" then
return ""
end
local currentPage = mw.title.getCurrentTitle().text
local litillText = args["litill"] or args["lítill"]
local margurText = args["margur"]
local pText = args["þ"]
local addBullet = not (args["enginn depill"] or args["enginn_depill"])
if litillText or margurText then
local processedLitill = processText(litillText, lang, args, currentPage, addBullet)
local processedMargur = processText(margurText, lang, args, currentPage, addBullet)
-- Only append the þ text to the processedMargur string, leaving litill as is.
if pText and pText ~= "" then
processedMargur = processedMargur .. string.format(' <span style="color:#999999;"><i>%s</i></span>', pText)
end
-- Preprocess the #invoke call to safely execute Module:slembitölugjafi.
local randomNumber = frame:preprocess('{{#invoke:slembitölugjafi|main}}')
return frame:expandTemplate{
title = "stutt tilvitnun",
args = {
randomNumber,
processedLitill,
processedMargur
}
}
else
local result = processText(text, lang, args, currentPage, addBullet)
-- Since margur= is not displaying here, þ= is ignored.
return result
end
end
return p
oo023rjots6h8apmav7audb1scnb7fe
Module:tilvísun
828
118918
393722
393197
2026-09-29T06:20:23Z
Ow! That Hurts!
8952
393722
Scribunto
text/plain
local p = {}
local metadata = mw.loadData('Module:tilvísun/data')
-- Helper: Fetch argument, checking aliases natively, allowing for suffix (-2, -3, etc.)
local function get_arg(args, key, suffix)
suffix = suffix or ""
local val = args[key .. suffix]
if not val or val == "" then
for alias, standard_key in pairs(metadata.aliases) do
if standard_key == key then
local alias_key = alias .. suffix
if args[alias_key] and args[alias_key] ~= "" then
val = args[alias_key]
break
end
end
end
end
if val and val ~= "" then return mw.text.trim(val) end
return nil
end
-- Helper: Process custom wikilink shorthand with prefixes (t:, w:, wm:, etc.) and <h:Display>
local function process_shorthand(text)
if not text or text == "" then return text end
text = mw.text.trim(text)
local prefix, content = string.match(text, "^([a-zA-Z]+):(.*)")
if prefix then
local lower_prefix = string.lower(prefix)
local valid_prefixes = {
t=true, w=true, wm=true, m=true, mw=true,
q=true, s=true, b=true, c=true, d=true, v=true,
wikt=true, meta=true, species=true,
wikipedia=true, wikimedia=true
}
if valid_prefixes[lower_prefix] then
content = mw.text.trim(content)
local h_match = string.match(content, "<h:(.-)>")
local target = content
if h_match then
target = string.gsub(content, "%s*<h:.->", "")
target = mw.text.trim(target)
h_match = mw.text.trim(h_match)
if lower_prefix == "t" then
return "[[" .. target .. "|" .. h_match .. "]]"
else
return "[[" .. lower_prefix .. ":" .. target .. "|" .. h_match .. "]]"
end
else
target = mw.text.trim(target)
if lower_prefix == "t" then
return "[[" .. target .. "]]"
else
return "[[" .. lower_prefix .. ":" .. target .. "|" .. target .. "]]"
end
end
end
end
return text
end
-- Helper: Parse inline translations like <þ:Dagarnar> and apply style correctly
local function format_field(text, style)
if not text or text == "" then return nil end
local trans = string.match(text, "<þ:(.-)>")
local base = text
if trans then
base = string.gsub(text, "%s*<þ:.->", "")
end
base = mw.text.trim(base)
trans = trans and mw.text.trim(trans) or nil
base = process_shorthand(base)
if trans then trans = process_shorthand(trans) end
if style == "quotes" then
local inner = base
if trans then inner = inner .. " [" .. trans .. "]" end
return "„" .. inner .. "“"
elseif style == "italic" then
local styled_base = "''" .. base .. "''"
if trans then
return styled_base .. " [''" .. trans .. "'']"
end
return styled_base
else
if trans then
return base .. " [" .. trans .. "]"
end
return base
end
end
-- Helper: Format chapter or section with number in the requested format
local function format_subdivision(title, num, unit_suffix, use_quotes)
if (not title or title == "") and (not num or num == "") then return nil end
local formatted_title = nil
if title and title ~= "" then
if use_quotes then
formatted_title = format_field(title, "quotes")
else
formatted_title = format_field(title, "plain")
end
end
local formatted_num = nil
if num and num ~= "" then
local clean_num = string.gsub(num, "%.$", "")
formatted_num = "(" .. clean_num .. ". " .. unit_suffix .. ")"
end
if formatted_title and formatted_num then
return formatted_title .. " " .. formatted_num
elseif formatted_title then
return formatted_title
elseif formatted_num then
return formatted_num
end
return nil
end
-- Helper: Small Caps HTML wrapper
local function small_caps(text)
if not text or text == "" then return "" end
return '<span style="font-variant: small-caps;">' .. text .. '</span>'
end
-- Helper: Format semicolon-separated names with "og" (without Oxford comma)
local function format_names(name_str)
if not name_str then return nil end
local names = {}
for name in string.gmatch(name_str, "([^;]+)") do
name = mw.text.trim(name)
name = process_shorthand(name)
table.insert(names, small_caps(name))
end
if #names == 0 then return nil end
local result_str = names[1]
if #names == 2 then
result_str = names[1] .. " og " .. names[2]
elseif #names > 2 then
result_str = names[1]
for j = 2, #names do
if j == #names then
result_str = result_str .. " og " .. names[j]
else
result_str = result_str .. ", " .. names[j]
end
end
end
return result_str
end
-- DATA EXTRACTOR
local function extract_data(args, suffix)
local d = {}
local raw_tegund = get_arg(args, 'tegund', suffix) or get_arg(args, 'type', suffix) or "vef"
raw_tegund = mw.ustring.lower(raw_tegund)
if raw_tegund == "bók" then raw_tegund = "bok" end
if raw_tegund == "tímarit" then raw_tegund = "timarit" end
if raw_tegund == "bókarkafli" then raw_tegund = "bok" end
d.tegund = raw_tegund
-- Core & Roles
d.mainauthor = get_arg(args, 'aðalhöfundur', suffix) or get_arg(args, 'mainauthor', suffix)
d.authors = get_arg(args, 'höfundur', suffix) or get_arg(args, 'author', suffix)
if d.authors then d.authors = format_names(d.authors) end
d.unregistered = get_arg(args, 'óskráður', suffix) or get_arg(args, 'óskráð', suffix)
d.raw_translator = get_arg(args, 'þýðandi', suffix) or get_arg(args, 'translator', suffix)
d.translators = format_names(d.raw_translator)
d.raw_editor = get_arg(args, 'ritstjóri', suffix) or get_arg(args, 'editor', suffix)
d.editors = format_names(d.raw_editor)
-- Date & Titles
d.year = get_arg(args, 'dags', suffix) or get_arg(args, 'ár', suffix) or get_arg(args, 'year', suffix)
if d.year then d.year = process_shorthand(d.year) end
d.title = get_arg(args, 'titill', suffix) or get_arg(args, 'title', suffix)
-- Edition Formatting
d.edition = get_arg(args, 'útgáfa', suffix) or get_arg(args, 'edition', suffix)
if d.edition then
d.edition = process_shorthand(d.edition)
local clean_ed = string.gsub(d.edition, "%.$", "")
if not string.find(string.lower(clean_ed), "útgáfa") then
d.edition = clean_ed .. ". útgáfa"
end
end
-- Chapters & Sections
d.chapter = get_arg(args, 'kafli', suffix) or get_arg(args, 'chapter', suffix) or get_arg(args, 'kaflanafn', suffix) or get_arg(args, 'kaflaheiti', suffix) or get_arg(args, 'kaflititill', suffix) or get_arg(args, 'chapter-name', suffix) or get_arg(args, 'chapter_name', suffix)
d.chapter_number = get_arg(args, 'kaflanúmer', suffix) or get_arg(args, 'chapter-number', suffix) or get_arg(args, 'chapter_number', suffix)
d.section = get_arg(args, 'hluti', suffix) or get_arg(args, 'deild', suffix) or get_arg(args, 'grein', suffix) or get_arg(args, 'section', suffix) or get_arg(args, 'hlutanafn', suffix) or get_arg(args, 'hlutaheiti', suffix) or get_arg(args, 'section-name', suffix) or get_arg(args, 'section_name', suffix)
d.section_number = get_arg(args, 'deildarnúmer', suffix) or get_arg(args, 'hlutanúmer', suffix) or get_arg(args, 'section-number', suffix) or get_arg(args, 'section_number', suffix)
-- Containers, Series & Volumes
d.container = get_arg(args, 'tímarit', suffix) or get_arg(args, 'journal', suffix) or get_arg(args, 'albúm', suffix) or get_arg(args, 'album', suffix)
d.bindi = get_arg(args, 'bindi', suffix)
if d.bindi then d.bindi = process_shorthand(d.bindi) end
d.series = get_arg(args, 'ritröð', suffix) or get_arg(args, 'series', suffix)
if d.series then d.series = process_shorthand(d.series) end
-- Locators & Positions
d.volume = get_arg(args, 'árgangur', suffix) or get_arg(args, 'volume', suffix)
if d.volume then d.volume = process_shorthand(d.volume) end
d.issue = get_arg(args, 'tölublað', suffix) or get_arg(args, 'issue', suffix)
if d.issue then d.issue = process_shorthand(d.issue) end
d.pages = get_arg(args, 'síður', suffix) or get_arg(args, 'síða', suffix) or get_arg(args, 'pages', suffix)
if d.pages then d.pages = process_shorthand(d.pages) end
-- Publication Info
d.location = get_arg(args, 'útgáfustaður', suffix) or get_arg(args, 'location', suffix)
if d.location then d.location = process_shorthand(d.location) end
d.publisher = get_arg(args, 'útgefandi', suffix) or get_arg(args, 'publisher', suffix)
if d.publisher then d.publisher = process_shorthand(d.publisher) end
d.printer = get_arg(args, 'prentari', suffix) or get_arg(args, 'printer', suffix)
if d.printer then d.printer = process_shorthand(d.printer) end
d.print_location = get_arg(args, 'prentunarstaður', suffix) or get_arg(args, 'print-location', suffix) or get_arg(args, 'print_location', suffix)
if d.print_location then d.print_location = process_shorthand(d.print_location) end
-- Identifiers & URLs
d.doi = get_arg(args, 'doi', suffix)
d.isbn = get_arg(args, 'isbn', suffix)
d.issn = get_arg(args, 'issn', suffix)
d.url = get_arg(args, 'vefslóð', suffix) or get_arg(args, 'url', suffix)
d.access = get_arg(args, 'sótt', suffix) or get_arg(args, 'access-date', suffix)
d.note = get_arg(args, 'athugasemd', suffix) or get_arg(args, 'note', suffix)
if d.note then d.note = process_shorthand(d.note) end
d.is_empty = not (d.authors or d.raw_editor or d.raw_translator or d.year or d.title or d.edition or d.container or d.publisher or d.printer or d.url or d.access or d.section or d.section_number or d.chapter or d.chapter_number or d.bindi or d.series or d.unregistered)
return d
end
-- BUILDER (Flexible Type-Aware Wiktionary Citation Style)
local function build_citation(d, is_secondary)
local tegund = d.tegund or "vef"
local auth_date = ""
-- 1. Author and Date construction (Fallback checks: unregistered -> translator -> editor)
local auth = nil
if d.unregistered then
auth = "''óskráð''"
else
auth = d.authors or (d.mainauthor and format_names(d.mainauthor))
end
local editor_as_author = false
local translator_as_author = false
if not auth then
if d.raw_translator then
local translator_names = format_names(d.raw_translator)
if translator_names then
auth = translator_names .. ", þýð."
translator_as_author = true
end
elseif d.raw_editor then
local editor_names = format_names(d.raw_editor)
if editor_names then
auth = editor_names .. ", ritstj."
editor_as_author = true
end
end
end
if auth then
if d.year and not is_secondary then
auth_date = auth .. " (" .. d.year .. ")"
else
auth_date = auth
end
else
if d.year and not is_secondary then
auth_date = "(" .. d.year .. ")"
end
end
local body_parts = {}
local chapter_str = format_subdivision(d.chapter, d.chapter_number, "kafli", true)
local section_str = format_subdivision(d.section, d.section_number, "hluti", false)
if tegund == "bok" or tegund == "bók" then
if d.title then
table.insert(body_parts, format_field(d.title, "italic"))
end
if d.editors and not editor_as_author then
table.insert(body_parts, d.editors .. ", ritstj.")
end
if d.translators and not translator_as_author then
table.insert(body_parts, d.translators .. ", þýð.")
end
if d.edition then
table.insert(body_parts, d.edition)
end
if d.bindi then
table.insert(body_parts, d.bindi .. ". bindi")
end
if chapter_str then
table.insert(body_parts, chapter_str)
end
if section_str then
table.insert(body_parts, section_str)
end
if d.series then
table.insert(body_parts, format_field(d.series, "italic"))
end
local pub_parts = {}
if d.location and d.publisher then
table.insert(pub_parts, d.location .. ": " .. d.publisher)
elseif d.publisher then
table.insert(pub_parts, d.publisher)
elseif d.location then
table.insert(pub_parts, d.location)
end
if d.print_location and d.printer then
table.insert(pub_parts, d.print_location .. ": " .. d.printer)
elseif d.printer then
table.insert(pub_parts, d.printer)
elseif d.print_location then
table.insert(pub_parts, d.print_location)
end
if #pub_parts > 0 then
table.insert(body_parts, table.concat(pub_parts, ", "))
end
if is_secondary and d.year then
table.insert(body_parts, d.year)
end
if d.pages then
table.insert(body_parts, d.pages)
end
elseif tegund == "timarit" or tegund == "tímarit" then
if d.title then
table.insert(body_parts, format_field(d.title, "quotes"))
end
if d.translators and not translator_as_author then
table.insert(body_parts, d.translators .. ", þýð.")
end
if d.bindi then
table.insert(body_parts, d.bindi .. ". bindi")
end
if chapter_str then
table.insert(body_parts, chapter_str)
end
if section_str then
table.insert(body_parts, section_str)
end
local container_parts = {}
if d.editors and not editor_as_author then
table.insert(container_parts, d.editors .. ", ritstj.")
end
if d.container then
table.insert(container_parts, "í " .. format_field(d.container, "italic"))
end
if d.edition then
table.insert(container_parts, d.edition)
end
if d.series then
table.insert(container_parts, format_field(d.series, "italic"))
end
if #container_parts > 0 then
table.insert(body_parts, table.concat(container_parts, ", "))
end
local loc_parts = {}
if d.volume then table.insert(loc_parts, d.volume .. ". árgangur") end
if d.issue then table.insert(loc_parts, d.issue .. ". tölublað") end
local pub_str = ""
if d.location and d.publisher then
pub_str = d.location .. ": " .. d.publisher
elseif d.publisher then
pub_str = d.publisher
elseif d.location then
pub_str = d.location
end
if pub_str ~= "" then table.insert(loc_parts, pub_str) end
local print_str = ""
if d.print_location and d.printer then
print_str = d.print_location .. ": " .. d.printer
elseif d.printer then
print_str = d.printer
elseif d.print_location then
print_str = d.print_location
end
if print_str ~= "" then table.insert(loc_parts, print_str) end
if #loc_parts > 0 then
table.insert(body_parts, table.concat(loc_parts, ", "))
end
if is_secondary and d.year then
table.insert(body_parts, d.year)
end
if d.pages then table.insert(body_parts, d.pages) end
else
-- Standard/Web fallback
if d.title then
table.insert(body_parts, format_field(d.title, "quotes"))
end
if d.editors and not editor_as_author then
table.insert(body_parts, d.editors .. ", ritstj.")
end
if d.translators and not translator_as_author then
table.insert(body_parts, d.translators .. ", þýð.")
end
if d.bindi then
table.insert(body_parts, d.bindi .. ". bindi")
end
if chapter_str then
table.insert(body_parts, chapter_str)
end
if section_str then
table.insert(body_parts, section_str)
end
if d.container then
table.insert(body_parts, "í " .. format_field(d.container, "italic"))
end
if d.edition then
table.insert(body_parts, d.edition)
end
if d.series then
table.insert(body_parts, format_field(d.series, "italic"))
end
local pub_parts = {}
if d.location and d.publisher then
table.insert(pub_parts, d.location .. ": " .. d.publisher)
elseif d.publisher then
table.insert(pub_parts, d.publisher)
elseif d.location then
table.insert(pub_parts, d.location)
end
if d.print_location and d.printer then
table.insert(pub_parts, d.print_location .. ": " .. d.printer)
elseif d.printer then
table.insert(pub_parts, d.printer)
elseif d.print_location then
table.insert(pub_parts, d.print_location)
end
if #pub_parts > 0 then
table.insert(body_parts, table.concat(pub_parts, ", "))
end
if is_secondary and d.year then
table.insert(body_parts, d.year)
end
if d.pages then
table.insert(body_parts, d.pages)
end
end
-- Identifiers & URLs & Notes
local ids = {}
if d.doi then table.insert(ids, "DOI: " .. d.doi) end
if d.isbn then table.insert(ids, "ISBN " .. d.isbn) end
if d.issn then table.insert(ids, "ISSN " .. d.issn) end
if d.url then
if d.access then
table.insert(ids, "[" .. d.url .. " sótt " .. d.access .. "]")
else
table.insert(ids, d.url)
end
elseif d.access then
table.insert(ids, "sótt " .. d.access)
end
if #ids > 0 then
table.insert(body_parts, table.concat(ids, ", "))
end
if d.note then
table.insert(body_parts, "(" .. d.note .. ")")
end
-- Assemble final citation string
local final_parts = {}
if auth_date ~= "" then
table.insert(final_parts, auth_date)
end
if #body_parts > 0 then
table.insert(final_parts, table.concat(body_parts, ", "))
end
return table.concat(final_parts, ", ")
end
function p.tilvisun(frame)
local args = frame:getParent().args
if not args['höfundur'] and not args['ritstjóri'] and not args['þýðandi'] and not args['titill'] and not args['author'] and not args['editor'] and not args['translator'] and not args['óskráður'] and not args['óskráð'] then
args = frame.args
end
local final_str = ""
local i = 1
while true do
local suffix = (i == 1) and "" or ("-" .. i)
local d = extract_data(args, suffix)
-- Break if the current sequential group of data is empty
if d.is_empty then
break
end
local cite_str = build_citation(d, i > 1)
if final_str ~= "" then
-- Attempt to get a specific tenging (like tenging-3), fallback to root 'tenging', then default to "þýtt sem"
local tenging = get_arg(args, 'tenging', suffix) or get_arg(args, 'tenging', "") or "þýtt sem"
final_str = final_str .. "; " .. tenging .. " " .. cite_str
else
final_str = cite_str
end
i = i + 1
-- Safety cap to prevent runaways on templates with massive empty arg lists
if i > 50 then break end
end
return final_str
end
return p
1vuwh1jjt2o8h2wajn6zinyjok0atx0
Bull
0
118962
393723
393089
2026-09-29T06:24:23Z
Ow! That Hurts!
8952
uppfært í nýja innviði
393723
wikitext
text/x-wiki
{{-pdc-}}
[[Image:Barrosã,_Minas_dos_Carris_XXVII_(3511605742)_(cropped).jpg|thumb|En '''Bull''' schteht gelangweilt vannich paar Felse.]]
{{-pdc-nafnorð-}}
'''Bull''' {{IPA2|/b̥ʊl/}} {{kk.}} ''ft.'' {{t|pdc|Bulle}}
# geltur fullorðinn [[karldýr]] [[nautgripur|nautgripa]]; [[naut]], [[boli]]<!---
---> {{tilvitnun|pdc|lítill=[[en|’n]] [[beeser|bas’r]] [[Bull|bull]].|margur=[[verschrockner|Fĕrshrŭken’r]] [[Mann|mŏn]] [[unn|un]] [[en|’n]] [[beeser|bas’r]] [[Bull|bull]]. … [[der|D’r]] [[grooss|gros]] Bull. … [[en|’N]] [[brinselbrauner|brinsl broun’r]] [[muhli|mooly]] [[Bull|bull]] / [[muss|Mus]] in [[der|d’r]] [[Scheierhof|sheiăr hof]]; / [[Alpakahinkel|Alpăcă hinkĕl]], [[Batzerthund|bordsărt hunt]] / [[unn|Un]] [[Kotschin|kochin]] [[Schanghei|shanghei]] [[Schof|shof]].|þ=Hræddur maður og reitt '''naut'''. … Stóra '''nautið'''. … Brúnt, hornlaust '''naut''' hlýtur að vera í fjósinu; alpakkahænur, stutthalaðir hundar og sauðfé frá Sjanghæ og Kóchín.|tegund=bók|ár=1910|titill=Horne’s Pennsylvania German Manual<þ:Handbók Horne um pennsylvanísku>|útgáfustaður=Allentown|útgefandi={{hástafir|T. K. Horne}}|hluti=Pennsylvania German Literature<þ:Pennsylvanískar bókmenntir>|útgáfa=3|höfundur=Abraham Reasor Horne|síður=[https://hdl.handle.net/2027/coo.31924088997782 síður 47, 71, 150]}}<!---
---> {{tilvitnun|pdc|lítill=der Bull|margur=Ich hab als der bescht Briehbull uff daere Seit vum Rewwer ghatt. Allemol as er en Kuh gebrieht hot, [[hot|hot]][[-'s|'s]] eenswedder Zwillinge odder sogaar Drillinge gewwe. Awwer ee Daag iss der Bull hattleiwich warre unn er hot sei Arewet nimmi schaffe kenne.|þ=Ég átti besta kynbótnarnautið hérna megin árinnar. Stundum, eftir að hann hafði kynbætt kú, fæddi hún tvíbura eða jafnvel þríbura. En einn daginn fékk '''nautið''' hægðatregðu og gat ekki lengur sinnt vinnunni sinni.|tegund=bók|titill=The Comprehensive Pennsylvania German Dictionary<þ:Efnismikla pennsylvaníska orðabókin>|kafli=Bull|höfundur=Richard Druckenbrod|ritstjóri=Charles Richard Beam;Joshua R. Brown|bindi=2|dags=júlí 2005|útgáfustaður=Millersville|útgefandi=Millersville University Center for Pennsylvania German Studies [Miðstöð pennsylvanískunáma við Millersville-háskóla]|isbn=9781932864342|síður=síða 185}}<!---
---> {{afleitt|pdc|<titill:örnefni>Bulle Kopp<k:kk.>;Bulleschteddel<k:hk.><n:Lucon, Montana>;Bulleschtrooss<k:kvk.>|<titill:nafnorð>Briehbull<k:kk.><þ:kynbótanaut>;Bullbaend<k:kvk.><n:hávær, ólgusöm og truflandi hljómsveit>;Bullbalsem<k:kk.><þ:nautmynta>;Bullbeint<k:kk.><þ:gulfura>;Bullblug<k:kk.><þ:nautaplógur>;Bullbux<k:kk.><þ:róslyng>;Bulleballe<k:ft.><þ:nautseista>;Bullebambel<k:hk.><þ:gyðjuskór>;Bullebeidel<k:kk.><þ:gyðjuskór>;Bullhund<k:kk.><þ:bolabítur>;Bullefleesch<k:kk.><þ:nautakjöt>;Bullekalb<k:hk.><þ:nautkálfur>;Bulledischdel<k:kvk.><þ:þistill>;Bullegatt<k:kvk.><þ:hestasvipa úr þurrkuðum typpi nauts>;Bullegraas<k:hk.><þ:strandreyr>;Bullehammli<k:hk.><þ:nautkálfur><n:líka {{t|pdc|Bullhammli}} og {{t|pdc|Bullhummli}}>;Bullehaut<k:kvk.><þ:nautshúð>;Bullehawwer<k:kk.><þ:ginhafri><n:líka {{t|pdc|Bullhawwer}}>;Bulleholz<k:hk.><þ:nautviður>;Bullekaschebaam<k:kk.><þ:nautakirsuberjatré>;Bullekett<k:kvk.><þ:nautakeðja>;Bullirum<k:kk.><þ:froskur>;Bulleryockel<k:hk.><þ:eilífðarjurt>;Bulleschmeisser<k:kk.><þ:nautakastari>;Bulleschrott<k:kvk.><þ:haglabyssuhylki>;Bulleschtall<k:kk.><þ:nautabás><n:líka {{t|pdc|Bullschtall}}>;Bulleschtrick<k:kk.><þ:þungt reipi>;Bulleschwanz<k:kk.><þ:nautshali>;Bulleseckelwoog<k:kvk.><n:hreisturstegund>;Bullevendu<k:kvk.><þ:nautauppboð>;Bullezung<k:kvk.><þ:nautatunga>;Bullfrack<k:kk.><þ:nautfroskur><n:líka {{t|pdc|Bullfraag}}>;Bullfraagschwam<k:kk.><þ:nautfroskamýri>;Bullfrackeschenkel<k:kk.><þ:nautfroskafætur>;Bullgrott<k:kk. eða kvk.><þ:nautfroskur>;Bullhatzkasch<k:kvk.><þ:uxahjartnakirsuber>;Bullkasch<k:kvk.><þ:uxahjartnakirsuber>;Bullerrum<n:grátur fullorðins frosks>;Bullkaerschebaam<k:kk.><þ:nautakirsuberjatré>;Bullkopp<k:kk.><þ:þrjóskur einstaklingur>;Bullniss<k:kvk.><þ:Carya laciniosa>;Bullraad<k:hk.><þ:ökumaður vélræns hjóls>;Bullwerfass<k:hk.><þ:púðurtunna>;Bullrosch<k:kk.><þ:nautahlaup>|<titill:sagnorð>bulle<þ:þrá naut>|<titill:lýsingarorð>bullich<þ:í tíð>;bullkeppich<þ:þrjóskur>}}
# (''í [[fleirtala|fleirtölu]]'') [[kynkirtill]] karlmanns eða karldýrs; [[eista]]
342zh8j4ocpl03d24p7ftth88js7qtn
Snið:til:de:DWDS
10
119218
393717
2026-09-29T04:28:21Z
Ow! That Hurts!
8952
skapað
393717
wikitext
text/x-wiki
{{tilvísun|tímarit=Digitales Wörterbuch der deutschen Sprache<þ:Stafræn orðabók þýskrar tungu>|titill=[https://www.dwds.de/wb/{{urlencode:{{{1|{{PAGENAME}}}}}|PATH}} {{{1|{{PAGENAME}}}}}]|útgefandi=Berlin-Brandenburgische Akademie der Wissenschaften|sótt={{{sótt}}}}}
rvakwjeiy2hn82ut8u4qufs28ylx41d
Snið:-de-orðsifjafræði-
10
119219
393719
2026-09-29T05:52:46Z
Ow! That Hurts!
8952
skapað
393719
wikitext
text/x-wiki
Orðsifjafræði<includeonly>[[Flokkur:Þýsk orð með orðsifjafræði]]</includeonly><noinclude>[[Flokkur:Orðsifjafræði]]</noinclude>
p4n8535rlp7hfmosvfixpdyvf28dil7
Snið:fr-höfuð
10
119220
393724
2026-09-29T06:27:30Z
Ow! That Hurts!
8952
skapað
393724
wikitext
text/x-wiki
{{höfuð|{{{1|{{PAGENAME}}}}}|IPA={{{IPA|}}}|kyn={{{kyn|}}}}} (''ft.'' {{t|fr|{{{ft|{{PAGENAME}}s}}}}})
9j6nlurng268wo7lxdrjmi21dnj80zj
393725
393724
2026-09-29T06:28:20Z
Ow! That Hurts!
8952
393725
wikitext
text/x-wiki
{{höfuð|{{{1|{{PAGENAME}}}}}|IPA={{{IPA|}}}|kyn={{{kyn|}}}}} (''ft.'' '''{{t|fr|{{{ft|{{PAGENAME}}s}}}}}''')
5wl48odb0fb1um48evx3hp9twjiapjw