The following macro can be used to move a DocBook list item (listitem, callout or step) down in the list. How to move a DocBook list item up in the list can be found in Example 4.5, “Using the XPath-based constructs match and set”.
<command name="moveListItemDown">
<macro undoable="true" label="Move List Item Down">
<sequence>
<command name="selectNode"
parameter="ancestorOrSelf[implicitElement] listitem callout step" />
<match context="$selected" pattern="*[position() < last()]" />
<set variable="anchor" context="$selected"
expression="./following-sibling::*[1]" />
<command name="cut" />
<set variable="selected" expression="$anchor" />
<command name="paste" parameter="after" />
</sequence>
</macro>
</command>This step ensures that the macro can be executed only inside a list item. | |
This step ensures that the macro cannot be executed for last list item. It uses the XPath-based construct match. As a pseudo-command of a macro, it can be executed only if the context node specified in its This construct like pass, fail and test, is only a test. When match is actually executed, it does nothing at all. | |
This step saves in user variable named Variable
| |
Cut selected list item. | |
Select the list item saved in variable The selection is changed by assigning a node value to predefined variable | |
Paste the list item found in the clipboard after last selected list item. |