Module:File/doc: Difference between revisions
From Neodyland Wiki
More actions
| Line 7: | Line 7: | ||
=== From Wikitext === | === From Wikitext === | ||
Search ({{key press|Ctrl|F}}) for <code>@exports</code>. | Search ({{key press|Ctrl|F}}) for <code>@exports</code>. | ||
:Examples: | : Examples: | ||
::<code><nowiki>{{#invoke:File|woExtension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|woExtension|file=File:Test.C.JpeG}}</code> | ::<code><nowiki>{{#invoke:File|woExtension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|woExtension|file=File:Test.C.JpeG}}</code> | ||
::<code><nowiki>{{#invoke:File|extension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|extension|file=File:Test.C.JpeG}}</code> | ::<code><nowiki>{{#invoke:File|extension|file=File:Test.C.JpeG}}</nowiki></code> → <code>{{#invoke:File|extension|file=File:Test.C.JpeG}}</code> | ||
| Line 24: | Line 24: | ||
=== From Lua === | === From Lua === | ||
< | <syntaxhighlight lang="Lua"> | ||
local file = require( 'Module:File' ) | local file = require( 'Module:File' ) | ||
local fileObj = file.File( 'File:Test.svg' ) | local fileObj = file.File( 'File:Test.svg' ) | ||
| Line 34: | Line 34: | ||
mw.log( fileObj.metadata().width ) | mw.log( fileObj.metadata().width ) | ||
end | end | ||
</ | </syntaxhighlight> | ||
[[Category:Module documentation]] | |||
Revision as of 12:41, 19 July 2018
Scope
File title and file information. If the code here grows beyond a border line, this should be converted to an interface and the processing code should be outsourced.
Usage
Note that an error is thrown, if the title can't be constructed (e.g. a title containing invalid characters is supplied) or meta data isn't available (e.g. due to missing file or extraction error). It is your responsibility to catch them; in Lua through pcall(); from Wikitext as {{#iferror: {{#invoke:File|function|file=File:P%bar]baz.qqq}} | meaningful message}}.
From Wikitext
Search (Template:Key press) for @exports.
- Examples:
{{#invoke:File|woExtension|file=File:Test.C.JpeG}}→File:Test.C{{#invoke:File|extension|file=File:Test.C.JpeG}}→jpeg{{#invoke:File|csExtension|file=File:Test.C.JpeG}}→JpeG{{#invoke:File|width|file=File:Test.jpg}}→3120{{#invoke:File|dimensions|file=File:Test.jpg}}→3120 × 3920{{#invoke:File|size|file=File:Test.jpg}}→21003815{{#invoke:File|mime|file=File:Test.jpg}}→image/jpegdeprecated (but works even if the file does not exist and has no metadata){{#invoke:File|mimeType|file=File:Test.jpg}}→image/jpegpreferred (but will not work if the file does not exist to parse its metadata){{#invoke:File|mime|file=File:DOESNOTEXIST-0a8de8c83.Png}}→image/png{{#invoke:File|mimeType|file=File:DOESNOTEXIST-0a8de8c83.Png}}→{{#invoke:File|dateWorkCreated|file=File:Ballot-sprite.png}}→{{#invoke:File|fileExists|file=File:Ballot-sprite.png}}→true{{#invoke:File|fileExists|file=File:DOESNOTEXIST-0a8de8c83.png}}→{{#invoke:File|fileExistsRelaxed|file=File:Ba[!#llot-sprite.png}}→
From Lua
local file = require( 'Module:File' )
local fileObj = file.File( 'File:Test.svg' )
local withoutExtension = fileObj.woExtension()
-- withoutExtension is now 'Test'
local exists = fileObj.metadata().exists
if exists then
mw.log( fileObj.metadata().width )
end