Shaun McCance
shaunm@gnome.org 2008-2009
Create a list of steps the reader should perform to accomplish a task.

# Procedimientos

    mal_block_steps = element steps {
      attribute style { xsd:NMTOKENS } ?,
      attribute * - (mal:* | local:*) { text } *,

      mal_block_title ?,

      element item {
        attribute style { xsd:NMTOKENS } ?,
        attribute * - (mal:* | local:*) { text } *,

        mal_block +
      } +
    }

Use the `steps` element to create a list of steps the reader should follow. The `steps` element is structurally similar to the `list` element, but marking the list as being instructions to the reader allows special display rules to be applied. If you want a numbered list that is not a procedure, use the `list` element with the `type` attribute to `"numbered"` instead.

# Notas

The `steps` element can contain an optional `title` element followed by one or more `item` elements. Each child `item` element can contain a mixture of text and any general inline elements.

The `steps` element can occur in any general block context, including inside pages, sections, and certain block elements.

The `style` attribute takes a space-separated list of style hints. Processing tools should adjust their behavior according to those style hints they understand.

The `steps` element can have attributes from external namespaces. See for more information on external-namespace attributes.

# Ejemplos

Create a simple procedure of steps for the reader to follow:

<steps> <title>Planting Magic Beans</title> <item><p>Dig a hole 10cm deep.</p></item> <item><p>Place magic beans in the hole.</p></item> <item><p>Fill hole with fertilized soil.</p></item> <item><p>Water frequently.</p></item> </steps>

## Planting Magic Beans

Dig a hole 10cm deep.

Place magic beans in the hole.

Fill hole with fertilized soil.

Water frequently.

Create a procedure with a nested list and a nested procedure:

<steps> <title>Planting Magic Beans</title> <item> <p>Perform one of the following:</p> <list> <item><p>Dig a whole 10cm deep.</p></item> <item><p>Find a whole 10cm deep.</p></item> </list> </item> <item><p>Place magic beans in the hole.</p></item> <item><p>Fill hole with fertilized soil.</p></item> <item> <p>Water frequently with the following steps:</p> <steps> <item><p>Fill watering can with water.</p></item> <item><p>Pour water onto spot where beans were planted.</p></item> </steps> </item> </steps>

## Planting Magic Beans

Perform one of the following:

Dig a whole 10cm deep.

Find a whole 10cm deep.

Place magic beans in the hole.

Fill hole with fertilized soil.

Water frequently with the following steps:

Fill watering can with water.

Pour water onto spot where beans were planted.

# Processing Expectations

Procedures are displayed as block elements, with each child `item` displayed as a numbered list item. When present, the `title` element should be displayed in a way that makes it clear that it is the title of the list. List items are interpreted in the same way as `li` elements in HTML, except that the `item` element only allows block-level child content.

Procedures should have a background color, border, or other styling effect to clearly differentiate them from basic numbered lists. Special styling allows readers to skim pages more easily.

# Comparison to Other Formats

The `steps` element is similar to the `procedure` element in DocBook. Note the following differences:

Instead of a separate `step` element, Mallard simply uses the common `item` element for each step.

DocBook provides an explicit `substeps` element. Mallard provides no such element; simply nest `steps` elements for the same effect.

Mallard provides no equivalent to the `stepalternatives` element. Use a `basic bulleted list` with introductory text when this is needed.

DocBook allows leading block-level content in the `procedure` element. This is not allowed in Mallard, though an optional `title` element is allowed.