मोड्युल:HtmlBuilder/कागजात
| This Lua module is used on approximately १०,०००,००० pages, or roughly 8748% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
| This module is rated as ready for general use. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by sandbox testing rather than repeated trial-and-error editing. |
HtmlBuilder provides a way to construct complex HTML and CSS markup by creating a tree of nodes, similar to the Document Object Model. The result is a list of codes that are more comprehensible and maintainable than if you simply concatenated strings together. It offers a fluent interface that should look familiar to any user of jQuery.
Usage
[सम्पादन गर्नुहोस्]First, you need to load the module:
local HtmlBuilder = require('Module:HtmlBuilder')
Next, create the root HtmlBuilder instance:
local builder = HtmlBuilder.create()
Then, you can build HTML using the methods of the HtmlBuilder instance, listed below.
Finally, get the resulting HTML markup as a string:
local s = tostring(builder)
Methods
[सम्पादन गर्नुहोस्]To allow chaining, all methods return a reference to the builder, unless otherwise stated.
tag
[सम्पादन गर्नुहोस्]local div = builder.tag('div')
Appends a new child node to the builder, and returns an HtmlBuilder instance representing that new node.
done
[सम्पादन गर्नुहोस्]builder = div.done()
Returns the parent node under which the current node was created. Like jQuery.end, this is a convenience function to allow the construction of several child nodes to be chained together into a single statement.
allDone
[सम्पादन गर्नुहोस्]builder = div.allDone()
Like .done(), but traverses all the way to the root node of the tree and returns it.
wikitext
[सम्पादन गर्नुहोस्]div.wikitext('This is some [[example]] text.')
Appends some markup to the node. It may include plain text, wiki markup, and even HTML markup.
newline
[सम्पादन गर्नुहोस्]div.newline()
Appends a newline character to the node. Equivalent to .wikitext('\n').
attr
[सम्पादन गर्नुहोस्]div.attr('title', 'Attr value')
Set an HTML attribute on the node.
css
[सम्पादन गर्नुहोस्]div.css('color', '#f00')
Set a CSS property to be added to the node's style attribute.
cssText
[सम्पादन गर्नुहोस्]div.cssText('color:#f00; font-size:1.5em')
Add some raw CSS to the node's style attribute. This is typically used when a template allows some CSS to be passed in as a parameter, such as the liststyle parameter of {{Navbox}}.
addClass
[सम्पादन गर्नुहोस्]div.addClass('even')
Adds a class name to the node's class attribute. Spaces will be automatically added to delimit each added class name.
Examples
[सम्पादन गर्नुहोस्]local HtmlBuilder = require('Module:HtmlBuilder')
local root = HtmlBuilder.create()
root
.wikitext('Lorem ')
.tag('span')
.css('color', 'red')
.attr('title', 'ipsum dolor')
.wikitext('sit amet')
.done()
.tag('div')
.wikitext('consectetur adipisicing')
local s = tostring(root)
-- s = 'Lorem <span style="color:red;" title="ipsum dolor">sit amet</span><div>consectetur adipisicing</div>'
For more examples, please see the test cases page and the test cases results.