-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path00_defines.m4
50 lines (46 loc) · 1.99 KB
/
00_defines.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
m4_divert(-1)
m4_dnl Some general helpers
m4_define(`_foreach',`m4_ifelse(m4_eval($#>2),1,`m4_pushdef(`$1',`$3')$2`'m4_popdef(`$1')`'m4_ifelse(m4_eval($#>3),1,`$0(`$1',`$2',m4_shift(m4_shift(m4_shift($@))))')')')
m4_changecom()
m4_dnl HTML helpers
m4_define(`_BODY',`_TAG(`body',`$1',`$2')')
m4_define(`_CHARSET',_META(charset="`$1'"))
m4_define(`_CLASS',`class="_foreach(`_X',` _X',$@)"')
m4_define(`_CSS',_STAG(link,`rel="stylesheet" href="$1"'))
m4_define(`_DIV',`_TAG(`div',`$2',_CLASS(m4_patsubst(`$1',`,',` ')) `$3')')
m4_define(`_DIVB',_STAG(`div',`_CLASS(`$1') `$2''))
m4_define(`_DIVE',`</div>')
m4_define(`_HEAD',`_TAG(`head',`$1',`$2')')
m4_define(`_HREF',`_TAG(`a',`$2',`href="$1" $3 title="`$4'"')')
m4_define(`_META',_STAG(`meta',$*))
m4_define(`_OL',`<ol>_foreach(`_X',`_TAG(`li',`_X')',$@)</ol>')
m4_define(`_OLa',`<ol type="a">_foreach(`_X',`_TAG(`li',`_X')',$@)</ol>')
m4_define(`_STAG',`<$1 $2>')
m4_define(`_TAG',`<$1 $3>$2</$1>')
m4_define(`_TITLE',_TAG(`title',`$1',`$2'))
m4_define(`_UL',`<ul>_foreach(`_X',`_TAG(`li',`_X')',$@)</ul>')
m4_dnl Built-in macros
m4_define(`_SCRIPT',``m4_esyscmd'(scripts/$1)')
m4_define(`_LAYOUT',m4_divert(-1)`_MASS_DEFINE(m4_shift($@))'`m4_include'(_LAYOUT_DIR$1)`m4_include'(end_layout.m4))
m4_define(`_LAYOUT_PRE',_2_BODY($1))
m4_define(`_LAYOUT_POST',`m4_define(`__layoutpost',$1)')
m4_define(`_INCL',m4_divert(-1)`m4_include'($1))
m4_define(`_MASS_DEFINE',`m4_ifelse(m4_eval($#>1),1,`m4_define($1,$2) _MASS_DEFINE(m4_shift(m4_shift($@)))')')
m4_dnl Layout helpers
m4_define(`_DIVERT_HEAD',2)
m4_define(`_DIVERT_BODY',3)
m4_define(`_2_HEAD',`m4_define(`_OD',m4_divnum) m4_divert(_DIVERT_HEAD) $* m4_divert(_OD)')
m4_define(`_PR_HEAD',`<head>
m4_undivert(_DIVERT_HEAD)m4_dnl
</head>')
m4_define(`_2_BODY',`m4_define(`_OD',m4_divnum) m4_divert(_DIVERT_BODY) $* m4_divert(_OD)')
m4_define(`_PR_BODY',`<body>
m4_undivert(_DIVERT_BODY)m4_dnl
</body>')
m4_define(`_PR_ALL',`m4_divert(0)'m4_dnl
<!DOCTYPE html>
<html lang="LANG">
`_PR_HEAD
_PR_BODY'
</html>)
m4_divert(0)m4_dnl