Difference between pages "Module:About" and "Module:About/sandbox"
(Difference between pages)
Jump to navigation
Jump to search
m (8 revisions imported) |
m (13 revisions imported) |
||
Line 1: | Line 1: | ||
− | + | local mArguments --initialize lazily | |
+ | local mHatnote = require('Module:Hatnote') | ||
+ | local mHatList = require('Module:Hatnote list') | ||
+ | local libraryUtil = require('libraryUtil') | ||
+ | local checkType = libraryUtil.checkType | ||
+ | local p = {} | ||
+ | |||
+ | function p.about (frame) | ||
+ | -- A passthrough that gets args from the frame and all | ||
+ | mArguments = require('Module:Arguments') | ||
+ | args = mArguments.getArgs(frame) | ||
+ | return p._about(args) | ||
+ | end | ||
+ | |||
+ | |||
+ | function p._about (args, options) | ||
+ | -- Produces "about" hatnote. | ||
+ | |||
+ | -- Type checks and defaults | ||
+ | checkType('_about', 1, args, 'table', true) | ||
+ | args = args or {} | ||
+ | checkType('_about', 2, options, 'table', true) | ||
+ | options = options or {} | ||
+ | local defaultOptions = { | ||
+ | aboutForm = 'This %s is about %s. ', | ||
+ | PageType = require('Module:Pagetype').main(), | ||
+ | otherText = nil, --included for complete list | ||
+ | sectionString = 'section' | ||
+ | } | ||
+ | for k, v in pairs(defaultOptions) do | ||
+ | if options[k] == nil then options[k] = v end | ||
+ | end | ||
+ | |||
+ | -- Set initial "about" string | ||
+ | local pageType = (args.section and options.sectionString) or options.PageType | ||
+ | local about = '' | ||
+ | if args[1] then | ||
+ | about = string.format(options.aboutForm, pageType, args[1]) | ||
+ | end | ||
+ | |||
+ | --Allow passing through certain options | ||
+ | local fsOptions = { | ||
+ | otherText = options.otherText, | ||
+ | extratext = args.text | ||
+ | } | ||
+ | local hnOptions = { | ||
+ | selfref = args.selfref | ||
+ | } | ||
+ | |||
+ | -- Set for-see list | ||
+ | local forSee = mHatList._forSee(args, 2, fsOptions) | ||
+ | |||
+ | -- Concatenate and return | ||
+ | return mHatnote._hatnote(about .. forSee, hnOptions) | ||
+ | end | ||
+ | |||
+ | return p |