Pumunta sa nilalaman

Module:qualifier

Mula Wiksiyonaryo

Ang dokumentasyon ng ng modyul na ito ay maaaring likhain sa Module:qualifier/doc

local export = {}

local concat = table.concat

--[==[
Balutin ang teksto sa isa o higit pang mga klase ng CSS. Ang `mga klase` ay dapat na isang string; paghiwalayin ang maraming klase na may puwang.
]==]
function export.wrap_css(text, classes)
	return ("<span class=\"%s\">%s</span>"):format(classes, text)
end

--[==[
Balutin ang teksto sa isa o higit pang kwalipikasyon na mga klase ng CSS. Ang `suffix` ay ang suffix na naglalarawan sa uri ng nilalaman, hal. `brac`
para sa parens, `content` para sa nilalaman, `comma` para sa koma. Mga klase ng CSS na <code>ib-<var>suffix</var></code> at
i<code>qualifier-<var>suffix</var></code> ay idinagdag.
]==]
function export.wrap_qualifier_css(text, suffix)
	local css_classes = ("ib-%s qualifier-%s"):format(suffix, suffix)
	return export.wrap_css(text, css_classes)
end

--[==[
Pormat ang isa o higit pang mga kwalipikasyon. Ang `data` ay isang object na may mga sumusunod na field:
* `qualifiers`: Isang solong kwalipikasyon o isang listahan o qualifiers.
* `bukas`: Magpawalang ang bukas na paren na ipinapakita bago ang mga kwalipikasyon. Kung `false` o walang laman na string, walang parent na ipapakita.
* `close`: Magpawalang ang malapit na paren na ipinapakita bago ang mga kwalipikasyon. Kung `false` o walang laman na string, walang paren
  ipinapakita.
* `opencontent`: Nilalaman na ipapakita bago ang mga kwalipikasyon, pagkatapos ng open paren.
* `closecontent`: Nilalaman na ipapakita pagkatapos ng mga kwalipikasyon, bago ang close paren.
* `no_ib_content`: Pigilan ang pagbabalot ng content na may mga klaseng `ib-content` at `qualifier-content`. Parens at kuwit
  ay balot pa rin sa CSS.
* `raw`: Pigilan ang lahat ng CSS wrapping.
]==]
function export.format_qualifiers(data)
	local qualifiers, open, close = data.qualifiers, data.open, data.close
	if type(qualifiers) ~= "table" then
		qualifiers = {qualifiers}
	end

	if not qualifiers[1] then
		return ""
	end

	local parts = {}
	local function ins(text)
		table.insert(parts, text)
	end
	local function wrap_qualifier_css(text, suffix)
		if data.raw then
			return text
		end
		return export.wrap_qualifier_css(text, suffix)
	end

	if open ~= false and open ~= ""then
		ins(wrap_qualifier_css(open or "(", "brac"))
	end
	if data.opencontent then
		ins(data.opencontent)
	end
	local content = concat(qualifiers, wrap_qualifier_css(",", "comma") .. " ")
	if not data.no_ib_content then
		content = wrap_qualifier_css(content, "content")
	end
	ins(content)
	if data.closecontent then
		ins(data.closecontent)
	end
	if close ~= false and close ~= "" then
		ins(wrap_qualifier_css(close or ")", "brac"))
	end
	return concat(parts)
end

--[==[
An older interface onto `format_qualifiers`. Eventually code should be converted to use the new entry point.
]==]
function export.format_qualifier(qualifiers, open, close, opencontent, closecontent, no_ib_content)
	return export.format_qualifiers {
		qualifiers = qualifiers,
		open = open,
		close = close,
		opencontent = opencontent,
		closecontent = closecontent,
		no_ib_content = no_ib_content,
	}
end

local function format_qualifiers_with_clarification(qualifiers, clarification, openquote, closequote)
	local opencontent = export.wrap_css(clarification, "qualifier-clarification") ..
		export.wrap_css(openquote or "“", "qualifier-clarification qualifier-quote")

	local closecontent = export.wrap_css(closequote or "”", "qualifier-clarification qualifier-quote")

	return export.format_qualifiers {
		qualifiers = qualifiers,
		open = "(",
		close = ")",
		opencontent = opencontent,
		closecontent = closecontent,
	}
end

--[==[
Internal implementation of {{tl|sense}}.
]==]
function export.sense(qualifiers)
	return export.format_qualifiers {
		qualifiers = qualifiers
	}.. export.wrap_css(":", "ib-colon sense-qualifier-colon")
end

--[==[
Internal implementation of {{tl|antsense}}.
]==]
function export.antsense(qualifiers)
	return format_qualifiers_with_clarification(qualifiers, "antonym(s) of ") ..
		export.wrap_css(":", "ib-colon sense-qualifier-colon")
end

return export