2. A sequence of commands
Prev | Chapter 2. Writing macro-commands | Next

## 2. A sequence of commands

DocBook has no ``bold tag'' but it is customary to use the `emphasis` element with attribute `role` equals to `bold`. The following macro automates this:

    <command name="convertToBold">
      <macro repeatable="true" undoable="true"
             label="Convert to Bold">
        <sequence>
          <command name="convert"
                   parameter="[implicitElement] emphasis" />
          <command name="putAttribute" parameter="role bold" />
        </sequence>
      </macro>
    </command>

Using a sequence element:

1. The macro converts anything convertible to an `emphasis` element (generally text selection, but not only text selection) to an `emphasis` element.

2. If step #1 is successful, the macro adds attribute `role` with value `bold` to the newly created `emphasis` element.

Note that if the first step of a sequence cannot be executed (this is tested before attempting to actually execute the sequence construct), the whole sequence construct cannot be executed.

Step #2 works without an "`[implicitElement]`" parameter for command putAttribute because the newly created `emphasis` element has been automatically selected by the convert command of step #1.

This is often the case. A quick way to learn this is to first perform interactively what needs to be automated by the macro.

Prev | Up | Next
1. How commands are executed | Home | 3. Alternative commands