'asciidoc macros
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:
FOOshould be replaced by"bar"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'?
Solution 1:[1]
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.
Solution 2:[2]
There is a separate project, that I am associated with
http://github.com/verhas/jamal
which is a macroprocessor and it is available as an Asciidoctor preprocessor. Note that this is not Asciidoc, which is the format, but the implementation of the converter, Asciidoctor.
I think that Jamal just does exactly what you are looking for. It has complex macro processing capabilities that superseed those of Asciidoc and there are also a lot of built-in macros, some replacing, some extending the Asciidoc formatting and macro capabilities.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | DavidGamba |
| Solution 2 | Peter Verhas |
