Module:Sister project links: Difference between revisions
Appearance
Created page with "local projectsTemplate = { ['cphe'] = { ['logo']='סמל ב"ה.png', ['projectName'] = 'חב"דפדיה', ['description']='חב"דפדיה', ['display']='שפה זו', ['pageName'] = '' }, ['chabadtext'] = { ['logo']='סמל ב"ה.png', ['projectName'] = 'חב"דטקסט', ['description']='טקסט', ['display']='חב"דטקסט', ['projectPrefix']='text' }, ['chabadquote'] = { ['logo']='סמל ב"ה.png', ['projectName'] = 'חב"דציט..." |
No edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 13: | Line 13: | ||
['display']='חב"דטקסט', | ['display']='חב"דטקסט', | ||
['projectPrefix']='text' | ['projectPrefix']='text' | ||
}, | |||
['chabadquote'] = { | ['chabadquote'] = { | ||
['logo']='סמל ב"ה.png', | ['logo']='סמל ב"ה.png', | ||
| Line 20: | Line 21: | ||
['display']='חב"דציטוט', | ['display']='חב"דציטוט', | ||
['projectPrefix']='zitut' | ['projectPrefix']='zitut' | ||
} | }, | ||
['english chabadpedia'] = { | |||
['logo']='ס⁸מל ב"ה.png', | |||
['projectName'] = 'english chabadpedia', | |||
['description']='english chabadpedia', | |||
['display']='חבדפדיה אנגלית', | |||
['projectPrefix']='english chabadpedia' | |||
}, | |||
} | } | ||
| Line 38: | Line 47: | ||
template='wikisource', | template='wikisource', | ||
name='chabadtext' | name='chabadtext' | ||
}, | |||
{ | |||
arg='english chabadpedia', | |||
template='wikisource', | |||
name='english chabadpedia' | |||
} | } | ||
} | } | ||
Latest revision as of 18:22, 8 February 2025
Documentation for this module may be created at Module:Sister project links/doc
local projectsTemplate = {
['cphe'] = {
['logo']='סמל ב"ה.png',
['projectName'] = 'חב"דפדיה',
['description']='[[חב"דפדיה]]',
['display']='שפה זו',
['pageName'] = ''
},
['chabadtext'] = {
['logo']='סמל ב"ה.png',
['projectName'] = 'חב"דטקסט',
['description']='טקסט',
['display']='חב"דטקסט',
['projectPrefix']='text'
},
['chabadquote'] = {
['logo']='סמל ב"ה.png',
['projectName'] = 'חב"דציטוט',
['description']='ציטוטים',
['display']='חב"דציטוט',
['projectPrefix']='zitut'
},
['english chabadpedia'] = {
['logo']='ס⁸מל ב"ה.png',
['projectName'] = 'english chabadpedia',
['description']='english chabadpedia',
['display']='חבדפדיה אנגלית',
['projectPrefix']='english chabadpedia'
},
}
function render(frame)
local args = require('Module:Arguments').getArgs(frame)
local title = mw.title.getCurrentTitle().text
local projectLinks = {}
local projects = {
{
arg='חב"דציטוט',
template='wikiquote',
name='chabadzitut'
},
{
arg='חב"דטקסט',
template='wikisource',
name='chabadtext'
},
{
arg='english chabadpedia',
template='wikisource',
name='english chabadpedia'
}
}
for i, proj in ipairs(projects) do
if args[proj['arg']] then
local t = projectsTemplate[proj['template']]
local defaultDisplayName = args[proj['arg']]
t['pageName'] = args[proj['arg']]
t['pageDisplay'] = args['שם ' .. proj['arg']] or defaultDisplayName
table.insert(projectLinks, t)
else
end
local i = 2
local additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
while args[additionalArg] do
local t = mw.clone( projectsTemplate[proj['template']] )
t['pageName'] = args[additionalArg]
t['pageDisplay'] = args[mw.ustring.format('שם %s %i', proj['arg'], i)] or t['pageName']
table.insert(projectLinks, t)
i=i+1
additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
end
end
local float = 'float: left;'
if args['1'] == 'ימין' then
float = ''
end
local templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'יחידה:Sister project links/styles.css' }
}
local root = mw.html.create('table')
root
:addClass('sistersitebox')
:addClass('plainlinks')
:addClass('noprint')
:cssText('margin: 0 1em 0.5em 0;' .. float)
root:tag('tr'):tag('th'):css('text-align', 'center'):wikitext('מיזמי חב"דפדיה')
local cat = ''
if not next(projectLinks) then
mw.log('Category added: קטגוריה:שגיאות פרמטריות בתבנית מיזמים')
cat = '[[קטגוריה:שגיאות פרמטריות בתבנית מיזמים]]'
else
for k,v in pairs(projectLinks) do
root:tag('tr'):tag('td'):node(renderProject(v))
end
end
return tostring(root) .. templatestyles .. cat
end
function renderProject(projectTemplate)
return mw.html.create('div')
:addClass('sisterwikilinkT')
:wikitext(mw.ustring.format("[[File:%s|20px|link=|%s]] %s ב%s: '''[[:%s:%s|%s]]'''",
projectTemplate['logo'], projectTemplate['projectName'],
projectTemplate['description'], projectTemplate['display'],
projectTemplate['projectPrefix'], projectTemplate['pageName'], projectTemplate['pageDisplay']))
end
return {
render=render
}