维基导游:列表编辑器
这是一个基于表单的列表编辑器,可用于添加和编辑列表。另请参阅 维基导游:列表。
使用方法
您可以通过在列表表单中输入以下内容来描述每个列表。
- 名称:酒店、酒吧、餐厅、博物馆等的名称。 推荐。
- 别名:备用名称,可以是本地语言的名称,或仅仅是另一个名称。 可选。
- 网站:此景点的官方网站的 URL(有关更多指南,请参阅 外部链接)。 推荐。
- 地址:用于查找景点的街道地址,适用于有意义的地点。 推荐。
- 路线:除了街道地址之外的其他简要指示,例如交叉街道、附近的地铁或公交车站。 可选。
- 电话:用于预订或获取更多信息的电话号码。 推荐。
- 免费电话:如果可用,则为免费电话号码。 可选。
- 电子邮件:用于预订或获取更多信息的电子邮件地址。 可选。
- 纬度:用于地图输出的十进制纬度(GPS 坐标)。 推荐。
- 经度:用于地图输出的十进制经度(GPS 坐标)。 推荐。
- 注意:lat(纬度)和 long(经度)应具有相同的小数位数(如有必要,使用尾随零)。如果其中一个存在,另一个也应该存在。单击此链接 GeoMap 以方便访问基于 OSM 的定位器。强烈不建议使用谷歌地图坐标。
- 营业时间:景点的开放时间(如果适用)。 推荐。
- 价格:房间价格,或一杯饮料的价格,或一顿普通餐的价格,或门票价格。 推荐。
- 维基数据:如果存在,则为景点的 维基数据页面。此字段只能在存在特定地点的记录时使用——例如,链接到莱佛士酒店的维基数据记录是合适的,但链接到麦当劳公司的维基数据页面则不合适。
- 维基百科:如果存在,则为景点的 维基百科页面。同样,不要为品牌或公司页面提供值;仅当存在特定地点的维基百科页面时才提供值。
- 图片:Commons 上的一张图片,将显示在动态地图上作为景点的兴趣点。请注意,指定的值应排除图片的“文件:”命名空间(“Example.png”,而不是“File:Example.png”)。与维基数据和维基百科字段一样,不要提供通用图片;仅当图片是关于特定地点时才提供。
- 使用维基数据的值更新共享字段:此链接仅在输入了维基数据值后出现。如果点击,它将同步标记为维基数据徽标的字段中的任何现有值与共享维基数据记录中的值。
- 将此列表标记为最新?:如果列表中的信息已验证为最新,请勾选此复选框;这将导致列表的“最后编辑”日期更新为当前日期。 可选。
- 删除此列表?:如果商家已停止运营,请勾选此复选框,列表将被从文章中删除。 可选。
- 编辑摘要:对所做更改的简要描述,这些更改将被记录在文章历史记录中。 推荐。
- 次要更改?:一个复选框,可用于指示编辑是次要的,例如修复错别字。 可选。
有关其他参数,请参阅 维基导游:列表。
功能


表单是用户熟悉的特性,允许显示或隐藏特定参数,并提供链接到帮助页面的额外功能。该编辑器允许模板具有灵活性,更多地依赖于维基文本而不是实际的 HTML 结构。它针对带有 span class="vcard" 的列表,以及它们对应的名称(span class="org")、地址(span class="label")和备用昵称(span class="nickname")。可以通过在单独的 {{geo}} 或快速工具栏模板中包含 <span id="geodata">lat; long</span> 来实现目标地理编码。
- 向没有“城市”或“其他目的地”的文章的二、三级标题添加 [添加列表] 按钮(将向具有“查看”、“做”、“购买”、“饮食”、“住宿”和“连接”标题的主题添加列表,甚至包括旅行主题)
- 根据标题名称分配类型
- 向列表添加灰色编辑按钮
- 打开列出 {{listing}} 模板参数的表单。
- 自动编辑摘要
Bug 和反馈
请随意在此报告 bug。请尝试描述异常行为,如果可能,提供一个发生此问题的列表或文章示例。
- “wrapContent”方法可能会导致标题周围的复杂 HTML 出现问题。例如,请参阅 WV: 投票删除#存档处的“折叠”链接。
- 当点击旧版本页面的编辑按钮时,会选择错误的列表:如果我查看一个旧版本的页面,该页面随后在我要编辑的列表上方添加了新列表,编辑器会显示错误的列表。也就是说,如果我在旧页面上选择第 n 个列表,编辑器就会选择当前页面的第 n 个列表。 Peter Chastain (讨论) 2016年1月16日 13:36 (UTC)
- 一个有点相关的问题:如果我开始用列表编辑器编辑一个列表,然后其他人编辑并保存了文章,然后我保存我的更改,那么其他编辑者的更改就会丢失。 Peter Chastain (讨论) 2016年1月16日 20:02 (UTC)
- Template:Go 破坏了列表编辑器。请参阅 克利夫兰#乘飞机 处的示例 - 列表类型未被识别,编辑器无法打开。 -- Ryan • (讨论) • 2017年1月26日 02:34 (UTC)
- {{go}} 已弃用。 ARR8 (讨论 | 贡献) 2019年4月22日 03:53 (UTC)
- 当点击除第一个节下的列表之外的任何后续节时,将显示上面某个列表的信息,而不是所选的列表。保存时会导致“错误:在尝试保存列表时遇到未知错误,请重试:无效的节”。 – Craig Davison (讨论) 2018年4月18日 08:27 (UTC)
- 列表中的字符串字面量“$&”会导致输出在保存时替换整个列表,而不是仅仅替换它。请参阅 special:diff/3766113 之后的编辑系列。 ARR8 (讨论 | 贡献) 2019年4月22日 03:53 (UTC)
- 包含“*”和“{{”之间的模板或图片的列表无法正确删除。有关详细信息,请参阅 此更改。
- 维基数据同步坐标覆盖了带有引用的语句值,并且没有移除引用,也没有为语句添加维基数据引用,也没有任何指示表明是什么工具在进行编辑以追踪问题,根据 我今天早些时候在 Travellers' Pub 上的报告。我直到现在才找到此位置来报告问题。 Wolfgang8741 (讨论) 2022年3月31日 03:53 (UTC)
功能请求
请在 维基导游讨论版:列表编辑器 上讨论功能请求,然后再添加到下方,以便其他人提供反馈和建议。
- 移动端支持。允许在移动设备上使用列表编辑器。
- 更好的地理编码。更方便地集成 GeoMap 和输入纬度/经度,也许可以合并为一行而不是两个文本输入框,甚至可以启动一个小型 OpenStreetMap 弹出窗口来点击地点。
- 加载时间。列表编辑器的加载时间相当于编辑一个节加上创建和打开表单的额外时间。脚本是顺序运行的,等待 API 返回要编辑的节,然后创建表单。从技术上讲,可以在等待期间创建表单,而不是在之后(可能会将加载时间减少 20-30%)。
安装方法
英文维基导游默认安装并启用了小工具(工作中的 2023 版本):请在 您的偏好设置 中的小工具列表里找到“2023 列表编辑器”。
在 MediaWiki 命名空间中进行全局实施之前,请尝试将其作为非默认小工具进行测试。其他项目可以通过以下编辑添加列表编辑器(请仔细遵循这些说明):
* ListingEditor2023[ResourceLoader|default|skins=vector,vector-2022,monobook,timeless,modern,cologneblue|type=general|dependencies=ext.gadget.ListingEditor2023Styles]|ListingEditor2023.js
* ListingEditor2023Styles[ResourceLoader|default|hidden|type=general]|ListingEditor2023.css
* ListingEditorConfig[ResourceLoader|package|hidden]|ListingEditorConfig.js|ListingEditor.json
创建此文件以在“偏好设置 > 小工具”中描述列表编辑器。
importScriptURI('https://wikivoyage.cn/w/load.php?modules=ext.gadget.ListingEditor2023');
@import url('//wikivoyage.cn/w/index.php?title=MediaWiki:Gadget-ListingEditor2023.css&action=raw&ctype=text/css');
复制到您的本地 wiki。请勿编辑。
复制到您的本地 wiki 并根据需要进行编辑。
翻译
翻译目前需要直接添加到 代码本身。未来希望这可以连接到 TranslateWiki 的自动翻译。
版本
- de.voy: de:MediaWiki:Gadget-ListingEditor.js – [自 2017/06/28 起] 适配 Wikivoyage/de(翻译等)。从维基数据获取占位符。从维基数据获取地址、电话、传真、电子邮件等。添加额外的列表字段。移除维基百科字段。用于模板预览的预览按钮。点击货币符号后将鼠标光标恢复到价格。表格布局替换为 div 布局。添加了标签标题。具有相关颜色样本的类型。在 lat 字段中接受逗号分隔的“lat, long”。删除列表时不执行列表验证。编辑按钮前的管道分隔符不会打印。由于小工具在移动视图中不起作用,因此通过 Common.js 调用。
- en.voy: MediaWiki:Gadget-ListingEditor.js – 隐藏传真
- it.voy: it:MediaWiki:Gadget-ListingEditor.js – 不隐藏传真
- pt.voy: pt:MediaWiki:Editor.js – 单行模板
- fr.voy: fr:MediaWiki:Gadget-ListingEditor.js – 不隐藏传真、手机、维基百科、Facebook、Twitter
- he.voy: he:MediaWiki:ListingEditor.js & he:MediaWiki:ListingEditor.css – 右到左版本的示例
- el.voy: el:MediaWiki:Gadget-ListingEditor.js – 隐藏“添加列表”
- zh.voy: zh:MediaWiki:Gadget-ListingEditor.js – 支持多语言变体
- fa.voy: fa:MediaWiki:Gadget-ListingEditor.js – 分类、添加加载图标、添加预览支持、使用正则表达式检测模板变体、根据节中的索引而不是 ID 或标签或地址编辑模板、调整 RTL(IE 支持)
- bn.voy: bn:MediaWiki:Gadget-ListingEditor.js
- ja.voy: ja:MediaWiki:Gadget-ListingEditor.js – 支持移动版本、通过编辑器标记编辑、支持专有参数
配置
ListingEditor.Config 模块包含必须为每种语言自定义的参数。
- 翻译
- 必须翻译成本地语言的字符串。
- MAX_DIALOG_WIDTH
- 列表编辑器允许的最大宽度(以像素为单位)
- ALLOW_UNRECOGNIZED_PARAMETERS
- 一个标志,指示当列表保存时,列表编辑器是否应自动删除它不识别的模板参数。 "已识别" 参数列表在 LISTING_TEMPLATES 配置数组中配置。
- SECTION_TO_TEMPLATE_TYPE
- 指定每个文章节应使用哪个列表模板的数组。请注意,该数组按节 ID 匹配,因此需要使用下划线而不是空格。
- DISALLOW_ADD_LISTING_IF_PRESENT
- 一组 jQuery 选择器,如果匹配,将阻止列表编辑器向页面上的任何节添加“添加列表”链接。适用于防止向国家或地区文章添加“添加列表”链接。
- DEFAULT_LISTING_TEMPLATE
- 默认列表模板的名称。在英文维基导游中,默认列表模板是 Template:Listing。
- LISTING_TYPE_PARAMETER
- 指示模板类型的列表模板参数。在英文维基导游中,这是“type”参数。
- LISTING_CONTENT_PARAMETER
- 指示模板内容的列表模板参数。在英文维基导游中,这是“content”参数。
- EDIT_LINK_CONTAINER
- Template:Listing 必须 配置一个包含“编辑列表”链接的 HTML 元素,此参数指定了一个匹配该 HTML 元素的 jQuery 选择器。
- LISTING_TEMPLATE_PARAMETERS
- 此配置对象将列表编辑器 HTML(如 EDITOR_FORM 配置值中所指定)链接到用作模板参数的维基语法。如果所有列表模板的行为相同,则可以指定一个配置数组,或者可以指定多个数组以支持不同模板的不同行为——例如,在英文维基导游中,配置了一个单独的 SLEEP_TEMPLATE_PARAMETERS 数组,以支持睡眠模板使用“checkin”和“checkout”而不是“hours”的事实。
- LISTING_TEMPLATES
- 此数组将每个支持的模板类型与其配置对象链接。例如,模板“listing”使用 LISTING_TEMPLATE_PARAMETERS。
- EDITOR_FORM_SELECTOR
- 匹配 EDITOR_FORM 中指定的列表编辑器 UI 的 jQuery 选择器。
- EDITOR_CLOSED_SELECTOR
- 匹配 EDITOR_FORM 中指定的列表编辑器 UI 的 jQuery 选择器,该 UI 对应于指示列表应从站点中移除的输入。
- EDITOR_SUMMARY
- 匹配 EDITOR_FORM 中指定的列表编辑器 UI 的 jQuery 选择器,该 UI 对应于编辑摘要输入字段。
- EDITOR_MINOR_EDIT
- 匹配 EDITOR_FORM 中指定的列表编辑器 UI 的 jQuery 选择器,该 UI 对应于指示编辑是次要编辑的复选框。
- EDITOR_FORM
- 用于列表编辑器 UI 的 HTML。
回调
不同的语言版本可能希望实现自定义功能,这可以通过 ListingEditor.Callbacks 模块获得支持。目前支持三种类型的回调:
- CREATE_FORM_CALLBACKS
- 在列表编辑器 UI 创建时调用。默认配置包括初始化 geomap 和货币符号功能的 istener。
- SUBMIT_FORM_CALLBACKS
- 在列表编辑器表单提交时调用,但在验证数据之前。默认配置包括处理“最后编辑”日期的 istener。
- VALIDATE_FORM_CALLBACKS
- 在列表编辑器表单提交后,并在 submit form istener 调用之后调用。验证器功能包括验证列表是否为空,以及输入的电子邮件地址是否有效。如果验证器返回非空消息字符串,则该值将显示给用户,并且表单将不会提交。
更新日志
发布说明可以在 github 上找到。
v3.7.1 更新内容
- 防止在仅包含空格的字符串末尾添加句点
v3.7.0 更新内容
- 恢复 DMS 格式管理,该功能在 v2.4 中实现
- 修复维基数据同步弹出窗口中的“自动选择”bug
v3.6.0 更新内容
v3.4.0 更新内容
v3.3.1 更新内容
v3.3.0 更新内容
v3.0.0 更新内容
v2.4.2 更新内容
- 修复“在内容中添加句号”的 bug,当存在“?”或“!”时
v2.4.1 更新内容
- 在“WD 同步”窗口中添加了 commons 链接,以便轻松访问、查看和比较图片
- 避免在比较两张图片时出现误报,其中本地图片使用下划线代替空格
- 十进制格式的坐标不能超过 6 位数字(注意:6 位数字的精度约为 11 厘米)
v2.4 更新内容
- 表格到 Div 表单的转换
- 支持 DMS 符号(在 it:voy & de:voy 中使用)
- 恢复 geomap 链接功能并实时更新坐标。在列表和文章坐标之间使用最佳可用坐标
- 关闭 sync 表单当主列表编辑器表单关闭时
- 删除请求时跳过验证表单过程
- 在 ADD 阶段也允许编辑摘要,以提供署名或其他信息
- 修复动态生成的 lint 和 HTML 错误
- 移除坐标置空链接
- 在内容中添加句号
- 在 WD 同步后更新或正确隐藏维基百科/Commons 链接
- 当列表中存在“$&”序列时,防止编辑问题
- 当第一个列表值没有参数时,防止 JS 错误
- Wmflabs -> toolforge URL 迁移以避免无用的重定向
- 使用全局/局部变量代替硬编码
- CSS & 样式清理
- 次要清理
v2.3 更新内容
- 从意大利维基导游导入国家货币、国家呼叫代码和本地呼叫代码的快捷方式
- 修复 updateWikidataSharedFields 与旧的 quickUpdateWikidataSharedFields 之间的多语言不兼容性
- 次要清理
v2.2 更新内容
- 创建双向维基数据同步窗口并支持引用
- 如果 Alt 为空,则自动填充机场的 IATA 代码
- 与维基数据同步方向
- 修剪价格和地址的句号
- 从德国维基导游导入预览功能
- 添加按钮,通过给定的维基百科文章获取维基数据 ID
- 添加按钮将坐标替换为 NA
- 通过用 <br> 替换 <p> 来修复 linterrors
- 模板格式的次要清理
- 在类型选择器中显示颜色
- 检测 Alt 字段中的 RTL 文本
- 支持将 go 作为列表类型
v2.1 更新内容
- 添加了维基数据 & 维基百科字段。
- 维基数据、图片和维基百科字段现在将自动完成,通过搜索相关站点进行查找。
- 通过点击“使用维基数据的值更新共享字段”链接,可以使用存储在维基数据中的值填充纬度、经度、官方链接、维基百科链接和图片。
- 现在默认显示“图片”字段。
- 对底层代码进行了若干清理。
- 修复了列表类型不区分大小写的问题,从而阻止了使用“Do”等类型的模板的编辑。
v2.0.x 更新内容
- 修复了编辑包含换行符的内联列表时未正确工作的 bug。
- 使 VisualEditor 与列表编辑器兼容 - phab:T122454。
- 修复了非标准“type”属性被删除的 bug(例如:“type=go”)。
- 如果删除列表前有换行符,则删除列表时不会留下多余的换行符。
- 列表编辑摘要应使用正在编辑的节的名称,而不是正在编辑的列表的类型。
- 修复了阻止删除包含重复美元符号(“$$”)的列表的 bug。
- 从“diff”页面编辑将不再在保存编辑时重新加载 diff 页面,而是将用户带到页面的规范 URL,以便他们可以看到他们的更改。
- 修复了在列表是定义列表的一部分时删除失败的 bug(例如:
*: {{listing}})
v2.0 更新内容
- 更新列表编辑器对话框 UI,为字段输入提供更多空间,并在小屏幕上响应式地从两列折叠为一列。
- 使用 mw.Api().postWithToken 代替 $.ajax,以期修复会话令牌过期问题。
- 添加了编辑多段落列表的支持。
- 如果 ALLOW_UNRECOGNIZED_PARAMETERS 标志设置为 true,则在编辑时不要删除非空的不识别列表模板值(维基百科、phoneextra 等)。
- 如果列表编辑器表单提交失败,则重新显示列表编辑器表单,并包含用户输入的内容,以免工作丢失。
- 用异步替换同步 $.ajax 调用。
- 允许在编辑列表时输入编辑摘要和标记为次要编辑。
- 将“添加列表”链接移到 mw-editsection 块内。
- 自动用 <p> 标签替换列表内容中的换行符。
- 修复了列表字段中的 HTML 注释阻止编辑的 bug。
- 提供配置选项,以便某些字段仅在具有非空值时显示(例如:默认配置中的“fax”)。
- 添加基本的电子邮件地址验证。
- 失败的验证码挑战不再导致进一步的验证码尝试失败。
- 大幅代码重组。
v1.4.0 更新内容
- 匿名 IP 添加新外部链接时的验证码对话框
- 根据保护级别显示编辑按钮
v1.3.5 更新内容
- 增加了移除已关闭列表的功能
- 修复四级标题的 glitch
- 将 [添加列表] 按钮仅限屏幕显示(CSS)
- 修复了标签 bug(input-type 而不是 form-type)
- 警告外部链接
- 在内容描述中的换行符处添加断点 <br>
v1.3.3 更新内容
- 对特殊字符的标题进行微调
v1.3.2 更新内容
- 调整了其他语言的标题和类型
v1.3.1 更新内容
- 修正了单行列表
- 修复了单参数 bug
v1.3.0 更新内容
- 添加了帮助页面链接
- 为地址/名称添加了 geomap 链接
- 修复了空白符 bug
v1.2.8 更新内容
- 获取未缓存版本
v1.2.6 更新内容
- 转换为平面表单
- 添加了 geomap 链接
- 添加了货币按钮
- 考虑了嵌套模板
v1.1.0 更新内容
- 添加了 [添加列表] 按钮
v1.0.0 更新内容
- 初始发布