跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
社群首页
帮助
希顶相关网站
希顶社区官网
(原作)希顶翻译器
〇改希顶转写器
希顶模组服务器
搜索
搜索
外观
创建账号
登录
个人工具
创建账号
登录
查看“︁Module:SunShow”︁的源代码
模块
讨论
English
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
Module:SunShow
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、storagereadable
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
local p = {} local getArgs = require('Module:Arguments').getArgs local json49 = mw.text.jsonDecode(mw.title.new('Module:49.json'):getContent()) local json7 = mw.text.jsonDecode(mw.title.new('Module:7.json'):getContent()) local rainbow = {} -- 色值表 local ele = {} -- 元素名 local cname = {} -- 颜色名 local en_cname = {} -- 英文颜色名 -- 读取 7.json 数据 for _, entry in ipairs(json7) do local order = tonumber(entry.su6H[1]) -- 获取序数 local index = (order + 6) % 7 + 1 -- 转换索引 rainbow[index] = entry.sue:lower() ele[index] = entry.fEE cname[index] = entry.suemi8H['zh-CN'] en_cname[index] = entry.suemi8H['en-US'] end rainbow[8] = "#aa10aa" -- 补充? local seq_map = {} -- 整序映射自然序 local gua = {} -- 中文卦名 local old_gua = {} -- 古文卦名 local en_gua = {} -- 英文卦名 local speech = {} -- 现代言语 local old_speech = {} -- 古文言语 local notes = {} -- 注释 -- 读取 49.json 数据 for _, entry in ipairs(json49) do local seq = (entry.az8sA5 + 48) % 49 + 1-- 计算整序 seq_map[seq] = entry.t1ru2sA5 -- 存储自然序 gua[seq] = entry.mi8H old_gua[seq] = entry.gAmi8H en_gua[seq] = entry.English speech[seq] = entry.HuVL old_speech[seq] = entry.gAHuVL notes[seq] = entry.Eka end --[[ 整序转自然序 将指定的整序转换为自然序。 输入: num: 整序数字,范围应在 1 到 49 之间 输出: 返回对应的自然序数字,如果输入无效则返回 0 ]] function p.seq2nat(num) if num < 1 or num > 49 then return 0 end return seq_map[num] end --[[ 自然序转整序 将指定的自然序转换为整序。 输入: val: 自然序数字,范围应在 1 到 49 之间 输出: 返回对应的整序数字,如果输入无效则返回 0 ]] function p.nat2seq(val) for i, v in ipairs(seq_map) do if v == val then return i end end return 0 end --[[ 双色太阳易色块生成器(补码模式) 为方便起见,这里事实上是用补码,即数值 6 5 4 3 2 1 0 指代火木光土风水空。 输入: inp: 0-48的整数 tzbiou: 是否启用特殊时期样式(可选,默认0) 输出:带双色背景的HTML块儿 ]] function p.sunColor(inp, tzbiou) tzbiou = tzbiou or 0 local l = inp % 7 -- 下卦 local u = math.floor(inp/7) % 7 -- 上卦 if (l == 4 and u == 1 and tzbiou == 1) then return ' ' -- 特殊时期返回空格 else return string.format( '<span style="background:-webkit-linear-gradient(90deg, %s 0%%, %s 50%%, %s 50%%, %s 100%%)"> </span>', rainbow[7-l], rainbow[7-l], rainbow[7-u], rainbow[7-u] ) end end --[[ 双色太阳易色块生成器(原码模式) 输入: inp: 1-49的整数 tzbiou: 是否启用特殊时期样式(可选,默认0) 输出:带双色背景的HTML块儿 ]] function p.sunColor2(inp, tzbiou) tzbiou = tzbiou or 0 local l = (inp - 1) % 7 + 1 local u = math.floor((inp - 1) / 7) % 7 + 1 if (l == 3 and u == 6 and tzbiou==1) then return ' ' -- 特殊时期返回空格 else return string.format( '<span style="background:-webkit-linear-gradient(90deg, %s 0%%, %s 50%%, %s 50%%, %s 100%%)"> </span>', rainbow[l], rainbow[l], rainbow[u], rainbow[u] ) end end --[[ 单色契色块生成器 输入:1-8的整数(对应八契原码) 输出:带纯色背景的HTML块儿 ]] function p.cheiColor(inp) return string.format('<span style="background:%s"> </span>', rainbow[inp]) end --[[ 获取卦名(补码模式) 输入:0-48的整数 输出:对应的49日卦名 ]] function p.sun49(inp) return gua[49 - (inp % 49)] end --[[ 通用卦属性查询函数 输入: num: 原码整序,范围应在 1 到 49 之间 property: 字符串 'old_gua', 'gua', 'en_gua', 'speech' 等,用于指定要获取的属性 输出: 返回对应的卦的属性值,如果输入无效则返回 nil ]] function p.sunPar(num, property) if num < 1 or num > 49 then return nil end local valid_properties = { old_gua = old_gua, gua = gua, en_gua = en_gua, speech = speech, old_speech = old_speech, notes = notes } if valid_properties[property] then return valid_properties[property][num] else return nil end end --[[ 元素属性查询函数 输入: num: 原码整序,范围应在 1 到 7 之间 property: 字符串 'rainbow', 'ele', 'cname', '' 等,用于指定要获取的属性 输出: 返回对应的元素的属性值,如果输入无效则返回 nil ]] function p.elePar(num, property) if num < 1 or num > 7 then return nil end local valid_properties = { rainbow = rainbow, color = rainbow, ele = ele, cname = cname, en_cname = en_cname } if valid_properties[property] then return valid_properties[property][num] else return nil end end ---- 模板定义 ---- --[[ 模板调用:整序转自然序 用法:{{#invoke:SunShow|seqToNatT|输入值}} ]] function p.seqToNatT(frame) local args = getArgs(frame) local num = tonumber(args[1]) or 0 -- 默认值为0 return p.seq2nat(num) end --[[ 模板调用:自然序转整序 用法:{{#invoke:SunShow|natToSeqT|输入值}} ]] function p.natToSeqT(frame) local args = getArgs(frame) local val = tonumber(args[1]) or 0 -- 默认值为01 return p.nat2seq(val) end --[[ 模板调用:双色太阳易色块生成器(补码模式) 用法:{{#invoke:SunShow|sunColorT|输入值}} ]] function p.sunColorT(frame) local args = getArgs(frame) local inp = tonumber(args[1]) or 0 -- 默认值为0 return p.sunColor(inp) end --[[ 模板调用:双色太阳易色块生成器(原码模式) 用法:{{#invoke:SunShow|sunColor2T|输入值}} ]] function p.sunColor2T(frame) local args = getArgs(frame) local inp = tonumber(args[1]) or 1 -- 默认值为1 return p.sunColor2(inp) end --[[ 模板调用:单色契色块生成器 用法:{{#invoke:SunShow|cheiColorT|输入值}} ]] function p.cheiColorT(frame) local args = getArgs(frame) local inp = tonumber(args[1]) or 1 -- 默认值为1 return p.cheiColor(inp) end --[[ 模板调用:获取卦属性 用法:{{#invoke:SunShow|sunParT|整序|属性名}} ]] function p.sunParT(frame) local args = getArgs(frame) local num = tonumber(args[1]) or 1 -- 默认值为1 local property = args[2] or 'gua' -- 默认值为'gua' return p.sunPar(num, property) -- 调用 sunPar 函数 end --[[ 模板调用:获取元素属性 用法:{{#invoke:SunShow|eleParT|整序|属性名}} ]] function p.eleParT(frame) local args = getArgs(frame) local num = tonumber(args[1]) or 1 -- 默认值为1 local property = args[2] or 'ele' -- 默认值为'ele' return p.elePar(num, property) -- 调用 elePar 函数 end return p
该页面使用的模板:
Module:SunShow/doc
(
查看源代码
)
返回
Module:SunShow
。