2016-05-19 14 views
2

Wie definiere ich ein Makro in asciidoc/asciidoctor?Wie definiere ich ein eigenes Asciidoc-Makro?

Ich werde in vielen Teilen meines Dokuments ein sich wiederholendes Muster verwenden, daher möchte ich eine parametrisierte Ersetzung vornehmen, um zu vermeiden, dass ich dasselbe Material mehrmals eingeben muss.

Insbesondere ich habe folgendes asciidoc Schnipsel:

{set:cellbgcolor:grey} 
[grid=none, frame=none] 
|=== 
| X >| Y 
|=== 
{set:cellbgcolor!} 

Und ich brauche es in mehrere Teile des Dokuments zu platzieren mit verschiedenen Text Substitutionen anstelle von X und Y. Wie kann ich das erreichen?

Antwort

2

Meiner Meinung nach bekommt man nicht mit Asciidoctor die Flexibilität/Einfachheit Sie in anderen Dokumentationen Motoren erhalten:

  • Befehlsdefinition in LaTeX
  • Templates in MediaWiki.

Ich denke, dass Sie mit der Include-Makro und Variablen in Asciidoctor arbeiten können:

eine Datei snippet.adoc namens Create (mein Beispiel auf dem Beispiel basiert):

{set:cellbgcolor:grey} 
[grid=none, frame=none] 
|=== 
| {paramX} >| {paramY} 
|=== 
{set:cellbgcolor!} 

In Ihrem Hauptdokument verwenden Sie es wie folgt:

== My document 

:paramX: lorem 
:paramY: ipsum 
include::snippet.adoc[] 

Lorem ipsum dolore. 

:paramX: aaaa 
:paramY: bbbb 
include::snippet.adoc[] 

Lorem ipsum dolore. 

Das sagte asciidoctor kann erweitert werden. Sie können auch ein eigenes echtes Makro erstellen (geschrieben in Java oder in Ruby), aber das erfordert mehr Arbeit. Abhängig von Ihrem Anwendungsfall finden Sie mehrere Beispiele online.

Verwandte Themen