打开/关闭菜单
60
73
29
1.1K
武外梗百科
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Module:PageSummary:修订间差异

武外梗百科 爱国好学自强图新的百科全书
无编辑摘要
无编辑摘要
第64行: 第64行:
     local rawExcerpt = mw.ustring.sub(content, 1, 800) or ""
     local rawExcerpt = mw.ustring.sub(content, 1, 800) or ""


     -- 强力提取第一张图片(只抓有效文件名)
     -- 改用更可靠的方式提取第一张 File/文件 图片
     local firstImage = mw.ustring.match(rawExcerpt, "%[%[File:([^|%]]+)")
     local firstImage = nil
                  or mw.ustring.match(rawExcerpt, "%[%[文件:([^|%]]+)")
    local prefixes = {"File:", "文件:"}
 
    for _, prefix in ipairs(prefixes) do
    -- 超级严格验证:必须是图片文件名(含 ":" 和 ".")
        local startPos = mw.ustring.find(rawExcerpt, "%[%[" .. prefix)
    if firstImage then
        if startPos then
        firstImage = mw.text.trim(firstImage)
            local endPos = mw.ustring.find(rawExcerpt, "|", startPos) or mw.ustring.find(rawExcerpt, "%]%]", startPos)
        firstImage = mw.ustring.gsub(firstImage, "[%z%s<>\"]+", "")
            if endPos then
        if not mw.ustring.find(firstImage, ":") or not mw.ustring.find(firstImage, "%.") or mw.ustring.len(firstImage) < 6 then
                local candidate = mw.ustring.sub(rawExcerpt, startPos + #prefix + 2, endPos - 1)
             firstImage = nil
                candidate = mw.text.trim(candidate)
                if candidate ~= "" and mw.ustring.find(candidate, "%.") then  -- 必须有扩展名
                    firstImage = prefix .. candidate
                    break
                end
             end
         end
         end
     end
     end
第111行: 第116行:
         :css('font-size', '14px')
         :css('font-size', '14px')


     -- 只有图片真正有效时才输出,彻底杜绝泄漏
     -- 严格只在有有效图片时输出
     if firstImage and firstImage ~= "" then
     if firstImage and firstImage ~= "" then
         textDiv:wikitext('[[' .. firstImage .. '|120px|right|link=' .. pageName .. ']]')
         textDiv:wikitext('[[' .. firstImage .. '|120px|right|link=' .. pageName .. ']]')