Skip to content

Commit 68059bc

Browse files
committed
fix code-highlight: correct font size and timing, remove duplicate CSS
1 parent 3c4c1d9 commit 68059bc

1 file changed

Lines changed: 17 additions & 14 deletions

File tree

assets/code-highlight.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
/* code-highlight.js
22
Converts static code blocks to read-only CodeMirror instances.
3-
Handles: <pre><code>, <pre>, .syntax-block, .impl-block */
3+
Handles: <pre><code>, <pre>, .syntax-block, .impl-block
4+
Loaded at end of <body> so DOM is already available -- no DOMContentLoaded needed. */
45

56
(function () {
67
function highlight() {
7-
// Handle <pre> and <pre><code> blocks
8+
// <pre> and <pre><code> blocks
89
document.querySelectorAll('pre').forEach(function (pre) {
910
if (pre.dataset.cmDone) return;
1011
pre.dataset.cmDone = '1';
1112
var code = pre.querySelector('code');
1213
var text = code ? code.textContent : pre.textContent;
13-
1414
var wrapper = document.createElement('div');
1515
wrapper.className = 'cm-static-wrap';
16+
wrapper.style.cssText = 'margin-bottom:1.25rem;border-radius:8px;overflow:hidden;';
1617
pre.parentNode.insertBefore(wrapper, pre);
1718
pre.style.display = 'none';
18-
19-
CodeMirror(wrapper, {
19+
var cm = CodeMirror(wrapper, {
2020
value: text.replace(/^\n/, ''),
2121
mode: 'cppmode',
2222
theme: 'cppmode',
@@ -26,21 +26,21 @@
2626
scrollbarStyle: 'null',
2727
viewportMargin: Infinity,
2828
});
29+
cm.getWrapperElement().style.fontSize = '13px';
2930
});
3031

31-
// Handle .syntax-block divs (reference pages - function signatures)
32+
// .syntax-block divs (reference pages - function signatures)
3233
document.querySelectorAll('.syntax-block').forEach(function (el) {
3334
if (el.dataset.cmDone) return;
3435
el.dataset.cmDone = '1';
3536
var text = el.textContent;
36-
3737
var wrapper = document.createElement('div');
3838
wrapper.className = 'cm-static-wrap cm-syntax-wrap';
39+
wrapper.style.cssText = 'margin-bottom:0.5rem;border-radius:6px;overflow:hidden;background:#f8f8f8;';
3940
el.parentNode.insertBefore(wrapper, el);
4041
el.style.display = 'none';
41-
42-
CodeMirror(wrapper, {
43-
value: text.replace(/^\n/, ''),
42+
var cm = CodeMirror(wrapper, {
43+
value: text.replace(/^\n/, '').trim(),
4444
mode: 'cppmode',
4545
theme: 'cppmode',
4646
readOnly: true,
@@ -49,20 +49,20 @@
4949
scrollbarStyle: 'null',
5050
viewportMargin: Infinity,
5151
});
52+
cm.getWrapperElement().style.fontSize = '13px';
5253
});
5354

54-
// Handle .impl-block divs (reference pages - implementation examples)
55+
// .impl-block divs (reference pages - implementation examples)
5556
document.querySelectorAll('.impl-block').forEach(function (el) {
5657
if (el.dataset.cmDone) return;
5758
el.dataset.cmDone = '1';
5859
var text = el.textContent;
59-
6060
var wrapper = document.createElement('div');
6161
wrapper.className = 'cm-static-wrap cm-impl-wrap';
62+
wrapper.style.cssText = 'margin-bottom:1.25rem;border-radius:6px;overflow:hidden;max-height:400px;';
6263
el.parentNode.insertBefore(wrapper, el);
6364
el.style.display = 'none';
64-
65-
CodeMirror(wrapper, {
65+
var cm = CodeMirror(wrapper, {
6666
value: text.replace(/^\n/, ''),
6767
mode: 'cppmode',
6868
theme: 'cppmode',
@@ -72,9 +72,12 @@
7272
scrollbarStyle: 'native',
7373
viewportMargin: Infinity,
7474
});
75+
cm.getWrapperElement().style.fontSize = '12px';
7576
});
7677
}
7778

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

0 commit comments

Comments
 (0)