Parameter syntax:
name [ '['attr_specs
']' ]?attr_specs
->attr_spec
[ S 'and' Sattr_spec
]*attr_spec
-> 'not('attr_simple_spec
')'attr_simple_spec
-> '@'attr_name
[ '='quoted_attr_value
]?
This command emulates the behavior of the Bold, Italic, Underline, etc, toggles found in the tool bars of almost all word-processors. Such toggles add a given text style to text spans not having this text style and remove a given text style to text spans already having this text style. Hence the name “text style” toggle.
Note that such toggles do not require some text to be explicitly selected. If the caret is in the middle of a word, then the toggle acts on this word. If the caret is before or after a word, the toggle acts on this text location by inserting an empty text span having or on the contrary, not having, the corresponding text style.
This command supports the node selection in addition to the text selection. For example, if you want to apply a “text style” to an element in its entirety, suffice to explicitly select it. This is more handy that selecting all the text this element contains.
name
Name of an element which behaves like a text style. Such elements must have a mixed content and may contain text as well as other text styles in arbitrary order and number of occurrences.
DocBook 4 example, literal text style:
literal
Equivalent DocBook 5 example:
{http://docbook.org/ns/docbook}literal
Notice in the above example that XML names belonging to a namespace are specified using the Clark's notation.
attr_name
An element which behaves like a text style may have at most one required attribute. When this is the case, this attribute must be specified in the parameter of the toggleTextStyle
command.
DocBook 4 example, external link text style:
ulink[@url]
Equivalent DocBook 5 example:
{http://docbook.org/ns/docbook}link[@{http://www.w3.org/1999/xlink}href]
quoted_attr_value
In some cases, an element which behaves like a text style has an attribute which specifies a given style. When this is the case, this attribute and its specific value must be specified in the parameter of the toggleTextStyle
command.
DocBook 4 example, bold text style:
emphasis[@role='bold']
Equivalent DocBook 5 example:
{http://docbook.org/ns/docbook}emphasis[@role='bold']
This attribute value may contain a variable. Currently the only supported variable is %{url}
.
DocBook 4 example, external link text style:
ulink[@url='%{url}']
or equivalently (|
, where by default fallback_value
fallback_value
is "???
", is implicit):
ulink[@url='%{url|???}']
The above specification means: convert the selection to an ulink
element having an url
attribute. If the text contained in the selection can be parsed as an absolute URL (e.g. "https://www.xml.com/
") then use this text as the value of the url
attribute, otherwise use "???
" as the value of the url
attribute.
attr_spec
and attr_spec
... and attr_spec
Operator and
means: this text style corresponds to specified element if this element has attributes matching all attribute specifications.
DITA example 1, external link style:
xref[@href and @scope='external' and @format='html']
DITA example 2, internal link text style:
xref[@href and not(@scope='external')]
attr_simple_spec
)Function not()
means: this text style does not correspond to specified element if this element has specified attribute (whatever its value; see DocBook example below) or if this element has specified attribute value (see DITA example below).
DocBook example, emphasis text style:
emphasis[not(@role)]
DITA example, internal link text style:
xref[@href and not(@scope='external')]