Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Description: Difference between revisions

From Neodyland Wiki
No edit summary
No edit summary
Line 23: Line 23:
Inputs:
Inputs:
   1) text - text to display
   1) text - text to display
   2) textLang - langiage code for the above text
   2) textLang - language code for the above text
   3) inline -  
   3) inline - Optional, default is false. When set to true, forces the template to be displayed
    inline, so that it does not break the current paragraph (that makes possible to put several
descriptions side by side on a single line)
]]
]]
function p.langWrapper(text, textLang, inline)  
function p.langWrapper(text, textLang, inline)  
inline = core.yesno(inline, false)  and 'inline' or nil
local wordsep  = mw.message.new( "Word-separator" ):inLanguage(textLang):plain()
local wordsep  = mw.message.new( "Word-separator" ):inLanguage(textLang):plain()
local LangName = mw.language.fetchLanguageName( textLang, textLang)
local LangName = mw.language.fetchLanguageName( textLang, textLang)
Line 35: Line 38:
:addClass(textLang)  -- classes:  "en", "de" etc.
:addClass(textLang)  -- classes:  "en", "de" etc.
:wikitext('<b>' .. language:ucfirst(LangName)..':</b>')
:wikitext('<b>' .. language:ucfirst(LangName)..':</b>')
local dtag = mw.html.create((inline=='2') and 'span' or 'div')
local dtag = mw.html.create('div')
:addClass('description')      -- div.description is tracked by mw:Extension:CommonsMetadata
:addClass('description')      -- div.description is tracked by mw:Extension:CommonsMetadata
:addClass('mw-content-'..dir) -- mw-content-rtl and mw-content-ltr are defined in mediawiki-code (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/208332)
:addClass('mw-content-'..dir) -- mw-content-rtl and mw-content-ltr are defined in mediawiki-code (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/208332)
Line 41: Line 44:
:attr('dir', dir)
:attr('dir', dir)
:attr('lang', textLang)
:attr('lang', textLang)
:css('display', (inline=='1') and 'inline' or nil)  
:css('display', inline)  
:wikitext(tostring(ltag) .. wordsep .. text)
:wikitext(tostring(ltag) .. wordsep .. text)
return tostring(dtag)
return tostring(dtag)
Line 49: Line 52:
local args = core.getArgs(frame)
local args = core.getArgs(frame)
local desc
local desc
local inline = (args.inline ~= nil)
if args.text == nil then -- if no string than add error message and a category
if args.text == nil then -- if no string than add error message and a category
local cat = 'Category:Language templates with no text displayed'
local cat = 'Category:Language templates with no text displayed'

Revision as of 05:25, 28 February 2021

Module documentation[ create · purge ]
This documentation is transcluded from Module:Description/doc.
--[[  
  __  __           _       _        ____                      _       _   _             
 |  \/  | ___   __| |_   _| | ___ _|  _ \  ___  ___  ___ _ __(_)_ __ | |_(_) ___  _ __  
 | |\/| |/ _ \ / _` | | | | |/ _ (_) | | |/ _ \/ __|/ __| '__| | '_ \| __| |/ _ \| '_ \ 
 | |  | | (_) | (_| | |_| | |  __/_| |_| |  __/\__ \ (__| |  | | |_) | |_| | (_) | | | |
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)____/ \___||___/\___|_|  |_| .__/ \__|_|\___/|_| |_|
                                                               |_|                      

Description is a module implementing functionality of {{Description}}
template, which is used by {{en}}, {{de}} and other language templates.

Authors and maintainers:
* User:Jarekt  
]]

local core = require('Module:Core')
local p = {}

------------------------------------------------------------------------------
--[[
display a language followed by a message. Like "English: Hello" with extensive HTML marking
Code equivalent to https://commons.wikimedia.org/wiki/Template:Description with only 3 inputs
Inputs:
  1) text - text to display
  2) textLang - language code for the above text
  3) inline - Optional, default is false. When set to true, forces the template to be displayed 
     inline, so that it does not break the current paragraph (that makes possible to put several 
	 descriptions side by side on a single line)
]]
function p.langWrapper(text, textLang, inline) 
	inline = core.yesno(inline, false)  and 'inline' or nil
	local wordsep  = mw.message.new( "Word-separator" ):inLanguage(textLang):plain()
	local LangName = mw.language.fetchLanguageName( textLang, textLang)
	local language = mw.language.new( textLang )
	local dir      = language:getDir()  
	local ltag = mw.html.create('span')  -- bold language name string
		:addClass('language') -- class: "language" and "en", "de" etc.
		:addClass(textLang)   -- classes:  "en", "de" etc.	
		:wikitext('<b>' .. language:ucfirst(LangName)..':</b>')
	local dtag = mw.html.create('div')
		:addClass('description')      -- div.description is tracked by mw:Extension:CommonsMetadata
		:addClass('mw-content-'..dir) -- mw-content-rtl and mw-content-ltr are defined in mediawiki-code (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/208332)
		:addClass(textLang)           -- not sure where "en", "de" etc. are defined
		:attr('dir', dir)
		:attr('lang', textLang)
		:css('display', inline) 
		:wikitext(tostring(ltag) .. wordsep .. text)
	return tostring(dtag)
end

function p.description(frame) 
	local args = core.getArgs(frame)
	local desc
	local inline = (args.inline ~= nil)
	if args.text == nil then -- if no string than add error message and a category
		local cat = 'Category:Language templates with no text displayed'
		local msg  = core.formatMessage('I18n/DescriptionError.tab', 'missing text', lang)
		msg = mw.html.create('span'):addClass("error"):wikitext(msg)
		msg = '[' .. frame:callParserFunction{ name = 'fullurl', args={cat} }  .. tostring(msg) .. ']'
		msg = mw.html.create('span'):addClass("plainlinks"):wikitext(msg)
		desc = p.langWrapper(tostring(msg) or 'nil', args.lang, args.inline)
		local namespace = mw.title.getCurrentTitle().namespace
		local LUT = {[0]=1, [6]=1, [10]=1, [14]=1, [100]=1, [106]=1}
		if LUT[namespace]==1 then
			desc = desc .. '[[' .. cat .. ']]'
		end
	else
		desc = p.langWrapper(args.text, args.lang, args.inline)
	end
	return desc
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.