Asciidoc table 用于计数器值和文本引用
Asciidoc table for counter values and text references
我正在创建如下所述的 asciidoc:
Start of document
* R{counter:recom}: sentence1
...
* R{counter:recom}: sentence2
...
* R{counter:recom}: sentence3
End
注意:asciidoc 中的 R{counter:recom}
在生成的文档中将显示为 R1 R2 R3
。
我需要在文档的开头创建一个 table,它将参考文档中的计数器和文本,如下所述:
Start of document
|Ref#|text from the document
|R1|sentence1
|R2|sentence2
|R3|sentence3
throughout the doc:
* R{counter:recom}: sentence1
...
* R{counter:recom}: sentence2
...
* R{counter:recom}: sentence3
End
现在,这里有两个未知的东西:
如何将 table 中的 asciidoc R1 sentence1
中的计数器和句子部分一起或单独引用,这样,如果我在文档中更改它,它将是在 table?
中更改
如何引用 table 中的计数器值,以便它们作为指向文档中实际计数器值 R1
的链接?
不确定是否有现成的构造来实现此目的,我还没有想出如何使用 anchor
或 include
语句来实现它。
以下是属性的实验。它满足以下要求:
- 如果您更改属性中的句子,table 和文档中的句子都会更改
- table 和文档将包含相同的数字
- table 到文档中的项目
:ref-a: R{counter:recom}
:sen-a: sentence1
:ref-b: R{counter:recom}
:sen-b: sentence2
:ref-c: R{counter:recom}
:sen-c: sentence3
|===
|Ref#|text from the document
|<<link-a>>|{sen-a}
|<<link-b>>|{sen-b}
|<<link-c>>|{sen-c}
|===
throughout the doc:
* [[link-a,{ref-a}]]{ref-a}: {sen-a}
...
* [[link-b,{ref-b}]]{ref-b}: {sen-b}
...
* [[link-c,{ref-c}]]{ref-c}: {sen-c}
...
用任一方法渲染这个
Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (jruby 9.2.7.0 (2.5.3) 2019-04-09 8a269e3 Java HotSpot(TM) 64-Bit Server VM 25.161-b12 on 1.8.0_161-b12 +jit [mswin32-x86_64]) (lc:CP850 fs:Windows-1252 in:CP850 ex:CP850)
或
Asciidoctor PDF 1.5.0.beta.1 using Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (jruby 9.2.7.0 (2.5.3) 2019-04-09 8a269e3 Java HotSpot(TM) 64-Bit Server VM 25.161-b12 on 1.8.0_161-b12 +jit [mswin32-x86_64]) (lc:CP850 fs:Windows-1252 in:CP850 ex:CP850)
显示
将句子放在属性中的替代方法:假设每个章节都在一个单独的文件中进行描述,您可以使用包含语句,该语句仅包含 table 文件的第一行,使用 include::filename.txt[lines=1]
,然后在文档中包含完整文件。详见Include By Line Ranges in the Asciidoctor documentation(你也可以使用标签指定table的内容)。
@ahus1 说的。
或者,如果您可以将计数器行转换为章节标题,那就很简单了:
= Document
[cols="a"]
|===
| <<first>>
| <<second>>
| <<third>>
|===
...
[[first]]
== R{counter:recom}: sentence 1
...
[[second]]
== R{counter:recom}: sentence 2
...
[[third]]
== R{counter:recom}: sentence 3
...
End
我正在创建如下所述的 asciidoc:
Start of document
* R{counter:recom}: sentence1
...
* R{counter:recom}: sentence2
...
* R{counter:recom}: sentence3
End
注意:asciidoc 中的 R{counter:recom}
在生成的文档中将显示为 R1 R2 R3
。
我需要在文档的开头创建一个 table,它将参考文档中的计数器和文本,如下所述:
Start of document
|Ref#|text from the document
|R1|sentence1
|R2|sentence2
|R3|sentence3
throughout the doc:
* R{counter:recom}: sentence1
...
* R{counter:recom}: sentence2
...
* R{counter:recom}: sentence3
End
现在,这里有两个未知的东西:
如何将 table 中的 asciidoc
R1 sentence1
中的计数器和句子部分一起或单独引用,这样,如果我在文档中更改它,它将是在 table? 中更改
如何引用 table 中的计数器值,以便它们作为指向文档中实际计数器值
R1
的链接?
不确定是否有现成的构造来实现此目的,我还没有想出如何使用 anchor
或 include
语句来实现它。
以下是属性的实验。它满足以下要求:
- 如果您更改属性中的句子,table 和文档中的句子都会更改
- table 和文档将包含相同的数字
- table 到文档中的项目
:ref-a: R{counter:recom}
:sen-a: sentence1
:ref-b: R{counter:recom}
:sen-b: sentence2
:ref-c: R{counter:recom}
:sen-c: sentence3
|===
|Ref#|text from the document
|<<link-a>>|{sen-a}
|<<link-b>>|{sen-b}
|<<link-c>>|{sen-c}
|===
throughout the doc:
* [[link-a,{ref-a}]]{ref-a}: {sen-a}
...
* [[link-b,{ref-b}]]{ref-b}: {sen-b}
...
* [[link-c,{ref-c}]]{ref-c}: {sen-c}
...
用任一方法渲染这个
Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (jruby 9.2.7.0 (2.5.3) 2019-04-09 8a269e3 Java HotSpot(TM) 64-Bit Server VM 25.161-b12 on 1.8.0_161-b12 +jit [mswin32-x86_64]) (lc:CP850 fs:Windows-1252 in:CP850 ex:CP850)
或
Asciidoctor PDF 1.5.0.beta.1 using Asciidoctor 2.0.10 [https://asciidoctor.org]
Runtime Environment (jruby 9.2.7.0 (2.5.3) 2019-04-09 8a269e3 Java HotSpot(TM) 64-Bit Server VM 25.161-b12 on 1.8.0_161-b12 +jit [mswin32-x86_64]) (lc:CP850 fs:Windows-1252 in:CP850 ex:CP850)
显示
将句子放在属性中的替代方法:假设每个章节都在一个单独的文件中进行描述,您可以使用包含语句,该语句仅包含 table 文件的第一行,使用 include::filename.txt[lines=1]
,然后在文档中包含完整文件。详见Include By Line Ranges in the Asciidoctor documentation(你也可以使用标签指定table的内容)。
@ahus1 说的。
或者,如果您可以将计数器行转换为章节标题,那就很简单了:
= Document
[cols="a"]
|===
| <<first>>
| <<second>>
| <<third>>
|===
...
[[first]]
== R{counter:recom}: sentence 1
...
[[second]]
== R{counter:recom}: sentence 2
...
[[third]]
== R{counter:recom}: sentence 3
...
End