MediaWiki中实现PDF图标悬停自动显示文件大小的方案咨询
自动获取PDF文件大小并添加悬停提示的MediaWiki方案
针对你需要给PDF图标自动添加文件大小悬停提示的需求,有几个实用的MediaWiki原生/扩展方案,无需手动填写大小:
方法1:利用ParserFunctions扩展(推荐,多数维基默认启用)
如果你的维基已经启用了ParserFunctions扩展(绝大多数MediaWiki实例默认预装),可以直接结合它的{{#file_size:}}函数与RegularTooltips的{{#inline-tooltip:}},自动拉取并显示PDF文件大小:
{{#inline-tooltip: [[Image:Pdficon.png|16px|link={{filepath:MyFileName.pdf}}]] | {{#file_size:MyFileName.pdf}} }}
{{#file_size:MyFileName.pdf}}会自动读取已上传PDF的文件大小,并格式化为易读的单位(如KB/MB),完全替代手动输入的数值。
方法2:使用FileSizeFormatter扩展(更灵活的格式控制)
如果需要自定义大小的显示格式(比如强制显示字节数、固定小数点位数),可以安装Extension:FileSizeFormatter,之后用以下代码实现:
{{#inline-tooltip: [[Image:Pdficon.png|16px|link={{filepath:MyFileName.pdf}}]] | {{FormatFileSize:MyFileName.pdf}} }}
该扩展支持更多参数调整显示样式,比如{{FormatFileSize:MyFileName.pdf|decimal=2}}可以保留两位小数。
方法3:无额外扩展的Lua模块方案(适合无法装新扩展的场景)
如果你的维基无法安装新扩展,可以创建一个简单的Lua模块调用MediaWiki API获取文件大小:
- 创建
Module:FileSize,写入以下代码:
local p = {} function p.get(frame) local fileName = frame.args[1] local file = mw.title.new('File:' .. fileName) if not file or not file.exists then return '文件不存在' end local size = file.file.size -- 格式化大小为易读单位 if size < 1024 then return size .. ' B' elseif size < 1024^2 then return string.format('%.1f KB', size / 1024) else return string.format('%.1f MB', size / (1024^2)) end end return p
- 然后在页面中调用模板结合tooltip:
{{#inline-tooltip: [[Image:Pdficon.png|16px|link={{filepath:MyFileName.pdf}}]] | {{#invoke:FileSize|get|MyFileName.pdf}} }}
注意事项
- 所有方法都要求目标PDF已经上传到维基的文件命名空间下(即
File:MyFileName.pdf存在) - 确保RegularTooltips扩展处于启用状态,否则悬停提示无法生效
内容的提问来源于stack exchange,提问作者relayman357
相关产品推荐
相关产品推荐

