Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
MediaWiki help
Creopedia
Search
Search
Appearance
Log in
Personal tools
Log in
View source for Module:Prevnext
Module
Discussion
English
Read
View source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
View source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
←
Module:Prevnext
require( 'strict' ) local p = {} local ICON_MAP = { prev = 'cdxIconArrowPrevious.svg', next = 'cdxIconArrowNext.svg' } --- Returns true if a page exists --- --- @param page string --- @return boolean local function pageExists( page ) local title = mw.title.new( page ) return title and title.exists end --- Make a link for the previous or next page --- --- @param args table --- @param dir string --- @return mw.html|nil local function getLinkHtml( args, dir ) if not args[ dir ] then return end local inner = mw.html.create( 'div' ) inner:addClass( 't-prevnext__' .. dir ) :addClass( 't-prevnext__link' ) if not pageExists( args[ dir ] ) then inner:addClass( 't-prevnext__link--new' ) end local icon = mw.html.create( 'div' ) icon:addClass( 't-prevnext__icon' ) :wikitext( string.format( '[[File:%s|14px|link=|class=skin-invert-image]]', ICON_MAP[ dir ] ) ) :done() if dir == 'prev' then inner:node( icon ) end local content = inner:tag( 'div' ) :addClass( 't-prevnext__content' ) :tag( 'div' ) :addClass( 't-prevnext__title' ) :wikitext( args[ dir .. 'Title' ] or args[ dir ] ) :done() if args[ dir .. 'Desc' ] then content:tag( 'div' ) :addClass( 't-prevnext__desc' ) :wikitext( args[ dir .. 'Desc' ] ) :done() end if dir == 'next' then inner:node( icon ) end inner:tag( 'div' ) :addClass( 't-prevnext__linkoverlay' ) :wikitext( string.format( '[[%s]]', args[ dir ] ) ) :allDone() return inner end --- Wikitext entry point for the module --- --- @param frame mw.frame --- @return string function p.main( frame ) local getArgs = require( 'Module:Arguments' ).getArgs return p._main( getArgs( frame ) ) end --- Lua entry point for the module --- --- @param args table --- @return string function p._main( args ) local root = mw.html.create( 'div' ) root:addClass( 't-prevnext' ) local current = mw.html.create( 'div' ) current:addClass( 't-prevnext__current' ) local content = current:tag( 'div' ) :addClass( 't-prevnext__content' ) :tag( 'div' ) :addClass( 't-prevnext__title' ) :wikitext( args.title or mw.title.getCurrentTitle().subpageText ) :done() if args.desc then content:tag( 'div' ) :addClass( 't-prevnext__desc' ) :wikitext( args.desc ) end current:allDone() root :node( getLinkHtml( args, 'prev' ) ) :node( current ) :node( getLinkHtml( args, 'next' ) ) return mw.getCurrentFrame():extensionTag { name = 'templatestyles', args = { src = 'Module:Prevnext/styles.css' } } .. tostring( root:allDone() ) end return p
Templates used on this page:
Template:Documentation
(
view source
)
Module:Prevnext/doc
(
view source
)
Return to
Module:Prevnext
.