Wikipedia

Module:InfoboxImage

Module documentation [view] [edit] [history] [purge]

Overview

This module is used within infoboxes to process the image parameters and tidy up the formatting of the result.

Parameters

Parameter Description
image Required. The main parameter that should be passed over which contains the image info.
size Size to display image.
maxsize Maximum size to display image. Note: If no size or sizedefault params specified then image will be shown at maxsize.
sizedefault The size to use for the image if no size param is specified. Defaults to frameless.
alt Alt text for the image.
title Title text for image (mouseover text). If blank then alt text is used.
border If yes, then a border is added.
page The page number to be displayed when using a multi-page image
upright If upright=yes, adds "upright" which displays image at 75% of default image size (which is 220px if not changed at Special:Preferences). If a value, adds "upright=value" to image, where values less than 1 scale the image down (0.9 = 90%) and values greater than 1 scale the image up (1.15 = 115%).
center If yes, then the image is centered.
thumbtime thumbtime param, used for video clips.
suppressplaceholder If no, then will not suppress certain placeholder images. See § Placeholder images which can be suppressed.
link Page to go to when clicking on the image.

Note: If you specify the maxsize or sizedefault params, then you should include the px after the number.

Parameters displayed in image syntax

All parameters:

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size={{{size}}} | maxsize={{{maxsize}}} | sizedefault={{{sizedefault}}} | upright={{{upright}}} | alt={{{alt}}} | title={{{title}}} | thumbtime={{{thumbtime}}} | link={{{link}}} | border=yes | center=yes | page={{{page}}} }}
[[File:{{{image}}}|page={{{page}}}|{{{size}}}|center|alt={{{alt}}}|link={{{link}}}|border|upright={{{upright}}}|thumbtime={{{thumbtime}}}|{{{title}}}]]

When "size" and "maxsize" are defined, the smaller of the two is used (if "px" is omitted it will be added by the module):

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size=300px | maxsize=250px }}
[[File:{{{image}}}|250px]]

When "size" is not defined, "sizedefault" is used, even if larger than "maxsize" (in actual use "px" is required after the number; omitted here to show it is not added by the module):

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | sizedefault=250px | maxsize=200px }}
[[File:{{{image}}}|250px]]

When "size" and "sizedefault" are not defined, "maxsize" is used (in actual use "px" is required after the number; omitted here to show it is not added by the module):

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | maxsize=250px }}
[[File:{{{image}}}|250px]]

When "size", "sizedefault", and "maxsize" are not defined, "frameless" is added, which displays the image at the default thumbnail size (220px, but logged in users can change this at Special:Preferences) and is required if using "upright" to scale the default size:

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} }}
[[File:{{{image}}}|frameless]]

Use of "upright" without a number value, which displays the image at approximately 75% of the user's default size (multiplied by 0.75 then rounded to nearest 10):

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | upright = yes }}
[[File:{{{image}}}|frameless|upright]]

When "alt" is used without "title", the alt text is also used as the title:

{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | alt = Alt text }}
[[File:{{{image}}}|frameless|alt=Alt text|Alt text]]

For more information, see Wikipedia:Extended image syntax.

Sample usage

|image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|upright={{{image_upright|1}}}|alt={{{alt|}}}}}

Examples

{{#invoke:InfoboxImage|InfoboxImage}}
{{#invoke:InfoboxImage|InfoboxImage|image=}}

{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg}}

{{#invoke:InfoboxImage|InfoboxImage|image=File:Abbey Rd Studios.jpg}}

{{#invoke:InfoboxImage|InfoboxImage|image=Image:Abbey Rd Studios.jpg}}

Abbey Rd Studios.jpg

{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=yes}}

Abbey Rd Studios.jpg

{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=1.2}}

Abbey Rd Studios.jpg

{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px}}

{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100}}

Abbey Rd Studios.jpg
{{#invoke:InfoboxImage|InfoboxImage|image=[[Image:Abbey Rd Studios.jpg|200px]]}} Abbey Rd Studios.jpg
{{#invoke:InfoboxImage|InfoboxImage|image=[[Image:Abbey Rd Studios.jpg|200px]]|title=Abbey Road!}} Abbey Rd Studios.jpg
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios|title=Exterior, front view of Abbey Road studios}} The front stairs and door of Abbey Road Studios
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px|alt=The front stairs and door of Abbey Road Studios}} The front stairs and door of Abbey Road Studios
{{#invoke:InfoboxImage|InfoboxImage|image=Bandera de Bilbao.svg|size=100|border=yes}} Bandera de Bilbao.svg
{{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg}}
{{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg|suppressplaceholder=no}} Image is needed male.svg
{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]}}
{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]|suppressplaceholder=no}} Image is needed male.svg
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=50px|maxsize=100px}} Abbey Rd Studios.jpg
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=200px|maxsize=100px}} Abbey Rd Studios.jpg
{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Abbey Rd Studios.jpg|200px]]|maxsize=100px}} Abbey Rd Studios.jpg
{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|maxsize=100px|center=yes}}
{{#invoke:InfoboxImage|InfoboxImage|image=no such image|maxsize=100px|center=yes}}

Placeholder images which can be suppressed

Tracking categories

        
        -- Inputs:
        --    image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link
        --    page - page to display for multipage images (DjVu)
        --    size - size to display the image
        --    maxsize - maximum size for image
        --    sizedefault - default size to display the image if size param is blank
        --    alt - alt text for image
        --    title - title text for image
        --    border - set to yes if border
        --    center - set to yes, if the image has to be centered
        --    upright - upright image param
        --    suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it
        --    link - page to visit when clicking on image
        -- Outputs:
        --    Formatted image.
        -- More details available at the "Module:InfoboxImage/doc" page
        local
        i
        =
        {};
        local
        placeholder_image
        =
        {
        "Blue - Replace this image female.svg"
        ,
        "Blue - Replace this image male.svg"
        ,
        "Female no free image yet.png"
        ,
        "Flag of None (square).svg"
        ,
        "Flag of None.svg"
        ,
        "Flag of.svg"
        ,
        "Green - Replace this image female.svg"
        ,
        "Green - Replace this image male.svg"
        ,
        "Image is needed female.svg"
        ,
        "Image is needed male.svg"
        ,
        "Location map of None.svg"
        ,
        "Male no free image yet.png"
        ,
        "Missing flag.png"
        ,
        "No flag.svg"
        ,
        "No free portrait.svg"
        ,
        "No portrait (female).svg"
        ,
        "No portrait (male).svg"
        ,
        "Red - Replace this image female.svg"
        ,
        "Red - Replace this image male.svg"
        ,
        "Replace this image female (blue).svg"
        ,
        "Replace this image female.svg"
        ,
        "Replace this image male (blue).svg"
        ,
        "Replace this image male.svg"
        ,
        "Silver - Replace this image female.svg"
        ,
        "Silver - Replace this image male.svg"
        ,
        "Replace this image.svg"
        ,
        "Cricket no pic.png"
        ,
        "CarersLogo.gif"
        ,
        "Diagram Needed.svg"
        ,
        "Example.jpg"
        ,
        "Image placeholder.png"
        ,
        "No male portrait.svg"
        ,
        "Nocover-upload.png"
        ,
        "NoDVDcover copy.png"
        ,
        "Noribbon.svg"
        ,
        "No portrait-BFD-test.svg"
        ,
        "Placeholder barnstar ribbon.png"
        ,
        "Project Trains no image.png"
        ,
        "Image-request.png"
        ,
        "Sin bandera.svg"
        ,
        "Sin escudo.svg"
        ,
        "Replace this image - temple.png"
        ,
        "Replace this image butterfly.png"
        ,
        "Replace this image.svg"
        ,
        "Replace this image1.svg"
        ,
        "Resolution angle.png"
        ,
        "Image-No portrait-text-BFD-test.svg"
        ,
        "Insert image here.svg"
        ,
        "No image available.png"
        ,
        "NO IMAGE YET square.png"
        ,
        "NO IMAGE YET.png"
        ,
        "No Photo Available.svg"
        ,
        "No Screenshot.svg"
        ,
        "No-image-available.jpg"
        ,
        "Null.png"
        ,
        "PictureNeeded.gif"
        ,
        "Place holder.jpg"
        ,
        "Unbenannt.JPG"
        ,
        "UploadACopyrightFreeImage.svg"
        ,
        "UploadAnImage.gif"
        ,
        "UploadAnImage.svg"
        ,
        "UploadAnImageShort.svg"
        ,
        "CarersLogo.gif"
        ,
        "Diagram Needed.svg"
        ,
        "No male portrait.svg"
        ,
        "NoDVDcover copy.png"
        ,
        "Placeholder barnstar ribbon.png"
        ,
        "Project Trains no image.png"
        ,
        "Image-request.png"
        ,
        "Noimage.gif"
        ,
        }
        function
        i
        .
        IsPlaceholder
        (
        image
        )
        -- change underscores to spaces
        image
        =
        mw
        .
        ustring
        .
        gsub
        (
        image
        ,
        "_"
        ,
        " "
        );
        assert
        (
        image
        ~=
        nil
        ,
        'mw.ustring.gsub(image, "_", " ") must not return nil'
        )
        -- if image starts with [[ then remove that and anything after |
        if
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        2
        )
        ==
        "[["
        then
        image
        =
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        3
        );
        image
        =
        mw
        .
        ustring
        .
        gsub
        (
        image
        ,
        "([^|]*)|.*"
        ,
        "%1"
        );
        assert
        (
        image
        ~=
        nil
        ,
        'mw.ustring.gsub(image, "([^|]*)|.*", "%1") must not return nil'
        )
        end
        -- Trim spaces
        image
        =
        mw
        .
        ustring
        .
        gsub
        (
        image
        ,
        '^[ ]*(.-)[ ]*$'
        ,
        '%1'
        );
        assert
        (
        image
        ~=
        nil
        ,
        "mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1') must not return nil"
        )
        -- remove prefix if exists
        local
        allNames
        =
        mw
        .
        site
        .
        namespaces
        [
        6
        ].
        aliases
        allNames
        [
        #
        allNames
        +
        1
        ]
        =
        mw
        .
        site
        .
        namespaces
        [
        6
        ].
        name
        allNames
        [
        #
        allNames
        +
        1
        ]
        =
        mw
        .
        site
        .
        namespaces
        [
        6
        ].
        canonicalName
        for
        i
        ,
        name
        in
        ipairs
        (
        allNames
        )
        do
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        mw
        .
        ustring
        .
        len
        (
        name
        )
        +
        1
        ))
        ==
        mw
        .
        ustring
        .
        lower
        (
        name
        ..
        ":"
        )
        then
        image
        =
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        mw
        .
        ustring
        .
        len
        (
        name
        )
        +
        2
        );
        break
        end
        end
        -- Trim spaces
        image
        =
        mw
        .
        ustring
        .
        gsub
        (
        image
        ,
        '^[ ]*(.-)[ ]*$'
        ,
        '%1'
        );
        -- capitalise first letter
        image
        =
        mw
        .
        ustring
        .
        upper
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        1
        ))
        ..
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        2
        );
        for
        i
        ,
        j
        in
        pairs
        (
        placeholder_image
        )
        do
        if
        image
        ==
        j
        then
        return
        true
        end
        end
        return
        false
        end
        function
        i
        .
        InfoboxImage
        (
        frame
        )
        local
        image
        =
        frame
        .
        args
        [
        "image"
        ];
        if
        image
        ==
        ""
        or
        image
        ==
        nil
        then
        return
        ""
        ;
        end
        if
        image
        ==
        " "
        then
        return
        image
        ;
        end
        if
        frame
        .
        args
        [
        "suppressplaceholder"
        ]
        ~=
        "no"
        then
        if
        i
        .
        IsPlaceholder
        (
        image
        )
        ==
        true
        then
        return
        ""
        ;
        end
        end
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        5
        ))
        ==
        "http:"
        then
        return
        ""
        ;
        end
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        6
        ))
        ==
        "[http:"
        then
        return
        ""
        ;
        end
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        7
        ))
        ==
        "[[http:"
        then
        return
        ""
        ;
        end
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        6
        ))
        ==
        "https:"
        then
        return
        ""
        ;
        end
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        7
        ))
        ==
        "[https:"
        then
        return
        ""
        ;
        end
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        8
        ))
        ==
        "[[https:"
        then
        return
        ""
        ;
        end
        if
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        2
        )
        ==
        "[["
        then
        -- search for thumbnail images and add to tracking cat if found
        local
        cat
        =
        ""
        ;
        if
        mw
        .
        title
        .
        getCurrentTitle
        ().
        namespace
        ==
        0
        and
        (
        mw
        .
        ustring
        .
        find
        (
        image
        ,
        "|%s*thumb%s*[|%]]"
        )
        or
        mw
        .
        ustring
        .
        find
        (
        image
        ,
        "|%s*thumbnail%s*[|%]]"
        ))
        then
        cat
        =
        "[[Category:Pages using infoboxes with thumbnail images]]"
        ;
        elseif
        mw
        .
        title
        .
        getCurrentTitle
        ().
        namespace
        ==
        0
        then
        cat
        =
        "[[Category:Pages using deprecated image syntax]]"
        ;
        end
        return
        image
        ..
        cat
        ;
        elseif
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        2
        )
        ==
        "{{"
        and
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        3
        )
        ~=
        "{{{"
        then
        return
        image
        ;
        elseif
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        1
        )
        ==
        "<"
        then
        return
        image
        ;
        elseif
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        5
        )
        ==
        mw
        .
        ustring
        .
        char
        (
        127
        )
        ..
        "UNIQ"
        then
        -- Found strip marker at begining, so pass don't process at all
        return
        image
        ;
        elseif
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        4
        ,
        9
        )
        ==
        "`UNIQ-"
        then
        -- Found strip marker at begining, so pass don't process at all
        return
        image
        ;
        else
        local
        result
        =
        ""
        ;
        local
        page
        =
        frame
        .
        args
        [
        "page"
        ];
        local
        size
        =
        frame
        .
        args
        [
        "size"
        ];
        local
        maxsize
        =
        frame
        .
        args
        [
        "maxsize"
        ];
        local
        sizedefault
        =
        frame
        .
        args
        [
        "sizedefault"
        ];
        local
        alt
        =
        frame
        .
        args
        [
        "alt"
        ];
        local
        link
        =
        frame
        .
        args
        [
        "link"
        ];
        local
        title
        =
        frame
        .
        args
        [
        "title"
        ];
        local
        border
        =
        frame
        .
        args
        [
        "border"
        ];
        local
        upright
        =
        frame
        .
        args
        [
        "upright"
        ]
        or
        ""
        ;
        local
        thumbtime
        =
        frame
        .
        args
        [
        "thumbtime"
        ]
        or
        ""
        ;
        local
        center
        =
        frame
        .
        args
        [
        "center"
        ];
        -- remove prefix if exists
        local
        allNames
        =
        mw
        .
        site
        .
        namespaces
        [
        6
        ].
        aliases
        allNames
        [
        #
        allNames
        +
        1
        ]
        =
        mw
        .
        site
        .
        namespaces
        [
        6
        ].
        name
        allNames
        [
        #
        allNames
        +
        1
        ]
        =
        mw
        .
        site
        .
        namespaces
        [
        6
        ].
        canonicalName
        for
        i
        ,
        name
        in
        ipairs
        (
        allNames
        )
        do
        if
        mw
        .
        ustring
        .
        lower
        (
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        1
        ,
        mw
        .
        ustring
        .
        len
        (
        name
        )
        +
        1
        ))
        ==
        mw
        .
        ustring
        .
        lower
        (
        name
        ..
        ":"
        )
        then
        image
        =
        mw
        .
        ustring
        .
        sub
        (
        image
        ,
        mw
        .
        ustring
        .
        len
        (
        name
        )
        +
        2
        );
        break
        end
        end
        if
        maxsize
        ~=
        ""
        and
        maxsize
        ~=
        nil
        then
        -- if no sizedefault then set to maxsize
        if
        sizedefault
        ==
        ""
        or
        sizedefault
        ==
        nil
        then
        sizedefault
        =
        maxsize
        end
        -- check to see if size bigger than maxsize
        if
        size
        ~=
        ""
        and
        size
        ~=
        nil
        then
        local
        sizenumber
        =
        tonumber
        (
        mw
        .
        ustring
        .
        match
        (
        size
        ,
        "%d*"
        ))
        or
        0
        ;
        local
        maxsizenumber
        =
        tonumber
        (
        mw
        .
        ustring
        .
        match
        (
        maxsize
        ,
        "%d*"
        ))
        or
        0
        ;
        if
        sizenumber
        >
        maxsizenumber
        and
        maxsizenumber
        >
        0
        then
        size
        =
        maxsize
        ;
        end
        end
        end
        -- add px to size if just a number
        if
        (
        tonumber
        (
        size
        )
        or
        0
        )
        >
        0
        then
        size
        =
        size
        ..
        "px"
        ;
        end
        -- add px to sizedefault if just a number
        if
        (
        tonumber
        (
        sizedefault
        )
        or
        0
        )
        >
        0
        then
        sizedefault
        =
        sizedefault
        ..
        "px"
        ;
        end
        result
        =
        "[[File:"
        ..
        image
        ;
        if
        page
        ~=
        ""
        and
        page
        ~=
        nil
        then
        result
        =
        result
        ..
        "|page="
        ..
        page
        ;
        end
        if
        size
        ~=
        ""
        and
        size
        ~=
        nil
        then
        result
        =
        result
        ..
        "|"
        ..
        size
        ;
        elseif
        sizedefault
        ~=
        ""
        and
        sizedefault
        ~=
        nil
        then
        result
        =
        result
        ..
        "|"
        ..
        sizedefault
        ;
        else
        result
        =
        result
        ..
        "|frameless"
        ;
        end
        if
        center
        ==
        "yes"
        then
        result
        =
        result
        ..
        "|center"
        end
        if
        alt
        ~=
        ""
        and
        alt
        ~=
        nil
        then
        result
        =
        result
        ..
        "|alt="
        ..
        alt
        ;
        end
        if
        link
        ~=
        ""
        and
        link
        ~=
        nil
        then
        result
        =
        result
        ..
        "|link="
        ..
        link
        ;
        end
        if
        border
        ==
        "yes"
        then
        result
        =
        result
        ..
        "|border"
        ;
        end
        if
        upright
        ==
        "yes"
        then
        result
        =
        result
        ..
        "|upright"
        ;
        elseif
        upright
        ~=
        ""
        then
        result
        =
        result
        ..
        "|upright="
        ..
        upright
        ;
        end
        if
        thumbtime
        ~=
        ""
        then
        result
        =
        result
        ..
        "|thumbtime="
        ..
        thumbtime
        ;
        end
        if
        title
        ~=
        ""
        and
        title
        ~=
        nil
        then
        result
        =
        result
        ..
        "|"
        ..
        title
        ;
        elseif
        alt
        ~=
        ""
        and
        alt
        ~=
        nil
        then
        result
        =
        result
        ..
        "|"
        ..
        alt
        ;
        end
        result
        =
        result
        ..
        "]]"
        ;
        return
        result
        ;
        end
        end
        return
        i
        ;
      
What is this?