some updates to page loading performance and general performance.
added a ServiceWorker which caches stuff
This commit is contained in:
@@ -1,47 +1,67 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="en" style="height:100%;margin:0;">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>Auto Index</title>
|
||||
<script src="../../js/shared/theme.js"></script>
|
||||
<link rel="icon" type="image/x-icon" href="../../css/favicon/favicon.ico">
|
||||
<link rel="stylesheet" href="../../css/indexer.css">
|
||||
|
||||
<!-- Preload + async load -->
|
||||
<link rel="preload" as="style" href="/css/indexer.css" onload="this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/css/indexer.css"></noscript>
|
||||
|
||||
<link rel="icon" href="/css/favicon/favicon.ico" type="image/x-icon">
|
||||
|
||||
<!-- Defer theme toggle -->
|
||||
<script src="/js/shared/theme.js" defer></script>
|
||||
|
||||
<script>
|
||||
console.log("javascript is enabled! good!");
|
||||
document.write('<h1 id="nojs" style="display: flex; align-items: center; cursor: pointer;" onclick="toggleDarkMode();"><img src="../../css/icons/folder.webp" alt="Folder icon" />Index of PyPost</h1>');
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
// Create heading dynamically
|
||||
const h = document.createElement("h1");
|
||||
h.id = "nojs";
|
||||
h.innerHTML = '<img src="/css/icons/folder.webp" width="40" height="40" alt="📁" loading="lazy" style="margin-right:8px;">Index of PyPost';
|
||||
h.onclick = toggleDarkMode;
|
||||
document.body.prepend(h);
|
||||
console.log("JavaScript enabled — index enhanced!");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Register service worker -->
|
||||
<script>
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('/js/post/sw.js').catch(console.error);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<main style="flex:1;">
|
||||
<noscript>
|
||||
<div style="display: inline-flex; align-items: center; flex-wrap: wrap;">
|
||||
<img src="../../css/icons/script.webp" width="45" height="45" alt="Script icon" style="margin-right: 8px;" />
|
||||
<h1 id="nojs" style="margin: 0;">Please enable Javascript!</h1>
|
||||
</div>
|
||||
<p>
|
||||
<i><strong>If you might be wondering, what does the Script do?</strong></i><br/>
|
||||
<ul id="nonenormalul">
|
||||
<li>It strips the .HTML ending from each file you see in the list below</li>
|
||||
<li>It isn't necessary, but visually tweaks the page.</li>
|
||||
<li>It enables the "Back" Function for Headers</li>
|
||||
<li>It enables Searching and Sorting of the Page-Display</li>
|
||||
<li>It is essential for downloading Markdown-Source</li>
|
||||
</ul>
|
||||
<noscript>
|
||||
<div style="display:inline-flex;align-items:center;flex-wrap:wrap;">
|
||||
<img src="/css/icons/script.webp" width="45" height="45" alt="Script icon" style="margin-right:8px;">
|
||||
<h1 style="margin:0;">Please enable JavaScript!</h1>
|
||||
</div>
|
||||
<p>
|
||||
<i><strong>If you might be wondering, what does the Script do?</strong></i><br>
|
||||
<ul>
|
||||
<li>Strips the .HTML ending from filenames</li>
|
||||
<li>Enables search, sorting, and back navigation</li>
|
||||
<li>Allows Markdown source downloads</li>
|
||||
</ul>
|
||||
</p>
|
||||
</noscript>
|
||||
|
||||
<p id="available" style="display:flex;align-items:center;gap:8px;">
|
||||
<img src="/css/icons/available.webp" width="40" height="40" alt="Available" loading="lazy">
|
||||
<span>Available pages:</span>
|
||||
</p>
|
||||
</noscript>
|
||||
|
||||
<p id="available">
|
||||
<img src="../../css/icons/available.webp" width="40" height="40" alt="Available icon" />
|
||||
Available pages:
|
||||
</p>
|
||||
|
||||
<!-- CONTENT -->
|
||||
<!-- CONTENT -->
|
||||
|
||||
|
||||
<!-- load scripts needed for indexer -->
|
||||
<script src="../../js/normal.js"></script>
|
||||
<script src="../../js/search.js" defer></script>
|
||||
<script src="../../js/ulorder.js" defer></script>
|
||||
<!-- Core scripts: async load -->
|
||||
<script src="/js/normal.js" defer></script>
|
||||
<script src="/js/search.js" defer></script>
|
||||
<script src="/js/ulorder.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -1,77 +1,82 @@
|
||||
<!doctype html>
|
||||
<html lang="en" style="height:100%; margin:0;">
|
||||
<html lang="en" style="height:100%;margin:0;">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ title }}</title>
|
||||
<link rel="stylesheet" href="../css/main.css">
|
||||
<link rel="icon" type="image/x-icon" href="../css/favicon/favicon.ico">
|
||||
<script src="../js/post/download.js" defer></script>
|
||||
|
||||
<!-- Prism.js CSS theme -->
|
||||
<!--<link rel="preload" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.min.css" rel="stylesheet" />-->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>{{ title }}</title>
|
||||
|
||||
<!-- Prism.js core + languages -->
|
||||
<!--
|
||||
<script rel="preload" src="https://cdn.jsdelivr.net/npm/prismjs/prism.min.js"></script>
|
||||
<script rel="preload" src="https://cdn.jsdelivr.net/npm/prismjs/components/prism-python.min.js"></script>
|
||||
<script rel="preload" src="https://cdn.jsdelivr.net/npm/prismjs/components/prism-javascript.min.js"></script>
|
||||
-->
|
||||
<!-- Load main stylesheet asynchronously -->
|
||||
<link rel="preload" as="style" href="/css/main.css" onload="this.rel='stylesheet'">
|
||||
<link rel="preload" as="style" href="/css/prism.css" onload="this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/css/main.css"></noscript>
|
||||
|
||||
<!-- MathJAX for LaTeX Support -->
|
||||
<!--
|
||||
<script rel="preload" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" id="MathJax-script"></script>
|
||||
-->
|
||||
<link rel="icon" type="image/x-icon" href="/css/favicon/favicon.ico">
|
||||
|
||||
<!-- Locally fetch the CDN -->
|
||||
<link rel="stylesheet" href="/package/css/prism.min.css" />
|
||||
<script rel="preload" src="/package/js/prism.min.js"></script>
|
||||
<script rel="preload" src="/package/js/prism-python.min.js"></script>
|
||||
<script rel="preload" async defer src="/package/js/mathjax.js"></script>
|
||||
<!-- Local JS -->
|
||||
<script src="/js/shared/theme.js"></script>
|
||||
<script src="/js/post/download.js" defer></script>
|
||||
|
||||
<!-- remove if causing issues -->
|
||||
<script src="../js/post/lazyimg.js"></script>
|
||||
<script src="../js/shared/theme.js"></script>
|
||||
<style>
|
||||
a { text-decoration: none; color: #0066cc; }
|
||||
</style>
|
||||
<!-- Prism (code highlighting) -->
|
||||
<script src="/js/post/prism.js" defer></script>
|
||||
|
||||
<!-- Dynamic MathJax loader -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const hasMath = /\$\$(.|[\r\n])*?\$\$|\$(?!\$)(.*?)\$/.test(document.body.innerHTML);
|
||||
if (hasMath) {
|
||||
const mj = document.createElement('script');
|
||||
mj.src = '/package/js/mathjax.js';
|
||||
mj.defer = true;
|
||||
document.head.appendChild(mj);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Service worker registration -->
|
||||
<script>
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('/js/post/sw.js').catch(console.error);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="display:flex; flex-direction:column; min-height:100%; margin:0;">
|
||||
<main class="container" style="flex:1;">
|
||||
<h1 onclick="window.location.href=window.location.origin" style="cursor:pointer; display:flex; align-items:center; gap:8px; font-size:1.5em; margin:0;">
|
||||
<img loading="lazy" src="../css/icons/back.webp" width="32" height="32" alt="⬅" style="display:block;" />
|
||||
{{ title }} <noscript>(Enable JavaScript!)</noscript>
|
||||
</h1>
|
||||
<img loading="lazy" src="../css/icons/written.webp" width="32" height="32" alt="📄" loading="lazy" style="vertical-align: middle;padding-left:40px;cursor:pointer;" onclick="toggleDarkMode();" />
|
||||
<div class="meta" style="display: inline;cursor:pointer;" onclick="toggleDarkMode();">
|
||||
Written @{{ now }}
|
||||
</div>
|
||||
<hr style="margin:10px 0;" />
|
||||
<div class="html-content">
|
||||
{{ html_body | safe }}
|
||||
</div>
|
||||
|
||||
<body>
|
||||
<main class="container">
|
||||
<h1 onclick="window.location.href=window.location.origin" style="cursor:pointer;display:flex;align-items:center;gap:8px;font-size:1.5em;margin:0;">
|
||||
<img src="/css/icons/back.webp" width="32" height="32" alt="⬅" loading="lazy">
|
||||
{{ title }} <noscript>(Enable JavaScript!)</noscript>
|
||||
</h1>
|
||||
<img src="/css/icons/written.webp" width="32" height="32" alt="📄" loading="lazy" style="vertical-align:middle;padding-left:40px;cursor:pointer;" onclick="toggleDarkMode();" />
|
||||
<div class="meta" style="display:inline;cursor:pointer;" onclick="toggleDarkMode();">
|
||||
Written @{{ now }}
|
||||
</div>
|
||||
<hr style="margin:10px 0;">
|
||||
<div class="html-content">
|
||||
{{ html_body | safe }}
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer style="margin-top:auto; width:100%;">
|
||||
<hr style="margin:10px 0;" />
|
||||
<img src="../css/icons/date.webp" width="16" height="16" alt="date" loading="lazy" style="vertical-align: middle;" />
|
||||
{{ timestamp }}<br/>
|
||||
<footer style="margin-top:auto;width:100%;">
|
||||
<hr style="margin:10px 0;">
|
||||
<img src="/css/icons/date.webp" width="16" height="16" alt="date" loading="lazy">
|
||||
{{ timestamp }}<br>
|
||||
|
||||
<img src="../css/icons/magnifier.webp" width="16" height="16" alt="Hash1" loading="lazy" style="display:inline; vertical-align:middle;" />
|
||||
Hash 1 (<b>UTF-8</b>)<i>:{{ hash1 }}</i><br />
|
||||
<img src="/css/icons/magnifier.webp" width="16" height="16" alt="Hash1" loading="lazy">
|
||||
Hash 1 (<b>UTF-8</b>)<i>:{{ hash1 }}</i><br>
|
||||
|
||||
<img src="../css/icons/magnifier.webp" width="16" height="16" alt="Hash2" loading="lazy" style="display:inline; vertical-align:middle;" />
|
||||
Hash 2 (<b>Windows-1252</b>)<i>:{{ hash2 }}</i><br />
|
||||
<img src="/css/icons/magnifier.webp" width="16" height="16" alt="Hash2" loading="lazy">
|
||||
Hash 2 (<b>Windows-1252</b>)<i>:{{ hash2 }}</i><br>
|
||||
|
||||
<span style="display: inline-flex; align-items: center; gap: 8px;">
|
||||
<img src="../css/icons/save.webp" width="16" height="16" alt="Save" loading="lazy" />
|
||||
<a id="download-md">Download as Markdown <noscript>Enable JavaScript for downloads</noscript></a>
|
||||
|
||||
<span style="border-left: 1px solid #888; height: 16px;"></span> <!-- Vertical separator -->
|
||||
<span style="display:inline-flex;align-items:center;gap:8px;">
|
||||
<img src="/css/icons/save.webp" width="16" height="16" alt="Save" loading="lazy">
|
||||
<a id="download-md">Download as Markdown</a>
|
||||
|
||||
<img src="../css/icons/script.webp" width="16" height="16" alt="Script" loading="lazy" />
|
||||
<a id="download-html">Download as HTML <noscript>Enable JavaScript for downloads</noscript></a>
|
||||
</span>
|
||||
<span style="border-left:1px solid #888;height:16px;"></span>
|
||||
|
||||
<img src="/css/icons/script.webp" width="16" height="16" alt="Script" loading="lazy">
|
||||
<a id="download-html">Download as HTML</a>
|
||||
</span>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user