Skip to content

Commit a245c94

Browse files
committed
fix code highlighting spacing and pre visibility
1 parent 9cf22c6 commit a245c94

1 file changed

Lines changed: 12 additions & 25 deletions

File tree

assets/code-highlight.js

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
1-
/* code-highlight.js
2-
Converts static code blocks to read-only CodeMirror instances.
3-
Handles: <pre><code>, <pre>, .syntax-block, .impl-block
4-
Loaded at end of <body> so DOM is already available -- no DOMContentLoaded needed. */
5-
61
(function () {
72
function highlight() {
8-
// <pre> and <pre><code> blocks
3+
// Handle <pre> blocks
94
document.querySelectorAll('pre').forEach(function (pre) {
105
if (pre.dataset.cmDone) return;
116
pre.dataset.cmDone = '1';
127
var code = pre.querySelector('code');
13-
var text = code ? code.textContent : pre.textContent;
8+
var text = (code ? code.textContent : pre.textContent).replace(/^\n/, '');
149
var wrapper = document.createElement('div');
1510
wrapper.className = 'cm-static-wrap';
16-
wrapper.style.cssText = 'margin-bottom:1.25rem;border-radius:8px;overflow:hidden;';
1711
pre.parentNode.insertBefore(wrapper, pre);
1812
pre.style.display = 'none';
19-
var cm = CodeMirror(wrapper, {
20-
value: text.replace(/^\n/, ''),
13+
CodeMirror(wrapper, {
14+
value: text,
2115
mode: 'cppmode',
2216
theme: 'cppmode',
2317
readOnly: true,
@@ -26,21 +20,19 @@
2620
scrollbarStyle: 'null',
2721
viewportMargin: Infinity,
2822
});
29-
cm.getWrapperElement().style.fontSize = '13px';
3023
});
3124

32-
// .syntax-block divs (reference pages - function signatures)
25+
// Handle .syntax-block divs (reference pages)
3326
document.querySelectorAll('.syntax-block').forEach(function (el) {
3427
if (el.dataset.cmDone) return;
3528
el.dataset.cmDone = '1';
36-
var text = el.textContent;
29+
var text = el.textContent.replace(/^\n/, '');
3730
var wrapper = document.createElement('div');
3831
wrapper.className = 'cm-static-wrap cm-syntax-wrap';
39-
wrapper.style.cssText = 'margin-bottom:0.5rem;border-radius:6px;overflow:hidden;background:#f8f8f8;';
4032
el.parentNode.insertBefore(wrapper, el);
4133
el.style.display = 'none';
42-
var cm = CodeMirror(wrapper, {
43-
value: text.replace(/^\n/, '').trim(),
34+
CodeMirror(wrapper, {
35+
value: text,
4436
mode: 'cppmode',
4537
theme: 'cppmode',
4638
readOnly: true,
@@ -49,21 +41,19 @@
4941
scrollbarStyle: 'null',
5042
viewportMargin: Infinity,
5143
});
52-
cm.getWrapperElement().style.fontSize = '13px';
5344
});
5445

55-
// .impl-block divs (reference pages - implementation examples)
46+
// Handle .impl-block divs (reference pages - dark background)
5647
document.querySelectorAll('.impl-block').forEach(function (el) {
5748
if (el.dataset.cmDone) return;
5849
el.dataset.cmDone = '1';
59-
var text = el.textContent;
50+
var text = el.textContent.replace(/^\n/, '');
6051
var wrapper = document.createElement('div');
6152
wrapper.className = 'cm-static-wrap cm-impl-wrap';
62-
wrapper.style.cssText = 'margin-bottom:1.25rem;border-radius:6px;overflow:hidden;max-height:400px;';
6353
el.parentNode.insertBefore(wrapper, el);
6454
el.style.display = 'none';
65-
var cm = CodeMirror(wrapper, {
66-
value: text.replace(/^\n/, ''),
55+
CodeMirror(wrapper, {
56+
value: text,
6757
mode: 'cppmode',
6858
theme: 'cppmode',
6959
readOnly: true,
@@ -72,12 +62,9 @@
7262
scrollbarStyle: 'native',
7363
viewportMargin: Infinity,
7464
});
75-
cm.getWrapperElement().style.fontSize = '12px';
7665
});
7766
}
7867

79-
// Scripts load at end of body so DOM is ready -- call immediately
80-
// but also handle the rare case where this loads early
8168
if (document.readyState === 'loading') {
8269
document.addEventListener('DOMContentLoaded', highlight);
8370
} else {

0 commit comments

Comments
 (0)