You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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获取文件大小:

  1. 创建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
  1. 然后在页面中调用模板结合tooltip:
{{#inline-tooltip: [[Image:Pdficon.png|16px|link={{filepath:MyFileName.pdf}}]] | {{#invoke:FileSize|get|MyFileName.pdf}} }}

注意事项

  • 所有方法都要求目标PDF已经上传到维基的文件命名空间下(即File:MyFileName.pdf存在)
  • 确保RegularTooltips扩展处于启用状态,否则悬停提示无法生效

内容的提问来源于stack exchange,提问作者relayman357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:37:09