Moduł:HtmlBuilder/opis

Z Almanach
< Moduł:HtmlBuilder
Wersja z dnia 13:44, 6 paź 2014 autorstwa Sauron (dyskusja | edycje) (Utworzono nową stronę "{{Deprecated template|old=Module:HtmlBuilder|new=mw:Extension:Scribunto/Lua reference manual#HTML library{{!}}mw.html}} {{High-risk|10,000,000}} {{module rating|protecte...")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

To jest strona dokumentacji dla Moduł:HtmlBuilder

Szablon:Deprecated template Szablon:High-risk

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.

Note: This module is deprecated in favour of mw.html.

Usage[edytuj]

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[edytuj]

To allow chaining, all methods return a reference to the builder, unless otherwise stated.

tag[edytuj]

local div = builder.tag('div') Appends a new child node to the builder, and returns an HtmlBuilder instance representing that new node.

done[edytuj]

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[edytuj]

builder = div.allDone() Like .done(), but traverses all the way to the root node of the tree and returns it.

wikitext[edytuj]

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[edytuj]

div.newline() Appends a newline character to the node. Equivalent to .wikitext('\n').

attr[edytuj]

div.attr('title', 'Attr value') Set an HTML attribute on the node.

css[edytuj]

div.css('color', '#f00') Set a CSS property to be added to the node's style attribute.

cssText[edytuj]

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[edytuj]

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[edytuj]

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.