caption: HTML created: 20131205160816081 modified: 20230115100934146 tags: WikiText title: HTML in WikiText type: text/vnd.tiddlywiki ! HTML tags and comments HTML tags and comments can be used directly in WikiText. For example: ```
This is my nice and simple block of text. HelloThere
``` !! Pragma Comments <<.from-version 5.2.0>> Comments can now be freely intermixed with pragmas as well as within the main body of a block of wikitext. ``` \define test() some text \end <> ``` ! Important !! Security <<.warning """Note that any HTML attributes prefixed with `on` are removed from the rendered HTML content. This is done to prevent event handlers (such as "onclick") being used as a clandestine way to execute untrusted JavaScript. A design goal of TiddlyWiki is to ensure that executable JavaScript can only enter the system through explicit JavaScript module tiddlers or raw markup tiddlers. This makes it possible to filter unsafe content in multiuser environments, and also makes it safer to copy untrusted wikitext examples.""">> !! Widgets <<.tip """[[Widgets share the same syntax as HTML tags|Widgets in WikiText]]
and so the following information applies to them, too.""">> ! Block mode versus Inline mode To get the content of an HTML element to be [[parsed|WikiText Parser Modes]] in [[block mode|Block Mode WikiText]], the opening tag must be followed by two linebreaks. Without the two linebreaks, the tag content will be [[parsed|WikiText Parser Modes]] in [[inline mode|Inline Mode WikiText]] which means that block mode formatting such as wikitext tables, lists and headings is not recognised. See also [[WikiText parser mode: HTML examples]] and [[WikiText parser mode transitions]]. ! Self closing elements The following tags are treated as 'void'. This means that `` is treated as if it were ``, and that no terminating `` is needed (if one is provided it will be ignored and treated as plain text). * ``, ``, `
`, ``, ``, ``, `
`, ``, ``, ``, ``, ``, ``, ``, ``, `` If you do not close any other tag then it will behave as if the missing closing tag were at the end of the tiddler. ! Attributes In an extension of conventional HTML syntax, attributes of elements/widgets can be specified in several different ways: * a literal string * a transclusion of a TextReference * a transclusion of a [[macro/variable|Macros]] * as the result of a [[Filter Expression]] !! Style Attributes <<.from-version "5.2.2">> TiddlyWiki supports the usual HTML ''style'' attribute for assigning CSS styles to elements: ```
Hello
``` In an extension to HTML, TiddlyWiki also supports accessing individual CSS styles as independent attributes. For example: ```
Hello
``` The advantage of this syntax is that it simplifies assigning computed values to CSS styles. For example: ```
Hello
``` !! Literal Attribute Values Literal attribute values can use several different styles of quoting: * Single quotes (eg `attr='value'`) * Double quotes (eg `attr="value"`) * Tripe double quotes (eg `attr="""value"""`) * No quoting is necessary for values that do not contain spaces (eg `attr=value`) Literal attribute values can include line breaks. For example: ```
``` By using triple-double quotes you can specify attribute values that contain single double quotes. For example: ```
``` !! Transcluded Attribute Values Transcluded attribute values are indicated with double curly braces around a TextReference. For example: ``` attr={{tiddler}} attr={{!!field}} attr={{tiddler!!field}} ``` <<.warning "The value of the attribute value will be the exact text retrieved from the TextReference. Any wiki syntax in that text will be left as-is.">> !! Variable Attribute Values Variable attribute values are indicated with double angle brackets around a [[macro invocation|Macro Calls]]. For example: ```
>> ...
``` <<.warning "The text from the definition of the macro will be retrieved and text substitution will be performed (i.e. <<.param $param$>> and <<.param $(...)$>> syntax). The value of the attribute value will be the resulting text. Any wiki syntax in that text (including further macro calls and variable references) will be left as-is.">> !! Filtered Attribute Values Filtered attribute values are indicated with triple curly braces around a [[Filter Expression]]. The value will be the first item in the resulting list, or the empty string if the list is empty. <<.from-version "5.2.2">> To improve readability, newlines can be included anywhere that whitespace is allowed within filtered attributes. This example shows how to add a prefix to a value: ``` <$text text={{{ [addprefix[$:/myprefix/]] }}} /> ``` <<.warning "The value of the attribute will be the exact text from the first item in the resulting list. Any wiki syntax in that text will be left as-is.">>