模块:Dictionary/Entry.lua:修订间差异
来自「荏苒之境」
无编辑摘要 |
无编辑摘要 |
||
(未显示同一用户的3个中间版本) | |||
第7行: | 第7行: | ||
local DICT_TABLE = dict_views.TABLE | local DICT_TABLE = dict_views.TABLE | ||
local DICT_HEADER_PRIORITY = dict_utils.HEADER_PRIORITY | local DICT_HEADER_PRIORITY = tostring(dict_utils.HEADER_PRIORITY) | ||
local entry = {} | local entry = {} | ||
第16行: | 第16行: | ||
local spelling = args.spelling | local spelling = args.spelling | ||
local | local rows = cargo.query(DICT_TABLE, "Spelling,Definition,Extra,Priority,_pageName", { | ||
where = string.format( | where = string.format( | ||
[[Language="%s" AND (Spelling="%s" OR Priority=% | [[Language="%s" AND (Spelling="%s" OR Priority=%s)]], | ||
language, spelling, DICT_HEADER_PRIORITY) | language, spelling, DICT_HEADER_PRIORITY) | ||
}) | }) | ||
第24行: | 第24行: | ||
local header | local header | ||
local word | local word | ||
for i = 1, #rows do | |||
local row = rows[i] | |||
if row.Priority == DICT_HEADER_PRIORITY then | |||
header = row | |||
elseif row.Spelling == spelling then | |||
word = row | |||
end | |||
end | |||
if header == nil then | |||
error("词典标题行不存在!") | |||
elseif word == nil then | |||
return "词条不存在:"..spelling | |||
end | |||
local view = html.create('div') | local view = html.create('div') |
2025年8月5日 (二) 04:46的最新版本
此模块的文档可以在模块:Dictionary/Entry.lua/doc创建
local csv = require("Module:Csv.lua")
local dict_views = require("Module:Dictionary/Views.lua")
local dict_utils = require("Module:Dictionary/Utils.lua")
local html = mw.html
local cargo = mw.ext.cargo
local DICT_TABLE = dict_views.TABLE
local DICT_HEADER_PRIORITY = tostring(dict_utils.HEADER_PRIORITY)
local entry = {}
entry.show = function(frame)
local args = frame.args
local language = args.language
local spelling = args.spelling
local rows = cargo.query(DICT_TABLE, "Spelling,Definition,Extra,Priority,_pageName", {
where = string.format(
[[Language="%s" AND (Spelling="%s" OR Priority=%s)]],
language, spelling, DICT_HEADER_PRIORITY)
})
local header
local word
for i = 1, #rows do
local row = rows[i]
if row.Priority == DICT_HEADER_PRIORITY then
header = row
elseif row.Spelling == spelling then
word = row
end
end
if header == nil then
error("词典标题行不存在!")
elseif word == nil then
return "词条不存在:"..spelling
end
local view = html.create('div')
:tag('p'):wikitext(word.Definition):done()
:tag('p'):wikitext("来源:[["..word._pageName.."]]"):done()
local header_extra = csv.parse_row(header.Extra)
local word_extra = csv.parse_row(word.Extra)
for i = 1, #header_extra do
local text = word_extra[i]
if text ~= nil then
local header_text = header_extra[i]
view:tag('h2'):wikitext(header_text):done()
:tag('p'):wikitext(text):done()
end
end
return view
end
return entry