Module:WikitextParser/doc
| This is a documentation subpage for Module:WikitextParser. It may contain usage information, categories and other content that is not part of the original module page. |
| This module is rated as alpha. It is ready for limited use and third-party feedback. It may be used on a small number of pages, but should be monitored closely. Suggestions for new features or adjustments to input and output are welcome. |
This module is a general-purpose wikitext parser. It's designed to be used by other Lua modules and shouldn't be called directly by templates.
Usage
[edit source]First, require WikitextParser and get some wikitext to parse. For example:
local parser = require( 'Module:WikitextParser' )
local title = mw.title.getCurrentTitle()
local wikitext = title:getContent()
Then, use and combine the available methods. For example:
local sections = parser.getSections( wikitext )
for sectionTitle, sectionContent in pairs( sections ) do
local sectionFiles = parser.getFiles( sectionContent )
-- Do stuff
end
Methods
[edit source]getLead
[edit source]getLead( wikitext )
Returns the lead section from the given wikitext. The lead section is defined as everything before the first section title. If there's no lead section, an empty string will be returned.
getSections
[edit source]getSections( wikitext )
Returns a table with the section titles as keys and the section contents as values. This method doesn't get the lead section (use getLead for that).
getSection
[edit source]getSection( wikitext, sectionTitle )
Returns the content of the section with the given section title, including subsections. If you don't want subsections, use getSections instead. If the given section title appears more than once, only the first will be returned. If the section is not found, nil will be returned.
getSectionTag
[edit source]getSectionTag( wikitext, tagName )
Returns the contents of the <section> tag with the given tag name (see Help:Labeled section transclusion). If the tag is not found, nil will be returned.
getLists
[edit source]getLists( wikitext )
Returns a table with each value being a list (ordered or unordered).
getParagraphs
[edit source]getParagraphs( wikitext )
Returns a table with each value being a paragraph. Paragraphs are defined as block-level elements that are not lists, templates, files, categories, tables or section titles.
getTemplates
[edit source]getTemplates( wikitext )
Returns a table with each value being a template.
getTemplate
[edit source]getTemplate( wikitext, templateName )
Returns the template with the given template name.
getTemplateName
[edit source]getTemplateName( templateWikitext )
Returns the name of the given template. If the given wikitext is not recognized as that of a template, nil will be returned.
getTemplateParameters
[edit source]getTemplateParameters( templateWikitext )
Returns a table with the parameter names as keys and the parameter values as values. For unnamed parameters, the keys are numerical. If the given wikitext is not recognized as that of a template, nil will be returned.
getTags
[edit source]getTags( wikitext )
Returns a table with each value being a tag and its contents (like <div>, <gallery>, <ref>, <noinclude>). Tags inside tags will be ignored. If you're interested in getting them, run this method again for each of the returned tags.
getTagName
[edit source]getTagName( tagWikitext )
Returns the name of the tag in the given wikitext. For example 'div', 'span', 'gallery', 'ref', etc.
getTagAttribute
[edit source]getTagAttribute( tagWikitext, attribute )
Returns the value of an attribute in the given tag. For example the id of a div or the name of a reference.
getGalleries
[edit source]getGalleries( wikitext )
Returns a table with each value being a gallery.
getReferences
[edit source]getReferences( wikitext )
Returns a table with each value being a reference. This includes self-closing references (like <ref name="foo" />) as well as full references.
getTables
[edit source]getTables( wikitext )
Returns a table with each value being a wiki table.
getTableAttribute
[edit source]getTableAttribute( tableWikitext, attribute )
Returns the value of an attribute in the given wiki table. For example the id or the class.
getTable
[edit source]getTable( wikitext, id )
Returns the wiki table with the given id. If not found, nil will be returned.
getTableData
[edit source]getTableData( tableWikitext )
Returns a Lua table representing the data of the given wiki table.
getLinks
[edit source]getLinks( wikitext )
Returns a Lua table with each value being a wiki link. For external links, use getExternalLinks instead.
getFileLinks
[edit source]getFileLinks( wikitext )
Returns a Lua table with each value being a file link.
getFileName
[edit source]getFileName( fileWikitext )
Returns the name of the given template. If the given wikitext is not recognized as that of a file, nil will be returned.
getCategories
[edit source]getCategories( wikitext )
Returns a Lua table with each value being a category link.
getExternalLinks
[edit source]getExternalLinks( wikitext )
Returns a Lua table with each value being an external link. For internal links, use getLinks instead.
See also
[edit source]- Module:Excerpt - Main caller of this module
- mw:WikitextParser.js - Similar parser written in JavaScript, for use in gadgets, user scripts and other tools