42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
function output(inp) {
|
|
document.body.appendChild(document.createElement('pre')).innerHTML = inp;
|
|
}
|
|
|
|
function syntaxHighlight(json) {
|
|
console.log(json)
|
|
json = JSON.stringify(JSON.parse(json.replace(/"/g, '"')), undefined, 4)
|
|
json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\p{C}+/g, '?'); // replace all non-printable characters
|
|
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
|
|
var cls = 'number';
|
|
if (/^"/.test(match)) {
|
|
if (/:$/.test(match)) {
|
|
cls = 'key';
|
|
} else {
|
|
cls = 'string';
|
|
}
|
|
} else if (/true|false/.test(match)) {
|
|
cls = 'boolean';
|
|
} else if (/null/.test(match)) {
|
|
cls = 'null';
|
|
}
|
|
return '<span class="' + cls + '">' + match + '</span>';
|
|
});
|
|
}
|
|
|
|
function from_server(json_string){
|
|
console.log(json_string)
|
|
json_string = JSON.parse(json_string.replace(/"/g, '"').replace(/\p{C}+/g, '?'))
|
|
window.devbug = json_string
|
|
}
|
|
|
|
const navbar = document.getElementById('navbar')
|
|
const sticky = navbar.offsetTop;
|
|
|
|
window.onscroll = () => {
|
|
if ( window.pageYOffset >= sticky ) {
|
|
navbar.classList.add('sticky')
|
|
}
|
|
else {
|
|
navbar.classList.remove('sticky')
|
|
}
|
|
} |