Skip to content

Commit 2476174

Browse files
committed
[clang-doc] integrate JSON as the source for Mustache templates
1 parent 25f5252 commit 2476174

File tree

9 files changed

+171
-654
lines changed

9 files changed

+171
-654
lines changed

clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp

Lines changed: 78 additions & 409 deletions
Large diffs are not rendered by default.

clang-tools-extra/clang-doc/assets/class-template.mustache

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,20 @@
4444
<main>
4545
<div class="container">
4646
<div class="sidebar">
47-
<h2>{{RecordType}} {{Name}}</h2>
47+
<h2>{{TagType}} {{Name}}</h2>
4848
<ul>
49-
{{#PublicMembers}}
49+
{{#HasPublicMembers}}
5050
<li class="sidebar-section">
51-
<a class="sidebar-item" href="#PublicMethods">Public Members</a>
51+
<a class="sidebar-item" href="#PublicMembers">Public Members</a>
5252
</li>
5353
<ul>
54-
{{#Obj}}
54+
{{#PublicMembers}}
5555
<li class="sidebar-item-container">
5656
<a class="sidebar-item" href="#{{Name}}">{{Name}}</a>
5757
</li>
58-
{{/Obj}}
58+
{{/PublicMembers}}
5959
</ul>
60-
{{/PublicMembers}}
60+
{{/HasPublicMembers}}
6161
{{#ProtectedMembers}}
6262
<li class="sidebar-section">
6363
<a class="sidebar-item" href="#PublicMethods">Protected Members</a>
@@ -70,18 +70,18 @@
7070
{{/Obj}}
7171
</ul>
7272
{{/ProtectedMembers}}
73-
{{#PublicFunction}}
73+
{{#HasPublicFunctions}}
7474
<li class="sidebar-section">
7575
<a class="sidebar-item" href="#PublicMethods">Public Method</a>
7676
</li>
7777
<ul>
78-
{{#Obj}}
78+
{{#PublicFunctions}}
7979
<li class="sidebar-item-container">
80-
<a class="sidebar-item" href="#{{ID}}">{{Name}}</a>
80+
<a class="sidebar-item" href="#{{USR}}">{{Name}}</a>
8181
</li>
82-
{{/Obj}}
82+
{{/PublicFunctions}}
8383
</ul>
84-
{{/PublicFunction}}
84+
{{/HasPublicFunctions}}
8585
{{#ProtectedFunction}}
8686
<li class="sidebar-section">
8787
<a class="sidebar-item" href="#ProtectedFunction">Protected Method</a>
@@ -101,7 +101,7 @@
101101
<ul>
102102
{{#Obj}}
103103
<li class="sidebar-item-container">
104-
<a class="sidebar-item" href="#{{ID}}">{{EnumName}}</a>
104+
<a class="sidebar-item" href="#{{USR}}">{{EnumName}}</a>
105105
</li>
106106
{{/Obj}}
107107
</ul>
@@ -127,33 +127,33 @@
127127
<div class="content">
128128
<section class="hero section-container">
129129
<div class="hero__title">
130-
<h1 class="hero__title-large">{{RecordType}} {{Name}}</h1>
130+
<h1 class="hero__title-large">{{TagType}} {{Name}}</h1>
131131
{{#RecordComments}}
132132
<div class="hero__subtitle">
133133
{{>Comments}}
134134
</div>
135135
{{/RecordComments}}
136136
</div>
137137
</section>
138-
{{#PublicMembers}}
138+
{{#HasPublicMembers}}
139139
<section id="PublicMembers" class="section-container">
140140
<h2>Public Members</h2>
141141
<div>
142-
{{#Obj}}
142+
{{#PublicMembers}}
143143
<div id="{{Name}}" class="delimiter-container">
144144
<pre>
145-
<code class="language-cpp code-clang-doc" >{{Type}} {{Name}}</code>
145+
<code class="language-cpp code-clang-doc" >{{Type}} {{Name}}</code>
146146
</pre>
147147
{{#MemberComments}}
148148
<div>
149149
{{>Comments}}
150150
</div>
151151
{{/MemberComments}}
152152
</div>
153-
{{/Obj}}
153+
{{/PublicMembers}}
154154
</div>
155155
</section>
156-
{{/PublicMembers}}
156+
{{/HasPublicMembers}}
157157
{{#ProtectedMembers}}
158158
<section id="ProtectedMembers" class="section-container">
159159
<h2>Protected Members</h2>
@@ -173,26 +173,28 @@
173173
</div>
174174
</section>
175175
{{/ProtectedMembers}}
176-
{{#PublicFunction}}
176+
{{#HasPublicFunctions}}
177177
<section id="PublicMethods" class="section-container">
178178
<h2>Public Methods</h2>
179179
<div>
180-
{{#Obj}}
180+
{{#PublicFunctions}}
181181
{{>FunctionPartial}}
182-
{{/Obj}}
182+
{{/PublicFunctions}}
183183
</div>
184184
</section>
185-
{{/PublicFunction}}
186-
{{#ProtectedFunction}}
187-
<section id="ProtectedFunction" class="section-container">
188-
<h2>Protected Methods</h2>
189-
<div>
185+
{{/PublicFunctions}}
186+
{{#ProtectedFunction}}
187+
<li class="sidebar-section">
188+
<a class="sidebar-item" href="#ProtectedFunction">Protected Method</a>
189+
</li>
190+
<ul>
190191
{{#Obj}}
191-
{{>FunctionPartial}}
192+
<li class="sidebar-item-container">
193+
<a class="sidebar-item" href="#{{ID}}">{{Name}}</a>
194+
</li>
192195
{{/Obj}}
193-
</div>
194-
</section>
195-
{{/ProtectedFunction}}
196+
</ul>
197+
{{/ProtectedFunction}}
196198
{{#Enums}}
197199
<section id="Enums" class="section-container">
198200
<h2>Enumerations</h2>

clang-tools-extra/clang-doc/assets/enum-template.mustache

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<div>
1010
<pre>
1111
<code class="language-cpp code-clang-doc">
12-
{{EnumName}}
12+
enum {{Name}}
1313
</code>
1414
</pre>
1515
</div>
@@ -23,15 +23,21 @@
2323
<th>Comment</th>
2424
{{/HasComment}}
2525
</tr>
26-
{{#EnumValues}}
26+
{{#Members}}
2727
<tr>
2828
<td>{{Name}}</td>
29+
{{! A ValueExpr is an explicitly assigned enum value }}
30+
{{#Value}}
2931
<td>{{Value}}</td>
32+
{{/Value}}
33+
{{^Value}}
34+
<td>{{ValueExpr}}</td>
35+
{{/Value}}
3036
{{#EnumValueComments}}
3137
<td>{{>Comments}}</td>
3238
{{/EnumValueComments}}
3339
</tr>
34-
{{/EnumValues}}
40+
{{/Members}}
3541
</tbody>
3642
</table>
3743
{{#EnumComments}}

clang-tools-extra/clang-doc/assets/function-template.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
This file defines the template for functions/methods
77
}}
88
<div class="delimiter-container">
9-
<div id="{{ID}}">
9+
<div id="{{USR}}">
1010
{{! Function Prototype }}
1111
<pre>
1212
<code class="language-cpp code-clang-doc">

clang-tools-extra/clang-doc/assets/namespace-template.mustache

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,56 +46,61 @@
4646
<div class="sidebar">
4747
<h2>{{RecordType}} {{Name}}</h2>
4848
<ul>
49-
{{#Enums}}
49+
{{#HasEnums}}
5050
<li class="sidebar-section">
5151
<a class="sidebar-item" href="#Enums">Enums</a>
5252
</li>
5353
<ul>
54-
{{#Obj}}
54+
{{#Enums}}
5555
<li class="sidebar-item-container">
56-
<a class="sidebar-item" href="#{{ID}}">{{EnumName}}</a>
56+
<a class="sidebar-item" href="#{{USR}}">{{Name}}</a>
5757
</li>
58-
{{/Obj}}
58+
{{/Enums}}
5959
</ul>
60-
{{/Enums}}
61-
{{#Record}}
60+
{{/HasEnums}}
61+
{{#HasRecords}}
6262
<li class="sidebar-section">
6363
<a class="sidebar-item" href="#Classes">Inner Classes</a>
6464
</li>
6565
<ul>
66-
{{#Links}}
66+
{{#Records}}
6767
<li class="sidebar-item-container">
68-
<a class="sidebar-item" href="#{{ID}}">{{Name}}</a>
68+
<a class="sidebar-item" href="#{{USR}}">{{Name}}</a>
6969
</li>
70-
{{/Links}}
70+
{{/Records}}
7171
</ul>
72-
{{/Record}}
72+
{{/HasRecrods}}
7373
</ul>
7474
</div>
7575
<div class="resizer" id="resizer"></div>
7676
<div class="content">
77-
{{#Enums}}
77+
{{#HasEnums}}
7878
<section id="Enums" class="section-container">
7979
<h2>Enumerations</h2>
8080
<div>
81-
{{#Obj}}
81+
{{#Enums}}
8282
{{>EnumPartial}}
83-
{{/Obj}}
83+
{{/Enums}}
8484
</div>
8585
</section>
86-
{{/Enums}}
87-
{{#Record}}
86+
{{/HasEnums}}
87+
88+
{{#HasRecords}}
8889
<section id="Classes" class="section-container">
8990
<h2>Inner Classes</h2>
9091
<ul class="class-container">
91-
{{#Links}}
92-
<li id="{{ID}}" style="max-height: 40px;">
93-
<a href="{{Link}}"><pre><code class="language-cpp code-clang-doc" >class {{Name}}</code></pre></a>
92+
{{#Records}}
93+
<li id="{{USR}}" style="max-height: 40px;">
94+
<a href="{{DocumentationFileName}}.html">
95+
<pre>
96+
<code class="language-cpp code-clang-doc">class {{Name}}</code>
97+
</pre>
98+
</a>
9499
</li>
95-
{{/Links}}
100+
{{/Records}}
96101
</ul>
102+
{{/HasRecords}}
97103
</section>
98-
{{/Record}}
99104
</div>
100105
</div>
101106
</main>

0 commit comments

Comments
 (0)