rewrite docs JS in Nim (#19701)
* rewrite docs JS in Nim * fixup * fix nimdoc/rsttester
This commit is contained in:
parent
00775f6880
commit
ded8b0e541
8 changed files with 35 additions and 302 deletions
|
|
@ -243,49 +243,6 @@ doc.file = """<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
<script type="text/javascript" src="$dochackjs"></script>
|
<script type="text/javascript" src="$dochackjs"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -22,49 +22,6 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="dochack.js"></script>
|
<script type="text/javascript" src="dochack.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -22,49 +22,6 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="dochack.js"></script>
|
<script type="text/javascript" src="dochack.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -22,49 +22,6 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="dochack.js"></script>
|
<script type="text/javascript" src="dochack.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -22,49 +22,6 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="../../dochack.js"></script>
|
<script type="text/javascript" src="../../dochack.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -22,49 +22,6 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="dochack.js"></script>
|
<script type="text/javascript" src="dochack.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -22,49 +22,6 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="dochack.js"></script>
|
<script type="text/javascript" src="dochack.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function main() {
|
|
||||||
var pragmaDots = document.getElementsByClassName("pragmadots");
|
|
||||||
for (var i = 0; i < pragmaDots.length; i++) {
|
|
||||||
pragmaDots[i].onclick = function(event) {
|
|
||||||
// Hide tease
|
|
||||||
event.target.parentNode.style.display = "none";
|
|
||||||
// Show actual
|
|
||||||
event.target.parentNode.nextElementSibling.style.display = "inline";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function switchTheme(e) {
|
|
||||||
if (e.target.checked) {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('theme', 'dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.setAttribute('data-theme', 'light');
|
|
||||||
localStorage.setItem('theme', 'light');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
|
|
||||||
if (toggleSwitch !== null) {
|
|
||||||
toggleSwitch.addEventListener('change', switchTheme, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentTheme = localStorage.getItem('theme');
|
|
||||||
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
currentTheme = 'dark';
|
|
||||||
}
|
|
||||||
if (currentTheme) {
|
|
||||||
document.documentElement.setAttribute('data-theme', currentTheme);
|
|
||||||
|
|
||||||
if (currentTheme === 'dark' && toggleSwitch !== null) {
|
|
||||||
toggleSwitch.checked = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', main);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="documentId">
|
<div class="document" id="documentId">
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,39 @@
|
||||||
import dom
|
import dom
|
||||||
import fuzzysearch
|
import fuzzysearch
|
||||||
|
|
||||||
|
|
||||||
|
proc switchTheme(event: Event) =
|
||||||
|
if event.target.checked:
|
||||||
|
document.documentElement.setAttribute("data-theme", "dark")
|
||||||
|
window.localStorage.setItem("theme", "dark")
|
||||||
|
else:
|
||||||
|
document.documentElement.setAttribute("data-theme", "light")
|
||||||
|
window.localStorage.setItem("theme", "light")
|
||||||
|
|
||||||
|
|
||||||
|
proc nimThemeSwitch(event: Event) {.exportC.} =
|
||||||
|
var pragmaDots = document.getElementsByClassName("pragmadots")
|
||||||
|
for i in 0..<pragmaDots.len:
|
||||||
|
pragmaDots[i].onclick = proc (event: Event) =
|
||||||
|
# Hide tease
|
||||||
|
event.target.parentNode.style.display = "none"
|
||||||
|
# Show actual
|
||||||
|
event.target.parentNode.nextSibling.style.display = "inline"
|
||||||
|
|
||||||
|
let toggleSwitch = document.querySelector(".theme-switch input[type=\"checkbox\"]")
|
||||||
|
|
||||||
|
if toggleSwitch != nil:
|
||||||
|
toggleSwitch.addEventListener("change", switchTheme, false)
|
||||||
|
|
||||||
|
var currentTheme = window.localStorage.getItem("theme")
|
||||||
|
if currentTheme.len == 0 and window.matchMedia("(prefers-color-scheme: dark)").matches:
|
||||||
|
currentTheme = "dark"
|
||||||
|
if currentTheme.len > 0:
|
||||||
|
document.documentElement.setAttribute("data-theme", currentTheme);
|
||||||
|
|
||||||
|
if currentTheme == "dark" and toggleSwitch != nil:
|
||||||
|
toggleSwitch.checked = true
|
||||||
|
|
||||||
proc textContent(e: Element): cstring {.
|
proc textContent(e: Element): cstring {.
|
||||||
importcpp: "#.textContent", nodecl.}
|
importcpp: "#.textContent", nodecl.}
|
||||||
|
|
||||||
|
|
@ -398,3 +431,4 @@ proc copyToClipboard*() {.exportc.} =
|
||||||
.}
|
.}
|
||||||
|
|
||||||
copyToClipboard()
|
copyToClipboard()
|
||||||
|
window.addEventListener("DOMContentLoaded", nimThemeSwitch)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue