2023-04-27 19:40:27更新でのソースとプレビューを表示しています。
<div><p>このモジュールについての説明文ページを モジュール:Quote/doc に作成できます</p></div><div><a href='#L-1'></a>-- <nowiki><a href='#L-2'></a>local Quote = {}<a href='#L-3'></a>local getArgs = require('Dev:Arguments').getArgs<a href='#L-4'></a>local i18n = require('Dev:I18n').loadMessages('Quote')<a href='#L-5'></a><a href='#L-6'></a>local function build(quotecontents, quotesource, options)<a href='#L-7'></a> local quotecontainer = mw.html.create('blockquote')<a href='#L-8'></a> :addClass('pull-quote')<a href='#L-9'></a> :addClass(options.align)<a href='#L-10'></a> :addClass(options.extraclasses)<a href='#L-11'></a> :css(options.styles)<a href='#L-12'></a> :cssText(options.extrastyles)<a href='#L-13'></a><a href='#L-14'></a> quotecontainer:node(quotecontents)<a href='#L-15'></a><a href='#L-16'></a> if quotesource then<a href='#L-17'></a> local quote_source = quotecontainer:tag('cite')<a href='#L-18'></a> :addClass('pull-quote__source')<a href='#L-19'></a> :wikitext(quotesource)<a href='#L-20'></a> end<a href='#L-21'></a><a href='#L-22'></a> return quotecontainer<a href='#L-23'></a>end<a href='#L-24'></a><a href='#L-25'></a>local function options(args)<a href='#L-26'></a> local options = {}<a href='#L-27'></a><a href='#L-28'></a> options.styles = {}<a href='#L-29'></a> options.extraclasses = i18n:parameter('class', args)<a href='#L-30'></a> options.extrastyles = i18n:parameter('style', args)<a href='#L-31'></a> options.align = ''<a href='#L-32'></a> local align = i18n:parameter('align', args)<a href='#L-33'></a> if align then<a href='#L-34'></a> options.align = 'pull-quote--' .. align<a href='#L-35'></a> options.styles['width'] = i18n:parameter('width', args) or<a href='#L-36'></a> i18n:parameter('quotewidth', args) or<a href='#L-37'></a> '300px'<a href='#L-38'></a> end<a href='#L-39'></a><a href='#L-40'></a> return options<a href='#L-41'></a>end<a href='#L-42'></a><a href='#L-43'></a>function Quote.quote(frame)<a href='#L-44'></a> local args = getArgs(frame)<a href='#L-45'></a><a href='#L-46'></a> local options = options(args)<a href='#L-47'></a><a href='#L-48'></a> local quotetext=args[1] or<a href='#L-49'></a> i18n:parameter('quotetext', args) or<a href='#L-50'></a> i18n:parameter('quote', args) or<a href='#L-51'></a> i18n:parameter('text', args)<a href='#L-52'></a> local person = args[2] or<a href='#L-53'></a> i18n:parameter('person', args) or<a href='#L-54'></a> i18n:parameter('speaker', args) or<a href='#L-55'></a> i18n:parameter('personquoted', args) or nil<a href='#L-56'></a> local source = args[3] or<a href='#L-57'></a> i18n:parameter('source', args) or<a href='#L-58'></a> i18n:parameter('quotesource', args) or nil<a href='#L-59'></a><a href='#L-60'></a> local quotecontents = mw.html.create('p')<a href='#L-61'></a> :addClass('pull-quote__text')<a href='#L-62'></a> :wikitext(quotetext)<a href='#L-63'></a><a href='#L-64'></a> local quotesource = person<a href='#L-65'></a><a href='#L-66'></a> if source then<a href='#L-67'></a> quotesource = person .. ', ' .. source<a href='#L-68'></a> end<a href='#L-69'></a><a href='#L-70'></a> return build(quotecontents, quotesource, options)<a href='#L-71'></a>end<a href='#L-72'></a><a href='#L-73'></a>function Quote.dialogue(frame)<a href='#L-74'></a> local args = getArgs(frame)<a href='#L-75'></a><a href='#L-76'></a> local options = options(args)<a href='#L-77'></a><a href='#L-78'></a> local quotecontents = mw.html.create('div')<a href='#L-79'></a> :addClass('pull-quote__text')<a href='#L-80'></a><a href='#L-81'></a> local quotesource<a href='#L-82'></a><a href='#L-83'></a> for i, v in ipairs(args) do<a href='#L-84'></a> local next_param = i + 1<a href='#L-85'></a><a href='#L-86'></a> if i % 2 ~= 0 then<a href='#L-87'></a> quotecontents:tag('div')<a href='#L-88'></a> :addClass('pull-quote__line')<a href='#L-89'></a> :tag('strong')<a href='#L-90'></a> :addClass('pull-quote__speaker')<a href='#L-91'></a> :wikitext(v .. ':')<a href='#L-92'></a> :done()<a href='#L-93'></a> :wikitext(' ' .. args[next_param])<a href='#L-94'></a> :done()<a href='#L-95'></a> end<a href='#L-96'></a> end<a href='#L-97'></a><a href='#L-98'></a> local context=i18n:parameter('context', args)<a href='#L-99'></a> local source = i18n:parameter('source', args)<a href='#L-100'></a> if context and source then<a href='#L-101'></a> quotesource = context .. ', ' .. source<a href='#L-102'></a> elseif context and not source then<a href='#L-103'></a> quotesource = context<a href='#L-104'></a> elseif source and not context then<a href='#L-105'></a> quotesource = source<a href='#L-106'></a> end<a href='#L-107'></a><a href='#L-108'></a> return build(quotecontents, quotesource, options)<a href='#L-109'></a><a href='#L-110'></a>end<a href='#L-111'></a><a href='#L-112'></a>return Quote</div>
<br>
この記事は、CC BY-SAのもとで公表された<a href="https://fifty-people-craft.fandom.com/ja/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Quote">「モジュール:Quote」</a>を改変し作成しました。特に記載されていない限り、CC BY-SAのもとで利用可能です。}
このモジュールについての説明文ページを モジュール:Quote/doc に作成できます