build index.html for all winners

Updated manifest as per recent file changes.

Updated winner `.winner.json` to reflect the manifest changes.

Added [bin/all_run.sh](bin/all_run.sh) tool to run a command over
all winning entries.

These tools had slight improvements in the help usage message:

* bin/gen-author.sh VERSION="1.3.1 2024-01-16"
* bin/gen-inventory.sh VERSION="1.0.1 2024-01-16"
* bin/pandoc_wrapper.sh VERSION="1.3.1 2024-01-16"
* bin/subst.default.sh VERSION="1.1.1 2024-01-16"
* bin/subst.winner-index.sh VERSION="1.1.1 2024-01-16"

The `bin/readme2index.sh` tool was improved so that
if the `index.html` file exists and the tool forms
the exact same content, then the file `index.html`
file is NOT touched.

* bin/readme2index.sh VERSION="1.1 2024-01-16"

We used the following command to generate `index.html` files
for all winning entries:

```sh
bin/all_run.sh -v 3 bin/readme2index.sh
```

NOTE: We have not (yet) built HTML files above the winner directory
level (e.g., no year level nor top level HTML), nor have be built
non-index HTML files for winners.

NOTE: By default we are running `pandoc(1)` with:

```
--fail-if-warnings=true
```

This means that any problems with markdown to HTML
generates an error.  This is done to be sure that
the HTML conversion is clean.

We had to fix the following `README.md` files:

* `2000/rince/README.md`

The reference [^2] was never used.  We made a guess that [^2] applies
to the same spot as [^1].  Perhaps there is a better spot where
[^2] applies?

NOTE: For every reference, there MUST be some place where that
reference is used.

* 2012/vik/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

* 2018/burton1/README.md

The reference [2] was duplicated.  We changed the
second [2] to [3].

NOTE: Every reference needs to have a unique number.

* 2020/carlini/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

We also found 2 errors in the `author/author_handle.json` file set:

* author/Anonymous_2001.json

The `author/Anonymous_2001.json` file was missing.

* author/Jari_Arkko.json

The winner ID for `1989_jar.1` had a typo.
This commit is contained in:
Landon Curt Noll committed 2024-01-17 00:32:39 -08:00
1 parent 893cd915b6
commit c1466f5165
350 files changed
+95242 -4217

No files matched your search

+349 -13
View File
@@ -1,4 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- START: two lines up starts content from: inc/top.default.html -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
@@ -6,27 +8,361 @@
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- -->
<!-- file: 1995/leo/index.html created by: fake.gen_index.sh version: 1.0.5 2023-10-31 -->
<html lang="en">
<!-- END: this line ends content from: inc/top.default.html -->
<!-- -->
<!-- This file was formed by the tool: bin/readme2index.sh version: 1.1 2024-01-16 -->
<!-- -->
<!-- START: this line starts content from: inc/head.default.html -->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1995 leo</title>
<meta name="description" content="IOCCC year: 1995 IOCCC winner: leo winner index page">
<meta name="keywords" content="IOCCC,1995,leo,winner index page">
<link rel="stylesheet" href="/temp-test-ioccc/ioccc.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>1995/leo</title>
<meta name="description" content="1995 IOCCC winner leo">
<meta name="keywords" content="IOCCC, 1995, IOCCC 1995, IOCCC winner, leo">
</head>
<!-- END: this line ends content from: inc/head.default.html -->
<!-- START: this line starts content from: inc/body.default.html -->
<body>
<h1>1995 leo</h1>
<!-- END: this line ends content from: inc/body.default.html -->
<!-- START: this line starts content from: inc/header.default.html -->
<p>XXX - fake content until readme2index is working - XXX</p>
<div class="header">
<img src="/temp-test-ioccc/png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
<h1>The International Obfuscated C Code Contest</h1>
<h2>1995/leo</h2>
</div>
<hr style="width:50%;text-align:left;margin-left:0">
<!-- END: this line ends content from: inc/header.default.html -->
<!-- START: this line starts content from: inc/topnav.mid.html -->
<!-- Start Nu Html Checker -->
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1995%2Fleo%2Findex.html">Nu Html check https://ioccc-src.github.io/temp-test-ioccc/1995/leo/index.html</a></p>
<!-- End Nu Html Checker -->
<div class="topnav">
<a class="Left" href="../heathbar/index.html">&larr; heathbar</a>
<a class="Left" href="../index.html">&uarr; 1995 &uarr;</a>
<a class="Left" href="../makarios/index.html">makarios &rarr;</a>
<a class="Right" href="#inventory">Inventory</a>
</div>
<!-- END: this line ends content from: inc/topnav.mid.html -->
<!-- START: this line starts content from: inc/begin-row.default.html -->
<div class="row">
<!-- END: this line ends content from: inc/begin-row.default.html -->
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
<div class="leftcolumn">
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/sidenav.default.html -->
<div class="sidenav">
<a href="#content">Jump to contents</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/index.html">IOCCC Home</a>
<a href="/temp-test-ioccc/years.html">Winning Entries</a>
<a href="/temp-test-ioccc/winners.html">People who have won</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/news.html">IOCCC News</a>
<a href="/temp-test-ioccc/faq.html#submit">How to enter the IOCCC</a>
<a href="/temp-test-ioccc/faq.html">FAQ</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/bugs.html">Bugs &amp; (mis)features</a>
<a href="/temp-test-ioccc/faq.html#fix_a_winner">Fixing IOCCC winners</a>
<a href="/temp-test-ioccc/faq.html#fix_web_site">Fixing the web site</a>
<a href="/temp-test-ioccc/faq.html#fix_author">Fixing winner info</a>
<a href="/temp-test-ioccc/thanks-for-help.html">Thanks for the help</a>
</div>
<hr>
<div class="sidenav">
<a href="/temp-test-ioccc/judges.html">The IOCCC Judges</a>
<a href="/temp-test-ioccc/contact.html">Contacting the IOCCC</a>
</div>
<hr>
<div class="sidenav">
<a href="#top">Jump to top</a>
</div>
<!-- END: this line ends content from: inc/sidenav.default.html -->
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
<div class="rightcolumn">
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/before-content.default.html -->
<a name="content"></a>
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content generated by: bin/gen-author.sh -->
<p><a name="author"><strong>Author:</strong></a> <br><br>Name: <a
href="/temp-test-ioccc/winners.html#Leonid_A_Broukhis">Leonid A.
Broukhis</a><br> Location: <a
href="/temp-test-ioccc/location.html#US">US</a></p>
<!-- END: next line ends content generated by: bin/gen-author.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> all</span></code></pre></div>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ]</span></code></pre></div>
<p>See the author’s information below on these details.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> 1 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> 37 80 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span></code></pre></div>
<p>If you don’t have gs or an equivalent postscript viewer, try:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;&quot;</span> <span class="kw">|</span> <span class="ex">./leo</span> 1 <span class="op">&gt;</span> foo.ps</span></code></pre></div>
<p>and send foo.ps to your local postscript printer or open it in an
appropriate application (e.g. GIMP).</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Press return after each image is drawn.</p>
<p>The variable names are element-ary. If you find this confusing,
remember that it is nu-clear. :-)</p>
<p>Some Ghostscripts/Postscript programs cleared the screen right after
the image is drawn, so we added element 106 which acts as an input
buffer.</p>
<p>To qualify for a category specially for yourself in the Geek code,
find out all the secret switches that the author doesn’t divulge ! (All
switches are single characters on the command line - anything that’s not
a number is a candidate.)</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>The usage is:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ]</span></code></pre></div>
<p>where the first three are literal words, <code>cycle</code> is a
positive integer (0 is ignored), and <code>freq</code> is an integer
(default = 0) that’s supposed to be in the range <code>0..100</code>
(bigger values are allowed, however). Invalid parameters and options
usually stop the command line parsing (not always but why?). The actual
position of the word options does not matter, so
<code>./leo right Variable 1 70</code> is equivalent to
<code>./leo 0 0 0 1 Variable 70 right</code>, etc.</p>
<p>If <code>Variable</code> is used, <code>cycle</code> is almost
ignored (see below) but has to be present if you want to enter
<code>freq</code> (and you usually do).</p>
<p>Some options to try (besides the obvious):</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> 1 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span></code></pre></div>
<p>This draws the basic pattern I invented in high school:</p>
<p>You take a big sheet of “arithmetic” paper and draw a line of length
1 (between 2 crossings) at the center of the sheet:</p>
<pre><code> |</code></pre>
<p>This makes 2 open ends (I think the notion of an “open end” doesn’t
require explanations) in step 1. Now, until there are open ends in step
N, repeat: for each open end pretend it points north and draw 2 lines
going northwest and northeast from it to the nearest crossings. This
needs to be done “simultaneously” for all ends that are open at that
moment.</p>
<p>Step 2:</p>
<pre><code> \./
|
/ \</code></pre>
<p>Step 3:</p>
<pre><code> __| |__
\./
|
__ / \ __
| |
</code></pre>
<p>Step 4:</p>
<pre><code> .
\./ \./
\__| |__/
/ \./ \
|
\__./ \.__/
/ | | \
/ \./ \</code></pre>
<p>Step 5:</p>
<pre><code> ._| . |_.
__| \./ \./ |__
\__| |__/
__./ \./ \.__
__I | I__
\__./ \.__/
__./ | | \.__
|_./ \./ \._|
| |
</code></pre>
<p>The lines marked by <code>I</code> show the places where
“simultaneity” is significant.</p>
<p>Note that so far all the drawings represent valid structural formulas
of some organic substances.</p>
<p>step 1: ethane step 2: 2,3-dimethylbutane step 3:
(2,5-dimethyl;3,4-isopropyl)-hexane step 4 and 5: I don’t know. Do
you?</p>
<p>Step 6:</p>
<pre><code> \./ \./ \./ \./
._| . |_. ._| . |_.
\__| \./ \./ |__/ \__| \./ \./ |__/
/ \__| |__/ \ / \__| |__/ \
\__./ \./ \.__/ \__./ \./ \.__/
X__| | |__X or &lt;__| | |__&gt;
/ \__./ \.__/ \ / \__./ \.__/ \
\__./ | | \.__/ \__./ | | \.__/
/ |_./ \./ \._| / |_./ \./ \._|
| | | |
/ \ / \ / \ / \
</code></pre>
<p>depending on the desired “hairiness”. The original (paper-based)
algorithm was “hairy”, but it didn’t look as good on the screen.</p>
<p>The program cannot handle non-hairy mode 100% correctly - step 6
happens to be</p>
<pre><code> |__
...__/ ...__/
... \ ... \.
...__/ ...__/|__
...__Y and step 7: ...__Y
... \ ... \
...__/ ...__/
\ \.__
|
</code></pre>
<p>and so on: the horizontal symmetry has been lost. That’s why the
opening for step 1 is not a single line but a cross:</p>
<pre><code> \./
/ \</code></pre>
<p>To watch it repeatedly (as a screen saver), use:</p>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> 2 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span></code></pre></div>
<p>The command line:</p>
<div class="sourceCode" id="cb16"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> Variable 1 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span></code></pre></div>
<p>draws the same as above. Try:</p>
<div class="sourceCode" id="cb17"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> Variable 1 1 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span></code></pre></div>
<p>What happened to the picture? Increase <code>freq</code> and watch
the changes.</p>
<p>If <code>cycle</code> is more than 1, the program loops, allowing the
user to enjoy randomly changing patterns (the delay is 3 seconds), but
there is a secret switch to suppress looping: useful if you want to pipe
the output to a printer.</p>
<p><code>uudecode</code> the spoiler below if you really want to
know.</p>
<pre><code>begin 664 spoiler1
M*%1H92!C;VQO;B J:7,J(&#39;1H92!S96-R970@&lt;W=I=&amp;-H(&quot;T@=&amp;AE(&#39;-P86-E
=(&amp;)E9F]R92!I=&quot;!I&lt;R!N;W0@82!M:7-T86ME*0II
end</code></pre>
<p>If <code>Variable</code> is used, the actual value of
<code>cycle</code> doesn’t matter, as far as it is &gt; 1. To figure out
what difference <code>cycle</code> makes when <code>Variable</code> is
not used, try</p>
<div class="sourceCode" id="cb19"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./leo</span> Variable 37 80 <span class="kw">|</span> <span class="fu">cat</span> <span class="at">-</span> /dev/tty <span class="kw">|</span> <span class="fu">gs</span> <span class="at">-</span></span></code></pre></div>
<p>and other values of <code>cycle</code>; smaller values usually
require smaller values of <code>freq</code> for the patterns to be
non-trivial.</p>
<p>The options <code>deep</code> and <code>right</code> make the
patterns to be drawn in different manners. Try all the examples above
with <code>deep</code> and with <code>right</code>. What is the
difference between them?</p>
<p>…There is a little flaw in the implementation of the algorithm, and
sometimes the patterns are not symmetrical when they ought to be (the
program needs to be slightly changed to expose the flaw, otherwise it is
hardly noticeable, if ever).</p>
<p>A quick and dirty fix (turned on by another secret switch) makes the
patterns symmetrical, but a little too HAIRY.</p>
<p>There is one more secret switch (it shall also remain nameless), and
I don’t even want to explain what it does. You’ve been warned!</p>
<pre><code> * * *</code></pre>
<p>Special thanks:</p>
<ul>
<li>to PostScript syntax designers for the curly braces;</li>
<li>to <a href="https://en.wikipedia.org/wiki/Dmitri_Mendeleev">Dmitry
Mendeleyev</a> for his <a
href="https://en.wikipedia.org/wiki/Periodic_table">periodic table of
elements</a>;</li>
<li>to <a href="https://en.wikipedia.org/wiki/Hydrogen">Hydrogen</a> for
having 2 more <a
href="https://en.wikipedia.org/wiki/Isotope">isotopes</a>.</li>
</ul>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- START: this line starts content generated by: bin/gen-inventory.sh -->
<h1 id="inventory-for-1995leo"><a name="inventory"></a>Inventory for
1995/leo</h1>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - winner home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/leo.c">leo.c</a>
- winning source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/Makefile">Makefile</a>
- winner Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/leo.orig.c">leo.orig.c</a>
- original source</li>
<li><a href="spoiler1.html">spoiler1.html</a> - spoiler document</li>
<li><a href="1995_leo.tar.bz2">1995_leo.tar.bz2</a> - download winning
source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/.winner.json">.winner.json</a>
- description of winner in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/README.md">README.md</a>
- markdown source for index.html</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/spoiler1.md">spoiler1.md</a>
- spoiler document</li>
</ul>
<!-- END: next line ends content generated by: bin/gen-inventory.sh -->
<!-- START: this line starts content from: inc/after-content.default.html -->
<!-- END: this line ends content from: inc/after-content.default.html -->
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/end-row.default.html -->
</div>
<!-- END: this line ends content from: inc/end-row.default.html -->
<!-- START: this line starts content from: inc/footer.default.html -->
<div class="footer">
<hr>
<h2>Coda</h2>
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1995%2Fleo%2Findex.html">Nu HTML check this web page</a></p>
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
</div>
<!-- END: this line ends content from: inc/footer.default.html -->
<!-- START: this line starts content from: inc/bottom.default.html -->
</body>
</html>
<!-- END: this line ends content from: inc/bottom.default.html -->