fix non-indented markdown code blocks

We have fixed cases where markdown code blocks were not properly intended.

Updated `markdown.md` to discuss how markdown code blocks should be indented
and how blank lines should follow a markdown code block.

We used this shell script to find problematic code blocks:

```sh
find . -name '*.md' ! -name markdown.md -print | xargs pcregrep -M '^``.*\n[^|`\n \t]'
```

Ran `make www` to perform the above.
This commit is contained in:
Landon Curt Noll committed 2024-04-30 17:24:50 -07:00
1 parent a507a06076
commit b1516f0ed9
29 files changed
+357 -213

No files matched your search

+1 -1
View File
@@ -407,7 +407,7 @@ limitation removed the numbers now are <code>43</code> and <code>45</code>. But
the command is:</p> the command is:</p>
<pre><code> &quot;0gcc -ansi -E -dM -undef %s /usr/include/%s&gt;r\0 (&quot;</code></pre> <pre><code> &quot;0gcc -ansi -E -dM -undef %s /usr/include/%s&gt;r\0 (&quot;</code></pre>
<p>which has been changed to be:</p> <p>which has been changed to be:</p>
<pre><code>&quot;0cc -ansi -E -dM -undef %s /usr/include/%s&gt;r\0 (&quot;</code></pre> <pre><code> &quot;0cc -ansi -E -dM -undef %s /usr/include/%s&gt;r\0 (&quot;</code></pre>
<p>Shortly below that you will see, as noted above, the numbers:</p> <p>Shortly below that you will see, as noted above, the numbers:</p>
<pre><code> if ((H = fopen (__FILE__+43, 43+__FILE__))) <pre><code> if ((H = fopen (__FILE__+43, 43+__FILE__)))
while ((fgets (L, (int)sizeof L, H)) != 0) { while ((fgets (L, (int)sizeof L, H)) != 0) {
+1 -1
View File
@@ -45,7 +45,7 @@ the command is:
which has been changed to be: which has been changed to be:
``` ```
"0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 (" "0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("
``` ```
Shortly below that you will see, as noted above, the numbers: Shortly below that you will see, as noted above, the numbers:
+1
View File
@@ -373,6 +373,7 @@ and change it to BLC8 with
$ wc rev.Blc $ wc rev.Blc
0 1 9 rev.Blc 0 1 9 rev.Blc
``` ```
and then try it out with: and then try it out with:
``` <!---sh--> ``` <!---sh-->
+1 -1
View File
@@ -161,7 +161,7 @@ Despite the messy look, `a.c` and [hou.c](%%REPO_URL%%/2013/hou/hou.c) compile w
`a.c` compiles mostly clean in the C99/ANSI modes of clang and gcc (with: `a.c` compiles mostly clean in the C99/ANSI modes of clang and gcc (with:
``` ```
-Wall --pedantic -Wall --pedantic
``` ```
The only warning generated is a pedantic one: `"string constant The only warning generated is a pedantic one: `"string constant
+1 -1
View File
@@ -507,7 +507,7 @@ Despite the messy look, <code>a.c</code> and <a href="https://github.com/ioccc-s
(<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> even wastes 18 bytes on <code>#include&lt;stdio.h&gt;</code> just for <code>putchar(3)</code>). (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> even wastes 18 bytes on <code>#include&lt;stdio.h&gt;</code> just for <code>putchar(3)</code>).
<code>a.c</code> compiles mostly clean in the C99/ANSI modes of clang and gcc (with:</li> <code>a.c</code> compiles mostly clean in the C99/ANSI modes of clang and gcc (with:</li>
</ul> </ul>
<pre><code>-Wall --pedantic</code></pre> <pre><code> -Wall --pedantic</code></pre>
<p>The only warning generated is a pedantic one: <code>"string constant too long"</code>.</p> <p>The only warning generated is a pedantic one: <code>"string constant too long"</code>.</p>
<h3 id="comments-and-why-obfuscated">Comments and why obfuscated</h3> <h3 id="comments-and-why-obfuscated">Comments and why obfuscated</h3>
<ul> <ul>
+1 -1
View File
@@ -343,7 +343,7 @@ NB: The keyword file used in this code is derived from the list in [iocccsize.c]
which is neither complete (`#define`, `#ifndef`, `#undef` are missing which is neither complete (`#define`, `#ifndef`, `#undef` are missing
``` ```
yes, Virginia knows about `#define` omitted on purpose yes, Virginia knows about `#define` omitted on purpose
``` ```
nor correct (many more are added: `I`, `true`, `bool`, `compl`, ...): nor correct (many more are added: `I`, `true`, `bool`, `compl`, ...):
+1 -1
View File
@@ -644,7 +644,7 @@ the IOJCC trash can.</p>
</ul> </ul>
<p>NB: The keyword file used in this code is derived from the list in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/iocccsize.c">iocccsize.c</a>, <p>NB: The keyword file used in this code is derived from the list in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/iocccsize.c">iocccsize.c</a>,
which is neither complete (<code>#define</code>, <code>#ifndef</code>, <code>#undef</code> are missing</p> which is neither complete (<code>#define</code>, <code>#ifndef</code>, <code>#undef</code> are missing</p>
<pre><code>yes, Virginia knows about `#define` omitted on purpose</code></pre> <pre><code> yes, Virginia knows about `#define` omitted on purpose</code></pre>
<p>nor correct (many more are added: <code>I</code>, <code>true</code>, <code>bool</code>, <code>compl</code>, …):</p> <p>nor correct (many more are added: <code>I</code>, <code>true</code>, <code>bool</code>, <code>compl</code>, …):</p>
<pre><code> (sed -n &#39;1p&#39; c11; sed -n &#39;2,$p&#39; ioccc.kw.freq | sort) | comm -3 - c11</code></pre> <pre><code> (sed -n &#39;1p&#39; c11; sed -n &#39;2,$p&#39; ioccc.kw.freq | sort) | comm -3 - c11</code></pre>
<p>That is an obfuscated way to say “diff”. But it also more clearly shows the, um, diffs.</p> <p>That is an obfuscated way to say “diff”. But it also more clearly shows the, um, diffs.</p>
+1 -1
View File
@@ -744,7 +744,7 @@ Keep in mind the way I display the generations and the fact that generation 0
has no parents; it is generation 1 that starts working towards the goal. You'll has no parents; it is generation 1 that starts working towards the goal. You'll
see also **(mutation)** at the end of the line at this point (if you enable see also **(mutation)** at the end of the line at this point (if you enable
monkey mode you'll find that it shows something else). The lines that only have monkey mode you'll find that it shows something else). The lines that only have
`` are separators: you won't see this between generation 0 and 1 but you will back-quote ("\`") are separators: you won't see this between generation 0 and 1 but you will
between future generations - as well as the final answer (if the answer is in between future generations - as well as the final answer (if the answer is in
generation 0 you won't see the ``). generation 0 you won't see the ``).
+3 -1
View File
@@ -895,7 +895,9 @@ bash shell built-in utility: that isn’t output from my entry.</p>
has no parents; it is generation 1 that starts working towards the goal. You’ll has no parents; it is generation 1 that starts working towards the goal. You’ll
see also <strong>(mutation)</strong> at the end of the line at this point (if you enable see also <strong>(mutation)</strong> at the end of the line at this point (if you enable
monkey mode you’ll find that it shows something else). The lines that only have monkey mode you’ll find that it shows something else). The lines that only have
<code>are separators: you won't see this between generation 0 and 1 but you will between future generations - as well as the final answer (if the answer is in generation 0 you won't see the</code>).</p> back-quote (“`”) are separators: you won’t see this between generation 0 and 1 but you will
between future generations - as well as the final answer (if the answer is in
generation 0 you won’t see the ``).</p>
<div id="test"> <div id="test">
<p>One final thing to consider is that <strong>the program doesn’t directly read from a <p>One final thing to consider is that <strong>the program doesn’t directly read from a
file</strong>. This combined with the way the shell works could possibly confuse some file</strong>. This combined with the way the shell works could possibly confuse some
-2
View File
@@ -412,7 +412,6 @@ performance, at the cost of a much larger parameter space.
**IMPORTANT NOTE**: **IMPORTANT NOTE**:
```
Since OMLET uses the system stack for network storage, Since OMLET uses the system stack for network storage,
larger networks may cause OMLET to crash (typically with a message like larger networks may cause OMLET to crash (typically with a message like
Segmentation fault) unless the system stack size is first increased. Segmentation fault) unless the system stack size is first increased.
@@ -422,7 +421,6 @@ with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
with the actual hard limit). On csh/tcsh shells, you can view with the actual hard limit). On csh/tcsh shells, you can view
the hard limit with limit -h stacksize and set it with the hard limit with limit -h stacksize and set it with
limit stacksize 65532 (replacing 65532 with the actual hard limit). limit stacksize 65532 (replacing 65532 with the actual hard limit).
```
<hr style="width:10%;text-align:left;margin-left:0"> <hr style="width:10%;text-align:left;margin-left:0">
+5 -5
View File
@@ -686,15 +686,15 @@ parameters and its own hidden state vector. This will improve the network’s
performance, at the cost of a much larger parameter space.</p> performance, at the cost of a much larger parameter space.</p>
<hr style="width:10%;text-align:left;margin-left:0"> <hr style="width:10%;text-align:left;margin-left:0">
<p><strong>IMPORTANT NOTE</strong>:</p> <p><strong>IMPORTANT NOTE</strong>:</p>
<pre><code>Since OMLET uses the system stack for network storage, <p>Since OMLET uses the system stack for network storage,
larger networks may cause OMLET to crash (typically with a message like larger networks may cause OMLET to crash (typically with a message like
Segmentation fault) unless the system stack size is first increased. Segmentation fault) unless the system stack size is first increased.
The exact command for doing so depends on your shell and your system&#39;s The exact command for doing so depends on your shell and your system’s
hard limits. On sh/ksh/bash shells, you can view the hard limit hard limits. On sh/ksh/bash shells, you can view the hard limit
with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532 with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
with the actual hard limit). On csh/tcsh shells, you can view with the actual hard limit). On csh/tcsh shells, you can view
the hard limit with limit -h stacksize and set it with the hard limit with limit -h stacksize and set it with
limit stacksize 65532 (replacing 65532 with the actual hard limit).</code></pre> limit stacksize 65532 (replacing 65532 with the actual hard limit).</p>
<hr style="width:10%;text-align:left;margin-left:0"> <hr style="width:10%;text-align:left;margin-left:0">
<p>You can try the deeper network by doing</p> <p>You can try the deeper network by doing</p>
<pre><code> make rnn2</code></pre> <pre><code> make rnn2</code></pre>
+2 -2
View File
@@ -615,8 +615,8 @@ might look like (I set the starting size to 150 and had only just started):</p>
# # # #
##################################################</code></pre> ##################################################</code></pre>
<p>If I continue going up I will see:</p> <p>If I continue going up I will see:</p>
<pre><code>OUCH! <pre><code> OUCH!
X:20/49 Y:1/16 S:150/658 B:0</code></pre> X:20/49 Y:1/16 S:150/658 B:0</code></pre>
<div id="cannibalism"> <div id="cannibalism">
<h1 id="gameplay-cannibalism"><a href="#toc">Gameplay: Cannibalism</a></h1> <h1 id="gameplay-cannibalism"><a href="#toc">Gameplay: Cannibalism</a></h1>
</div> </div>
+2 -2
View File
@@ -294,8 +294,8 @@ might look like (I set the starting size to 150 and had only just started):
If I continue going up I will see: If I continue going up I will see:
``` ```
OUCH! OUCH!
X:20/49 Y:1/16 S:150/658 B:0 X:20/49 Y:1/16 S:150/658 B:0
``` ```
+1 -1
View File
@@ -448,7 +448,7 @@ you encounter should give you more appreciation for the entry.</p>
<p>If you have the energy to type in the text, or if you have access to a machine <p>If you have the energy to type in the text, or if you have access to a machine
readable version of these programs, you should next consider some preprocessing readable version of these programs, you should next consider some preprocessing
such as:</p> such as:</p>
<pre><code>sed -e &#39;/^#.*include/d&#39; prog.c | cc -E</code></pre> <pre><code> sed -e &#39;/^#.*include/d&#39; prog.c | cc -E</code></pre>
<p>This strips away comments and expands the program’s macros without having things <p>This strips away comments and expands the program’s macros without having things
such as includes and macros cluttering up the output. If the entry requires or such as includes and macros cluttering up the output. If the entry requires or
suggests the use of compile line options (such as <code>-Dindex=strchr</code>) they should suggests the use of compile line options (such as <code>-Dindex=strchr</code>) they should
+1 -1
View File
@@ -93,7 +93,7 @@ readable version of these programs, you should next consider some preprocessing
such as: such as:
``` <!---sh--> ``` <!---sh-->
sed -e '/^#.*include/d' prog.c | cc -E sed -e '/^#.*include/d' prog.c | cc -E
``` ```
This strips away comments and expands the program's macros without having things This strips away comments and expands the program's macros without having things
+5 -5
View File
@@ -80,7 +80,7 @@ Machine](https://web.archive.org) as of [2022 Dec
*HINT*: To uncompress a given bzip2 compressed tarball file, use: *HINT*: To uncompress a given bzip2 compressed tarball file, use:
``` <!---sh--> ``` <!---sh-->
tar -jxvf file.tar.bz2 tar -jxvf file.tar.bz2
``` ```
where "_file.tar.bz2_" is the name of a file found in this directory. where "_file.tar.bz2_" is the name of a file found in this directory.
@@ -89,10 +89,10 @@ To uncompress all of the 2022 Dec 28 archive using the year based
bzip2 compressed tarball files: bzip2 compressed tarball files:
``` <!---sh--> ``` <!---sh-->
for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
rm -rf "$year" rm -rf "$year"
tar -jxvf "archive-$year.tar.bz2" tar -jxvf "archive-$year.tar.bz2"
done done
``` ```
+5 -5
View File
@@ -445,14 +445,14 @@ Machine</a> as of [2022 Dec
28)(https://web.archive.org/web/20201228005211/https://www.ioccc.org/).</p> 28)(https://web.archive.org/web/20201228005211/https://www.ioccc.org/).</p>
<h2 id="how-to-unpack">How to unpack</h2> <h2 id="how-to-unpack">How to unpack</h2>
<p><em>HINT</em>: To uncompress a given bzip2 compressed tarball file, use:</p> <p><em>HINT</em>: To uncompress a given bzip2 compressed tarball file, use:</p>
<pre><code>tar -jxvf file.tar.bz2</code></pre> <pre><code> tar -jxvf file.tar.bz2</code></pre>
<p>where “<em>file.tar.bz2</em>” is the name of a file found in this directory.</p> <p>where “<em>file.tar.bz2</em>” is the name of a file found in this directory.</p>
<p>To uncompress all of the 2022 Dec 28 archive using the year based <p>To uncompress all of the 2022 Dec 28 archive using the year based
bzip2 compressed tarball files:</p> bzip2 compressed tarball files:</p>
<pre><code>for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do <pre><code> for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
rm -rf &quot;$year&quot; rm -rf &quot;$year&quot;
tar -jxvf &quot;archive-$year.tar.bz2&quot; tar -jxvf &quot;archive-$year.tar.bz2&quot;
done</code></pre> done</code></pre>
<!-- <!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved. Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+78 -78
View File
@@ -5,7 +5,7 @@ least one winning IOCCC entry. For each author, there is a JSON
file with the following name format: file with the following name format:
``` ```
author/author_handle.json author/author_handle.json
``` ```
where `author_handle` is defined below. where `author_handle` is defined below.
@@ -16,7 +16,7 @@ Each author of a winning IOCCC entry has an assigned `author_handle`,
an IOCCC unique string that matches this regex: an IOCCC unique string that matches this regex:
``` <!---re--> ``` <!---re-->
^[0-9a-z][0-9a-z_]*$ ^[0-9a-z][0-9a-z_]*$
``` ```
The `author_handle`, by default, is derived from the name of the author. The `author_handle`, by default, is derived from the name of the author.
@@ -34,13 +34,13 @@ author or authors.
For an anonymous `author`, their handle is one of these forms: For an anonymous `author`, their handle is one of these forms:
``` ```
Anonymous_year Anonymous_year
``` ```
or: or:
``` ```
Anonymous_year.digits Anonymous_year.digits
``` ```
The latter form is in case there are more than one The latter form is in case there are more than one
@@ -49,7 +49,7 @@ anonymous author in a given year.
Anonymous author_handle's match this regexp: Anonymous author_handle's match this regexp:
``` <!---re--> ``` <!---re-->
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$ Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
``` ```
## author_handle.json JSON syntax ## author_handle.json JSON syntax
@@ -57,17 +57,17 @@ Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
The `author_handle.json` must have the following JSON members: The `author_handle.json` must have the following JSON members:
``` <!---json--> ``` <!---json-->
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec", "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "0.1 2023-05-22", "author_JSON_format_version" : "0.1 2023-05-22",
``` ```
There must be the following JSON members: There must be the following JSON members:
``` <!---json--> ``` <!---json-->
"full_name" : "Your Full Name", "full_name" : "Your Full Name",
"sort_word" : "lowercaselast", "sort_word" : "lowercaselast",
"location_code" : "XX", "location_code" : "XX",
"location_name" : "Formal location name", "location_name" : "Formal location name",
``` ```
- `"full_name"` value is the author's formal full name. - `"full_name"` value is the author's formal full name.
@@ -81,20 +81,20 @@ an `author` and the entry they submitted are to be listed.
A `sort_word` matches this regexp: A `sort_word` matches this regexp:
``` <!---re--> ``` <!---re-->
^[a-z][0-9a-z]* ^[a-z][0-9a-z]*
``` ```
And there must be the following JSON members: And there must be the following JSON members:
``` <!---json--> ``` <!---json-->
"email" : "user0@example.com", "email" : "user0@example.com",
"url" : "https://a.host0.example.com/index.html", "url" : "https://a.host0.example.com/index.html",
"alt_url" : "https://b.host0.example.com/index.html", "alt_url" : "https://b.host0.example.com/index.html",
"deprecated_twitter_handle" : "@something", "deprecated_twitter_handle" : "@something",
"mastodon" : "@mastodon0@example.com", "mastodon" : "@mastodon0@example.com",
"mastodon_url" : "https://example.org/@mastodon0", "mastodon_url" : "https://example.org/@mastodon0",
"github" : "@github0", "github" : "@github0",
"affiliation" : "an affiliation group", "affiliation" : "an affiliation group",
``` ```
- `"email"` value is the author's email address as a JSON encoded string, or `null` if not given - `"email"` value is the author's email address as a JSON encoded string, or `null` if not given
@@ -110,14 +110,14 @@ If an author does not have one of the previous set of values, or wishes to not d
then the JSON value can be `null`. For example: then the JSON value can be `null`. For example:
``` <!---json--> ``` <!---json-->
"email" : null, "email" : null,
"url" : null, "url" : null,
"alt_url" : null, "alt_url" : null,
"deprecated_twitter_handle" : null, "deprecated_twitter_handle" : null,
"mastodon" : null, "mastodon" : null,
"mastodon_url" : null, "mastodon_url" : null,
"github" : null, "github" : null,
"affiliation" : null, "affiliation" : null,
``` ```
NOTE: The JSON value of `null` is NOT enclosed in double quotes. NOTE: The JSON value of `null` is NOT enclosed in double quotes.
@@ -126,7 +126,7 @@ The `"winning_entry_set"` is an array of JSON members that indicate
each of the IOCCC winning entries that the author is the author of. :-) each of the IOCCC winning entries that the author is the author of. :-)
``` <!---json--> ``` <!---json-->
{ "entry_id" : "YYYY_dirname" } { "entry_id" : "YYYY_dirname" }
``` ```
The `"YYYY_dirname"` is a entry ID in JSON encoded string form. The `"YYYY_dirname"` is a entry ID in JSON encoded string form.
@@ -137,11 +137,11 @@ NOTE: Due to mis-features in the JSON spec, the final JSON member must NOT be fo
For example: For example:
``` <!---json--> ``` <!---json-->
"winning_entry_set" : [ "winning_entry_set" : [
{ "entry_id" : "1987_somedir" }, { "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" }, { "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" } { "entry_id" : "2024_dirname" }
] ]
``` ```
### author_handle.json example ### author_handle.json example
@@ -149,56 +149,56 @@ For example:
Here is a fictitious author_handle.json example: Here is a fictitious author_handle.json example:
``` <!---json--> ``` <!---json-->
{ {
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec", "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "1.0 2023-06-10", "author_JSON_format_version" : "1.0 2023-06-10",
"author_handle" : "first0_last0", "author_handle" : "first0_last0",
"full_name" : "First Middle Last", "full_name" : "First Middle Last",
"sort_word" : "lowercaselast", "sort_word" : "lowercaselast",
"location_code" : "AU", "location_code" : "AU",
"location_name" : "Australia", "location_name" : "Australia",
"email" : "user0@example.com", "email" : "user0@example.com",
"url" : "https://a.host0.example.com/index.html", "url" : "https://a.host0.example.com/index.html",
"alt_url" : "https://b.host0.example.com/index.html", "alt_url" : "https://b.host0.example.com/index.html",
"deprecated_twitter_handle" : "@something", "deprecated_twitter_handle" : "@something",
"mastodon" : "@mastodon0@example.com", "mastodon" : "@mastodon0@example.com",
"mastodon_url" : "https://example.org/@mastodon0", "mastodon_url" : "https://example.org/@mastodon0",
"github" : "@github0", "github" : "@github0",
"affiliation" : "an affiliation group", "affiliation" : "an affiliation group",
"winning_entry_set" : [ "winning_entry_set" : [
{ "entry_id" : "1987_somedir" }, { "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" }, { "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" } { "entry_id" : "2024_dirname" }
] ]
} }
``` ```
Here is fictitious author_handle.json example where all entries that may be Here is fictitious author_handle.json example where all entries that may be
withheld are null: withheld are null:
``` <!---json--> ``` <!---json-->
{ {
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec", "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "1.0 2023-06-10", "author_JSON_format_version" : "1.0 2023-06-10",
"author_handle" : "first0_last0", "author_handle" : "first0_last0",
"full_name" : "First Middle Last", "full_name" : "First Middle Last",
"sort_word" : "lowercaselast", "sort_word" : "lowercaselast",
"location_code" : "AU", "location_code" : "AU",
"location_name" : "Australia", "location_name" : "Australia",
"email" : null, "email" : null,
"url" : null, "url" : null,
"alt_url" : null, "alt_url" : null,
"deprecated_twitter_handle" : null, "deprecated_twitter_handle" : null,
"mastodon" : null, "mastodon" : null,
"mastodon_url" : null, "mastodon_url" : null,
"github" : null, "github" : null,
"affiliation" : null, "affiliation" : null,
"winning_entry_set" : [ "winning_entry_set" : [
{ "entry_id" : "1987_somedir" }, { "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" }, { "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" } { "entry_id" : "2024_dirname" }
] ]
} }
``` ```
## NOTE to authors ## NOTE to authors
+5 -5
View File
@@ -421,13 +421,13 @@ Form a compressed tarball for an entry.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/tar-entry.sh -v 1 YYYY/dir bin/tar-entry.sh -v 1 YYYY/dir
``` ```
Suggested usage: Suggested usage:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W
``` ```
@@ -438,19 +438,19 @@ Form a compressed tarball for an IOCCC year.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/tar-year.sh -v 1 YYYY bin/tar-year.sh -v 1 YYYY
``` ```
Suggested usage: Suggested usage:
``` <!---sh--> ``` <!---sh-->
bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W
``` ```
We recommend that this tool be invoked via the top level `Makefile`: We recommend that this tool be invoked via the top level `Makefile`:
``` <!---sh--> ``` <!---sh-->
make form_year_tarball make form_year_tarball
``` ```
+5 -5
View File
@@ -564,17 +564,17 @@ We sort with lines starting with <code>!</code> fourth.</p>
<h2 id="tar-entry.sh"><a href="../bin/tar-entry.sh">tar-entry.sh</a></h2> <h2 id="tar-entry.sh"><a href="../bin/tar-entry.sh">tar-entry.sh</a></h2>
<p>Form a compressed tarball for an entry.</p> <p>Form a compressed tarball for an entry.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/tar-entry.sh -v 1 YYYY/dir</code></pre> <pre><code> bin/tar-entry.sh -v 1 YYYY/dir</code></pre>
<p>Suggested usage:</p> <p>Suggested usage:</p>
<pre><code>bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W</code></pre> <pre><code> bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W</code></pre>
<h2 id="tar-year.sh"><a href="../bin/tar-year.sh">tar-year.sh</a></h2> <h2 id="tar-year.sh"><a href="../bin/tar-year.sh">tar-year.sh</a></h2>
<p>Form a compressed tarball for an IOCCC year.</p> <p>Form a compressed tarball for an IOCCC year.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/tar-year.sh -v 1 YYYY</code></pre> <pre><code> bin/tar-year.sh -v 1 YYYY</code></pre>
<p>Suggested usage:</p> <p>Suggested usage:</p>
<pre><code>bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W</code></pre> <pre><code> bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W</code></pre>
<p>We recommend that this tool be invoked via the top level <code>Makefile</code>:</p> <p>We recommend that this tool be invoked via the top level <code>Makefile</code>:</p>
<pre><code>make form_year_tarball</code></pre> <pre><code> make form_year_tarball</code></pre>
<h2 id="untar-entry.sh"><a href="../bin/untar-entry.sh">untar-entry.sh</a></h2> <h2 id="untar-entry.sh"><a href="../bin/untar-entry.sh">untar-entry.sh</a></h2>
<p>Untar an entry’s a compressed tarball.</p> <p>Untar an entry’s a compressed tarball.</p>
<p>Usage:</p> <p>Usage:</p>
+17 -17
View File
@@ -1370,25 +1370,25 @@ original code has had a buffer size increase.</p>
comment as well as the <code>int r=0,x,y=0</code> at the top of the file. If you look at comment as well as the <code>int r=0,x,y=0</code> at the top of the file. If you look at
each column go down that column you can see how it spells out the code! For each column go down that column you can see how it spells out the code! For
instance the first column looks like:</p> instance the first column looks like:</p>
<pre><code>i <pre><code> i
n n
c c
l l
u u
d d
e e
&lt; &lt;
s s
t t
d d
i i
o o
. .
h h
&gt;</code></pre> &gt;</code></pre>
<p>If you join the lines you end up with:</p> <p>If you join the lines you end up with:</p>
<pre><code>#include &lt;stdio.h&gt;</code></pre> <pre><code> #include &lt;stdio.h&gt;</code></pre>
<p>If you look at column 25 which is the end of the word ‘mh111’ and you go down to <p>If you look at column 25 which is the end of the word ‘mh111’ and you go down to
the next row you’ll see a 0 and if you go one row down another 0. This is the the next row you’ll see a 0 and if you go one row down another 0. This is the
buffer size, 100, for <code>u</code>! The column to the left is the same for the <code>t</code> buffer size, 100, for <code>u</code>! The column to the left is the same for the <code>t</code>
+17 -17
View File
@@ -1441,30 +1441,30 @@ instance the first column looks like:
``` ```
i i
n n
c c
l l
u u
d d
e e
< <
s s
t t
d d
i i
o o
. .
h h
> >
``` ```
If you join the lines you end up with: If you join the lines you end up with:
``` <!---c--> ``` <!---c-->
#include <stdio.h> #include <stdio.h>
``` ```
If you look at column 25 which is the end of the word 'mh111' and you go down to If you look at column 25 which is the end of the word 'mh111' and you go down to
+125 -36
View File
@@ -464,11 +464,11 @@ unquoted attribute values.</p>
<p>If a short line is needed, use:</p> <p>If a short line is needed, use:</p>
<pre><code> &lt;hr style=&quot;width:10%;text-align:left;margin-left:0&quot;&gt;</code></pre> <pre><code> &lt;hr style=&quot;width:10%;text-align:left;margin-left:0&quot;&gt;</code></pre>
<h2 id="do-not-use-the-strike-html-element">Do not use the strike HTML element</h2> <h2 id="do-not-use-the-strike-html-element">Do not use the strike HTML element</h2>
<p>Please not use the HTML element:</p> <p>Please not use HTML elements:</p>
<pre><code> &lt;strike&gt;...&lt;/strike&gt; &lt;=== no thank you</code></pre> <pre><code> &lt;strike&gt;...&lt;/strike&gt; &lt;=== no thank you</code></pre>
<p>Use instead:</p> <p>Use instead:</p>
<pre><code> &lt;del&gt;...&lt;/del&gt;</code></pre> <pre><code> &lt;del&gt;...&lt;/del&gt;</code></pre>
<h2 id="do-not-use-tt-html-elements">Do not use tt HTML elements</h2> <h2 id="do-not-use-the-tt-html-element">Do not use the tt HTML element</h2>
<p>Please do not use the tt HTML elements:</p> <p>Please do not use the tt HTML elements:</p>
<div class="sourceCode" id="cb16"><pre class="sourceCode html"><code class="sourceCode html"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;</span><span class="kw">tt</span><span class="dt">&gt;</span>The HTML 5 obsolete tt element is obsolete<span class="dt">&lt;/</span><span class="kw">tt</span><span class="dt">&gt;</span> <span class="er">&lt;</span>=== no thank you</span></code></pre></div> <div class="sourceCode" id="cb16"><pre class="sourceCode html"><code class="sourceCode html"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;</span><span class="kw">tt</span><span class="dt">&gt;</span>The HTML 5 obsolete tt element is obsolete<span class="dt">&lt;/</span><span class="kw">tt</span><span class="dt">&gt;</span> <span class="er">&lt;</span>=== no thank you</span></code></pre></div>
<p>Instead use either a monospaced span:</p> <p>Instead use either a monospaced span:</p>
@@ -487,42 +487,131 @@ We request that you indent the code block by 4 spaces:
</code></pre> </code></pre>
<pre><code> This code block <pre><code> This code block
is intented 4 spaces</code></pre> is intented 4 spaces</code></pre>
<p>````</p> <pre><code>
<h2 id="do-not-add-trailing-slash-on-void-html-elements">Do not add trailing slash on void HTML elements</h2> One exception is where change bars are needed, such as
<p>Please do not use trailing slash on <a href="https://github.com/validator/validator/wiki/Markup-»-Void-elements">void HTML those used in `next/rules.md` and in `next/guidelines.md`.
elements</a>.</p>
<p>See also this note on <a href="https://github.com/validator/validator/wiki/Markup-»-Void-elements#trailing-slashes-in-void-element-start-tags-do-not-mark-the-start-tags-as-self-closing">trailing slashes in void-element start For example, `next/guidelines.md` uses this markdown code block:
tags</a>.</p> </code></pre>
<p>The trailing slash on void HTML elements has no effect and interacts badly with unquoted attribute values.</p> <pre><code> main() {
<p>For example, please do not use:</p> | void please_do_not_submit_this() {
<pre><code> &lt;br/&gt; &lt;=== no thank you</code></pre> | printf(&quot;The machine that goes BING!\n&quot;);
<p>Instead use just:</p> }
<pre><code> &lt;br&gt;</code></pre> | please_do_not_submit_this();
<p>And for example, please do not use:</p> }</code></pre>
<pre><code> &lt;hr/&gt; &lt;=== no thank you</code></pre> <pre><code>
<p>Instead use just:</p>
<pre><code> &lt;hr&gt;</code></pre> ## Do not add trailing slash on void HTML elements
<p>And for example, please do not use:</p>
<pre><code> &lt;img src=&quot;1984-anonymous-tattoo.jpg&quot; Please do not use trailing slash on [void HTML
elements](https://github.com/validator/validator/wiki/Markup-»-Void-elements).
See also this note on [trailing slashes in void-element start
tags](https://github.com/validator/validator/wiki/Markup-»-Void-elements#trailing-slashes-in-void-element-start-tags-do-not-mark-the-start-tags-as-self-closing).
The trailing slash on void HTML elements has no effect and interacts badly with unquoted attribute values.
For example, please do not use:
```
&lt;br/&gt; &lt;=== no thank you
```
Instead use just:
```
&lt;br&gt;
```
And for example, please do not use:
```
&lt;hr/&gt; &lt;=== no thank you
```
Instead use just:
```
&lt;hr&gt;
```
And for example, please do not use:
```
&lt;img src=&quot;1984-anonymous-tattoo.jpg&quot;
alt=&quot;image of a tattoo of the 1984 anonymous C code&quot; alt=&quot;image of a tattoo of the 1984 anonymous C code&quot;
width=600 height=401 /&gt; &lt;=== no thank you</code></pre> width=600 height=401 /&gt; &lt;=== no thank you
<p>Instead use just:</p> ```
<pre><code> &lt;img src=&quot;1984-anonymous-tattoo.jpg&quot;
Instead use just:
```
&lt;img src=&quot;1984-anonymous-tattoo.jpg&quot;
alt=&quot;image of a tattoo of the 1984 anonymous C code&quot; alt=&quot;image of a tattoo of the 1984 anonymous C code&quot;
width=600 height=401&gt;</code></pre> width=600 height=401&gt;
<p>etc.</p> ```
<h2 id="do-not-end-markdown-links-in">Do not end markdown links in ))</h2>
<p>Please do not end a markdown links with a double closed parenthesis “))”.</p> etc.
<p>Markdown links that end in “))” complicate parsing and sometimes lead
to incorrect URLs or file paths.</p>
<p>Instead of:</p> ## Do not end markdown links in ))
<pre><code> [some text](https://example.com/foo_(bar)) &lt;=== no thank you</code></pre>
<p>Use:</p> Please do not end a markdown links with a double closed parenthesis &quot;))&quot;.
<pre><code> [some text](https://example.com/foo_&amp;#x28;bar&amp;#x29;)</code></pre>
<p>Instead of:</p> Markdown links that end in &quot;))&quot; complicate parsing and sometimes lead
<pre><code> This thing ([some text](some/path)) is not ideal. &lt;=== no thank you</code></pre> to incorrect URLs or file paths.
<p>Use:</p>
<pre><code> This thing, [some text](some/path), is better.</code></pre> Instead of:
```
[some text](https://example.com/foo_(bar)) &lt;=== no thank you
```
Use:
```
[some text](https://example.com/foo_&amp;#x28;bar&amp;#x29;)
```
Instead of:
```
This thing ([some text](some/path)) is not ideal. &lt;=== no thank you
```
Use:
```
This thing, [some text](some/path), is better.
```
## Do not place text on the next line after a markdown code block
Please do not place text on the next line after a markdown code block.
Instead, place a blank line after the end of a markdown code block
is this makes it easier to detect when markdown code blocks are
not properly indented.
Instead of:
</code></pre>
<pre><code> int
main(int foo)
{
return foo;
}</code></pre>
<p>C compilers cannot be given a -Wno-main-arg-errors flag. &lt;=== no thank you</p>
<pre><code>
Use:
</code></pre>
<pre><code> int
main(int foo)
{
return foo;
}</code></pre>
<p>C compilers cannot be given a -Wno-main-arg-errors flag.</p>
<p>BTW: Not the blank line after the code block.
````</p>
<h2 id="do-not-put-s-or-markdown-link-titles">Do not put (‘s or )’ markdown link titles</h2> <h2 id="do-not-put-s-or-markdown-link-titles">Do not put (‘s or )’ markdown link titles</h2>
<p>Please do not use parenthesis inside the markdown link titles.</p> <p>Please do not use parenthesis inside the markdown link titles.</p>
<p>Instead of:</p> <p>Instead of:</p>
+55 -2
View File
@@ -163,7 +163,7 @@ If a short line is needed, use:
## Do not use the strike HTML element ## Do not use the strike HTML element
Please not use the HTML element: Please not use HTML elements:
``` ```
<strike>...</strike> <=== no thank you <strike>...</strike> <=== no thank you
@@ -176,7 +176,7 @@ Use instead:
``` ```
## Do not use tt HTML elements ## Do not use the tt HTML element
Please do not use the tt HTML elements: Please do not use the tt HTML elements:
@@ -217,6 +217,22 @@ We request that you indent the code block by 4 spaces:
``` ```
```` ````
One exception is where change bars are needed, such as
those used in `next/rules.md` and in `next/guidelines.md`.
For example, `next/guidelines.md` uses this markdown code block:
````
```
main() {
| void please_do_not_submit_this() {
| printf("The machine that goes BING!\n");
}
| please_do_not_submit_this();
}
```
````
## Do not add trailing slash on void HTML elements ## Do not add trailing slash on void HTML elements
@@ -303,6 +319,43 @@ Use:
``` ```
## Do not place text on the next line after a markdown code block
Please do not place text on the next line after a markdown code block.
Instead, place a blank line after the end of a markdown code block
is this makes it easier to detect when markdown code blocks are
not properly indented.
Instead of:
````
```
int
main(int foo)
{
return foo;
}
```
C compilers cannot be given a -Wno-main-arg-errors flag. <=== no thank you
````
Use:
````
```
int
main(int foo)
{
return foo;
}
```
C compilers cannot be given a -Wno-main-arg-errors flag.
BTW: Not the blank line after the code block.
````
## Do not put ('s or )' markdown link titles ## Do not put ('s or )' markdown link titles
Please do not use parenthesis inside the markdown link titles. Please do not use parenthesis inside the markdown link titles.
+1 -1
View File
@@ -25,7 +25,7 @@
<!-- END: this line ends content from: inc/head.default.html --> <!-- END: this line ends content from: inc/head.default.html -->
<!-- --> <!-- -->
<!-- This web page was formed via the tool: bin/gen-status.sh --> <!-- This web page was formed via the tool: bin/gen-top-html.sh -->
<!-- The content of main section of this web page came from: next/guidelines.md --> <!-- The content of main section of this web page came from: next/guidelines.md -->
<!-- --> <!-- -->
+1 -1
View File
@@ -25,7 +25,7 @@
<!-- END: this line ends content from: inc/head.default.html --> <!-- END: this line ends content from: inc/head.default.html -->
<!-- --> <!-- -->
<!-- This web page was formed via the tool: bin/gen-status.sh --> <!-- This web page was formed via the tool: bin/gen-top-html.sh -->
<!-- The content of main section of this web page came from: next/rules.md --> <!-- The content of main section of this web page came from: next/rules.md -->
<!-- --> <!-- -->
+1
View File
@@ -1506,6 +1506,7 @@ changed from `char*s` to `char s[]`):
``` ```
!.Xop.fssps!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo !.Xop.fssps!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo
``` ```
and then the call to `system()` had to be changed to: and then the call to `system()` had to be changed to:
``` <!---c--> ``` <!---c-->
+14 -14
View File
@@ -30,7 +30,7 @@ IOCCC. Each author has exactly one `author_handle`.
For each `author_handle`, there will be a JSON file of the form: For each `author_handle`, there will be a JSON file of the form:
``` ```
author/author_handle.json author/author_handle.json
``` ```
Because the `author_handle` is used to form a JSON filename, the string must be Because the `author_handle` is used to form a JSON filename, the string must be
@@ -38,7 +38,7 @@ lower case POSIX safe string. Furthermore, the `author_handle` must be an ASCII
string that matches this regexp: string that matches this regexp:
``` <!---re--> ``` <!---re-->
^[0-9a-z][0-9a-z_]*$ ^[0-9a-z][0-9a-z_]*$
``` ```
Default `author_handle`'s do not have multiple consecutive `_` (underscore) Default `author_handle`'s do not have multiple consecutive `_` (underscore)
@@ -58,13 +58,13 @@ author.
For an anonymous `author`, their handle is one of these forms: For an anonymous `author`, their handle is one of these forms:
``` ```
Anonymous_year Anonymous_year
``` ```
or: or:
``` ```
Anonymous_year.digits Anonymous_year.digits
``` ```
@@ -77,7 +77,7 @@ in the case of [2005/anon](/2005/anon/anon.c).
Anonymous `author_handle`'s match this regexp: Anonymous `author_handle`'s match this regexp:
``` <!---re--> ``` <!---re-->
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$ Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
``` ```
@@ -106,7 +106,7 @@ Non-numeric `year` strings are lower case.
A `year` string matches this regexp: A `year` string matches this regexp:
``` <!---re--> ``` <!---re-->
[0-9a-z][0-9a-z][0-9a-z][0-9a-z] [0-9a-z][0-9a-z][0-9a-z][0-9a-z]
``` ```
The `year` directories reside directly below the top level directory. The `year` directories reside directly below the top level directory.
@@ -117,7 +117,7 @@ The `year` directories reside directly below the top level directory.
Each `year` will have a file directory under it named: Each `year` will have a file directory under it named:
``` ```
.year .year
``` ```
The contents of the `.year` file is the year string of the directory. For The contents of the `.year` file is the year string of the directory. For
@@ -131,7 +131,7 @@ A `dir` is a POSIX safe string that holds an winner.
A `dir` is a string that matches this regexp: A `dir` is a string that matches this regexp:
``` <!---re--> ``` <!---re-->
^[a-z][0-9a-z.-]*$ ^[a-z][0-9a-z.-]*$
``` ```
Each `winner` is under its own individual directory. This directory Each `winner` is under its own individual directory. This directory
@@ -143,7 +143,7 @@ is directly under a `year` directory.
A string that identifies the winning entry. The string is of the form: A string that identifies the winning entry. The string is of the form:
``` ```
year_dir year_dir
``` ```
@@ -152,7 +152,7 @@ year_dir
Each `winner` directory will have a file directory under it named: Each `winner` directory will have a file directory under it named:
``` ```
.id .id
``` ```
The contents of `_.id_` file is the `winner_id` string for that `winner`. The contents of `_.id_` file is the `winner_id` string for that `winner`.
@@ -165,7 +165,7 @@ an `author` and the `winners` they submitted are to be listed.
A `sort_word` match this regexp: A `sort_word` match this regexp:
``` <!---re--> ``` <!---re-->
^[a-z][0-9a-z]* ^[a-z][0-9a-z]*
``` ```
@@ -184,7 +184,7 @@ A text file of full names of each `author`: one full name per line.
In the case of anonymous authors the form is: In the case of anonymous authors the form is:
``` ```
Anonymous YYYY Anonymous YYYY
``` ```
@@ -282,7 +282,7 @@ Run the script from the top level directory. The output should end in ":1".
For example, this command should not produce any output. For example, this command should not produce any output.
``` <!---sh--> ``` <!---sh-->
tmp/awards_check.sh | grep -v ':1$' tmp/awards_check.sh | grep -v ':1$'
``` ```
Any output is an indication that either an award name is incorrect, or the Any output is an indication that either an award name is incorrect, or the
@@ -420,7 +420,7 @@ Temporary tool used to generate the `author/author_handle.json` files.
The following command, executed in this directory, created the `author/` directory: The following command, executed in this directory, created the `author/` directory:
``` <!---sh--> ``` <!---sh-->
rm -rf ../author ; ./gen_author_json.sh author_handle.txt author.csv author_wins.csv ../author rm -rf ../author ; ./gen_author_json.sh author_handle.txt author.csv author_wins.csv ../author
``` ```
+6 -6
View File
@@ -56,7 +56,7 @@ A text file of full names of each `author`: one full name per line.
In the case of anonymous authors the form is: In the case of anonymous authors the form is:
``` ```
Anonymous YYYY Anonymous YYYY
``` ```
@@ -157,9 +157,9 @@ returns and appending a newline if it was missing.
Fixing involves these actions: Fixing involves these actions:
``` <!---sh--> ``` <!---sh-->
tr -d '\015' < input.csv > tmp.csv tr -d '\015' < input.csv > tmp.csv
echo >> tmp.csv echo >> tmp.csv
mv -f tmp.csv input.csv mv -f tmp.csv input.csv
``` ```
This tool also forms [path_list.built.txt](path_list.built.txt), This tool also forms [path_list.built.txt](path_list.built.txt),
@@ -343,8 +343,8 @@ A tool to run another tool over all _YYYY/dir_ entry directories.
Examples: Examples:
``` <!---sh--> ``` <!---sh-->
./run_all.sh -v 3 ./fake.gen_index.sh ./run_all.sh -v 3 ./fake.gen_index.sh
./run_all.sh -v 1 ./gen_entry_json.sh ./run_all.sh -v 1 ./gen_entry_json.sh
``` ```