模块:ExampleTable:修订间差异

Raxter留言 | 贡献
无编辑摘要
Raxter留言 | 贡献
无编辑摘要
第5行: 第5行:
     local args = getArgs(frame)
     local args = getArgs(frame)
      
      
    -- 获取输入和输出参数
     local input = args[1] or ""
     local input = args[1] or ""
     local output = args[2]
     local output = args[2]
      
      
     -- 检测input中是否包含nowiki标签
     -- 如果 output 未提供,则移除左侧的 <nowiki> 标签并渲染内容
    local has_nowiki = input:match("</?nowiki>")
   
     if not output then
     if not output then
        -- 检查输入是否包含 <nowiki> 标签
        local has_nowiki = input:match("</?nowiki>")
       
         if has_nowiki then
         if has_nowiki then
             -- 有nowiki标签:移除nowiki标签并渲染内容,同时去除多余空格
             -- 移除 <nowiki> 标签并渲染内容
             local nowiki_content = input:gsub("</?nowiki>", ""):gsub("^%s*(.-)%s*$", "%1")
             local nowiki_content = input:gsub("</?nowiki>", "")
             output = frame:preprocess(nowiki_content)
             output = frame:preprocess(nowiki_content)
         else
         else
             -- 没有nowiki标签:input已经被预处理,所以output也用同样的值
             -- 如果输入没有 <nowiki> 标签,则直接使用输入作为输出
             output = input
             output = input
         end
         end
    end
   
    -- 如果是嵌套调用,确保input保持原始状态
    if frame:getParent() then
        input = args[1] or ""
     end
     end
      
      
第30行: 第27行:
     output = output:gsub("\n+", "\n"):gsub("^%s*(.-)%s*$", "%1")
     output = output:gsub("\n+", "\n"):gsub("^%s*(.-)%s*$", "%1")
      
      
    -- 创建表格HTML
     local tableHtml = mw.html.create('table')
     local tableHtml = mw.html.create('table')
         :addClass('wikitable')
         :addClass('wikitable')
第50行: 第48行:
                 :tag('pre')
                 :tag('pre')
                     :css('white-space', 'pre-wrap')
                     :css('white-space', 'pre-wrap')
                     :wikitext(input)
                     :wikitext(input) -- 左侧显示原始输入(包括 <nowiki> 标签)
                 :done()
                 :done()
             :done()
             :done()
第58行: 第56行:
                     width = '50%'
                     width = '50%'
                 })
                 })
                 :wikitext(output)
                 :wikitext(output) -- 右侧显示输出内容
             :done()
             :done()
         :done()
         :done()