You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
4 years ago
|
// Including a fragment more than once in the same document
|
||
|
|
||
|
A document can include the same file any number of times.
|
||
|
The problem comes if there are IDs in the included file; the output document (HTML or DocBook) will then have duplicate IDs which will make it not well-formed.
|
||
|
To fix this, you can reference a dynamic variable from the main document in the ID.
|
||
|
|
||
|
For example, let's say you want to include the same subsection describing a bike chain in both the operation and maintenance chapters:
|
||
|
|
||
|
----
|
||
|
= Bike Manual
|
||
|
|
||
|
:chapter: operation
|
||
|
== Operation
|
||
|
|
||
|
\include::fragment-chain.adoc[]
|
||
|
|
||
|
:chapter: maintenance
|
||
|
== Maintenance
|
||
|
|
||
|
\include::fragment-chain.adoc[]
|
||
|
----
|
||
|
|
||
|
Write [.path]_fragment-chain.adoc_ as:
|
||
|
|
||
|
----
|
||
|
[id='chain-{chapter}']
|
||
|
=== Chain
|
||
|
|
||
|
See xref:chain-{chapter}[].
|
||
|
----
|
||
|
|
||
|
The first time the [.path]_fragment-chain.adoc_ file is included, the ID of the included section resolves to `chain-operation`.
|
||
|
The second time the file included, the ID resolves to `chain-maintenance`.
|
||
|
|
||
|
In order for this to work, you must use the long-hand forms of both the ID assignment and the cross-reference.
|
||
|
The single quotes around the variable name in the assignment are required to force variable substitution (aka interpolation).
|