<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://wflswiki.zelda-110.link/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=240D%3AC010%3A132%3A2%3A0%3A0%3A0%3AB7</id>
	<title>武外梗百科 - 用户贡献 [zh]</title>
	<link rel="self" type="application/atom+xml" href="https://wflswiki.zelda-110.link/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=240D%3AC010%3A132%3A2%3A0%3A0%3A0%3AB7"/>
	<link rel="alternate" type="text/html" href="https://wflswiki.zelda-110.link/wiki/Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/240D:C010:132:2:0:0:0:B7"/>
	<updated>2026-07-30T21:02:32Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wflswiki.zelda-110.link/index.php?title=Module:PageSummary&amp;diff=1063</id>
		<title>Module:PageSummary</title>
		<link rel="alternate" type="text/html" href="https://wflswiki.zelda-110.link/index.php?title=Module:PageSummary&amp;diff=1063"/>
		<updated>2026-02-18T05:35:25Z</updated>

		<summary type="html">&lt;p&gt;240D:C010:132:2:0:0:0:B7：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- 強化版清理：徹底根除內文圖片，保留加粗和連結&lt;br /&gt;
local function cleanContent(text)&lt;br /&gt;
    if not text then return &amp;quot;&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
    -- 1. 基礎清理（注釋、腳注、表格、模板）&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;&amp;lt;!%-%-.-%-%-&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;&amp;lt;ref[^&amp;gt;]*&amp;gt;.-&amp;lt;/ref&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;&amp;lt;ref[^&amp;gt;]-/&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    -- 移除表格 {| ... |}&lt;br /&gt;
    local prev&lt;br /&gt;
    repeat&lt;br /&gt;
        prev = text&lt;br /&gt;
        text = mw.ustring.gsub(text, &amp;quot;{|[^{}]*|}&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    until text == prev&lt;br /&gt;
&lt;br /&gt;
    -- 移除模板 {{ ... }}&lt;br /&gt;
    local count = 0&lt;br /&gt;
    repeat&lt;br /&gt;
        prev = text&lt;br /&gt;
        text = mw.ustring.gsub(text, &amp;quot;{{[^{}]-}}&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
        count = count + 1&lt;br /&gt;
    until text == prev or count &amp;gt; 10&lt;br /&gt;
&lt;br /&gt;
    -- 2. 使用安全占位符保護連結，剔除圖片&lt;br /&gt;
    repeat&lt;br /&gt;
        prev = text&lt;br /&gt;
        text = mw.ustring.gsub(text, &amp;quot;%[%[%s*([^%[%]]-)%s*%]%]&amp;quot;, function(inner)&lt;br /&gt;
            local low = mw.ustring.lower(inner)&lt;br /&gt;
            if low:match(&amp;quot;^file:&amp;quot;) or low:match(&amp;quot;^image:&amp;quot;) or &lt;br /&gt;
               low:match(&amp;quot;^文件:&amp;quot;) or low:match(&amp;quot;^圖像:&amp;quot;) or&lt;br /&gt;
               low:match(&amp;quot;^category:&amp;quot;) or low:match(&amp;quot;^分類:&amp;quot;) then&lt;br /&gt;
                return &amp;quot;&amp;quot; &lt;br /&gt;
            end&lt;br /&gt;
            return &amp;quot;LINKSTART&amp;quot; .. inner .. &amp;quot;LINKEND&amp;quot;&lt;br /&gt;
        end)&lt;br /&gt;
    until text == prev&lt;br /&gt;
&lt;br /&gt;
    -- 3. 清理剩餘雜質&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;\n==+.-==+&amp;quot;, &amp;quot; &amp;quot;) &lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;\n%s*[*#:]+&amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;\n+&amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;%s+&amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    -- 4. 初步恢復連結標籤&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;LINKSTART&amp;quot;, &amp;quot;[[&amp;quot;)&lt;br /&gt;
    text = mw.ustring.gsub(text, &amp;quot;LINKEND&amp;quot;, &amp;quot;]]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    return mw.text.trim(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getSummaryAndImage(frame)&lt;br /&gt;
    local pageName = frame.args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local title = mw.title.new(pageName)&lt;br /&gt;
    if not title or not title.exists then return &amp;quot;&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
    -- 【調整】讀取前 1000 字以確保跨過開頭的表格/模板區&lt;br /&gt;
    local rawContent = title:getContent() or &amp;quot;&amp;quot;&lt;br /&gt;
    local limitedContent = mw.ustring.sub(rawContent, 1, 1000)&lt;br /&gt;
&lt;br /&gt;
    -- 1. 提取第一張縮圖名&lt;br /&gt;
    local firstImage = mw.ustring.match(limitedContent, &amp;quot;%[%[%s*[Ff]ile%s*:([^|%]%s\n]+)&amp;quot;) or &lt;br /&gt;
                       mw.ustring.match(limitedContent, &amp;quot;%[%[%s*文件%s*:([^|%]%s\n]+)&amp;quot;) or&lt;br /&gt;
                       mw.ustring.match(limitedContent, &amp;quot;%[%[%s*[Ii]mage%s*:([^|%]%s\n]+)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    -- 2. 執行清理（此時會得到過濾掉干擾後的純文字）&lt;br /&gt;
    local cleanText = cleanContent(limitedContent)&lt;br /&gt;
    &lt;br /&gt;
    -- 3. 【調整】最終截取約 80 字&lt;br /&gt;
    local targetLen = 80&lt;br /&gt;
    local summary = &amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if mw.ustring.len(cleanText) &amp;lt;= targetLen then&lt;br /&gt;
        summary = cleanText&lt;br /&gt;
    else&lt;br /&gt;
        -- 截取前 80 字並加上省略號&lt;br /&gt;
        summary = mw.ustring.sub(cleanText, 1, targetLen) .. &amp;quot;...&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        -- 閉合加粗標籤 &#039;&#039;&#039;&lt;br /&gt;
        local _, opens = mw.ustring.gsub(summary, &amp;quot;&#039;&#039;&#039;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
        if opens % 2 ~= 0 then summary = summary .. &amp;quot;&#039;&#039;&#039;&amp;quot; end&lt;br /&gt;
        &lt;br /&gt;
        -- 閉合或清理截斷的連結 [[...&lt;br /&gt;
        if mw.ustring.match(summary, &amp;quot;%[%[[^%]]*$&amp;quot;) then&lt;br /&gt;
            summary = mw.ustring.gsub(summary, &amp;quot;%[%[[^%]]*$&amp;quot;, &amp;quot;&amp;quot;) .. &amp;quot;...&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- 4. 渲染 HTML&lt;br /&gt;
    local res = mw.html.create(&#039;div&#039;):css({&lt;br /&gt;
        [&#039;display&#039;] = &#039;flow-root&#039;, &lt;br /&gt;
        [&#039;line-height&#039;] = &#039;1.5&#039;,&lt;br /&gt;
        [&#039;margin-bottom&#039;] = &#039;1em&#039; -- 也可以通过这里控制整个组件下方的间距&lt;br /&gt;
    })&lt;br /&gt;
    &lt;br /&gt;
    -- 标题&lt;br /&gt;
    res:tag(&#039;div&#039;)&lt;br /&gt;
       :css({[&#039;font-size&#039;] = &#039;1.15em&#039;, [&#039;font-weight&#039;] = &#039;bold&#039;, [&#039;margin-bottom&#039;] = &#039;4px&#039;})&lt;br /&gt;
       :wikitext(&#039;[[&#039; .. pageName .. &#039;]]&#039;)&lt;br /&gt;
&lt;br /&gt;
    -- 右侧缩略图&lt;br /&gt;
    if firstImage then&lt;br /&gt;
        res:wikitext(&#039;[[File:&#039; .. firstImage .. &#039;|100px|right|link=&#039; .. pageName .. &#039;]]&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- 摘要正文：在末尾增加空行&lt;br /&gt;
    -- 方法：在 summary 字符串后直接加上 &amp;lt;br /&amp;gt; 或 \n\n&lt;br /&gt;
    res:tag(&#039;div&#039;)&lt;br /&gt;
       :wikitext(summary .. &#039;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;) &lt;br /&gt;
&lt;br /&gt;
    return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>240D:C010:132:2:0:0:0:B7</name></author>
	</entry>
</feed>