mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Added pure m4 example
This commit is contained in:
38
samples/M4/htmlgen.m4
Normal file
38
samples/M4/htmlgen.m4
Normal file
@@ -0,0 +1,38 @@
|
||||
dnl Took from https://en.wikipedia.org/wiki/M4_(computer_language)
|
||||
divert(-1)
|
||||
|
||||
M4 has multiple output queues that can be manipulated with the
|
||||
`divert' macro. Valid queues range from 0 to 10, inclusive, with
|
||||
the default queue being 0.
|
||||
|
||||
Calling the `divert' macro with an invalid queue causes text to be
|
||||
discarded until another call. Note that even while output is being
|
||||
discarded, quotes around `divert' and other macros are needed to
|
||||
prevent expansion.
|
||||
|
||||
# Macros aren't expanded within comments, meaning that keywords such
|
||||
# as divert and other built-ins may be used without consequence.
|
||||
|
||||
# HTML utility macro:
|
||||
|
||||
define(`H2_COUNT', 0)
|
||||
|
||||
# The H2_COUNT macro is redefined every time the H2 macro is used:
|
||||
|
||||
define(`H2',
|
||||
`define(`H2_COUNT', incr(H2_COUNT))<h2>H2_COUNT. $1</h2>')
|
||||
|
||||
divert(1)dnl
|
||||
dnl
|
||||
dnl The dnl macro causes m4 to discard the rest of the line, thus
|
||||
dnl preventing unwanted blank lines from appearing in the output.
|
||||
dnl
|
||||
H2(First Section)
|
||||
H2(Second Section)
|
||||
H2(Conclusion)
|
||||
dnl
|
||||
divert(0)dnl
|
||||
dnl
|
||||
<HTML>
|
||||
undivert(1)dnl One of the queues is being pushed to output.
|
||||
</HTML>
|
||||
Reference in New Issue
Block a user