<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://unimage.wcnm.pw/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ADev%2FQuote</id>
	<title>模块:Dev/Quote - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://unimage.wcnm.pw/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ADev%2FQuote"/>
	<link rel="alternate" type="text/html" href="https://unimage.wcnm.pw/index.php?title=%E6%A8%A1%E5%9D%97:Dev/Quote&amp;action=history"/>
	<updated>2026-09-01T01:40:32Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://unimage.wcnm.pw/index.php?title=%E6%A8%A1%E5%9D%97:Dev/Quote&amp;diff=718&amp;oldid=prev</id>
		<title>WikiAdmin：​从 Fandom Developer Wiki 本地化全局模块，源修订 214339</title>
		<link rel="alternate" type="text/html" href="https://unimage.wcnm.pw/index.php?title=%E6%A8%A1%E5%9D%97:Dev/Quote&amp;diff=718&amp;oldid=prev"/>
		<updated>2026-08-31T12:54:53Z</updated>

		<summary type="html">&lt;p&gt;从 Fandom Developer Wiki 本地化全局模块，源修订 214339&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- 来源：https://dev.fandom.com/wiki/Module%3AQuote&lt;br /&gt;
-- 许可：CC BY-SA，作者与修订记录见来源页面&lt;br /&gt;
-- &amp;lt;nowiki&amp;gt;&lt;br /&gt;
local Quote = {}&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Dev/Arguments&amp;#039;).getArgs&lt;br /&gt;
local i18n = require(&amp;#039;Module:Dev/I18n&amp;#039;).loadMessages(&amp;#039;Quote&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function build(quote_contents, quote_source, options)&lt;br /&gt;
	local quote_container = mw.html.create(&amp;#039;blockquote&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;pull-quote&amp;#039;)&lt;br /&gt;
		:addClass(options.align)&lt;br /&gt;
		:addClass(options.extraclasses)&lt;br /&gt;
		:css(options.styles)&lt;br /&gt;
		:cssText(options.extrastyles)&lt;br /&gt;
		:node(quote_contents)&lt;br /&gt;
&lt;br /&gt;
	if quote_source then&lt;br /&gt;
		quote_container:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;pull-quote__source&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;cite&amp;#039;)&lt;br /&gt;
				:wikitext(quote_source)&lt;br /&gt;
				:done()&lt;br /&gt;
			:done()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return quote_container&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function options(args)&lt;br /&gt;
	local options = {}&lt;br /&gt;
&lt;br /&gt;
	options.styles = {}&lt;br /&gt;
	options.extraclasses = i18n:parameter(&amp;#039;class&amp;#039;, args)&lt;br /&gt;
	options.extrastyles = i18n:parameter(&amp;#039;style&amp;#039;, args)&lt;br /&gt;
	options.align = &amp;#039;&amp;#039;&lt;br /&gt;
	local align = i18n:parameter(&amp;#039;align&amp;#039;, args)&lt;br /&gt;
	if align then&lt;br /&gt;
		options.align = &amp;#039;pull-quote--&amp;#039; .. align&lt;br /&gt;
		options.styles[&amp;#039;width&amp;#039;] = i18n:parameter(&amp;#039;width&amp;#039;, args) or&lt;br /&gt;
								  i18n:parameter(&amp;#039;quotewidth&amp;#039;, args) or&lt;br /&gt;
								  &amp;#039;300px&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return options&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- let MediaWiki parser auto-generate &amp;lt;p&amp;gt; tags&lt;br /&gt;
local function paragraph(quotetext)&lt;br /&gt;
	return &amp;#039;\n&amp;#039; .. quotetext .. &amp;#039;\n&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Quote.quote(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
	local options = options(args)&lt;br /&gt;
&lt;br /&gt;
	local quotetext = args[1] or&lt;br /&gt;
					  i18n:parameter(&amp;#039;quotetext&amp;#039;, args) or&lt;br /&gt;
					  i18n:parameter(&amp;#039;quote&amp;#039;, args) or&lt;br /&gt;
					  i18n:parameter(&amp;#039;text&amp;#039;, args) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local person = args[2] or&lt;br /&gt;
				   i18n:parameter(&amp;#039;person&amp;#039;, args) or&lt;br /&gt;
				   i18n:parameter(&amp;#039;speaker&amp;#039;, args) or&lt;br /&gt;
				   i18n:parameter(&amp;#039;personquoted&amp;#039;, args) or nil&lt;br /&gt;
&lt;br /&gt;
	local source = args[3] or&lt;br /&gt;
				   i18n:parameter(&amp;#039;source&amp;#039;, args) or&lt;br /&gt;
				   i18n:parameter(&amp;#039;quote_source&amp;#039;, args) or nil&lt;br /&gt;
&lt;br /&gt;
	local quote_contents = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;pull-quote__text&amp;#039;)&lt;br /&gt;
		:wikitext(paragraph(quotetext))&lt;br /&gt;
&lt;br /&gt;
	local quote_source = person&lt;br /&gt;
&lt;br /&gt;
	if person and source then&lt;br /&gt;
		quote_source = person .. &amp;#039;, &amp;#039; .. source&lt;br /&gt;
	elseif source then&lt;br /&gt;
		quote_source = source&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return build(quote_contents, quote_source, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Quote.dialogue(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
	local options = options(args)&lt;br /&gt;
&lt;br /&gt;
	local quote_contents = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;pull-quote__text&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local quote_source&lt;br /&gt;
&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		local next_param = i + 1&lt;br /&gt;
		&lt;br /&gt;
		if i % 2 ~= 0 then&lt;br /&gt;
			quote_contents:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;pull-quote__line&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;strong&amp;#039;)&lt;br /&gt;
					:addClass(&amp;#039;pull-quote__speaker&amp;#039;)&lt;br /&gt;
					:wikitext(v .. &amp;#039;:&amp;#039;)&lt;br /&gt;
					:done()&lt;br /&gt;
				:wikitext(&amp;#039; &amp;#039; .. paragraph(args[next_param]))&lt;br /&gt;
				:done()&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local context = i18n:parameter(&amp;#039;context&amp;#039;, args)&lt;br /&gt;
	local source = i18n:parameter(&amp;#039;source&amp;#039;, args)&lt;br /&gt;
	if context and source then&lt;br /&gt;
		quote_source = context .. &amp;#039;, &amp;#039; .. source&lt;br /&gt;
	elseif context and not source then&lt;br /&gt;
		quote_source = context&lt;br /&gt;
	elseif source and not context then&lt;br /&gt;
		quote_source = source&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return build(quote_contents, quote_source, options)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return Quote&lt;br /&gt;
-- &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiAdmin</name></author>
	</entry>
</feed>