Module:Wn/bn/Userscript table
Documentation for this module may be created at Module:Wn/bn/Userscript table/doc
local p = {}
function p.generateTable(frame)
local args = frame.args
if next(args) == nil then
args = frame:getParent().args
end
local outerDiv = mw.html.create('div')
outerDiv:addClass('cdx-table')
local tableWrapperDiv = outerDiv:tag('div')
tableWrapperDiv:addClass('cdx-table__table-wrapper')
local html = tableWrapperDiv:tag('table')
html:addClass('cdx-table__table cdx-table__table--borders-vertical sortable')
local header = html:tag('tr')
header:tag('th'):wikitext('স্ক্রিপ্টের নাম'):css('width', '30%'):done()
header:tag('th'):wikitext('বিবরণ'):done()
local i = 1
while args['source' .. i] do
local source = args['source' .. i]
if source and source ~= '' then
local row = html:tag('tr')
-- Add CSS for even rows
if i % 2 == 0 then
row:css('background-color', '#f8f9fa')
end
local desc = args['desc' .. i] or ''
local sourcePage = mw.title.new(source)
local name = source:match('([^/]+)%.js') or 'Unknown'
local nameCell = row:tag('td')
local baseSource = source:match('(.+)%.js')
local basePage = baseSource and mw.title.new(baseSource) or nil
if basePage and basePage.exists then
nameCell:wikitext(string.format('[[%s|%s]] ([[%s|উৎস]])', baseSource, name, source))
else
nameCell:wikitext(string.format('%s ([[%s|উৎস]])', name, source))
end
nameCell:done()
local descCell = row:tag('td')
descCell:wikitext(desc)
local instruction = string.format(
'[[Special:MyPage/common.js&action=edit|<b title="আপনার common.js পাতাটি সম্পাদনা করতে এখানে ক্লিক করুন">এখানে ক্লিক করুন</b>]] এবং এটি প্রতিলেপন করুন:<div><code>{{subst:lusc|1=%s}}</code></div>',
source
)
local collapsibleDiv = descCell:tag('div')
:newline()
:addClass('mw-collapsible mw-collapsed userscripttable-instruction')
collapsibleDiv:tag('div')
:addClass('mw-collapsible-toggle toccolours')
:css('color', '#3366CC')
:css('float', 'none')
:css('margin-top', '0.3em')
:wikitext('কীভাবে ইনস্টল করবেন!')
:done()
collapsibleDiv:tag('div')
:addClass('mw-collapsible-content plainlinks')
:css('margin-top', '0.5em')
:wikitext(instruction)
:done()
descCell:done()
end
i = i + 1
end
return tostring(outerDiv)
end
return p