模块:Quote:修订间差异
来自星露谷物语扩展百科
更多操作
删除的内容 添加的内容
无编辑摘要 |
无编辑摘要 |
||
| 第27行: | 第27行: | ||
-- 分割文本 |
-- 分割文本 |
||
local afterColon = mw.ustring.sub(text, colonPos + 1) |
local afterColon = mw.ustring.sub(text, colonPos + 1) |
||
-- 处理特例:'''123:'''456 格式 |
|||
-- 检查冒号后是否紧跟着三个单引号 |
|||
if mw.ustring.sub(afterColon, 1, 3) == "'''" then |
|||
-- 移除冒号后的三个单引号 |
|||
afterColon = mw.ustring.sub(afterColon, 4) |
|||
-- 在冒号前添加三个单引号 |
|||
beforeColon = beforeColon .. "'''" |
|||
end |
|||
-- 处理冒号后文本开头的星号 |
-- 处理冒号后文本开头的星号 |
||
2025年7月10日 (四) 14:05的版本
local p = {}
-- 检查文本中是否有且仅有一个中文冒号":",且冒号前面没有出现过中文逗号和中文句号
function p.split(frame)
local text = frame.args[1] or ""
-- 计算中文冒号的数量
local colonCount = 0
for _ in mw.ustring.gmatch(text, ":") do
colonCount = colonCount + 1
end
-- 如果不是只有一个冒号,返回空
if colonCount ~= 1 then
return ""
end
-- 找到冒号的位置
local colonPos = mw.ustring.find(text, ":")
-- 检查冒号前面是否有中文逗号或中文句号
local beforeColon = mw.ustring.sub(text, 1, colonPos - 1)
if mw.ustring.find(beforeColon, "[,。]") then
return ""
end
-- 分割文本
local afterColon = mw.ustring.sub(text, colonPos + 1)
-- 处理特例:'''123:'''456 格式
-- 检查冒号后是否紧跟着三个单引号
if mw.ustring.sub(afterColon, 1, 3) == "'''" then
-- 移除冒号后的三个单引号
afterColon = mw.ustring.sub(afterColon, 4)
-- 在冒号前添加三个单引号
beforeColon = beforeColon .. "'''"
end
-- 处理冒号后文本开头的星号
if mw.ustring.sub(afterColon, 1, 1) == "*" then
afterColon = "<span>*</span>" .. mw.ustring.sub(afterColon, 2)
end
-- 返回结果
if frame.args.part == "before" then
return beforeColon
elseif frame.args.part == "after" then
return afterColon
else
-- 默认返回两部分,用 frame.args.separator 分隔(默认为制表符)
local separator = frame.args.separator or "\t"
return beforeColon .. separator .. afterColon
end
end
return p