Skip to content

Commit 0cba60a

Browse files
authored
Merge pull request #14260 from EspeuteClement/master
autodoc: allow function descriptions expansion
2 parents f7ade7e + b63a771 commit 0cba60a

2 files changed

Lines changed: 61 additions & 4 deletions

File tree

lib/docs/index.html

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,42 @@
266266
font-weight: bold;
267267
}
268268

269+
details[open] summary .sum-less {
270+
display: none;
271+
}
272+
273+
details[open] summary .sum-more {
274+
display: block;
275+
}
276+
277+
details summary .sum-more {
278+
display: none;
279+
}
280+
281+
details summary {
282+
list-style-type: none;
283+
position: relative;
284+
pointer-events: none;
285+
}
286+
287+
details summary::before {
288+
content: "[+] ";
289+
font-family: var(--mono);
290+
color: var(--link-color);
291+
position: sticky;
292+
float: left;
293+
top: 0px;
294+
right: -16px;
295+
z-index: 1;
296+
margin-left: -2em;
297+
pointer-events: all;
298+
cursor: pointer;
299+
}
300+
301+
details[open] summary::before {
302+
content: "[-] ";
303+
}
304+
269305
.examples {
270306
list-style-type: none;
271307
margin: 0;

lib/docs/main.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2466,9 +2466,19 @@ var zigAnalysis;
24662466

24672467
let docs = getAstNode(decl.src).docs;
24682468
if (docs != null) {
2469-
tdDesc.innerHTML = shortDescMarkdown(docs);
2469+
docs = docs.trim();
2470+
var short = shortDesc(docs);
2471+
if (short != docs) {
2472+
short = markdown(short);
2473+
var long = markdown(docs);
2474+
tdDesc.innerHTML =
2475+
"<details><summary><div class=\"sum-less\">" + short + "</div>" + "<div class=\"sum-more\">" + long + "</div></summary></details>";
2476+
}
2477+
else {
2478+
tdDesc.innerHTML = markdown(short);
2479+
}
24702480
} else {
2471-
tdDesc.textContent = "";
2481+
tdDesc.innerHTML = "<p><i>No documentation provided.</i><p>";
24722482
}
24732483
}
24742484
domSectFns.classList.remove("hidden");
@@ -2897,7 +2907,7 @@ var zigAnalysis;
28972907
});
28982908
}
28992909

2900-
function shortDescMarkdown(docs) {
2910+
function shortDesc(docs){
29012911
const trimmed_docs = docs.trim();
29022912
let index = trimmed_docs.indexOf("\n\n");
29032913
let cut = false;
@@ -2913,7 +2923,11 @@ var zigAnalysis;
29132923

29142924
let slice = trimmed_docs.slice(0, index);
29152925
if (cut) slice += "...";
2916-
return markdown(slice);
2926+
return slice;
2927+
}
2928+
2929+
function shortDescMarkdown(docs) {
2930+
return markdown(shortDesc(docs));
29172931
}
29182932

29192933
function markdown(input) {
@@ -3110,6 +3124,13 @@ var zigAnalysis;
31103124
}
31113125
flushRun();
31123126

3127+
if (in_code) {
3128+
in_code = false;
3129+
parsing_code = false;
3130+
innerHTML += "</code>";
3131+
codetag = "";
3132+
}
3133+
31133134
while (stack.length > 0) {
31143135
const fmt = stack.pop();
31153136
innerHTML += "</" + fmt.tag + ">";

0 commit comments

Comments
 (0)