模組:修訂追蹤
外觀
可在模組:修訂追蹤/doc建立此模組的說明文件
local p = {}
function p.display(frame)
-- 除錯:檢查frame
if not frame then
return "錯誤:沒有frame參數"
end
local dataPage = 'Project:修訂追蹤資料庫'
-- 除錯:檢查頁面
local title = mw.title.new(dataPage)
if not title then
return "錯誤:無法創建title物件,頁面名稱:" .. dataPage
end
if not title.exists then
return "錯誤:頁面不存在:" .. dataPage
end
-- 除錯:檢查內容
local content = title:getContent()
if not content then
return "錯誤:無法獲取頁面內容"
end
if content == '' then
return "頁面內容為空"
end
-- 除錯:顯示原始內容(前100字符)
local debug_content = string.sub(content, 1, 100)
local rows = {}
local line_count = 0
local match_count = 0
-- 解析內容
for line in mw.text.gsplit(content, '\n') do
line_count = line_count + 1
line = mw.text.trim(line)
if line ~= '' then
local title_name, user, date = string.match(line, '{{([^|]+)|([^|]+)|([^}]+)}}')
if title_name and user and date then
match_count = match_count + 1
title_name = mw.text.trim(title_name)
user = mw.text.trim(user)
date = mw.text.trim(date)
table.insert(rows, string.format('|-\n| [[%s]] || [[User:%s|%s]] || %s',
title_name, user, user, date))
end
end
end
-- 除錯資訊
local debug_info = string.format("除錯資訊:處理了%d行,找到%d個匹配<br/>", line_count, match_count)
debug_info = debug_info .. "內容開頭:" .. debug_content .. "<br/><br/>"
-- 如果沒有找到任何資料
if #rows == 0 then
return debug_info .. "目前沒有修訂追蹤資料。"
end
-- 建立表格
local header = '{| class="wikitable sortable"\n! 條目 !! 參與者 !! 起始日期\n'
local footer = '\n|}'
return debug_info .. header .. table.concat(rows, '\n') .. footer
end
-- 簡單測試函數
function p.test(frame)
return "模組正常運作!frame參數:" .. tostring(frame)
end
return p