add rules, guidelines, fix HTML code, move compressed tarball in inventory

By changing the _inventory_order_ of the compressed tarball from
**100000** to **1415926535**, the compressed tarball will land at
the top of the secondary file list and remain still easy to find.

Updated the `manifest.numbers` spreadsheet and rebuilt
the `.entry.json` files.

Added `next/` directory to hold the next IOCCC rules and guidelines.
Added `next/README.md` that `bin/gen-top-html.sh` uses to form
the `next/index.html` file.

Added _Rules and Guidelines_ link to the sidenav bar to link to the
`next/index.html` file.

Added _IOCCC Rules_ as `next/rules.md` that `bin/gen-top-html.sh`
uses to form the `next/rules.html` file.

Added _IOCCC Guidelines_ as `next/guidelines.md` that `bin/gen-top-html.sh`
uses to form the `next/guidelines.html` file.

Changed `bin/gen-top-html.sh` VERSION from "1.2.4 2024-04-13"
to "1.3 2024-04-14".

Prevent `pandoc(1)` from interpreting the commented out language
of a markdown code block as a code class.  So a markdown such as:

````
``` <!---sh-->
...
```
````

that produced HTML of the form:

```html
<pre class="&lt;!---sh--&gt;"><code>...</code></pre>
```

will now produce HTML of the form:

```html
<pre><code>...</code></pre>
```

NOTE: Before when the language of a markdown code block
was not commented, the HTML produced by `pandoc(1)` was
oddly indented with extra whitespace on the first line
of the code block.  While commenting out the language
of the code block removed some of the odd intending,
it left a weird class in the HTML pre block that
surrounded the HTML code block.  This hack prevents
`pandoc(1)` from assigning a class to the HTML pre block.

Changed `in/md2html.sh` VERSION from "1.2.1 2024-04-13"
to "1.3 2024-04-14".

Added `make gen_sitemap` to end of both `make www` and `make
quick_www` in top level Makefile.

Ram `make www` to test under macOS and to perform the above.

**IMPORTANT NOTE**: The current `next/rules.md` and `next/guidelines.md`
are simply the 2020 IOCCC Rules and Guidelines converted into
markdown form.  There are **NOT** the Rules and Guidelines that
will be used the IOCCC MOCK, nor the next IOCCC.

TODO: Improve the `bin/gen-status.sh` tool to modify the top of the
      `next/rules.md` and `next/guidelines.md` files to keep them
      in sync with the _contest_status_ as found in `status.json`.

TODO: Improve the look and feel of the `next/rules.md` and
      `next/guidelines.md` markdown files.
This commit is contained in:
Landon Curt Noll committed 2024-04-14 16:54:24 -07:00
1 parent a672335d2d
commit 518a6336d0
734 files changed
+7919 -4119

No files matched your search

+7 -6
View File
@@ -83,6 +83,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -372,7 +373,7 @@ hit a key every time to move because it is blocking.</p></li>
</ul>
<h2 id="on-environmental-variables-more-generally-and-string-to-int-conversions"><a name="envvars" href="#toc">On environmental variables more generally and string to int conversions</a></h2>
<p>What happens if you do:</p>
<pre class="&lt;!---sh--&gt;"><code> WALLS= ./prog</code></pre>
<pre><code> WALLS= ./prog</code></pre>
<p>Can you run into the wall since you didn’t specify a value and the default is 1?
No. That’s not the way it works. By saying WALLS= you have told the system that
there is that environmental variable. However the way the <code>strtoul()</code> functions
@@ -381,12 +382,12 @@ it’s wasteful (iocccsize wise) and I have never felt that having invalid input
for a number could have a better value than 0.</p>
<p>If however you were to give valid input followed by invalid input the valid
input would be parsed. For example:</p>
<pre class="&lt;!---sh--&gt;"><code> WALLS=1test ./prog</code></pre>
<pre><code> WALLS=1test ./prog</code></pre>
<p>would let you go through the walls. On the other hand</p>
<pre class="&lt;!---sh--&gt;"><code> WALLS=test1 ./prog</code></pre>
<pre><code> WALLS=test1 ./prog</code></pre>
<p>would not. Furthermore if you specify the same variable more than once it’s the
last one that counts. For example:</p>
<pre class="&lt;!---sh--&gt;"><code> WALLS=0 WALLS=1 CANNIBAL=1 CANNIBAL=0 ./prog</code></pre>
<pre><code> WALLS=0 WALLS=1 CANNIBAL=1 CANNIBAL=0 ./prog</code></pre>
<p>would allow you to go through walls but you could not cannibalise.</p>
<p>Also note that I specify base 0 which means that you can also have it in hex and
octal. These are all the same:</p>
@@ -421,7 +422,7 @@ will end (yes things that haven’t begun can be ended).</p>
<p>If <code>calloc()</code> fails to obtain the needed memory you’ll see something like (here it
was before I added proper - to make the perfect and obvious pun - capsizing
so that by setting the size to -1 it went to the max unsigned value):</p>
<pre class="&lt;!---sh--&gt;"><code> $ MAXSIZE=-1 ./prog
<pre><code> $ MAXSIZE=-1 ./prog
memory error
X:0/157 Y:0/42 S:3/18446744073709551614 B:0</code></pre>
<p>BTW: There are two arrays that have to be <strong>MAXSIZE</strong> (technically + 1).</p>
@@ -429,7 +430,7 @@ so that by setting the size to -1 it went to the max unsigned value):</p>
not know but what I do know is that because it’s unsigned it can’t be negative;
if the max size is 0 then the array size will be 1 but it won’t matter because
the snake size will be &gt;= that max anyway. But here’s a curious output:</p>
<pre class="&lt;!---sh--&gt;"><code> SIZE=1 MAXSIZE=0 ./prog
<pre><code> SIZE=1 MAXSIZE=0 ./prog
YOU WIN!
X:78/156 Y:20/41 S:0/0 B:0</code></pre>
<p>Why does it show snake size as 0 when I specified 1? It’s because the max size