Bước tới nội dung

Mô đun:Disambiguation

Bách khoa toàn thư mở Wikipedia
local p = {}local mRedirect = require('Mô đun:Redirect')local disambiguationTemplates = mw.loadData('Mô đun:Disambiguation/templates')local function capitalize(s) -- Hàm này chỉ hoạt động đối với chuỗi ký tự ASCII. Nếu wiki của bạn có -- bản mẫu định hướng sử dụng chuỗi Unicode, hãy sử dụng dòng được comment. -- viwiki chỉ sử dụng thao tác chuỗi ASCII ở đây để cải thiện hiệu suất return s:sub(1, 1):upper() .. s:sub(2, -1) -- return mw.ustring.upper(mw.ustring.sub(1, 1)) .. mw.ustring.sub(2, -1)endlocal function isDisambiguationTemplate(template) return disambiguationTemplates[capitalize(template)] or falseendp.isDisambiguation = function(content) -- trả về false nếu không có nội dung if content == nil then return false end -- trang đổi hướng không phải là trang định hướng if mRedirect.getTargetFromText(content) ~= nil then return false end -- kiểm tra bản mẫu định hướng trong nội dung trang local templateNames = {} for template in string.gmatch(content, "{{%s*([^|}]-)%s*[|}]") do if isDisambiguationTemplate(template) then return true end end -- kiểm tra từ ma thuật if string.find(content, "__DISAMBIG__", 1, true) ~= nil then return true end return falseendp._isDisambiguationPage = function(page) -- Kiểm tra xem tên trang có chứa "(định hướng)" hay không if string.find(page, "(định hướng)",0,true) ~= nil then return true; end -- Kiểm tra xem nội dung trang có bản mẫu định hướng hay không local title = mw.title.new(page) if not title then return false end local content = title:getContent() return p.isDisambiguation(content)end-- Entry points for templatesp.isDisambiguationPage = function(frame) local title = frame.args[1] return p._isDisambiguationPage(title) and "yes" or ""endreturn p