Module:FileName

-- Quick experiment with lua -- Module for removing the extension from a file name (Should this or something like it be part of module:File?) local p = {} p.removeExtension = function(frame) local page = frame.args[1] or frame.args["file"] or frame.args["title"] or mw.title.getCurrentTitle.text local parts = mw.text.split( page, '.', true ) local upTo = #parts - 1 if (upTo) == 0 then upTo = 1 end return table.concat( parts, '.', 1, upTo ) end -- I Probably shouldn't write this. This is a bad plan... I feel dirty... -- Also probably unreliable, don't use it for anything important. p.getYearFromInfo = function(frame) local pattern = 'fileinfotpl_date.*]*datetime="([^-"]*)' local page = 'File:' .. (frame.args[1] or frame.args["file"] or frame.args["title"] or mw.title.getCurrentTitle.text) return string.match( frame:expandTemplate{ title = page, args = {}}, pattern ) end

-- This is possibly even more unstable, compared to the above -- =p.getYearFromInfo2{ args={ file="Franziskanerkirche Salzburg panoramic view interior 39252px.jpg" } } p.getYearFromInfo2 = function(frame) local page = 'File:' .. (frame.args[1] or frame.args["file"] or frame.args["title"] or mw.title.getCurrentTitle.text) local htmlparser = require("Module:HTMLParser") local root = htmlparser.parse(mw.getCurrentFrame:expandTemplate{ title = page, args = {}}) local elements = root('#fileinfotpl_date') -- We queried an ID so there should be only one result for e in pairs(elements) do		-- We need the next sibling, which doesn't seem to be directly supported by HTMLParser -- ... so ask him for the parent and find the element in it		local timeElem = e.parent('time') for x in pairs(timeElem) do			return x.attributes['datetime'] end end end

return p