模块:Dictionary-Views.lua:修订间差异

来自「荏苒之境」
无编辑摘要
无编辑摘要
第8行: 第8行:


views.vocabulary = function(rows)
views.vocabulary = function(rows)
     local words = html.create("table")
     local table_elem = html.create("table")
     local headers = rows[1]
     local headers = rows[1]
     local extra = csv.parse_row(headers.Extra)
     local word_start = 2
   
    local word_header = words:tag("tr")
    word_header:tag("th"):wikitext(headers.Spelling)
    word_header:tag("th"):wikitext(headers.Definition)


     for i = 1, #extra do
     if headers.Spelling ~= "__META__" then
        word_header:tag("th"):wikitext(extra[i])
        mw.addWarning("错误:未找到词典头信息!")
        word_start = 1
    else
        local headers_elem = table_elem:tag("tr")
        headers_elem:tag("th"):wikitext(headers.Spelling)
        headers_elem:tag("th"):wikitext(headers.Definition)
 
        local headers_extra = csv.parse_row(headers.Extra)
        for i = 1, #headers_extra do
            headers_elem:tag("th"):wikitext(headers_extra[i])
        end
     end
     end


     for i = 2, #rows do
     for i = word_start, #rows do
         local row = rows[i]
         local row = rows[i]
         local row_extra = csv.parse_row(row.Extra)
         local row_extra = csv.parse_row(row.Extra)
         local word_row = words:tag("tr")
         local word_row = table_elem:tag("tr")


         word_row:tag("td"):tag("b"):wikitext(row.Spelling)
         word_row:tag("td"):tag("b"):wikitext(row.Spelling)
第33行: 第39行:
     end
     end


     return words
     return table_elem
end
end


return views
return views

2025年8月4日 (一) 17:23的版本

此模块的文档可以在模块:Dictionary-Views.lua/doc创建

local csv = require("Module:Csv.lua")
local html = mw.html

local views = {}

local TABLE = "Dictionary"
views.TABLE = TABLE

views.vocabulary = function(rows)
    local table_elem = html.create("table")
    local headers = rows[1]
    local word_start = 2

    if headers.Spelling ~= "__META__" then
        mw.addWarning("错误:未找到词典头信息!")
        word_start = 1
    else
        local headers_elem = table_elem:tag("tr")
        headers_elem:tag("th"):wikitext(headers.Spelling)
        headers_elem:tag("th"):wikitext(headers.Definition)

        local headers_extra = csv.parse_row(headers.Extra)
        for i = 1, #headers_extra do
            headers_elem:tag("th"):wikitext(headers_extra[i])
        end
    end

    for i = word_start, #rows do
        local row = rows[i]
        local row_extra = csv.parse_row(row.Extra)
        local word_row = table_elem:tag("tr")

        word_row:tag("td"):tag("b"):wikitext(row.Spelling)
        word_row:tag("td"):wikitext(row.Definition)

        for j = 1, #row_extra do
            word_row:tag("td"):wikitext(row_extra[j])
        end
    end

    return table_elem
end

return views