Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

asciidoc macros

Tags:

asciidoc

I use asciidoc for rendering text.

I have difficulties to understand macros. My goal is to have a simple macro processing (like in LaTeX). I would like to write two Macros:

  1. FOO should be replaced by "bar"
  2. MYTEXT(xyz) should be replaced by: "This is my text xyz!"
    (perhaps with a different way to pass the parameter 'xyz')

Example file abc.txt:

text text text
FOO text FOO
text text text
MYTEXT(jajaja)

This should result in

text text text
bar text bar
text text text
This is my text jajaja!

I would expect that the definition of FOO and MYTEXT has to go into the file abc.conf; probabely into the secion [macro].

Additional question:

Are there problems with the pattern matching, if FOO should be replace with 'bar' and FOOX with 'barbar'?

like image 373
user1165430 Avatar asked Jan 28 '12 13:01

user1165430


1 Answers

For the task of substituting FOO into bar and FOOX into barbar I would use the substitution syntax:

= AsciiDoc title
:FOO: bar
:FOOX: barbar

Regular text here using substitutions: {FOO} is bar and {FOOX} is barbar.

As you can see, you declare the substitution as :VARIABLE: and you use it as {VARIABLE}.

As to actually creating new macros, macros are usually of the type macroname:content[Text input]. They are documented here for the Python AsciiDoc project and eventually here for the ruby based AsciiDoctor project but I have never really used them, I prefer substitutions and conditional blocks.

like image 199
DavidGamba Avatar answered Sep 21 '22 17:09

DavidGamba