////
Retains the context of the parent assembly if this assembly is nested within another assembly.
For more information about nesting assemblies, see: https://redhat-documentation.github.io/modular-docs/#nesting-assemblies
See also the complementary step on the last line of this file.
////

ifdef::context[:parent-context: {context}]


////
Metadata attribute that will help enable correct parsing and conversion to the appropriate DITA topic type.
////
:_mod-docs-content-type: ASSEMBLY

////
 Base the file name and the ID on the assembly title. For example:
* file name: assembly-my-user-story.adoc
* ID: [id="assembly-my-user-story_{context}"]
* Title: = My user story

ID is a unique identifier that can be used to reference this assembly. Avoid changing it after the module has been published to ensure existing links are not broken. Include {context} in the ID so the assembly can be reused.

Be sure to include a line break between the title and the :context: variable and the :context: variable and the assembly introduction.
If the assembly covers a task, start the title with a verb in the gerund form, such as Creating or Configuring.
////
[id="assembly-my-user-story_{context}"]
= My user story
////
The `context` attribute enables module reuse. Every module ID includes {context}, which ensures that the module has a unique ID so you can include it multiple times in the same guide.
////

:context: assembly-keyword

[role="_abstract"]
This paragraph is the assembly introduction. It explains what the user will accomplish by working through the modules in the assembly and sets the context for the user story the assembly is based on.

== Prerequisites

* A bulleted list of conditions that must be satisfied before the user starts following this assembly.
* You can also link to other modules or assemblies the user must follow before starting this assembly.
* Delete the section title and bullets if the assembly has no prerequisites.
* X is installed. For information about installing X, see <link>.
* You can log in to X with administrator privileges.

////
The following include statements pull in the module files that comprise the assembly. Include any combination of concept, procedure, or reference modules required to cover the user story. You can also include other assemblies.

[leveloffset=+1] ensures that when a module title is a level 1 heading (= Title), the heading will be interpreted as a level-2 heading (== Title) in the assembly. Use [leveloffset=+2] and [leveloffset=+3] to nest modules in an assembly.

 Add a blank line after each 'include::' statement.
////

include::TEMPLATE_CONCEPT_concept-explanation.adoc[leveloffset=+1]

include::TEMPLATE_PROCEDURE_doing-one-procedure.adoc[leveloffset=+2]

include::TEMPLATE_REFERENCE_reference-material.adoc[leveloffset=+2]

// If the last module included in your assembly contains an Additional resources section as well, check the appearance of the rendered assembly. If the two Additional resources sections might be confusing for a reader, consider consolidating their content and removing one of them.

[role="_additional-resources"]
== Additional resources
////
Optional. Delete if not used.
Provide a bulleted list of links and display text relevant to the assembly. These links can include `link:` and `xref:` macros. Do not include additional text.
////
* link:https://github.com/redhat-documentation/modular-docs#modular-documentation-reference-guide[Modular Documentation Reference Guide]
* xref:some-module_{context}[]

// Restore the context to what it was before this assembly.

ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
