a995dfcd8d1341e3170088097603ad904f2f0c13
[aple.git] / include / m4 / aple.m4
1 changequote(`«', `»')dnl
2 dnl Discard output by diverting to a negative diversion to suppress
3 dnl unwanted trailing newlines after macro definitions.
4 divert(«-1»)
5
6 define(«LOCAL_LINK_NAME», «translit(«$1», «A-Z 
7
8 », «a-z__»)»)
9 define(«REMOVE_NEWLINE», «translit(«$1»,«
10 », « »)»)
11
12 define(«REFERENCE», [«REMOVE_NEWLINE(«$2»)»](««#»»«LOCAL_LINK_NAME(«$1»)»))
13 define(«XREFERENCE», «[$2]»«($1)»)
14 define(«EMPH», ««_»REMOVE_NEWLINE(«$1»)«_»»)
15 define(«CMD», «`REMOVE_NEWLINE(«$1»)`»)
16 define(«SECTION», «
17 divert(«0»)
18 <li> <a href='«#»LOCAL_LINK_NAME(«$1»)'>$1</a> </li>
19 divert(«2»)
20 <h2 id="LOCAL_LINK_NAME(«$1»)">$1</h2>
21 »)
22 define(«SUBSECTION», «<h3 id="LOCAL_LINK_NAME(«$1»)">$1</h3>
23 »)
24
25 define(«OVERVIEW», «
26
27 <div id="overview_heading">
28 ifelse(«$2», «», «Overview», «$2»)
29 </div>
30 <div id="overview_text">
31 $1
32 </div>
33 »)
34 define(«EXERCISES», «<h3> Exercises </h3>»)
35
36 define(«HOMEWORK», «
37 <h3> Homework </h3>
38 ifelse(«$2», «», «$1», «dnl
39 <details> <summary>
40 $1
41 </summary> <h4> Solution </h4>
42 <div class="solution">$2</div> </details>»)
43 »)
44 define(«SUPPLEMENTS», «SECTION(«Supplements»)»)
45
46 define(«TOC_ENTRY», «
47         ifelse(«$1.m4», «$2», «», «<a href="$1.html">»)
48         translit(«$1», «_», « »)
49         ifelse(«$1.m4», «$2», «», «</a>»)
50         <br>
51 »)
52 define(«LOGO», «<a title="home" href="."><img src="aple.svg" alt="logo"></a>»)
53
54 define(«HEADER», «
55 <!DOCTYPE HTML>
56 <html lang="en">
57 <head>
58         <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
59         <title>Unix course</title>
60         <link href="aple.css" rel="stylesheet" type="text/css">
61         <link rel="shortcut icon" href="aple.ico">
62 </head>
63 <body>
64 <table class="logo"> <tr>
65         <td class="logo">LOGO()</td>
66         <td id="title"> <h1>
67                 ifelse(«$3», «», «
68                         substr(translit(«$2», «_», « »), 0, index(«$2», .m4))
69                 », «
70                         $3
71                 »)
72         </h1> <p> <small> $1 </small> </p>
73         </td>
74 </tr> </table>
75
76 »)
77
78 define(«TABLE_OF_CONTENTS», «
79         <ul id="chapter_list">
80                 <li> TOC_ENTRY(«Introduction», «$2») </li>
81                 <li> TOC_ENTRY(«Unix_Concepts», «$2») </li>
82                 ifelse(PUBLIC(), «false», «
83                         <li> TOC_ENTRY(Command_Line_Utilities, «$2») </li>
84                 »)
85                 <li> TOC_ENTRY(Networking, «$2») </li>
86                 <li> TOC_ENTRY(LVM, «$2») </li>
87                 <li> TOC_ENTRY(«Filesystems», «$2») </li>
88                 <li> TOC_ENTRY(OS-Level_Virtualization, «$2») </li>
89                 ifelse(PUBLIC(), «false», «
90                         <li> TOC_ENTRY(Gridengine, «$2») </li>
91                         <li> TOC_ENTRY(Git, «$2») </li>
92                         <li> TOC_ENTRY(Bash, «$2») </li>
93                         <li> TOC_ENTRY(Debugging, «$2») </li>
94                 »)
95         </ul>
96 »)
97
98 define(«TITLE», «
99 HEADER(«$1», «$2», «$3»)
100 <hr>
101 <div class="dropdown">
102 <svg
103         height="35" width="30"
104         xmlns="http://www.w3.org/2000/svg"
105         xmlns:xlink="http://www.w3.org/1999/xlink"
106 >
107         <rect fill="black" height="3" width="20" x="5" y="5" rx="2"/>
108         <rect fill="black" height="3" width="20" x="5" y="11" rx="2"/>
109         <rect fill="black" height="3" width="20" x="5" y="17" rx="2"/>
110 </svg>
111         <div class="dropdown-content">
112                 <h3> Chapter </h3>
113                 TABLE_OF_CONTENTS()
114                 <h4> Section </h4>
115                 <ul>
116 divert(«1»)
117 </ul>
118 </div>
119 </div>
120 divert(«2»)
121 »)
122 divert(«0»)dnl