aboutsummaryrefslogtreecommitdiff
path: root/roles/webserver/files/www/memzero/pub/.gen.sh
diff options
context:
space:
mode:
authorJohannes Stoelp <johannes.stoelp@gmail.com>2024-02-18 22:04:41 +0100
committerJohannes Stoelp <johannes.stoelp@gmail.com>2024-02-18 22:04:47 +0100
commit8ca26cbb43f8ff2b0b5a2c49d8e11a2f4dd54b79 (patch)
treedf29d984b55d1e346863f4ad57cfd76f34af8bab /roles/webserver/files/www/memzero/pub/.gen.sh
parent181545b2cc783165b4387b0d9f31a177ae0af925 (diff)
downloadansible-memzero-8ca26cbb43f8ff2b0b5a2c49d8e11a2f4dd54b79.tar.gz
ansible-memzero-8ca26cbb43f8ff2b0b5a2c49d8e11a2f4dd54b79.zip
nginx: self-hosted freq used docs /pub/
Diffstat (limited to 'roles/webserver/files/www/memzero/pub/.gen.sh')
-rw-r--r--roles/webserver/files/www/memzero/pub/.gen.sh99
1 files changed, 99 insertions, 0 deletions
diff --git a/roles/webserver/files/www/memzero/pub/.gen.sh b/roles/webserver/files/www/memzero/pub/.gen.sh
new file mode 100644
index 0000000..9a8030e
--- /dev/null
+++ b/roles/webserver/files/www/memzero/pub/.gen.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+OUT=references.html
+
+cat <<EOF > $OUT
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>references</title>
+ <style>
+ html {
+ font-family: Source Code Pro, monospace, sans-serif;
+ font-size: clamp(12px, 2vw, 16px);
+ }
+ button {
+ font-family: inherit;
+ font-size: inherit;
+ }
+ </style>
+ <script>
+ /// Map HTML elements to display kinds.
+ const elementToDisplay = (E) => {
+ switch (E.nodeName) {
+ case "LI":
+ return "list-item";
+ default:
+ return "block";
+ }
+ }
+
+ /// Display only elements with tag T.
+ const showTag = (T) => {
+ Array.from(document.getElementsByClassName("content")).forEach(E => {
+ E.style.display = "none";
+ });
+
+ Array.from(document.getElementsByClassName(T)).forEach(E => {
+ E.style.display = elementToDisplay(E);
+ });
+ };
+
+ /// Initialize buttons and callbacks.
+ window.onload = () => {
+ // Handle to the filter placeholder.
+ const filter = document.getElementById("filter");
+
+ // Create buttons for each tag T.
+ ["clear", "sysv", "arm", "x86"].forEach(T => {
+ const btn = document.createElement("button");
+ btn.innerHTML = T;
+ btn.onclick = T === "clear"
+ ? (E) => {
+ showTag("content");
+ filter.innerHTML = "filter:";
+ }
+ : (E) => {
+ showTag(T);
+ filter.innerHTML = \`filter: <mark>\${T}</mark>\`;
+ };
+ filter.before(btn);
+ });
+ }
+ </script>
+</head>
+<body>
+ <p>Self-hosted collection of frequently referenced documents and specifications. This page provides links to the original sources.</p>
+ <p id="filter">filter:</p>
+ <ul>
+EOF
+
+emit() {
+cat <<-EOF >> $OUT
+ <li class="content $1">
+ <a style="color:black;" href="/pub/$2">$2</a>
+ [<a href="$3">original</a>]
+ </li>
+EOF
+}
+
+emit "sysv" abi/sysv/sysv-gabi4-2013 https://www.sco.com/developers/gabi/latest/contents.html
+emit "sysv" abi/sysv/sysv-gabi41.pdf https://www.sco.com/developers/devspecs/gabi41.pdf
+
+emit "sysv x86" abi/sysv-psabi-x86-64.pdf https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build
+emit "sysv arm" abi/sysv/sysv-psabi-arm64.pdf https://github.com/ARM-software/abi-aa/releases/download/2023Q3/aaelf64.pdf
+emit "sysv arm" abi/arm/aapcs64.pdf https://github.com/ARM-software/abi-aa/releases/download/2023Q3/aapcs64.pdf
+
+emit "x86" arch/intel/intel64-optimization-ref-vol1.pdf https://cdrdv2.intel.com/v1/dl/getContent/671488
+emit "x86" arch/intel/intel64-optimization-ref-vol2.pdf https://cdrdv2.intel.com/v1/dl/getContent/787036
+emit "x86" arch/intel/intel64-vol1-architecture-manual.pdf https://cdrdv2.intel.com/v1/dl/getContent/671436
+emit "x86" arch/intel/intel64-vol2-instruction-ref.pdf https://cdrdv2.intel.com/v1/dl/getContent/671110
+emit "x86" arch/intel/intel64-vol3-system-programming.pdf https://cdrdv2.intel.com/v1/dl/getContent/671447
+
+cat <<EOF >> $OUT
+ </ul>
+</body>
+</html>
+EOF