fix topbar to work on mobile devices

The topbar, by way of JavaScript, now works
on mobile devices such as cell phones and
tablets.

Internal links for entries from 1984 thru 2015
have been adjusted.

Ran `make www` to perform the above.

TODO: Fix some color issues on topbar.

TODO: More testing!
This commit is contained in:
Landon Curt Noll committed 2024-04-22 15:05:59 -07:00
1 parent 99cd17401e
commit 97f6da1247
440 files changed
+74125 -6956

No files matched your search

+6 -6
View File
@@ -63,8 +63,8 @@ Or should we teach our youth to understand the intricacies of this code?
Ying Tong Iddle I Po! We suggest you read the source for yourself, which
might be easier than the academic papers it was inspired by.
NOTE: Unlike the original entry source, [prog.alt.c](prog.alt.c),
[prog.c](prog.c) uses a
NOTE: Unlike the original entry source, [prog.alt.c](%%REPO_URL%%/2015/howe/prog.alt.c),
[prog.c](%%REPO_URL%%/2015/howe/prog.c) uses a
64 bit FNV hash and fixes a function call warning.
@@ -95,7 +95,7 @@ The `-d` option simply writes the edit distance between `file1` and `file2`.
The FNV1a hash is a little slow compared to the trivial hash [GNU
diff](https://www.gnu.org/software/diffutils/) uses. I downloaded a plain text
copy of "War And Peace" from [Project Gutenberg](https://www.gutenberg.org),
used [makeholes.c](makeholes.c) to make 1000 random changes, then profiled and
used [makeholes.c](%%REPO_URL%%/2015/howe/makeholes.c) to make 1000 random changes, then profiled and
timed the program verses GNU `diff(1)`. The bottleneck appears to be in the
file I/O and line hashing with an average +0.05s slower. Using a huge file like
"War And Peace" for testing offsets the `diff(1)` optimised file I/O.
@@ -107,12 +107,12 @@ a region of edits are highly unlikely.
### Support Files
* [prog-test.sh](prog-test.sh)
* [prog-test.sh](%%REPO_URL%%/2015/howe/prog-test.sh)
Basic test program verifies known test edit distances and `patch(1)` support.
* [avgtime.sh](avgtime.sh)
* [avgtime.sh](%%REPO_URL%%/2015/howe/avgtime.sh)
* [makeholes.c](makeholes.c)
* [makeholes.c](%%REPO_URL%%/2015/howe/makeholes.c)
Random edits (holes) made to a file in-place.
### References
+188 -22
View File
@@ -51,6 +51,8 @@
IOCCC
</div>
<div class="mobile-header-button-label">Click This</div>
<div class="topbar-items">
<div class="item">
<span class="item-header">
@@ -58,10 +60,10 @@
</span>
<div class="sub-item">
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
</div>
</div>
@@ -71,11 +73,11 @@
</span>
<div class="sub-item">
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
</div>
</div>
@@ -85,11 +87,11 @@
</span>
<div class="sub-item">
<div class="outfit-font"><a href="../../bugs.html">Bugs &amp; (mis)features</a></div>
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
<div class="outfit-font"><a href="./bugs.html">Bugs &amp; (mis)features</a></div>
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
</div>
</div>
@@ -99,15 +101,179 @@
</span>
<div class="sub-item">
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
</div>
</div>
</div>
</div>
</nav>
<div class="header-mobile-menu">
<button id="header-open-menu-button" class="topbar-mobile-menu">
<svg
class="mobile-menu-icon"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="M4 6h16M4 12h16M4 18h16"
></path>
</svg>
</button>
<button id="header-close-menu-button" class="hide-content">
<svg
class="mobile-menu-icon"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="M6 18L18 6M6 6l12 12"
></path>
</svg>
</button>
<div id="mobile-menu-panel" class="hide-content">
<div class="mobile-menu-container">
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Home
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./index.html">
IOCCC Home
</a>
<a class="mobile-submenu-item" href="./years.html">
Winning Entries
</a>
<a class="mobile-submenu-item" href="./authors.html">
People who have won
</a>
<a class="mobile-submenu-item" href="./location.html">
Location of authors
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
News
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./news.html">
IOCCC News
</a>
<a class="mobile-submenu-item" href="./status.html">
Contest status
</a>
<a class="mobile-submenu-item" href="./next/index.html">
Rules and Guidelines
</a>
<a class="mobile-submenu-item" href="./faq.html#submit">
How to enter the IOCCC
</a>
<a class="mobile-submenu-item" href="./faq.html">
FAQ
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Bugs
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./bugs.html">
Bugs &amp; (mis)features
</a>
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
Fixing IOCCC entries
</a>
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
Fixing the web site
</a>
<a class="mobile-submenu-item" href="./faq.html#fix_author">
Fixing author info
</a>
<a class="mobile-submenu-item" href="./thanks-for-help.html">
Thanks for the help
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Judges
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./judges.html">
The IOCCC Judges
</a>
<a class="mobile-submenu-item" href="./contact.html">
Contacting the IOCCC
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
headerOpenMenuButton.addEventListener("click", () => {
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
headerOpenMenuButton.classList.add("hide-content");
headerCloseMenuButton.classList.remove("hide-content");
headerCloseMenuButton.classList.add("topbar-mobile-menu");
mobileMenuPanel.classList.remove("hide-content");
mobileMenuPanel.classList.add("topbar-mobile-panel");
});
headerCloseMenuButton.addEventListener("click", () => {
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
headerCloseMenuButton.classList.add("hide-content");
mobileMenuPanel.classList.add("hide-content");
mobileMenuPanel.classList.remove("topbar-mobile-panel");
headerOpenMenuButton.classList.add("topbar-mobile-menu");
headerOpenMenuButton.classList.remove("hide-content");
});
</script>
<!-- END: this line ends content from: inc/topbar.default.html -->
<!-- START: this line starts content from: inc/header.default.html -->
@@ -183,8 +349,8 @@ during a South Park P.T.A. Meeting?</p>
<p>Or should we teach our youth to understand the intricacies of this code?
Ying Tong Iddle I Po! We suggest you read the source for yourself, which
might be easier than the academic papers it was inspired by.</p>
<p>NOTE: Unlike the original entry source, <a href="prog.alt.c">prog.alt.c</a>,
<a href="prog.c">prog.c</a> uses a
<p>NOTE: Unlike the original entry source, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.alt.c">prog.alt.c</a>,
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.c">prog.c</a> uses a
64 bit FNV hash and fixes a function call warning.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="features">Features</h3>
@@ -204,7 +370,7 @@ with <code>patch(1)</code>.</p>
<p>The FNV1a hash is a little slow compared to the trivial hash <a href="https://www.gnu.org/software/diffutils/">GNU
diff</a> uses. I downloaded a plain text
copy of “War And Peace” from <a href="https://www.gutenberg.org">Project Gutenberg</a>,
used <a href="makeholes.c">makeholes.c</a> to make 1000 random changes, then profiled and
used <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/makeholes.c">makeholes.c</a> to make 1000 random changes, then profiled and
timed the program verses GNU <code>diff(1)</code>. The bottleneck appears to be in the
file I/O and line hashing with an average +0.05s slower. Using a huge file like
“War And Peace” for testing offsets the <code>diff(1)</code> optimised file I/O.</p>
@@ -213,10 +379,10 @@ very <a href="http://programmers.stackexchange.com/questions/49550/which-hashing
a region of edits are highly unlikely.</p>
<h3 id="support-files">Support Files</h3>
<ul>
<li><p><a href="prog-test.sh">prog-test.sh</a>
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog-test.sh">prog-test.sh</a>
Basic test program verifies known test edit distances and <code>patch(1)</code> support.</p></li>
<li><p><a href="avgtime.sh">avgtime.sh</a></p></li>
<li><p><a href="makeholes.c">makeholes.c</a>
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/avgtime.sh">avgtime.sh</a></p></li>
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/makeholes.c">makeholes.c</a>
Random edits (holes) made to a file in-place.</p></li>
</ul>
<h3 id="references">References</h3>