模組討論:RouteSequence
怎样显示换乘站
如果使用%的话,就无法为此站创建链接。怎样为一个站点显示换乘站,如{{长沙地铁4号线}}的光达站显示:光达(换乘 )?-- 2号线SolidBlock留言 2019年9月12日 (四) 12:27 (UTC)
- 感谢IP用户的编辑。--SolidBlock留言 2019年9月13日 (五) 08:10 (UTC)
編輯請求 2020-06-24
请求已拒绝
请求将第243行的system_data = mw.loadData("Module:RailSystems/" .. system)中将Module:RailSystems改为Module:Adjacent stations,如果发现问题可以回退。--Nissangeniss(留言) 2020年6月24日 (三) 06:08 (UTC)
- @Nissangeniss:您有測試過嗎?是否有現有的頁面可展示測試結果? Xiplus#Talk 2020年6月29日 (一) 16:03 (UTC)
- 用过模块的沙盒,但是不知道沙盒内容引入铁道路线模板Nissangeniss(留言) 2020年6月30日 (二) 01:45 (UTC)
- @Nissangeniss:為什麼要做出此修改?為了解決什麼問題? Xiplus#Talk 2020年7月6日 (一) 04:32 (UTC)
- 因为也是@Owennson:在我的讨论页提出来,说RailSystems模块要淘汰建议我改用Module:Adjacent stations的,要不建议将两个模块合并再说?毕竟阁下也不知如何将模块引入铁道路线模板来测试Nissangeniss(留言) 2020年7月6日 (一) 07:58 (UTC)
- RailSystems和adjacent stations本來就高度重疊,而且同時存在多年,請求合併兩者也已經討論好一段時間了,不過因技術原因始終沒有做。--owennson(聊天室、獎座櫃) 2020年7月6日 (一) 08:28 (UTC)
- @Nissangeniss、Owennson:兩個模組子頁面不盡相同,替換不會導致部分的頁面壞掉嗎? Xiplus#Talk 2020年7月10日 (五) 13:01 (UTC)
- User:Xiplus:這就是一直無法取消的原因了。除非使用Railsystems的所有模板和條目全部換成以as為基礎的模板,否則做不到的...--owennson(聊天室、獎座櫃) 2020年7月10日 (五) 14:21 (UTC)
- 是不是應該先把AS缺少的部分從Railsystems複製過去? Xiplus#Talk 2020年7月10日 (五) 23:33 (UTC)
- User:Xiplus:這就是一直無法取消的原因了。除非使用Railsystems的所有模板和條目全部換成以as為基礎的模板,否則做不到的...--owennson(聊天室、獎座櫃) 2020年7月10日 (五) 14:21 (UTC)
- @Nissangeniss、Owennson:兩個模組子頁面不盡相同,替換不會導致部分的頁面壞掉嗎? Xiplus#Talk 2020年7月10日 (五) 13:01 (UTC)
- RailSystems和adjacent stations本來就高度重疊,而且同時存在多年,請求合併兩者也已經討論好一段時間了,不過因技術原因始終沒有做。--owennson(聊天室、獎座櫃) 2020年7月6日 (一) 08:28 (UTC)
未完成,目前的修改方案會造成部分頁面受損。--Xiplus#Talk 2020年7月19日 (日) 13:39 (UTC)
編輯請求 2021-01-31
请求已处理--Tim Wu(留言) 2021年2月6日 (六) 03:11 (UTC)
增加对Module:Adjacent stations的支持,手动测试通过,但由于Module:Adjacent stations没有稳定的测试用例,所以暂时无法引入p.testCase,其他执行p.testCase{}通过无报错,说明至少现有页面不会受影响。其他情况待后续引入Module:Adjacent stations数据后再议。
另:合并后可使用AS:system_name测试AS是否可正常再线路图中显示。
--思域无疆大道 事体 机器 2021年1月31日 (日) 13:14 (UTC)
- @Siyuwj:在自己的沙盒测试了一下,Module:Adjacent_stations/广州地铁中的广州南站,会显示为“广州南站|广州南站”。--Tim Wu(留言) 2021年1月31日 (日) 13:32 (UTC)
- 这就是没有 Test Case 的麻烦,我也不知道 Corner 有没有全覆盖,但至少不会破坏现有的……—思域无疆大道 事体 机器 2021年1月31日 (日) 13:38 (UTC)
完成,下面的框我是拿来做记录的……—思域无疆大道 事体 机器 2021年1月31日 (日) 13:44 (UTC)
- 我这里没问题了,先公示7天吧。感谢您的更新。Tim Wu(留言) 2021年1月31日 (日) 13:54 (UTC) --
目前测试通过(以下内容可能会随着讨论的进行而更新):
print(p.route{args={stations='大庆寺 ~ 奥体中心 ~ 兰亭', system='绍兴轨道交通'}}) print(p.route{args={stations='大庆寺 ~ 奥体中心 ~ 兰亭', system='AS:绍兴轨道交通'}}) # 只使用 [[Module:Adjacent_stations]] print(p.route{args={stations='广州东站 ~ 体育中心 ~ 体育西路', system='广州地铁'}})
—思域无疆大道 事体 机器 2021年1月31日 (日) 13:38 (UTC)
- @Siyuwj、TimWu007:刚刚做了沙盒测试,改了一下RouteSequence改用Adj的参数再改动53行为lines(参见沙盒Module:RouteSequence/sandbox、Template:铁道路线/sandbox、Template:铁道路线/车站列表/sandbox),对比效果参见Template:鐵道路線/testcases,铁道系统用汉字“广州地铁”没有问题。Nissangeniss(留言) 2021年1月31日 (日) 13:58 (UTC)
- @Nissangeniss:直接替换为Adj的话,所有的消歧义全部失效了(例如石井站 (广州)变成了石井站),这也就是说RouteSequence最重要的能力被破坏了。可以在“参数设置”->“小工具”选择“用橙色標記消歧義頁面”。—思域无疆大道 事体 机器 2021年1月31日 (日) 14:09 (UTC)
- 估计可能要在哪儿加一下能够消歧义的代码吧Nissangeniss(留言) 2021年1月31日 (日) 15:41 (UTC)
- 思域无疆的版本似乎已经解决了问题?--Tim Wu(留言) 2021年1月31日 (日) 15:45 (UTC)
- 好吧,现在才去看了无疆做的沙盒。Nissangeniss(留言) 2021年1月31日 (日) 16:43 (UTC)
- @Siyuwj、@TimWu007:{{Adjacent stations}}本身是向外提供了经过消歧义的车站链接接口的({{T:stl}}
{{stl|系统|车站}}
,或者直接使用lua调用,见下),而现测试版本中似乎直接将这部分代码置入了,增加了耦合性,是否应该考虑解耦? require('Module:Adjacent stations')._station({ system = '上海地铁', station = '世纪大道', line = nil, -- 可选 type = nil, -- 可选 }, frame)
- ――David Xuang (contact me) 2021年2月2日 (二) 09:16 (UTC)
- @David Xuang:多谢提醒。试用了,但个人感觉不合适。首先,_station看起来是私有方法,API未必稳定(而数据的格式可以认为是稳定的)。其次,_station 会尝试访问多个全局变量,这意味着随着该函数的更新,Module:RouteSequence随时有可能会出现错误,所以尝试通过 _station 解耦并不彻底(require的全局变量必须定义在当前Module里)。最后,Module:RouteSequence会设置车站的颜色、字体等信息以体现开通状态,而这无法通过{{stl}}达到。—思域无疆大道 事体 机器 2021年2月2日 (二) 10:55 (UTC)
- @Siyuwj:
_station
的命名是因为station
这个入口是供维基文本以{{#invoke:}}
语法调用的,可以注意到MakeInvokeFunction
将前者包装成了后者,此处的API更改应该至少是向前兼容的(只增加可选值),而getStation
函数才是私有的并且只支持{{Adjacent stations}}的,而其实接口函数还会尝试调用{{[系统名]车站}}
处理消歧义,适用面更广。引用的模块里的本地变量的作用域问题,按我的理解和使用来看似乎是不存在的,不知道您具体指的是哪种问题。最后一个问题确实存在,但这个函数返回的格式是维基链接且必有两个值,其实可以使用正则表达式(\[\[(.+)\|(.+)\]\]
)提取所需的两处文本解决。――David Xuang (contact me) 2021年2月2日 (二) 11:47 (UTC)
- @Siyuwj:
- @David Xuang:多谢提醒。试用了,但个人感觉不合适。首先,_station看起来是私有方法,API未必稳定(而数据的格式可以认为是稳定的)。其次,_station 会尝试访问多个全局变量,这意味着随着该函数的更新,Module:RouteSequence随时有可能会出现错误,所以尝试通过 _station 解耦并不彻底(require的全局变量必须定义在当前Module里)。最后,Module:RouteSequence会设置车站的颜色、字体等信息以体现开通状态,而这无法通过{{stl}}达到。—思域无疆大道 事体 机器 2021年2月2日 (二) 10:55 (UTC)
- 思域无疆的版本似乎已经解决了问题?--Tim Wu(留言) 2021年1月31日 (日) 15:45 (UTC)
- 估计可能要在哪儿加一下能够消歧义的代码吧Nissangeniss(留言) 2021年1月31日 (日) 15:41 (UTC)
- User:Siyuwj、User:TimWu007,不如乾脆人手把RS替換成Adj吧,雖然有3800個頁面,但只要沒人增加RS,做起來還是很快的。我自己曾經以一人之力把1000多個Infobox Japanese station替換成日本車站資訊模板(後來併到Infobox station),花了11個月。按此比例,RS換成ADJ要2年多。就看各位有沒有意願一起做了。ADJ的代碼比RS還簡單和好理解,同時又有很多外語連結,所以我是提倡廢掉RS全用ADJ的。--owennson(聊天室、獎座櫃) 2021年1月31日 (日) 15:12 (UTC)
- 请注意,这个编辑请求正是要添加对Adj的支持,不是讨论adj与rs的合并问题。rs已经在存废讨论,阁下可移步至那边对相关议题发表意见。--Tim Wu(留言) 2021年1月31日 (日) 15:15 (UTC)
- 好的。--owennson(聊天室、獎座櫃) 2021年1月31日 (日) 15:22 (UTC)
- @Nissangeniss:直接替换为Adj的话,所有的消歧义全部失效了(例如石井站 (广州)变成了石井站),这也就是说RouteSequence最重要的能力被破坏了。可以在“参数设置”->“小工具”选择“用橙色標記消歧義頁面”。—思域无疆大道 事体 机器 2021年1月31日 (日) 14:09 (UTC)
编辑请求 2021-02-02
一般而言,中文的标点与对应西文标点等宽或更宽;在西文连接号使用en dash(– –
)的情况下,这里连接号使用更窄的hyphen(-)是否不妥?并且,可以注意到T:鐵道路線页面上提供的台铁示例似乎也是使用的en dash,本条目是否应该考虑改用en dash(– –
)作为车站分隔符?――David Xuang (contact me) 2021年2月2日 (二) 09:00 (UTC)
- 有道理,我顺便改一下。—思域无疆大道 事体 机器 2021年2月2日 (二) 10:57 (UTC)
完成。—思域无疆大道 事体 机器 2021年2月2日 (二) 10:59 (UTC)
关于模块改动后的问题
@Siyuwj、TimWu007:阁下发现改动此模块后如果{{铁道路线}}写了lua=1而不写铁道系统的参数的话会报错(见:Template:淮南铁路),看看有没有快速解决的方法?Nissangeniss(留言) 2021年2月6日 (六) 02:49 (UTC)
- 我在模块文档页也发现了,还以为是少部分的问题……那我先回退更改了。--Tim Wu(留言) 2021年2月6日 (六) 03:01 (UTC)
- @Nissangeniss:思域无疆君已修复错误,辛苦您修改模板了。--Tim Wu(留言) 2021年2月6日 (六) 03:11 (UTC)
編輯請求 2021-02-06
请求已处理--Tim Wu(留言) 2021年2月6日 (六) 03:11 (UTC)
修复system参数为空导致的模块报错。--思域无疆大道 事体 机器 2021年2月6日 (六) 03:05 (UTC)
- @TimWu007::之前的版本没有考虑空字符串和nil……已经提新的patch,同时引入了测试。—思域无疆大道 事体 机器 2021年2月6日 (六) 03:07 (UTC)
- 感谢修复。--Tim Wu(留言) 2021年2月6日 (六) 03:11 (UTC)