ماڈیول:Block quote
دستاویز [تخلیق]
شاید آپ اس اسکریبنٹو ماڈیول کا دستاویزی صفحہ تخلیق کرنا چاہتے ہیں۔ صارفین ماڈیول کے تختہ مشق (تخلیق | آئینہ) اور ثابتات (تخلیق) میں تجربات کرسکتے ہیں۔ براہ کرم /دستاویز کے ذیلی صفحہ پر زمرہ جات شامل فرمائیں۔ اس ماڈیول کے ذیلی صفحات۔ |
-- This is a meta-module for producing block quotations
local getArgs = require('Module:Arguments').getArgs
local blockquote = {}
blockquote.__index = blockquote
function blockquote.new()
local obj = {}
obj.classes = { 'templatequote' }
setmetatable(obj, blockquote)
return obj
end
function blockquote:setBlockquoteParameters(args)
self.quote = args.quote
self.author = args.author
if args.bordered then
self:addClass('toccolours')
end
if args.fit then
self:addStyle('display:table;')
end
self:addStyle(args.style);
end
function blockquote:addClass(class)
if type(class) ~= 'string' then return end
self.classes = self.classes or {}
table.insert(self.classes, class)
end
function blockquote:addStyle(style)
if type(style) ~= 'string' then return end
self.style = self.style or ''
self.style = self.style .. style
end
function blockquote:export()
local aquote = mw.html.create( 'blockquote' )
if self.id then
aquote:attr('id', self.id)
end
for i, class in ipairs(self.classes or {}) do
aquote
:addClass(class)
end
aquote:cssText(self.style)
aquote:wikitext(self.quote)
-- Add a <footer> (or <div> for now) with the citation
if self.author or self.source then
aquote:tag('div')
:addClass('templatequotecite')
:wikitext(self.author);
end
return tostring(aquote)
end
local function main(args)
local bq = blockquote.new()
bq:setBlockquoteParameters(args)
return bq:export()
end
local function mainFrame(frame)
local args = getArgs(frame, {trim = false, removeBlanks = false})
main(args)
end
local p = {
main = mainFrame,
test = main
}
return p