fix links in 1992/buzzard.2/buzzard.2.README.html

The `1992/buzzard.2/buzzard.2.README.md` has been improved
so that links to files that is referenced are
directed to the proper web pages (web site or GitHub).

Links in `1992/buzzard.2/buzzard.2.README.md` markdown
files have been changed to the generated HTML files.

Changed `bin/gen-other-html.sh` VERSION from to "1.0.4 2024-04-13"
to "1.1 2024-04-20".

By default, we substitute _%%REPO_URL%%_ and _%%SITE_URL%%_
in inc files.

Changed `bin/subst.default.sh` VERSION from to "1.2.3 2024-04-13"
to "1.3 2024-04-20".

All `-s TOKEN=value` substitutions are applied to all markdown files
that are processed by `bin/md2html.sh`.

Substitutions of and **%%TOKEN%%** are performed on included HTML
content, content generated by the ‘before tool’ (-b tool), content
generated by the ‘after tool’ (-a tool), as well as the markdown
content given to the pandoc wrapper tool (-p tool).

It is an error, unless -S is given, for any phase, except HTML phases
20-29, to not substitute all **%%TOKEN%%**'s. For HTML phases 20-29, any
**%%TOKEN%%** that is not substituted are passed thru without substitution.

Update `bin/index.html` to clarify

Changed `bin/md2html.sh` VERSION from to "1.4 2024-04-18"
to "1.5 2024-04-20".

Fix the _BEFORE: 1st line of markdown file_ and _AFTER: last line
of markdown file_ HTML comments so that the true markdown file
source (not some temporary file) is identified.  This prevents
`authors.html`, `location.html` and `years.html` from always changing
due to different temporary files being used on each run.

Run `make www` to perform the above.
This commit is contained in:
Landon Curt Noll committed 2024-04-21 00:04:24 -07:00
1 parent 9b55039fd4
commit c1b0d7de48
11 files changed
+274 -226

No files matched your search

+22 -15
View File
@@ -134,27 +134,34 @@
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 1992/buzzard.2/buzzard.2.README.md --> <!-- BEFORE: 1st line of markdown file: 1992/buzzard.2/buzzard.2.README.md -->
<p><a href="buzzard.2.README.md">buzzard.2.README.md</a> this file<br /> <h1 id="useful-files-to-view">Useful files to view</h1>
<a href="buzzard.2.design.md">buzzard.2.design.md</a> description of FIRST (design documentation of THIRD)<br /> <ul>
<a href="third">third</a> implementation of THIRD in FIRST<br /> <li><a href="buzzard.2.README.html">buzzard.2.README.html</a> - this file</li>
<a href="help.th">help.th</a> online listing of THIRD primitives<br /> <li><a href="buzzard.2.design.html">buzzard.2.design.html</a> - description of FIRST (design documentation of THIRD)</li>
</p> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/third">third</a> - implementation of THIRD in FIRST</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/help.th">help.th</a> - online listing of THIRD primitives</li>
</ul>
<h1 id="first-demos">FIRST demos:</h1> <h1 id="first-demos">FIRST demos:</h1>
<p>Use <code>./first &lt; &lt;demo&gt;</code>.</p> <p>Use <code>./first &lt; &lt;demo&gt;</code>.</p>
<p><a href="demo1.1st">demo1.1st</a> prints Hello World! assuming ASCII</p> <ul>
<li><a href="demo1.1st">demo1.1st</a> - prints Hello World! assuming ASCII</li>
</ul>
<h1 id="third-demos">THIRD demos:</h1> <h1 id="third-demos">THIRD demos:</h1>
<p>Use <code>cat third &lt;demo&gt; | ./first</code>.</p> <p>Use <code>cat third &lt;demo&gt; | ./first</code>.</p>
<h2 id="demo-files">Demo files:</h2> <h2 id="demo-files">Demo files:</h2>
<p><a href="demo1.th">demo1.th</a> prints Hello World! regardless of character set <ul>
<a href="demo2.th">demo2.th</a> demonstrates a simple loop <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/demo1.th">demo1.th</a> - prints Hello World! regardless of character set</li>
<a href="demo3.th">demo3.th</a> demonstrates a simple if test <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/demo2.th">demo2.th</a> - demonstrates a simple loop</li>
<a href="demo4.th">demo4.th</a> recursive factorial calculating on the way up <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/demo3.th">demo3.th</a> - demonstrates a simple if test</li>
<a href="demo5.th">demo5.th</a> recursive factorial calculating on the way down <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/demo4.th">demo4.th</a> - recursive factorial calculating on the way up</li>
<a href="demo6.th">demo6.th</a> demonstrates switching from compiler to execution mode</p> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/demo5.th">demo5.th</a> - recursive factorial calculating on the way down</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/buzzard.2/demo6.th">demo6.th</a> - demonstrates switching from compiler to execution mode</li>
</ul>
<h1 id="interactive-third">Interactive THIRD:</h1> <h1 id="interactive-third">Interactive THIRD:</h1>
<p>Use <code>cat third - | ./first</code>.</p> <p>Use:</p>
<p>To include the primitive on-line help, use <pre><code>cat third - | ./first</code></pre>
<code>cat third help.th - | ./first</code>.</p> <p>To include the primitive on-line help, use:</p>
<pre><code>cat third help.th - | ./first</code></pre>
<!-- <!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved. Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+23 -14
View File
@@ -1,14 +1,16 @@
[buzzard.2.README.md](buzzard.2.README.md) this file\ # Useful files to view
[buzzard.2.design.md](buzzard.2.design.md) description of FIRST (design documentation of THIRD)\
[third](third) implementation of THIRD in FIRST\ - [buzzard.2.README.html](buzzard.2.README.html) - this file
[help.th](help.th) online listing of THIRD primitives\ - [buzzard.2.design.html](buzzard.2.design.html) - description of FIRST (design documentation of THIRD)
- [third](%%REPO_URL%%/1992/buzzard.2/third) - implementation of THIRD in FIRST
- [help.th](%%REPO_URL%%/1992/buzzard.2/help.th) - online listing of THIRD primitives
# FIRST demos: # FIRST demos:
Use `./first < <demo>`. Use `./first < <demo>`.
[demo1.1st](demo1.1st) prints Hello World! assuming ASCII - [demo1.1st](demo1.1st) - prints Hello World! assuming ASCII
# THIRD demos: # THIRD demos:
@@ -18,20 +20,27 @@ Use `cat third <demo> | ./first`.
## Demo files: ## Demo files:
[demo1.th](demo1.th) prints Hello World! regardless of character set - [demo1.th](%%REPO_URL%%/1992/buzzard.2/demo1.th) - prints Hello World! regardless of character set
[demo2.th](demo2.th) demonstrates a simple loop - [demo2.th](%%REPO_URL%%/1992/buzzard.2/demo2.th) - demonstrates a simple loop
[demo3.th](demo3.th) demonstrates a simple if test - [demo3.th](%%REPO_URL%%/1992/buzzard.2/demo3.th) - demonstrates a simple if test
[demo4.th](demo4.th) recursive factorial calculating on the way up - [demo4.th](%%REPO_URL%%/1992/buzzard.2/demo4.th) - recursive factorial calculating on the way up
[demo5.th](demo5.th) recursive factorial calculating on the way down - [demo5.th](%%REPO_URL%%/1992/buzzard.2/demo5.th) - recursive factorial calculating on the way down
[demo6.th](demo6.th) demonstrates switching from compiler to execution mode - [demo6.th](%%REPO_URL%%/1992/buzzard.2/demo6.th) - demonstrates switching from compiler to execution mode
# Interactive THIRD: # Interactive THIRD:
Use `cat third - | ./first`. Use:
To include the primitive on-line help, use ```
`cat third help.th - | ./first`. cat third - | ./first
```
To include the primitive on-line help, use:
```
cat third help.th - | ./first
```
<!-- <!--
+2 -2
View File
@@ -132,7 +132,7 @@
<!-- END: this line ends content from: inc/before-content.default.html --> <!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: .gen-authors.sh.13639.entry.md --> <!-- BEFORE: 1st line of markdown file: authors.md -->
<p style="text-align:center;"> <p style="text-align:center;">
Jump to authors starting with: [ Jump to authors starting with: [
<a href="#A">A</a>   <a href="#A">A</a>  
@@ -2800,7 +2800,7 @@ Location: <a href="location.html#US">US</a> - <em>United States of America</em>
<ul> <ul>
<li><a href="2011/zucker/index.html">2011/zucker</a> - Most shiny</li> <li><a href="2011/zucker/index.html">2011/zucker</a> - Most shiny</li>
</ul> </ul>
<!-- AFTER: last line of markdown file: .gen-authors.sh.13639.entry.md --> <!-- AFTER: last line of markdown file: authors.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html --> <!-- START: this line starts content from: inc/after-content.default.html -->
+84 -68
View File
@@ -19,13 +19,13 @@ Run a command on all winning entries.
For example: For example:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1 bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1
``` ```
Or for example: Or for example:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/readme2index.sh -v 1 bin/all-run.sh -v 3 bin/readme2index.sh -v 1
``` ```
@@ -36,19 +36,19 @@ Run a command on all IOCCC years.
For example: For example:
``` <!---sh--> ``` <!---sh-->
bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1 bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1
``` ```
Or for example: Or for example:
``` <!---sh--> ``` <!---sh-->
bin/all-years.sh -v 1 bin/chk-entry.sh bin/all-years.sh -v 1 bin/chk-entry.sh
``` ```
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 verify_entry_files make verify_entry_files
``` ```
@@ -60,7 +60,7 @@ Check that files required by an entry match the entry's manifest as found in
For example: For example:
``` <!---sh--> ``` <!---sh-->
bin/chk-entry.sh 2020/ferguson1 bin/chk-entry.sh 2020/ferguson1
``` ```
@@ -71,7 +71,7 @@ Generate the list of files in the entry's manifest, `.entry.json`.
For example: For example:
``` <!---sh--> ``` <!---sh-->
awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.json awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.json
``` ```
@@ -82,7 +82,7 @@ Generate the top level `/authors.html` page.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-authors.sh -v 1 bin/gen-authors.sh -v 1
``` ```
@@ -93,7 +93,7 @@ Generate the top level `/location.html` page.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-location.sh -v 1 bin/gen-location.sh -v 1
``` ```
@@ -105,7 +105,7 @@ files.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-other-html.sh -v 1 bin/gen-other-html.sh -v 1
``` ```
@@ -116,13 +116,13 @@ Generate an XML sitemap for the IOCCC web site.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-sitemap.sh -v 1 bin/gen-sitemap.sh -v 1
``` ```
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 gen_sitemap make gen_sitemap
``` ```
@@ -136,31 +136,31 @@ Without argument, the `contest_status` is unchanged.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-status.sh -v 1 bin/gen-status.sh -v 1
``` ```
To force the `contest_status` to be closed: To force the `contest_status` to be closed:
``` <!---sh--> ``` <!---sh-->
bin/gen-status.sh -v 1 closed bin/gen-status.sh -v 1 closed
``` ```
To force the `contest_status` to be open: To force the `contest_status` to be open:
``` <!---sh--> ``` <!---sh-->
bin/gen-status.sh -v 1 open bin/gen-status.sh -v 1 open
``` ```
To see other valid statuses: To see other valid statuses:
``` <!---sh--> ``` <!---sh-->
bin/gen-status -h bin/gen-status -h
``` ```
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 gen_status make gen_status
``` ```
@@ -171,7 +171,7 @@ Generate a number of top level HTML pages for the IOCCC web sites.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-top-html.sh -v 1 bin/gen-top-html.sh -v 1
``` ```
Examples of top level HTML pages built by this tool include: Examples of top level HTML pages built by this tool include:
@@ -192,7 +192,7 @@ Examples of top level HTML pages built by this tool include:
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 gen_top_html make gen_top_html
``` ```
@@ -203,13 +203,13 @@ Generate an `index.html` page for an given IOCCC year.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-year-index.sh -v 1 2020 bin/gen-year-index.sh -v 1 2020
``` ```
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 gen_year_index make gen_year_index
``` ```
@@ -220,13 +220,13 @@ Generate the top level `/years.html` page.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/gen-years.sh -v 1 bin/gen-years.sh -v 1
``` ```
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 gen_years make gen_years
``` ```
@@ -280,7 +280,7 @@ this command will only briefly pause while the
slightly longer [readme2index.sh](readme2index.sh) is run: slightly longer [readme2index.sh](readme2index.sh) is run:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1 bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1
``` ```
**NOTE**: This command assumes that the relative **NOTE**: This command assumes that the relative
@@ -290,7 +290,7 @@ and `index.html` are correct. If in doubt, use:
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 quick_entry_index make quick_entry_index
``` ```
@@ -299,19 +299,19 @@ make quick_entry_index
Convert an entry README.md into entry directory index.html. Convert an entry README.md into entry directory index.html.
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/readme2index.sh -v 1 bin/all-run.sh -v 3 bin/readme2index.sh -v 1
``` ```
To build `index.html` files for all entries: To build `index.html` files for all entries:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/readme2index.sh -v 1 bin/all-run.sh -v 3 bin/readme2index.sh -v 1
``` ```
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 entry_index make entry_index
``` ```
@@ -342,19 +342,19 @@ Sort a .gitignore in a entry directory.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/sort.gitignore.sh -v 1 YYYY/dir bin/sort.gitignore.sh -v 1 YYYY/dir
``` ```
Suggested usage: Suggested usage:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh bin/sort.gitignore.sh -v 1 bin/all-run.sh bin/sort.gitignore.sh -v 1
``` ```
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 sort_gitignore make sort_gitignore
``` ```
@@ -430,19 +430,19 @@ Untar an entry's a compressed tarball.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/untar-entry.sh -v 1 YYYY/dir bin/untar-entry.sh -v 1 YYYY/dir
``` ```
Suggested usage: Suggested usage:
``` <!---sh--> ``` <!---sh-->
bin/all-run.sh -v 3 bin/untar-entry.sh -v 1 bin/all-run.sh -v 3 bin/untar-entry.sh -v 1
``` ```
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 untar_entry_tarball make untar_entry_tarball
``` ```
@@ -453,23 +453,25 @@ Untar an IOCCC year's compressed tarball.
Usage: Usage:
``` <!---sh--> ``` <!---sh-->
bin/untar-year.sh -v 1 YYYY bin/untar-year.sh -v 1 YYYY
``` ```
Suggested usage: Suggested usage:
``` <!---sh--> ``` <!---sh-->
bin/all-years.sh -v 3 bin/untar-year.sh -v 1 bin/all-years.sh -v 3 bin/untar-year.sh -v 1
``` ```
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 untar_year_tarball make untar_year_tarball
``` ```
# <div id="how">How IOCCC HTML content is built</div> <div id="how">
# How IOCCC HTML content is built
</div>
The [md2html.sh](md2html.sh) tool is the primary tool that The [md2html.sh](md2html.sh) tool is the primary tool that
is used to form all IOCCC related HTML pages for the [official IOCCC web is used to form all IOCCC related HTML pages for the [official IOCCC web
@@ -489,20 +491,20 @@ built uses, by default, files from the [inc directory](../inc/index.html), of
the file name form: the file name form:
``` ```
*.default.html *.default.html
``` ```
By using command line options of the form: By using command line options of the form:
``` <!---sh--> ``` <!---sh-->
-H phase=name -H phase=name
``` ```
where `phase` is the name of an HTML phase, where `phase` is the name of an HTML phase,
a non-default file may be used. For example: a non-default file may be used. For example:
``` <!---sh--> ``` <!---sh-->
-H navbar=up2index -H navbar=up2index
``` ```
will cause [inc/navbar.up2index.html](../inc/navbar.up2index.html) will cause [inc/navbar.up2index.html](../inc/navbar.up2index.html)
@@ -513,14 +515,16 @@ If `name` is dot (i.e., `.`), then the given HTML phase is skipped.
For example: For example:
``` <!---sh--> ``` <!---sh-->
-H footer=. -H footer=.
``` ```
will cause no HTML content to be produced during the `footer` HTML phase. will cause no HTML content to be produced during the `footer` HTML phase.
## <div id="html">HTML phases</div> <div id="html">
## HTML phases
</div>
The following HTML phase files are used to build HTML content: The following HTML phase files are used to build HTML content:
@@ -546,18 +550,24 @@ Phases 23-29 are reserved for future use.
Phases 33-39 are reserved for future use. Phases 33-39 are reserved for future use.
In the above HTML phase numbers, except during HTML phase numbers 20-29, symbols In all of the above HTML phase numbers, symbols of the form **%%TOKEN%%** are substituted.
of the form `%%TOKEN%%` are substituted.
Any `%%TOKEN%%` printed by the 'before tool' (`-b tool`), the 'pandoc wrapper Substitutions of and **%%TOKEN%%** are performed on included HTML content,
tool' (`-p tool`), and the 'after tool' (`-a tool`) are ignored (i.e., not content generated by the 'before tool' (`-b tool`),
substituted). content generated by the 'after tool' (`-a tool`),
as well as the markdown content given to the `pandoc wrapper tool` (`-p tool`).
It is an error, unless `-S` is given, for any phase, except phases HTML
20-29, to not substitute all **%%TOKEN%%**'s. For phases HTML 20-29, any
**%%TOKEN%%** that is not substituted are passed thru without substitution.
See the tool [readme2index.sh](readme2index.sh) for an example of See the tool [readme2index.sh](readme2index.sh) for an example of
how HTML phases are implemented. how HTML phases are implemented.
## <div id="getopt">`getopt` phase processing of the command line</div> <div id="getopt">
## getopt phase processing of the command line
</div>
The command options are evaluated in the following `getopt` phases: The command options are evaluated in the following `getopt` phases:
@@ -625,16 +635,16 @@ IMPORTANT: An "output tool" will print each command line option / argument on a
So for example, if an "output tool" wishes to convey: So for example, if an "output tool" wishes to convey:
``` ```
-s TITLE='IOCCC entry locations' -H navbar=top-of-site -s TITLE='IOCCC entry locations' -H navbar=top-of-site
``` ```
The "output tool" would output the following 4 lines: The "output tool" would output the following 4 lines:
``` ```
-s -s
TITLE='IOCCC entry locations' TITLE='IOCCC entry locations'
-H -H
navbar=top-of-site navbar=top-of-site
``` ```
The command line options printed by an "output tool" are processed The command line options printed by an "output tool" are processed
@@ -645,7 +655,7 @@ on the command line.
For example: For example:
``` ```
command [command_options ..] [cfg_options ..] [output_tool_options ..] [--] [filename_arg ..] command [command_options ..] [cfg_options ..] [output_tool_options ..] [--] [filename_arg ..]
``` ```
Here the `command` first processes any command line options, then it processes Here the `command` first processes any command line options, then it processes
@@ -709,7 +719,7 @@ on the [experimental web site](https://ioccc-src.github.io/temp-test-ioccc/).
(called default HTML files) ...: (called default HTML files) ...:
``` ```
*.default.html *.default.html
``` ```
... contain default content used to form IOCCC HTML / IOCCC web pages. ... contain default content used to form IOCCC HTML / IOCCC web pages.
@@ -727,7 +737,9 @@ we even need the tools in the [bin](index.html) directory when there other
solutions available to form web pages. solutions available to form web pages.
## <div id="static-only">Static web pages only</div> <div id="static-only">
## Static web pages only
</div>
Here are some reasons why we are using these files and Here are some reasons why we are using these files and
special tools to create HTML content / IOCCC web pages: special tools to create HTML content / IOCCC web pages:
@@ -752,7 +764,9 @@ We use [static web pages](#static-only), so use of a "back-end database" is not
available to the IOCCC. available to the IOCCC.
## <div id="why-github">We cannot use non-GitHub web servers</div> <div id="why-github">
## We cannot use non-GitHub web servers
</div>
The [GitHub pages](https://pages.github.com) have the distributed server capacity needed to handle The [GitHub pages](https://pages.github.com) have the distributed server capacity needed to handle
the **huge download volume** or [Slashdot effect](https://en.wikipedia.org/wiki/Slashdot_effect) the **huge download volume** or [Slashdot effect](https://en.wikipedia.org/wiki/Slashdot_effect)
@@ -823,7 +837,9 @@ site](https://www.ioccc.org).
For this reason, we cannot use JavaScript include HTML content. For this reason, we cannot use JavaScript include HTML content.
# <div id="terms">IOCCC terms</div> <div id="terms">
# IOCCC terms
</div>
The following IOCCC terms apply to tools, JSON files, and the directory structure of this repo. The following IOCCC terms apply to tools, JSON files, and the directory structure of this repo.
@@ -845,7 +861,7 @@ IOCCC. Each author has **EXACTLY ONE** `author_handle`.
For each `author_handle`, there will be a JSON file located at: For each `author_handle`, there will be a JSON file located at:
``` ```
author/author_handle.json author/author_handle.json
``` ```
where `author_handle` is the author's `author_handle`. where `author_handle` is the author's `author_handle`.
@@ -856,7 +872,7 @@ document). In particular, the `author_handle` must be an ASCII
string that matches this regexp: string that matches this regexp:
``` <!---re--> ``` <!---re-->
^[0-9A-Za-z][0-9A-Za-z._+-]*$" ^[0-9A-Za-z][0-9A-Za-z._+-]*$"
``` ```
Default `author_handle`'s do not have multiple consecutive `_` (underscore) Default `author_handle`'s do not have multiple consecutive `_` (underscore)
@@ -876,13 +892,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
``` ```
@@ -895,7 +911,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]*$
``` ```
@@ -927,7 +943,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.
@@ -938,7 +954,7 @@ The `year` directories reside directly below the top level directory.
Each `year` directory will have a file under it named: Each `year` directory will have a file 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
@@ -952,7 +968,7 @@ A `dir` is a POSIX safe string that holds an entry.
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 `entry` is under its own individual directory. This directory Each `entry` is under its own individual directory. This directory
@@ -964,7 +980,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
``` ```
+8 -5
View File
@@ -84,7 +84,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an
# set variables referenced in the usage message # set variables referenced in the usage message
# #
export VERSION="1.0.4 2024-04-13" export VERSION="1.1 2024-04-20"
NAME=$(basename "$0") NAME=$(basename "$0")
export NAME export NAME
export V_FLAG=0 export V_FLAG=0
@@ -221,12 +221,8 @@ while getopts :hv:Vd:D:nNt:T:p:u:w: flag; do
TOOL_OPTION+=("$PANDOC_WRAPPER") TOOL_OPTION+=("$PANDOC_WRAPPER")
;; ;;
u) REPO_URL="$OPTARG" u) REPO_URL="$OPTARG"
TOOL_OPTION+=("-u")
TOOL_OPTION+=("$REPO_URL")
;; ;;
w) SITE_URL="$OPTARG" w) SITE_URL="$OPTARG"
TOOL_OPTION+=("-w")
TOOL_OPTION+=("$SITE_URL")
;; ;;
\?) echo "$0: ERROR: invalid option: -$OPTARG" 1>&2 \?) echo "$0: ERROR: invalid option: -$OPTARG" 1>&2
echo 1>&2 echo 1>&2
@@ -342,6 +338,10 @@ fi
# #
TOOL_OPTION+=("-t") TOOL_OPTION+=("-t")
TOOL_OPTION+=("$TAGLINE") TOOL_OPTION+=("$TAGLINE")
TOOL_OPTION+=("-u")
TOOL_OPTION+=("$REPO_URL")
TOOL_OPTION+=("-w")
TOOL_OPTION+=("$SITE_URL")
# print running info if verbose # print running info if verbose
# #
@@ -631,17 +631,20 @@ for YYYY in $(< "$TOP_FILE"); do
if [[ $V_FLAG -ge 3 ]]; then if [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: about to run: $MD2HTML_SH ${TOOL_OPTION[*]}" \ echo "$0: debug[3]: about to run: $MD2HTML_SH ${TOOL_OPTION[*]}" \
"-s $DESCRIPTION -s $KEYWORDS -s $HEADER_2" \ "-s $DESCRIPTION -s $KEYWORDS -s $HEADER_2" \
"-s REPO_URL=$REPO_URL -s SITE_URL=$SITE_URL" \
"-s $UP_LINK -s $UP_TEXT -D $D_OPTION -m $MD_FILE -v $V_FLAG --" \ "-s $UP_LINK -s $UP_TEXT -D $D_OPTION -m $MD_FILE -v $V_FLAG --" \
"$MD_FILE $HTML_FLLE" 1>&2 "$MD_FILE $HTML_FLLE" 1>&2
fi fi
"$MD2HTML_SH" "${TOOL_OPTION[@]}" \ "$MD2HTML_SH" "${TOOL_OPTION[@]}" \
-s "$DESCRIPTION" -s "$KEYWORDS" -s "$HEADER_2" \ -s "$DESCRIPTION" -s "$KEYWORDS" -s "$HEADER_2" \
-s "REPO_URL=$REPO_URL" -s "SITE_URL=$SITE_URL" \
-s "$UP_LINK" -s "$UP_TEXT" -D "$D_OPTION" -m "$MD_FILE" -v "$V_FLAG" -- \ -s "$UP_LINK" -s "$UP_TEXT" -D "$D_OPTION" -m "$MD_FILE" -v "$V_FLAG" -- \
"$MD_FILE" "$HTML_FLLE" "$MD_FILE" "$HTML_FLLE"
status="$?" status="$?"
if [[ $status -ne 0 ]]; then if [[ $status -ne 0 ]]; then
echo "$0: ERROR: tool: $MD2HTML_SH ${TOOL_OPTION[*]}" \ echo "$0: ERROR: tool: $MD2HTML_SH ${TOOL_OPTION[*]}" \
"-s $DESCRIPTION -s $KEYWORDS -s $HEADER_2" \ "-s $DESCRIPTION -s $KEYWORDS -s $HEADER_2" \
"-s REPO_URL=$REPO_URL -s SITE_URL=$SITE_URL" \
"-s $UP_LINK -s $UP_TEXT -D $D_OPTION -m $MD_FILE -v $V_FLAG --" \ "-s $UP_LINK -s $UP_TEXT -D $D_OPTION -m $MD_FILE -v $V_FLAG --" \
"$MD_FILE $HTML_FLLE failed, error: $status" 1>&2 "$MD_FILE $HTML_FLLE failed, error: $status" 1>&2
echo 1 > "$TMP_EXIT_CODE" # exit 1 echo 1 > "$TMP_EXIT_CODE" # exit 1
+71 -74
View File
@@ -144,63 +144,63 @@ repo</a>.</p>
<h3 id="all-run.sh"><a href="all-run.sh">all-run.sh</a></h3> <h3 id="all-run.sh"><a href="all-run.sh">all-run.sh</a></h3>
<p>Run a command on all winning entries.</p> <p>Run a command on all winning entries.</p>
<p>For example:</p> <p>For example:</p>
<pre><code>bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1</code></pre> <pre><code> bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1</code></pre>
<p>Or for example:</p> <p>Or for example:</p>
<pre><code>bin/all-run.sh -v 3 bin/readme2index.sh -v 1</code></pre> <pre><code> bin/all-run.sh -v 3 bin/readme2index.sh -v 1</code></pre>
<h3 id="all-years.sh"><a href="all-years.sh">all-years.sh</a></h3> <h3 id="all-years.sh"><a href="all-years.sh">all-years.sh</a></h3>
<p>Run a command on all IOCCC years.</p> <p>Run a command on all IOCCC years.</p>
<p>For example:</p> <p>For example:</p>
<pre><code>bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1</code></pre> <pre><code> bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1</code></pre>
<p>Or for example:</p> <p>Or for example:</p>
<pre><code>bin/all-years.sh -v 1 bin/chk-entry.sh</code></pre> <pre><code> bin/all-years.sh -v 1 bin/chk-entry.sh</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 verify_entry_files</code></pre> <pre><code> make verify_entry_files</code></pre>
<h3 id="chk-entry.sh"><a href="chk-entry.sh">chk-entry.sh</a></h3> <h3 id="chk-entry.sh"><a href="chk-entry.sh">chk-entry.sh</a></h3>
<p>Check that files required by an entry match the entry’s manifest as found in <p>Check that files required by an entry match the entry’s manifest as found in
<code>.entry.json</code>.</p> <code>.entry.json</code>.</p>
<p>For example:</p> <p>For example:</p>
<pre><code>bin/chk-entry.sh 2020/ferguson1</code></pre> <pre><code> bin/chk-entry.sh 2020/ferguson1</code></pre>
<h3 id="filelist.entry.json.awk"><a href="filelist.entry.json.awk">filelist.entry.json.awk</a></h3> <h3 id="filelist.entry.json.awk"><a href="filelist.entry.json.awk">filelist.entry.json.awk</a></h3>
<p>Generate the list of files in the entry’s manifest, <code>.entry.json</code>.</p> <p>Generate the list of files in the entry’s manifest, <code>.entry.json</code>.</p>
<p>For example:</p> <p>For example:</p>
<pre><code>awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.json</code></pre> <pre><code> awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.json</code></pre>
<h3 id="gen-authors.sh"><a href="gen-authors.sh">gen-authors.sh</a></h3> <h3 id="gen-authors.sh"><a href="gen-authors.sh">gen-authors.sh</a></h3>
<p>Generate the top level <code>/authors.html</code> page.</p> <p>Generate the top level <code>/authors.html</code> page.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-authors.sh -v 1</code></pre> <pre><code> bin/gen-authors.sh -v 1</code></pre>
<h3 id="gen-location.sh"><a href="gen-location.sh">gen-location.sh</a></h3> <h3 id="gen-location.sh"><a href="gen-location.sh">gen-location.sh</a></h3>
<p>Generate the top level <code>/location.html</code> page.</p> <p>Generate the top level <code>/location.html</code> page.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-location.sh -v 1</code></pre> <pre><code> bin/gen-location.sh -v 1</code></pre>
<h3 id="gen-other-html.sh"><a href="gen-other-html.sh">gen-other-html.sh</a></h3> <h3 id="gen-other-html.sh"><a href="gen-other-html.sh">gen-other-html.sh</a></h3>
<p>Generate entry HTML files (other than README.md to index.html) from markdown <p>Generate entry HTML files (other than README.md to index.html) from markdown
files.</p> files.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-other-html.sh -v 1</code></pre> <pre><code> bin/gen-other-html.sh -v 1</code></pre>
<h3 id="gen-sitemap.sh"><a href="gen-sitemap.sh">gen-sitemap.sh</a></h3> <h3 id="gen-sitemap.sh"><a href="gen-sitemap.sh">gen-sitemap.sh</a></h3>
<p>Generate an XML sitemap for the IOCCC web site.</p> <p>Generate an XML sitemap for the IOCCC web site.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-sitemap.sh -v 1</code></pre> <pre><code> bin/gen-sitemap.sh -v 1</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 gen_sitemap</code></pre> <pre><code> make gen_sitemap</code></pre>
<h3 id="gen-status.sh"><a href="gen-status.sh">gen-status.sh</a></h3> <h3 id="gen-status.sh"><a href="gen-status.sh">gen-status.sh</a></h3>
<p>Generate <code>status.json</code> according to the modification dates of <code>status.json</code> <p>Generate <code>status.json</code> according to the modification dates of <code>status.json</code>
and <code>news.html</code>.</p> and <code>news.html</code>.</p>
<p>Without argument, the <code>contest_status</code> is unchanged.</p> <p>Without argument, the <code>contest_status</code> is unchanged.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-status.sh -v 1</code></pre> <pre><code> bin/gen-status.sh -v 1</code></pre>
<p>To force the <code>contest_status</code> to be closed:</p> <p>To force the <code>contest_status</code> to be closed:</p>
<pre><code>bin/gen-status.sh -v 1 closed</code></pre> <pre><code> bin/gen-status.sh -v 1 closed</code></pre>
<p>To force the <code>contest_status</code> to be open:</p> <p>To force the <code>contest_status</code> to be open:</p>
<pre><code>bin/gen-status.sh -v 1 open</code></pre> <pre><code> bin/gen-status.sh -v 1 open</code></pre>
<p>To see other valid statuses:</p> <p>To see other valid statuses:</p>
<pre><code>bin/gen-status -h</code></pre> <pre><code> bin/gen-status -h</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 gen_status</code></pre> <pre><code> make gen_status</code></pre>
<h3 id="gen-top-html.sh"><a href="gen-top-html.sh">gen-top-html.sh</a></h3> <h3 id="gen-top-html.sh"><a href="gen-top-html.sh">gen-top-html.sh</a></h3>
<p>Generate a number of top level HTML pages for the IOCCC web sites.</p> <p>Generate a number of top level HTML pages for the IOCCC web sites.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-top-html.sh -v 1</code></pre> <pre><code> bin/gen-top-html.sh -v 1</code></pre>
<p>Examples of top level HTML pages built by this tool include:</p> <p>Examples of top level HTML pages built by this tool include:</p>
<ul> <ul>
<li><a href="../CODE_OF_CONDUCT.html">CODE_OF_CONDUCT.html</a></li> <li><a href="../CODE_OF_CONDUCT.html">CODE_OF_CONDUCT.html</a></li>
@@ -217,19 +217,19 @@ and <code>news.html</code>.</p>
<li><a href="../thanks-for-help.html">thanks-for-help.html</a></li> <li><a href="../thanks-for-help.html">thanks-for-help.html</a></li>
</ul> </ul>
<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 gen_top_html</code></pre> <pre><code> make gen_top_html</code></pre>
<h3 id="gen-year-index.sh"><a href="gen-year-index.sh">gen-year-index.sh</a></h3> <h3 id="gen-year-index.sh"><a href="gen-year-index.sh">gen-year-index.sh</a></h3>
<p>Generate an <code>index.html</code> page for an given IOCCC year.</p> <p>Generate an <code>index.html</code> page for an given IOCCC year.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-year-index.sh -v 1 2020</code></pre> <pre><code> bin/gen-year-index.sh -v 1 2020</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 gen_year_index</code></pre> <pre><code> make gen_year_index</code></pre>
<h3 id="gen-years.sh"><a href="gen-years.sh">gen-years.sh</a></h3> <h3 id="gen-years.sh"><a href="gen-years.sh">gen-years.sh</a></h3>
<p>Generate the top level <code>/years.html</code> page.</p> <p>Generate the top level <code>/years.html</code> page.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/gen-years.sh -v 1</code></pre> <pre><code> bin/gen-years.sh -v 1</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 gen_years</code></pre> <pre><code> make gen_years</code></pre>
<h3 id="md2html.sh"><a href="md2html.sh">md2html.sh</a></h3> <h3 id="md2html.sh"><a href="md2html.sh">md2html.sh</a></h3>
<p>This is the primary tool that forms IOCCC generated HTML content from <p>This is the primary tool that forms IOCCC generated HTML content from
markdown files (permanent markdown files or temporarily generated markdown files (permanent markdown files or temporarily generated
@@ -258,19 +258,19 @@ the extra time can add up.</p>
<p>If only a few <code>index.hmtl</code> files need updating, then <p>If only a few <code>index.hmtl</code> files need updating, then
this command will only briefly pause while the this command will only briefly pause while the
slightly longer <a href="readme2index.sh">readme2index.sh</a> is run:</p> slightly longer <a href="readme2index.sh">readme2index.sh</a> is run:</p>
<pre><code>bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1</code></pre> <pre><code> bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1</code></pre>
<p><strong>NOTE</strong>: This command assumes that the relative <p><strong>NOTE</strong>: This command assumes that the relative
modification times for <code>index.hmtl</code>, <code>.entry.json</code>, modification times for <code>index.hmtl</code>, <code>.entry.json</code>,
and <code>index.html</code> are correct. If in doubt, use:</p> and <code>index.html</code> are correct. If in doubt, use:</p>
<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 quick_entry_index</code></pre> <pre><code> make quick_entry_index</code></pre>
<h3 id="readme2index.sh"><a href="readme2index.sh">readme2index.sh</a></h3> <h3 id="readme2index.sh"><a href="readme2index.sh">readme2index.sh</a></h3>
<p>Convert an entry README.md into entry directory index.html.</p> <p>Convert an entry README.md into entry directory index.html.</p>
<pre><code>bin/all-run.sh -v 3 bin/readme2index.sh -v 1</code></pre> <pre><code> bin/all-run.sh -v 3 bin/readme2index.sh -v 1</code></pre>
<p>To build <code>index.html</code> files for all entries:</p> <p>To build <code>index.html</code> files for all entries:</p>
<pre><code>bin/all-run.sh -v 3 bin/readme2index.sh -v 1</code></pre> <pre><code> bin/all-run.sh -v 3 bin/readme2index.sh -v 1</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 entry_index</code></pre> <pre><code> make entry_index</code></pre>
<h3 id="status2html.sh"><a href="status2html.sh">status2html.sh</a></h3> <h3 id="status2html.sh"><a href="status2html.sh">status2html.sh</a></h3>
<p>Convert <code>status.json</code> into HTML.</p> <p>Convert <code>status.json</code> into HTML.</p>
<p>This tool is a ‘before tool’ (-b tool) that is intended <p>This tool is a ‘before tool’ (-b tool) that is intended
@@ -285,11 +285,11 @@ We sort with lines starting with <code>!</code> fourth.</p>
<h3 id="sort.gitignore.sh"><a href="sort.gitignore.sh">sort.gitignore.sh</a></h3> <h3 id="sort.gitignore.sh"><a href="sort.gitignore.sh">sort.gitignore.sh</a></h3>
<p>Sort a .gitignore in a entry directory.</p> <p>Sort a .gitignore in a entry directory.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/sort.gitignore.sh -v 1 YYYY/dir</code></pre> <pre><code> bin/sort.gitignore.sh -v 1 YYYY/dir</code></pre>
<p>Suggested usage:</p> <p>Suggested usage:</p>
<pre><code>bin/all-run.sh bin/sort.gitignore.sh -v 1</code></pre> <pre><code> bin/all-run.sh bin/sort.gitignore.sh -v 1</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 sort_gitignore</code></pre> <pre><code> make sort_gitignore</code></pre>
<h3 id="subst.default.sh"><a href="subst.default.sh">subst.default.sh</a></h3> <h3 id="subst.default.sh"><a href="subst.default.sh">subst.default.sh</a></h3>
<p>Print default substitutions.</p> <p>Print default substitutions.</p>
<h3 id="subst.entry-index.sh"><a href="subst.entry-index.sh">subst.entry-index.sh</a></h3> <h3 id="subst.entry-index.sh"><a href="subst.entry-index.sh">subst.entry-index.sh</a></h3>
@@ -317,22 +317,21 @@ We sort with lines starting with <code>!</code> fourth.</p>
<h2 id="untar-entry.sh"><a href="untar-entry.sh">untar-entry.sh</a></h2> <h2 id="untar-entry.sh"><a href="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>
<pre><code>bin/untar-entry.sh -v 1 YYYY/dir</code></pre> <pre><code> bin/untar-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/untar-entry.sh -v 1</code></pre> <pre><code> bin/all-run.sh -v 3 bin/untar-entry.sh -v 1</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 untar_entry_tarball</code></pre> <pre><code> make untar_entry_tarball</code></pre>
<h2 id="untar-year.sh"><a href="untar-year.sh">untar-year.sh</a></h2> <h2 id="untar-year.sh"><a href="untar-year.sh">untar-year.sh</a></h2>
<p>Untar an IOCCC year’s compressed tarball.</p> <p>Untar an IOCCC year’s compressed tarball.</p>
<p>Usage:</p> <p>Usage:</p>
<pre><code>bin/untar-year.sh -v 1 YYYY</code></pre> <pre><code> bin/untar-year.sh -v 1 YYYY</code></pre>
<p>Suggested usage:</p> <p>Suggested usage:</p>
<pre><code>bin/all-years.sh -v 3 bin/untar-year.sh -v 1</code></pre> <pre><code> bin/all-years.sh -v 3 bin/untar-year.sh -v 1</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 untar_year_tarball</code></pre> <pre><code> make untar_year_tarball</code></pre>
#
<div id="how"> <div id="how">
How IOCCC HTML content is built <h1 id="how-ioccc-html-content-is-built">How IOCCC HTML content is built</h1>
</div> </div>
<p>The <a href="md2html.sh">md2html.sh</a> tool is the primary tool that <p>The <a href="md2html.sh">md2html.sh</a> tool is the primary tool that
is used to form all IOCCC related HTML pages for the <a href="https://www.ioccc.org">official IOCCC web is used to form all IOCCC related HTML pages for the <a href="https://www.ioccc.org">official IOCCC web
@@ -347,22 +346,21 @@ tools in the <a href="index.html">bin directory</a> and exist only while the too
<p>In addition to converting markdown to HTML, the canonical way that HTML content is <p>In addition to converting markdown to HTML, the canonical way that HTML content is
built uses, by default, files from the <a href="../inc/index.html">inc directory</a>, of built uses, by default, files from the <a href="../inc/index.html">inc directory</a>, of
the file name form:</p> the file name form:</p>
<pre><code>*.default.html</code></pre> <pre><code> *.default.html</code></pre>
<p>By using command line options of the form:</p> <p>By using command line options of the form:</p>
<pre><code>-H phase=name</code></pre> <pre><code> -H phase=name</code></pre>
<p>where <code>phase</code> is the name of an HTML phase, <p>where <code>phase</code> is the name of an HTML phase,
a non-default file may be used. For example:</p> a non-default file may be used. For example:</p>
<pre><code>-H navbar=up2index</code></pre> <pre><code> -H navbar=up2index</code></pre>
<p>will cause <a href="../inc/navbar.up2index.html">inc/navbar.up2index.html</a> <p>will cause <a href="../inc/navbar.up2index.html">inc/navbar.up2index.html</a>
instead of <a href="../inc/navbar.default.html">inc/navbar.default.html</a> to be instead of <a href="../inc/navbar.default.html">inc/navbar.default.html</a> to be
used during the <em>navbar</em> HTML phase.</p> used during the <em>navbar</em> HTML phase.</p>
<p>If <code>name</code> is dot (i.e., <code>.</code>), then the given HTML phase is skipped. <p>If <code>name</code> is dot (i.e., <code>.</code>), then the given HTML phase is skipped.
For example:</p> For example:</p>
<pre><code>-H footer=.</code></pre> <pre><code> -H footer=.</code></pre>
<p>will cause no HTML content to be produced during the <code>footer</code> HTML phase.</p> <p>will cause no HTML content to be produced during the <code>footer</code> HTML phase.</p>
##
<div id="html"> <div id="html">
HTML phases <h2 id="html-phases">HTML phases</h2>
</div> </div>
<p>The following HTML phase files are used to build HTML content:</p> <p>The following HTML phase files are used to build HTML content:</p>
<ol start="0" type="1"> <ol start="0" type="1">
@@ -387,16 +385,18 @@ HTML phases
<li>inc/bottom.default.html</li> <li>inc/bottom.default.html</li>
</ol> </ol>
<p>Phases 33-39 are reserved for future use.</p> <p>Phases 33-39 are reserved for future use.</p>
<p>In the above HTML phase numbers, except during HTML phase numbers 20-29, symbols <p>In all of the above HTML phase numbers, symbols of the form <strong>%%TOKEN%%</strong> are substituted.</p>
of the form <code>%%TOKEN%%</code> are substituted.</p> <p>Substitutions of and <strong>%%TOKEN%%</strong> are performed on included HTML content,
<p>Any <code>%%TOKEN%%</code> printed by the ‘before tool’ (<code>-b tool</code>), the ‘pandoc wrapper content generated by the ‘before tool’ (<code>-b tool</code>),
tool’ (<code>-p tool</code>), and the ‘after tool’ (<code>-a tool</code>) are ignored (i.e., not content generated by the ‘after tool’ (<code>-a tool</code>),
substituted).</p> as well as the markdown content given to the <code>pandoc wrapper tool</code> (<code>-p tool</code>).</p>
<p>It is an error, unless <code>-S</code> is given, for any phase, except phases HTML
20-29, to not substitute all <strong>%%TOKEN%%</strong>’s. For phases HTML 20-29, any
<strong>%%TOKEN%%</strong> that is not substituted are passed thru without substitution.</p>
<p>See the tool <a href="readme2index.sh">readme2index.sh</a> for an example of <p>See the tool <a href="readme2index.sh">readme2index.sh</a> for an example of
how HTML phases are implemented.</p> how HTML phases are implemented.</p>
##
<div id="getopt"> <div id="getopt">
<code>getopt</code> phase processing of the command line <h2 id="getopt-phase-processing-of-the-command-line">getopt phase processing of the command line</h2>
</div> </div>
<p>The command options are evaluated in the following <code>getopt</code> phases:</p> <p>The command options are evaluated in the following <code>getopt</code> phases:</p>
<h3 id="getopt-phase-0"><code>getopt</code> phase 0</h3> <h3 id="getopt-phase-0"><code>getopt</code> phase 0</h3>
@@ -430,18 +430,18 @@ the same <code>token</code> <em>only</em>.</p>
<p>An “output tool” may be used to add certain additional command line options to be processed.</p> <p>An “output tool” may be used to add certain additional command line options to be processed.</p>
<p>IMPORTANT: An “output tool” will print each command line option / argument on a separate line. <p>IMPORTANT: An “output tool” will print each command line option / argument on a separate line.
So for example, if an “output tool” wishes to convey:</p> So for example, if an “output tool” wishes to convey:</p>
<pre><code>-s TITLE=&#39;IOCCC entry locations&#39; -H navbar=top-of-site</code></pre> <pre><code> -s TITLE=&#39;IOCCC entry locations&#39; -H navbar=top-of-site</code></pre>
<p>The “output tool” would output the following 4 lines:</p> <p>The “output tool” would output the following 4 lines:</p>
<pre><code>-s <pre><code> -s
TITLE=&#39;IOCCC entry locations&#39; TITLE=&#39;IOCCC entry locations&#39;
-H -H
navbar=top-of-site</code></pre> navbar=top-of-site</code></pre>
<p>The command line options printed by an “output tool” are processed <p>The command line options printed by an “output tool” are processed
after all command line options, and all options from a matching after all command line options, and all options from a matching
line from the <code>md2html.cfg</code> file, and before any filename arguments line from the <code>md2html.cfg</code> file, and before any filename arguments
on the command line.</p> on the command line.</p>
<p>For example:</p> <p>For example:</p>
<pre><code>command [command_options ..] [cfg_options ..] [output_tool_options ..] [--] [filename_arg ..]</code></pre> <pre><code> command [command_options ..] [cfg_options ..] [output_tool_options ..] [--] [filename_arg ..]</code></pre>
<p>Here the <code>command</code> first processes any command line options, then it processes <p>Here the <code>command</code> first processes any command line options, then it processes
<code>cfg_options</code> obtained from this file from a first match of a given <code>file_glob</code>, <code>cfg_options</code> obtained from this file from a first match of a given <code>file_glob</code>,
then it processes <code>output tool</code> (i.e., <code>-o tool</code>) options found in then it processes <code>output tool</code> (i.e., <code>-o tool</code>) options found in
@@ -486,7 +486,7 @@ on the <a href="https://www.ioccc.org">official IOCCC web site</a>.</p>
on the <a href="https://ioccc-src.github.io/temp-test-ioccc/">experimental web site</a>.</p> on the <a href="https://ioccc-src.github.io/temp-test-ioccc/">experimental web site</a>.</p>
<p>… and in particular files under <a href="../inc/index.html">inc</a> that are of the form <p>… and in particular files under <a href="../inc/index.html">inc</a> that are of the form
(called default HTML files) …:</p> (called default HTML files) …:</p>
<pre><code>*.default.html</code></pre> <pre><code> *.default.html</code></pre>
<p>… contain default content used to form IOCCC HTML / IOCCC web pages.</p> <p>… contain default content used to form IOCCC HTML / IOCCC web pages.</p>
<p>Instead of editing the default HTML files in order to fix a special web page, <p>Instead of editing the default HTML files in order to fix a special web page,
consider making a copy of the default file and modifying the <a href="md2html.cfg">md2html config consider making a copy of the default file and modifying the <a href="md2html.cfg">md2html config
@@ -496,9 +496,8 @@ situation will not impact <strong>MOST</strong> of the HTML content.</p>
<p>You may wonder why we need these files in the first place. You may wonder why <p>You may wonder why we need these files in the first place. You may wonder why
we even need the tools in the <a href="index.html">bin</a> directory when there other we even need the tools in the <a href="index.html">bin</a> directory when there other
solutions available to form web pages.</p> solutions available to form web pages.</p>
##
<div id="static-only"> <div id="static-only">
Static web pages only <h2 id="static-web-pages-only">Static web pages only</h2>
</div> </div>
<p>Here are some reasons why we are using these files and <p>Here are some reasons why we are using these files and
special tools to create HTML content / IOCCC web pages:</p> special tools to create HTML content / IOCCC web pages:</p>
@@ -513,9 +512,8 @@ pages</a>.</p>
<h2 id="we-cannot-use-a-back-end-database">We cannot use a back-end database</h2> <h2 id="we-cannot-use-a-back-end-database">We cannot use a back-end database</h2>
<p>We use <a href="#static-only">static web pages</a>, so use of a “back-end database” is not <p>We use <a href="#static-only">static web pages</a>, so use of a “back-end database” is not
available to the IOCCC.</p> available to the IOCCC.</p>
##
<div id="why-github"> <div id="why-github">
We cannot use non-GitHub web servers <h2 id="we-cannot-use-non-github-web-servers">We cannot use non-GitHub web servers</h2>
</div> </div>
<p>The <a href="https://pages.github.com">GitHub pages</a> have the distributed server capacity needed to handle <p>The <a href="https://pages.github.com">GitHub pages</a> have the distributed server capacity needed to handle
the <strong>huge download volume</strong> or <a href="https://en.wikipedia.org/wiki/Slashdot_effect">Slashdot effect</a> the <strong>huge download volume</strong> or <a href="https://en.wikipedia.org/wiki/Slashdot_effect">Slashdot effect</a>
@@ -563,9 +561,8 @@ disabled.</p>
<p>The IOCCC will <strong>NOT MANDATE USE OF JavaScript</strong> to view <a href="https://www.ioccc.org">official IOCCC web <p>The IOCCC will <strong>NOT MANDATE USE OF JavaScript</strong> to view <a href="https://www.ioccc.org">official IOCCC web
site</a>.</p> site</a>.</p>
<p>For this reason, we cannot use JavaScript include HTML content.</p> <p>For this reason, we cannot use JavaScript include HTML content.</p>
#
<div id="terms"> <div id="terms">
IOCCC terms <h1 id="ioccc-terms">IOCCC terms</h1>
</div> </div>
<p>The following IOCCC terms apply to tools, JSON files, and the directory structure of this repo.</p> <p>The following IOCCC terms apply to tools, JSON files, and the directory structure of this repo.</p>
<h2 id="author"><code>author</code></h2> <h2 id="author"><code>author</code></h2>
@@ -577,13 +574,13 @@ IOCCC entries have more than one author. In that case we might use the word
<p>An <code>author_handle</code> is string that refers to a given author and is unique to the <p>An <code>author_handle</code> is string that refers to a given author and is unique to the
IOCCC. Each author has <strong>EXACTLY ONE</strong> <code>author_handle</code>.</p> IOCCC. Each author has <strong>EXACTLY ONE</strong> <code>author_handle</code>.</p>
<p>For each <code>author_handle</code>, there will be a JSON file located at:</p> <p>For each <code>author_handle</code>, there will be a JSON file located at:</p>
<pre><code>author/author_handle.json</code></pre> <pre><code> author/author_handle.json</code></pre>
<p>where <code>author_handle</code> is the author’s <code>author_handle</code>.</p> <p>where <code>author_handle</code> is the author’s <code>author_handle</code>.</p>
<p>Because the <code>author_handle</code> is used to form a JSON filename, the string must be <p>Because the <code>author_handle</code> is used to form a JSON filename, the string must be
a POSIX safe string with the addition of <code>+</code> (for technical reasons beyond this a POSIX safe string with the addition of <code>+</code> (for technical reasons beyond this
document). In particular, the <code>author_handle</code> must be an ASCII document). In particular, the <code>author_handle</code> must be an ASCII
string that matches this regexp:</p> string that matches this regexp:</p>
<pre><code>^[0-9A-Za-z][0-9A-Za-z._+-]*$&quot;</code></pre> <pre><code> ^[0-9A-Za-z][0-9A-Za-z._+-]*$&quot;</code></pre>
<p>Default <code>author_handle</code>’s do not have multiple consecutive <code>_</code> (underscore) <p>Default <code>author_handle</code>’s do not have multiple consecutive <code>_</code> (underscore)
characters. Nevertheless, multiple consecutive <code>_</code> (underscore) characters are characters. Nevertheless, multiple consecutive <code>_</code> (underscore) characters are
allowed. Contest submitters who wish to override the <code>author_handle</code> may do so.</p> allowed. Contest submitters who wish to override the <code>author_handle</code> may do so.</p>
@@ -596,15 +593,15 @@ desire.</p>
<code>author_handle</code> so that new winning entries can be associated with the same <code>author_handle</code> so that new winning entries can be associated with the same
author.</p> author.</p>
<p>For an anonymous <code>author</code>, their handle is one of these forms:</p> <p>For an anonymous <code>author</code>, their handle is one of these forms:</p>
<pre><code>Anonymous_year</code></pre> <pre><code> Anonymous_year</code></pre>
<p>or:</p> <p>or:</p>
<pre><code>Anonymous_year.digits</code></pre> <pre><code> Anonymous_year.digits</code></pre>
<p>The latter form is in case there are more than one anonymous author in a given <p>The latter form is in case there are more than one anonymous author in a given
year.</p> year.</p>
<p>NOTE: even if the directory name is not <code>anonymous</code> the above rules apply as in <p>NOTE: even if the directory name is not <code>anonymous</code> the above rules apply as in
in the case of <a href="../2005/anon/anon.c">2005/anon</a>.</p> in the case of <a href="../2005/anon/anon.c">2005/anon</a>.</p>
<p>Anonymous <code>author_handle</code>’s match this regexp:</p> <p>Anonymous <code>author_handle</code>’s match this regexp:</p>
<pre><code>Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$</code></pre> <pre><code> Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$</code></pre>
<h2 id="entry"><code>entry</code></h2> <h2 id="entry"><code>entry</code></h2>
<p>An IOCCC entry that won an award for a given IOCCC.</p> <p>An IOCCC entry that won an award for a given IOCCC.</p>
<p>An <code>entry</code> has one more more <code>author</code>s.</p> <p>An <code>entry</code> has one more more <code>author</code>s.</p>
@@ -621,22 +618,22 @@ may be limited to previous <code>entry</code>s that used them.</p>
represent the year. Some special <code>year</code> strings are possible, such as <code>mock</code>. represent the year. Some special <code>year</code> strings are possible, such as <code>mock</code>.
Non-numeric <code>year</code> strings are lower case.</p> Non-numeric <code>year</code> strings are lower case.</p>
<p>A <code>year</code> string matches this regexp:</p> <p>A <code>year</code> string matches this regexp:</p>
<pre><code>[0-9a-z][0-9a-z][0-9a-z][0-9a-z]</code></pre> <pre><code> [0-9a-z][0-9a-z][0-9a-z][0-9a-z]</code></pre>
<p>The <code>year</code> directories reside directly below the top level directory.</p> <p>The <code>year</code> directories reside directly below the top level directory.</p>
<h2 id="year-1"><code>.year</code></h2> <h2 id="year-1"><code>.year</code></h2>
<p>Each <code>year</code> directory will have a file under it named:</p> <p>Each <code>year</code> directory will have a file under it named:</p>
<pre><code>.year</code></pre> <pre><code> .year</code></pre>
<p>The contents of the <code>.year</code> file is the year string of the directory. For <p>The contents of the <code>.year</code> file is the year string of the directory. For
instance, <a href="../2020/.year">2020/.year</a> has the string: <code>2020</code>.</p> instance, <a href="../2020/.year">2020/.year</a> has the string: <code>2020</code>.</p>
<h2 id="dir"><code>dir</code></h2> <h2 id="dir"><code>dir</code></h2>
<p>A <code>dir</code> is a POSIX safe string that holds an entry.</p> <p>A <code>dir</code> is a POSIX safe string that holds an entry.</p>
<p>A <code>dir</code> is a string that matches this regexp:</p> <p>A <code>dir</code> is a string that matches this regexp:</p>
<pre><code>^[a-z][0-9a-z.-]*$</code></pre> <pre><code> ^[a-z][0-9a-z.-]*$</code></pre>
<p>Each <code>entry</code> is under its own individual directory. This directory <p>Each <code>entry</code> is under its own individual directory. This directory
is directly under a <code>year</code> directory.</p> is directly under a <code>year</code> directory.</p>
<h3 id="entry_id"><code>entry_id</code></h3> <h3 id="entry_id"><code>entry_id</code></h3>
<p>A string that identifies the winning entry. The string is of the form:</p> <p>A string that identifies the winning entry. The string is of the form:</p>
<pre><code>year_dir</code></pre> <pre><code> year_dir</code></pre>
<!-- <!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved. Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5 -4
View File
@@ -141,7 +141,7 @@ shopt -s lastpipe # run last command of a pipeline not executed in the backgroun
# set variables referenced in the usage message # set variables referenced in the usage message
# #
export VERSION="1.4 2024-04-18" export VERSION="1.5 2024-04-20"
NAME=$(basename "$0") NAME=$(basename "$0")
export NAME export NAME
export V_FLAG=0 export V_FLAG=0
@@ -1684,7 +1684,7 @@ fi
# input.md is -, we will need to capture standard input into a new temporary file # input.md is -, we will need to capture standard input into a new temporary file
# #
export ORIG_INPUT_MD="$INPUT_MD" export ORIG_INPUT_MD="$MATCH_MD"
if [[ -z $NOOP ]]; then if [[ -z $NOOP ]]; then
if [[ $INPUT_MD == - ]]; then if [[ $INPUT_MD == - ]]; then
export TMP_INPUT_MD=".$NAME.$$.stdin.md" export TMP_INPUT_MD=".$NAME.$$.stdin.md"
@@ -1751,6 +1751,7 @@ if [[ -z $NOOP ]]; then
# #
echo "<!-- BEFORE: 1st line of markdown file: $ORIG_INPUT_MD -->" > "$TMP_STRIPPED_MD" echo "<!-- BEFORE: 1st line of markdown file: $ORIG_INPUT_MD -->" > "$TMP_STRIPPED_MD"
# perform the %%TOKEN%% substitutions markdown file AND
# strip commented language after markdown code block # strip commented language after markdown code block
# #
# We do not want the sed extended regular expression to be expanded, so # We do not want the sed extended regular expression to be expanded, so
@@ -1759,10 +1760,10 @@ if [[ -z $NOOP ]]; then
# SC2016 (info): Expressions don't expand in single quotes, use double quotes for that. # SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.
# https://www.shellcheck.net/wiki/SC2016 # https://www.shellcheck.net/wiki/SC2016
# shellcheck disable=SC2016 # shellcheck disable=SC2016
sed -E -e 's/^```[[:space:]]<!---[^-][^-]*-->/```/' "$INPUT_MD" >> "$TMP_STRIPPED_MD" sed -E -e 's/^```[[:space:]]<!---[^-][^-]*-->/```/' -f "$TMP_SED_SCRIPT" "$INPUT_MD" >> "$TMP_STRIPPED_MD"
status="$?" status="$?"
if [[ $status -ne 0 ]]; then if [[ $status -ne 0 ]]; then
echo "$0: ERROR: strip commented language after markdown code block from $INPUT_MD into file:" \ echo "$0: ERROR: token substation and strip code block command language from $INPUT_MD into file:" \
"$TMP_INPUT_MD failed, error code: $status" 1>&2 "$TMP_INPUT_MD failed, error code: $status" 1>&2
exit 25 exit 25
fi fi
+12 -1
View File
@@ -92,7 +92,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an
# set variables referenced in the usage message # set variables referenced in the usage message
# #
export VERSION="1.2.3 2024-04-13" export VERSION="1.3 2024-04-20"
NAME=$(basename "$0") NAME=$(basename "$0")
export NAME export NAME
export V_FLAG=0 export V_FLAG=0
@@ -260,6 +260,16 @@ fi
echo "-s" echo "-s"
echo "HEADER_1=The International Obfuscated C Code Contest" echo "HEADER_1=The International Obfuscated C Code Contest"
# output REPO_URL substitution
#
echo "-s"
echo "REPO_URL=$REPO_URL"
# output SITE_URL substitution
#
echo "-s"
echo "SITE_URL=$SITE_URL"
# output DOCROOT_SLASH substitution # output DOCROOT_SLASH substitution
# #
echo "-s" echo "-s"
@@ -271,6 +281,7 @@ export VALIDATOR_ENCODED_URL
echo "-s" echo "-s"
echo "VALIDATOR_ENCODED_URL=$VALIDATOR_ENCODED_URL" echo "VALIDATOR_ENCODED_URL=$VALIDATOR_ENCODED_URL"
# All Done!!! -- Jessica Noll, Age 2 # All Done!!! -- Jessica Noll, Age 2
# #
exit 0 exit 0
+2 -2
View File
@@ -132,7 +132,7 @@
<!-- END: this line ends content from: inc/before-content.default.html --> <!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: .gen-location.sh.48159.location.md --> <!-- BEFORE: 1st line of markdown file: location.md -->
<ul> <ul>
<li><div id="AU"> <li><div id="AU">
<strong>AU</strong> - <em>Commonwealth of Australia</em> (<em>Australia</em>) <strong>AU</strong> - <em>Commonwealth of Australia</em> (<em>Australia</em>)
@@ -540,7 +540,7 @@
</p></li> </p></li>
</ul></li> </ul></li>
</ul> </ul>
<!-- AFTER: last line of markdown file: .gen-location.sh.48159.location.md --> <!-- AFTER: last line of markdown file: location.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html --> <!-- START: this line starts content from: inc/after-content.default.html -->
+42 -38
View File
@@ -3158,11 +3158,11 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.README.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.README.html</loc>
<lastmod>2024-04-19T08:14:05+00:00</lastmod> <lastmod>2024-04-21T06:04:43+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod> <lastmod>2024-04-21T06:04:40+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/demo1.1st</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/demo1.1st</loc>
@@ -7826,7 +7826,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.entry.json</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.entry.json</loc>
<lastmod>2024-04-16T18:02:26+00:00</lastmod> <lastmod>2024-04-20T21:38:41+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.gitignore</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.gitignore</loc>
@@ -7834,11 +7834,15 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/index.html</loc>
<lastmod>2024-04-19T08:15:41+00:00</lastmod> <lastmod>2024-04-21T03:58:57+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/Makefile</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/Makefile</loc>
<lastmod>2024-03-23T07:10:42+00:00</lastmod> <lastmod>2024-04-21T03:56:15+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/One_Ring_inscription.png</loc>
<lastmod>2024-04-20T21:47:08+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.path</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.path</loc>
@@ -7846,7 +7850,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/README.md</loc>
<lastmod>2024-04-17T07:31:20+00:00</lastmod> <lastmod>2024-04-20T21:47:22+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/try.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/try.sh</loc>
@@ -8290,7 +8294,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/index.html</loc>
<lastmod>2024-04-19T08:13:59+00:00</lastmod> <lastmod>2024-04-20T21:00:59+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/2004_jdalbec.tar.bz2</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/2004_jdalbec.tar.bz2</loc>
@@ -8874,7 +8878,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/index.html</loc>
<lastmod>2024-04-19T08:15:50+00:00</lastmod> <lastmod>2024-04-21T04:19:45+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/input.txt</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/input.txt</loc>
@@ -8890,7 +8894,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/README.md</loc>
<lastmod>2024-04-17T07:32:28+00:00</lastmod> <lastmod>2024-04-21T04:16:36+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/try.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/try.sh</loc>
@@ -10850,7 +10854,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/index.html</loc>
<lastmod>2024-04-19T08:16:06+00:00</lastmod> <lastmod>2024-04-21T03:59:24+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/MagrittePipe.jpg</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/MagrittePipe.jpg</loc>
@@ -10866,7 +10870,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod> <lastmod>2024-04-20T22:23:44+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/try.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2011/goren/try.sh</loc>
@@ -12082,7 +12086,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/index.html</loc>
<lastmod>2024-04-19T08:16:17+00:00</lastmod> <lastmod>2024-04-20T22:29:15+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/ioccc.png</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/ioccc.png</loc>
@@ -12098,7 +12102,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod> <lastmod>2024-04-20T22:30:12+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/try.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2012/vik/try.sh</loc>
@@ -12286,7 +12290,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/index.html</loc>
<lastmod>2024-04-19T08:16:18+00:00</lastmod> <lastmod>2024-04-21T03:59:35+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/ioccc.txt</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/ioccc.txt</loc>
@@ -12398,7 +12402,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/README.md</loc>
<lastmod>2024-04-17T06:59:26+00:00</lastmod> <lastmod>2024-04-21T03:36:52+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/rhino.txt</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/birken/rhino.txt</loc>
@@ -12466,7 +12470,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/index.html</loc>
<lastmod>2024-04-19T08:16:19+00:00</lastmod> <lastmod>2024-04-21T04:39:27+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/Makefile</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/Makefile</loc>
@@ -12478,7 +12482,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod> <lastmod>2024-04-21T04:39:02+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/try.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/try.sh</loc>
@@ -12594,7 +12598,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/index.html</loc>
<lastmod>2024-04-19T08:16:20+00:00</lastmod> <lastmod>2024-04-21T03:59:37+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/Makefile</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/Makefile</loc>
@@ -12606,7 +12610,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod> <lastmod>2024-04-21T03:49:01+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/sc-ioccc.terminal</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/sc-ioccc.terminal</loc>
@@ -13510,11 +13514,11 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.html</loc>
<lastmod>2024-04-19T08:14:07+00:00</lastmod> <lastmod>2024-04-21T04:28:50+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.md</loc>
<lastmod>2024-04-19T00:43:37+00:00</lastmod> <lastmod>2024-04-21T04:27:20+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/.entry.json</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/.entry.json</loc>
@@ -13534,7 +13538,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/index.html</loc>
<lastmod>2024-04-19T08:16:23+00:00</lastmod> <lastmod>2024-04-21T04:35:24+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/luna.jpg</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/luna.jpg</loc>
@@ -13566,7 +13570,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/README.md</loc>
<lastmod>2024-04-19T00:37:17+00:00</lastmod> <lastmod>2024-04-21T04:35:13+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/try.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/try.sh</loc>
@@ -17466,11 +17470,11 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/chocolate-cake.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/chocolate-cake.html</loc>
<lastmod>2024-04-19T08:14:10+00:00</lastmod> <lastmod>2024-04-21T04:31:32+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/chocolate-cake.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/chocolate-cake.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod> <lastmod>2024-04-21T04:31:12+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/COMPILING.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/COMPILING.html</loc>
@@ -18942,7 +18946,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/authors.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/authors.html</loc>
<lastmod>2024-04-19T08:36:03+00:00</lastmod> <lastmod>2024-04-21T06:47:18+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/author/Sjoerd_Mullender.json</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/author/Sjoerd_Mullender.json</loc>
@@ -19082,7 +19086,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/gen-other-html.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/gen-other-html.sh</loc>
<lastmod>2024-04-16T19:14:55+00:00</lastmod> <lastmod>2024-04-21T05:40:59+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/gen-sitemap.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/gen-sitemap.sh</loc>
@@ -19106,7 +19110,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/index.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/index.html</loc>
<lastmod>2024-04-19T08:14:13+00:00</lastmod> <lastmod>2024-04-21T06:40:41+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/manifest.entry.json.awk</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/manifest.entry.json.awk</loc>
@@ -19114,7 +19118,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/md2html.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/md2html.sh</loc>
<lastmod>2024-04-19T08:03:32+00:00</lastmod> <lastmod>2024-04-21T06:46:26+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/output-index-author.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/output-index-author.sh</loc>
@@ -19142,7 +19146,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/README.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/README.md</loc>
<lastmod>2024-04-16T23:12:22+00:00</lastmod> <lastmod>2024-04-21T06:40:32+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/sgi.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/sgi.sh</loc>
@@ -19158,7 +19162,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/subst.default.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/subst.default.sh</loc>
<lastmod>2024-04-16T19:14:55+00:00</lastmod> <lastmod>2024-04-21T05:17:54+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/bin/subst.entry-index.sh</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/bin/subst.entry-index.sh</loc>
@@ -19210,19 +19214,19 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/contact.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/contact.html</loc>
<lastmod>2024-04-19T08:14:14+00:00</lastmod> <lastmod>2024-04-20T20:35:51+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/contact.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/contact.md</loc>
<lastmod>2024-04-17T06:00:03+00:00</lastmod> <lastmod>2024-04-20T20:35:51+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/faq.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/faq.html</loc>
<lastmod>2024-04-19T08:14:14+00:00</lastmod> <lastmod>2024-04-20T20:35:51+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/faq.md</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/faq.md</loc>
<lastmod>2024-04-19T05:37:43+00:00</lastmod> <lastmod>2024-04-20T20:35:51+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/.gitignore</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/.gitignore</loc>
@@ -19310,7 +19314,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/inc/md2html.cfg</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/inc/md2html.cfg</loc>
<lastmod>2024-04-16T19:14:55+00:00</lastmod> <lastmod>2024-04-21T05:39:44+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/inc/navbar.default.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/inc/navbar.default.html</loc>
@@ -19410,7 +19414,7 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/location.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/location.html</loc>
<lastmod>2024-04-19T08:36:05+00:00</lastmod> <lastmod>2024-04-21T06:47:31+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/Makefile</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/Makefile</loc>
@@ -19462,6 +19466,6 @@
</url> </url>
<url> <url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/years.html</loc> <loc>https://ioccc-src.github.io/temp-test-ioccc/years.html</loc>
<lastmod>2024-04-19T08:36:06+00:00</lastmod> <lastmod>2024-04-21T06:48:01+00:00</lastmod>
</url> </url>
</urlset> </urlset>
+3 -3
View File
@@ -132,7 +132,7 @@
<!-- END: this line ends content from: inc/before-content.default.html --> <!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: .gen-years.sh.50335.years.md --> <!-- BEFORE: 1st line of markdown file: years.md -->
<h1 id="ioccc-winning-entries-by-year">IOCCC Winning Entries by Year</h1> <h1 id="ioccc-winning-entries-by-year">IOCCC Winning Entries by Year</h1>
<h3 id="jump-to">Jump to:</h3> <h3 id="jump-to">Jump to:</h3>
<p><a href="#2020">2020</a> | <a href="#2019">2019</a> | <a href="#2018">2018</a> | <a href="#2015">2015</a> | <a href="#2014">2014</a> | <a href="#2013">2013</a> | <a href="#2012">2012</a> | <a href="#2011">2011</a><br><br> <p><a href="#2020">2020</a> | <a href="#2019">2019</a> | <a href="#2018">2018</a> | <a href="#2015">2015</a> | <a href="#2014">2014</a> | <a href="#2013">2013</a> | <a href="#2012">2012</a> | <a href="#2011">2011</a><br><br>
@@ -367,7 +367,7 @@
<strong>Download</strong> all <a href="2004/2004.tar.bz2">2004 IOCCC entry source</a> <strong>Download</strong> all <a href="2004/2004.tar.bz2">2004 IOCCC entry source</a>
</div> </div>
<ul> <ul>
<li><a href="2004/anonymous/index.html">2004/anonymous</a> - “Best use of”“Precious”” Lines”</li> <li><a href="2004/anonymous/index.html">2004/anonymous</a> - Best use of ‘Precious’ Lines</li>
<li><a href="2004/arachnid/index.html">2004/arachnid</a> - Best use of Vision</li> <li><a href="2004/arachnid/index.html">2004/arachnid</a> - Best use of Vision</li>
<li><a href="2004/burley/index.html">2004/burley</a> - Best Calculated Risk</li> <li><a href="2004/burley/index.html">2004/burley</a> - Best Calculated Risk</li>
<li><a href="2004/gavare/index.html">2004/gavare</a> - Best Use of Light and Spheres</li> <li><a href="2004/gavare/index.html">2004/gavare</a> - Best Use of Light and Spheres</li>
@@ -712,7 +712,7 @@
<li>Download all <a href="1984/1984.tar.bz2">1984 IOCCC entry source</a><br></li> <li>Download all <a href="1984/1984.tar.bz2">1984 IOCCC entry source</a><br></li>
</ul> </ul>
<p> <strong>Jump to:</strong> <a href="#">top</a></p> <p> <strong>Jump to:</strong> <a href="#">top</a></p>
<!-- AFTER: last line of markdown file: .gen-years.sh.50335.years.md --> <!-- AFTER: last line of markdown file: years.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html --> <!-- START: this line starts content from: inc/after-content.default.html -->