Up: Home; Last Updated: 2026-09-07
-Personal website of Peter Harpending
+harpending.org
-Site tree
+Personal website of Peter Harpending
--
-
- Portfolio -
Quick Reference
-External links
--
-
- Git -
diff --git a/README.md b/README.md new file mode 100644 index 0000000..8780f8e --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# repo structure + +``` +dist/ this gets made into a tarball +``` + +idea is for now it's just dumb html website, in the future it could be hakyll or some dynamic buildy thing... we'll see diff --git a/dist/assets/css/.gitkeep b/dist/assets/css/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dist/assets/css/default.css b/dist/assets/css/default.css new file mode 100644 index 0000000..52713f8 --- /dev/null +++ b/dist/assets/css/default.css @@ -0,0 +1,33 @@ +/* common definitions, such as colors */ +* { + /* colors, picked randomishly off gajumining.com */ + --white: #f7f8fb; + /* black */ + --black: #1a2b29; + + /* fonts */ + --sfdefault: Helvetica, "Liberation Sans", FreeSans, Roboto, sans-serif; + --ttdefault: Inconsolata, "Liberation Mono", "Roboto Mono", monospace; + --def-line-height: 1.4; +} + + +body { + background: var(--white); + color: var(--black); + font-family: var(--sfdefault); + font-size: 12pt; + margin: 0; + padding: 0; + line-height: var(--def-line-height); +} + +.content { + max-width: 800px; + margin: 0 auto; +} + +.toc2 { margin-left: 8px; } +.toc3 { margin-left: 16px; } +.toc4 { margin-left: 24px; } +.toc5 { margin-left: 32px; } diff --git a/dist/assets/js/.gitkeep b/dist/assets/js/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dist/assets/js/enum.js b/dist/assets/js/enum.js new file mode 100644 index 0000000..7d1bdf5 --- /dev/null +++ b/dist/assets/js/enum.js @@ -0,0 +1,98 @@ +// makes a table of contents +// top level is h2, goes down from there + +let elt_toc = document.getElementById("toc"); +let elts_enum = document.getElementsByClassName("enum"); + +// top level is h2 +// if we see a bigger level +let last_level = 2; + +let h2_idx = 0; +let h3_idx = 0; +let h4_idx = 0; +let h5_idx = 0; + +// if we see an h2, reset the h3/h4/h5 indexes to 0 +// if we see an h3, reset the h4/h5 indexes to 0 +// so on +function reset_below(level) { + switch(level) { + case 2: h3_idx = 0; + case 3: h4_idx = 0; + case 4: h5_idx = 0; + default: break; + } +} + +// str index; e.g. "1.3.4" +function str_idx(level) { + // build up components in reverse + // so an h4 shouldn't have any h5 data + let components = []; + switch(level) { + case 5: components.push(h5_idx); + case 4: components.push(h4_idx); + case 3: components.push(h3_idx); + case 2: components.push(h2_idx); + default: break; + } + components.reverse(); + return components.join("."); +} + +// when we see a new element, increment the index +function incr(level) { + switch(level) { + case 2: h2_idx += 1; break; + case 3: h3_idx += 1; break; + case 4: h4_idx += 1; break; + case 5: h5_idx += 1; break; + default: break; + } +} + +for (let this_enum_elt of elts_enum) +{ + switch(this_enum_elt.tagName) { + case "H2": this_level = 2; break; + case "H3": this_level = 3; break; + case "H4": this_level = 4; break; + case "H5": this_level = 5; break; + default: this_level = 0; + } + + //console.log(this_enum_elt); + + // increment index, reset those below + // so if we see an h2, bump up the h2 index, reset h3/h4/h5 to 0 + reset_below(this_level); + incr(this_level); + + // "Foo Bar" -> "1.3.4. Foo Bar" + let old_section_title = this_enum_elt.innerText; + let new_section_title = str_idx(this_level) + ". " + this_enum_elt.innerText; + + this_enum_elt.innerText = new_section_title; + + //console.log(new_section_title); + let entry_a = document.createElement('a'); + + // make an id for this entry if it doesn't exist + if (!this_enum_elt.id) { + // "Foo Bar" -> "foo-bar" + let words = old_section_title.split(" "); + let ident = words.map(function (s) { return s.toLowerCase(); }).join("-"); + this_enum_elt.id = ident; + } + + entry_a.href = "#" + this_enum_elt.id; + entry_a.innerText = new_section_title; + entry_a.classList += "toc" + this_level; + + //console.log(entry_a); + let entry_br = document.createElement('br'); + + toc.appendChild(entry_a); + toc.appendChild(entry_br); +} diff --git a/dist/assets/misc/PeterHarpendingResume.pdf b/dist/assets/misc/PeterHarpendingResume.pdf new file mode 100644 index 0000000..60c488d Binary files /dev/null and b/dist/assets/misc/PeterHarpendingResume.pdf differ diff --git a/dist/index.html b/dist/index.html index b120998..6429cb4 100644 --- a/dist/index.html +++ b/dist/index.html @@ -8,20 +8,21 @@
-