Commit Graph
91 Commits
Author SHA1 Message Date
Landon Curt Noll 518a6336d0 add rules, guidelines, fix HTML code, move compressed tarball in inventory
By changing the _inventory_order_ of the compressed tarball from
**100000** to **1415926535**, the compressed tarball will land at
the top of the secondary file list and remain still easy to find.

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

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

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

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

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

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

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

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

that produced HTML of the form:

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

will now produce HTML of the form:

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

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

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

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

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

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

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

TODO: Improve the look and feel of the `next/rules.md` and
      `next/guidelines.md` markdown files.
2024-04-14 16:54:24 -07:00
Landon Curt Noll 311c97c8a6 fix links in built HTML files
Fixed the broken links for CC BY-SA 4.0 related icons.

Fixed broken Makefile and C code links in topnav bar
for entries.

Changed `bin/all-run.sh` VERSION from "1.3.2 2024-02-26"
to "1.3.3 2024-04-13"

Changed `bin/all-years.sh` VERSION from "1.0.2 2024-02-26"
to "1.0.3 2024-04-13"

Changed `bin/chk-entry.sh` VERSION from "1.1.5 2024-03-27"
to "1.1.6 2024-04-13"

Changed `bin/gen-authors.sh` VERSION from "1.3.2 2024-03-26"
to "1.3.3 2024-04-13"

Changed `bin/gen-location.sh` VERSION from "1.1.2 2024-03-26"
to "1.1.3 2024-04-13"

Changed `bin/gen-other-html.sh` VERSION from "1.0.3 2024-03-28"
to "1.0.4 2024-04-13"

Changed `bin/gen-sitemap.sh` VERSION from "1.3.5 2024-04-13"
to "1.3.6 2024-04-13"

Changed `bin/gen-status.sh` VERSION from "1.2 2024-03-30"
to "1.2.1 2024-04-13"

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

Changed `bin/gen-year-index.sh` VERSION from "1.0.5 2024-03-28"
to "1.0.6 2024-04-13"

Changed `bin/gen-years.sh` VERSION from "1.1 2024-03-30"
to "1.1.1 2024-04-13"

Changed `bin/manifest.entry.json.awk` VERSION from "1.1 2024-02-11"
to "1.1.1 2024-04-13"

Changed `bin/md2html.sh` VERSION from "1.2 2024-03-30"
to "1.2.1 2024-04-13"

Changed `bin/output-index-author.sh` VERSION from "1.6 2024-03-31"
to "1.6.1 2024-04-13"

Changed `bin/output-index-inventory.sh` VERSION from "1.2.4 2024-03-27"
to "1.2.5 2024-04-13"

Changed `bin/output-year-index.sh` VERSION from "1.2 2024-03-30"
to "1.2.1 2024-04-13"

Changed `bin/pandoc-wrapper.sh` VERSION from "1.6 2024-03-31"
to "1.6.1 2024-04-13"

Changed `bin/quick-readme2index.sh` VERSION from "1.1.3 2024-03-26"
to "1.1.4 2024-04-13"

Changed `bin/readme2index.sh` VERSION from "1.2.2 2024-02-26"
to "1.2.3 2024-04-13"

Changed `bin/sort.gitignore.sh` VERSION from "1.1.5 2024-04-04"
to "1.1.6 2024-04-13"

Changed `bin/status2html.sh` VERSION from "1.1.3 2024-04-12"
to "1.1.4 2024-04-13"

Changed `bin/subst.default.sh` VERSION from "1.2.2 2024-02-26"
to "1.2.3 2024-04-13"

Changed `bin/subst.entry-index.sh` VERSION from "1.3.2 2024-03-26"
to "1.3.3 2024-04-13"

Changed `bin/subst.year-index.sh` VERSION from "1.1.2 2024-03-26"
to "1.1.3 2024-04-13"

Changed `bin/tar-entry.sh` VERSION from "1.3.4 2024-03-27"
to "1.3.5 2024-04-13"

Changed `bin/tar-year.sh` VERSION from "1.2.1 2024-03-28"
to "1.2.3 2024-04-13"

Changed `bin/untar-entry.sh` VERSION from "1.0.1 2024-03-26"
to "1.0.2 2024-04-13"

Changed `bin/untar-year.sh` VERSION from "1.0 2024-03-28"
to "1.0.1 2024-04-13"

Run `make www sitewap` to test and perform the above.
2024-04-13 18:22:03 -07:00
Landon Curt Noll a2d8249e86 improve the footer of HTML files
We improve the `inc/footer.default.html` file to make
the _Copyright and CC BY-SA 4.0 License_ clear.

We add `license.md` and generate `license.html` (via `make
gen_top_html`) so that key features and terms of the _Copyright and
CC BY-SA 4.0 License_ are accessible.

Add CC BY-SA 4.0 license images into the `png/` directory.

FYI: We use the license to allow the open use of IOCCC entry code,
and at the same time, we help ensure that those working on the IOCCC
have proper Attribution including, of course, the IOCCC winners
themselves!  The _Copyright and CC BY-SA 4.0 License_ help ensure
that everyone may enjoy the IOCCC.

Added '#copyright' to all generated HTML pages so that the
_Copyright and CC BY-SA 4.0 License_ may be reached.

Changed `bin/gen-top-html.sh` VERSION from "1.2.2 2024-03-26"
to "1.2.3 2024-04-12".

Fix `bin/gen-sitemap.sh` to remove requirement of `ioccc.tar.bz2`.

Changed `bin/gen-sitemap.sh` VERSION from "1.3.4 2024-03-27"
to "1.3.5 2024-04-13".

Perform `make www sitemap` to perform the above.

We also give a _hint_ as to the next project.

TODO: Complete that next project we are _hinting_ at.

TODO: Review the work being done by a web designer to see
      how their work might be incorporated into the web site.
2024-04-13 17:01:37 -07:00
Landon Curt Noll b84c27ce02 set pandoc 8 character tab stops for HTML conversion
We add `--tab-stop=8` to all `pandoc(1)` executions in order to set
a better tab stop indentation, especially for tab intended code blocks.

Changed `bin/pandoc-wrapper.sh` VERSION "1.5.3 2024-03-26"
to "1.6 2024-03-31".

Fixed `1991/brnstnd/sorta.README.md` so that the sorta code
is code blocks.

Removed unneeded paragraph group in copyright in `inc/footer.default.html`.

Performed `make www` to perform the above and test under macOS.
2024-03-31 23:55:08 -07:00
Landon Curt Noll c603ffa79e fix HTML error in footer 2024-03-30 22:37:03 -07:00
Landon Curt Noll c457b16358 fix all HTML headers
Renamed `ioccc.ico` to `favicon.ico`.

Correctly added use of `favicon.ico` to all constructed HTML headers.
Fixed the smart quote in HTML elements problem.

Moved HTML "DO NOT EDIT" comments down below at the bottom of the
HTML phase 1 section.  According to to the Nu Html Checker, a charset
attribute on a meta element found after the first 1024 bytes.

Changed `bin/md2html.sh` VERSION from "1.1.3 2024-03-28"
to "1.2 2024-03-30".

Improved `bin/gen-status.sh` to adjust the "status_update" value
only when the "contest_status" is changed.

Performed a `make www` to perform and test the above under macOS.
2024-03-30 22:21:45 -07:00
Landon Curt Noll f68130250e Add ioccc.ico icon to all web pages 2024-03-30 14:37:46 -07:00
Landon Curt Noll 1979ea0280 improve years.html and fix links to year-level compressed tarballs
Fixed links to year level compressed tarballs.

Added an "Inventory" of year-level compressed tarballs to the
generated `years.html` web page.

In `bin/gen-years.sh` changed VERSION from "1.0.3 2024-03-26"
to "1.1 2024-03-30".

In `bin/output-year-index.sh` changed VERSION from "1.1.2 2024-03-26"
to "1.2 2024-03-30".

Added `inc/topnav.empty.html` for an empty narrow topnav bar.

Changed references from "topnav=." to "topnav=empty" in `inc/md2html.cfg`.

Removed top level `ioccc.tar.bz2` compressed tarball.  NOTE: Sorry
(tm Canada 🇨🇦) to remove the top level `ioccc.tar.bz2` file.  We
will look into [Git Large File Storage [Git-LFS](https://git-lfs.com/).
If Git-LFS works well and does not have undesirable side effects,
we will consider restoring `ioccc.tar.bz2`.

Removed top level Makefile rules for "untar_all_tarball" and
"form_all_tarball".  Removed `bin/tar-all.sh`.

Added `make gen_status` to `make quick_www` and `make www` in the
top level `Makefile`.

Ran `make www` to perform the above and test under macOS.
2024-03-30 14:03:29 -07:00
Landon Curt Noll cbc022d864 improve Copyright and CC
The inc/footer.default.html now has a common Copyright and CC BY-SA
4.0 License section for all generated HTML files.

All markdown files have a similar Copyright and CC
at the bottom in the form of an HTML comment.
2024-03-20 00:19:52 -07:00
Landon Curt Noll b0b212acb1 force use of pandoc version >= 3.1.12.2
The `bin/pandoc-wrapper.sh` tool will verify that the ssytem
has a recent enough version of `pandoc(1)`.

We explain why we insist on `pandoc(1)`. version >= 3.1.12.2
in comments where the $PANDOC_MIN_VERSION is set.

Added `--wrap=preserve` as a default argument to `pandoc(1)`.
While this change will impact every HTML file generated,
we believe this will improve the ability of someone to look
at the generated HTML and correlate with the original markdown.

Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17"
to "1.4.3 2024-03-18".

Performed `make www` to achieve all of the above and to generate
HTML using the new  `--wrap=preserve` `pandoc(1)` mode.
2024-03-18 01:26:39 -07:00
Landon Curt Noll ffb738af07 create new status.json model
Changed the model of `status.json` model.

Updated `status.json` IOCCC_status_version from  "0.2 2023-05-22"
to "1.0 2024-03-09".

Updated FAQ 2.6, improving how IOCCC entries announced.

Moved `bin/ioccc-status.sh` to `tmp/ioccc-status.sh`
now that we have a new status.json model for
which this tool no longer fits (sorry tm Canada 🇨🇦).

Added `status.md` markdown to explain the `status.json` model.

Added `status.html` to both display the contents of `status.json`
and render the contents of `status.md` as HTML.

Added `bin/status2html.sh` to convert `status.json`
into HTML for the `status.html` file.

Added `bin/gen-status.sh` to form `status.json`
and `status.html` files.

Added `make gen_status` to top level Makefile.

Performed `make www` to complete all of the above.
2024-03-10 10:05:08 -07:00
Landon Curt Noll 17f6da63b2 improve Do not modify HTML comments
Changed `bin/gen-year-index.sh` VERSION from "1.0.2 2024-03-08"
to "1.0.3 2024-03-09".

Changed `bin/md2html.sh` VERSION from "1.1 2024-03-08"
to "1.1.1 2024-03-09".
2024-03-09 09:29:56 -08:00
Landon Curt Noll 2b92c89be8 fix and improve links within the web site
Entry source is now prog.c for IOCCC years 2014 thru 2020,
or is now dirname.c IOCCC years 1984 thru 2013.

To achieve this state, we renamed the following:

renamed:    2004/hibachi/src/hibachi.c -> 2004/hibachi/hibachi.c
renamed:    2012/omoikane/nyaruko.alt.c -> 2012/omoikane/omoikane.alt.c
renamed:    2012/omoikane/nyaruko.alt2.c -> 2012/omoikane/omoikane.alt2.c
renamed:    2012/omoikane/nyaruko.c -> 2012/omoikane/omoikane.c
renamed:    2012/omoikane/nyaruko.orig.c -> 2012/omoikane/omoikane.orig.c

Modified `bin/subst.entry-index.sh` to add to entry `index.html` file,
links to the `Makefile` and the _C code_ to the top navigation bar.
Changed `bin/subst.entry-index.sh` VERSION from "1.2.2 2024-02-25"
to "1.3 2024-03-02".

Moved printing the Inventory link in the top navigation bar
from `bin/subst.entry-navbar.awk` to `bin/subst.entry-index.sh`.
Changed `bin/subst.entry-navbar.awk` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-03-02".

Moved printing the Inventory link in the top navigation bar
from `bin/subst.year-navbar.awk` to `bin/subst.year-index.sh`.
Changed `bin/subst.year-index.sh` VERSION from "1.0 2024-02-11"
to "1.1 2024-03-02".
Changed `bin/subst.year-navbar.awk` VERSION from "1.0 2024-02-11"
to "1.1 2024-03-02".

Added location names (both default and common) to `author.html`.
Changed `tmp/gen_author_json.sh` VERSION from "1.0 2023-06-06"
to "1.1 2024-03-04".

Added location names (both default and common) to `author.html`.
Changed `bin/gen-authors.sh` VERSION from "1.2 2024-03-09"
to "1.3 2024-03-04".

The manifest and the resulting `.entry.json` files have been changed
for `2004/hibachi` and `2012/omoikane`.

The Makefiles for  `2004/hibachi` and `2012/omoikane` copy the
source file into the "previously used location".  The `make clobber`
rule removes the copied source.  The `.gitignore` files have been
updated accordingly.

Improved how the concept of IOCCC terms _entry_, _author_ and _submission_ are
used in markdown files.

Links to markdown files (files ending in .md) within the repo were
changed to link to HTML files (files ending in .html).  Special cases
where `README.md` became `index.html` were modified accordingly.

Fixed URL for `bugs.html` in Makefile comments.

Fixed name of `bin/sgi.sh` referenced in comments in `.gitignore` files.

Links to locations within the repo are now relative.  For example a
link to `/contact.html` may become `../contact.html' or '../../contact.html`
depending on the directory level of the markdown file.

Nearly all links with absolute URLs under _https://www.ioccc.org_
or `https://ioccc-src.github.io/temp-test-ioccc_ have been changed to
relative paths within the repo.  Some exceptions to this (such as
referring to a GitHub repo) were preserved.

Fixed a number of inside `faq.md` and `bugs.md`.

Added HTML name tags (in the form of an _entry_id_) for each entry
referenced in `bugs.md`.  Fixed links from outside of `bugs.html`
into `bugs.html` accordingly.

Where FAQ entries are referenced, a named tag is used so that if a
FAQ is ever renumbered, links outside of `faq.html` will still work.

Changed the _inventory_order_ of a compressed tarball from _300_
to _100000_.  While this may have been done for the manifest,
this changed had not yet been propagated into the `.entry.json` files.

Links to web sites that were in the for <URL> are now [URL](URL).

Performed `name www` to process all of the above.

Improved format of `authors.html`.  Full names are now bold.
Location codes are now links back into `location.html` and
location names (both default and common) are now italics.
Added _author_handle_ each author.

Changed `bin/gen-authors.sh` VERSION from "1.1 2024-02-25"
to "1.2 2024-03-09".

Improved format of `location.html` as location codes are now bold,
author counts in a given location are now bold, and location names
(both default and common) are now italics.

Changed `bin/gen-location.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-03-04".

Added italic location name after location code in entry
`index.html` files.

Changed `bin/output-index-author.sh` VERSION from "1.4.1 2024-02-23"
to "1.5 2024-03-04".

Added _Location of authors_ to the sidebar as a link to `location.html`.

TODO: While nearly all of the above mentioned changes are likely correct,
      they likely introduced a few errors that need correcting.
2024-03-04 23:45:28 -08:00
Landon Curt Noll aa70cf88d0 build several top level HTML files
We build several top level HTML files whose content
comes from top level markdown files:

- CODE_OF_CONDUCT.html
- README.html
- bugs.html
- contact.html
- faq.html
- thanks-for-help.html

Added new `bin/gen-top-md2html.sh` to perform the above.

Added `make gen_top_md2html` rule to top level Makefile.
Added `make gen_top_md2html` to `make quick_www` and `make www`.

Improved top level jump links for `authors.html`.
Updated `bin/gen-authors.sh` to improve the top level jump links.
Changed `bin/gen-authors.sh` version from "1.0.1 2024-02-23"
to "1.1 2024-02-25".

Changed typo of "TITIE" into "TITLE".

Fixed `bin/subst.entry-index.sh` as per the above typo.
Changed `bin/subst.entry-index.sh` version from "1.2.1 2024-02-23"
to "1.2.2 2024-02-25".

Updated the `inc/md2html.cfg` config file to perform the above.

Performed `make quick_www` which updated `2000/natori/index.html`.
2024-02-25 00:15:52 -08:00
Landon Curt Noll 859226ae0b build compressed tarballs for all of the IOCCC
Folded `all/README.md` into top level `README.md`.
Removed `all/summary.txt`.
Moved from `all/all.tar.bz2` to `ioccc.tar.bz2`.
Removed the `all/` directory.

Added `bin/tar-all.sh` form a compressed tarball for an IOCCC year:

```sh
bin/tar-all.sh -v 1 -W
```

Improved `bin/gen-years.sh`.

Added `make form_all_tarball` to `make quick_www` and `make www` in the top level Makefile.

Performed `make www` given the above.  Some entry compressed tarballs
were updated due to recent updates.
2024-02-18 00:37:19 -08:00
Landon Curt Noll 86b8c91b0d change winner to author in HTML left sidebar
Also moved building of entry compressed tarballs
to last in the `make www` and `make quick_www`
top level Makefile rules.
2024-02-13 15:37:28 -08:00
Cody Boone Ferguson 205fa25ced Change references of many terms to new names
This is a HUGE commit and this task is not done. There are still some
changes that might need to be discussed and since so much is done here I
think it's better to let this go through and then make sure everything
is okay. When the remaining references are discussed they can also be
changed.

I did NOT include changes in the tmp/OLD_manifest directory.

Some of the changes in this commit (it might be exhaustive but it might
not be - not sure):

- In the Makefiles the WINNERS was renamed AUTHORS.
- References to winners.html were changed to authors.html.
- The FAQ named anchor 'fix_a_winner' was renamed 'fix_an_entry'.
- The JSON fields (or whatever they're called) 'winner_id' and
'winner_JSON_format_version' were changed so that 'winner' is 'entry'.
- In scripts for entries 'IOCCC winner' was changed to 'IOCCC entry'.
- 'winners_text' is now 'entries_text'. It might be better to be
'entry_text' as it's per entry but this was not noticed at first. Since
this is easy to fix I am holding off on this for the meantime.
- The script tmp/update-manifest.sh now has the commit log messages
changed to the correct terms as well.

The index.html files were updated as well with any of the above
changes.

There are some references that should NOT be updated. Two examples
caught (and maybe more have slipped through that will have to be changed
back): in 1984/anonymous/README.md the author wrote back to Landon after
being told about the famous tattoo and they used the words:

    .. my entry will be the first IOCCC winner ..

but since this comes from the author it should remain so.

The other one is that winners.html should still refer to winners.html as
it informs people that it's been moved to authors.html (it does redirect
too but even so if it was changed it would defeat the purpose of the
message).

With paths like authors.html I tried to copy paste so that hopefully
there are no typos. It is possible that I did not end up doing this with
all but these can be fixed when discovered.
2024-02-13 07:31:36 -08:00
Landon Curt Noll cc73503c10 add experimental rules to build web site
We add to the top level Makefile, some initial rules that
will facilitate the building of HTML content.

The `bin/md2html.sh` tool as been updated to output HTML comments
about the output during HTML phases 20, 21 and 22.

All entry `index.html` files were updated with some additional HTML
comments as a result of the above.  The top level `location.html`,
`years.html` and `authors.html` have had HTML comments added also
a result.

Sorry (tm Canada 🇨🇦) for the mass update of entry `index.html` files.
Hopefully the times when all of them (often) need to be updated
will soon draw to a close.
2024-02-12 15:11:56 -08:00
Landon Curt Noll b4d123eaa5 fix The N-th IOCCC in years.html 2024-02-11 22:31:06 -08:00
Landon Curt Noll 16cc268c2a change winner to entry
We change various uses of winner to entry, including
variable names and code comments.
2024-02-11 21:39:22 -08:00
Landon Curt Noll aedb017223 improve markdown to HTML tools, build location.html, authors.html, years.html
Renamed `.winner.json` to `.entry.json` as per recent decisions made for issue #2156.

JSON element _winner_JSON_format_version_ renamed to _entry_JSON_format_version_
in `.winner.json`.

Changed _entry_JSON_format_version_ from "1.0 2024-01-14" to "1.1 2024-02-11".

JSON element _winner_id_ renamed to _entry_id_ in `.entry.json`
JSON element _winner_text renamed to _entry_text_ in `.entry.json`
JSON element _winner_id_ renamed to _entry_id_ in `author/author_handle.json` files.

Changed _author_JSON_format_version_ from "1.0 2023-06-10" to "1.1 2024-02-11".

Renamed `tmp/gen_winner_json.sh` to `tmp/gen_entry_json.sh`.

Renamed `tmp/example.dot_winner.json` to `tmp/example.dot_entry.json`.

Renamed `tmp/winner_id.txt` to `tmp/entry_id.txt`.

Renamed `tmp/winner_dir.txt` to `tmp/entry_dir.txt`.

Moved outdated `tmp/awards_check.sh` into `tmp/OLD_manifest/awards_check.sh`.
Moved outdated `tmp/awards_check.sh` into `tmp/OLD_manifest/awards_check.sh`.
Moved outdated `tmp/src/winner_name` into `tmp/OLD_manifest/winner_name`.
Moved outdated `tmp/sql` into `tmp/OLD_manifest/sql`.
Moved outdated `tmp/template-footer.html` into `tmp/OLD_manifest/template-footer.html`.
Moved outdated `tmp/template-header.html` into `tmp/OLD_manifest/template-header.html`.
Moved outdated `tmp/template-top.html` into `tmp/OLD_manifest/template-top.html`.
Moved outdated `tmp/test.html` into `tmp/OLD_manifest/test.html`.
Moved outdated `tmp/fake.gen_index.sh` into `tmp/OLD_manifest/fake.gen_index.sh`.
Moved outdated `tmp/old-ioccc.css` into `tmp/OLD_manifest/old-ioccc.css`.

Removed winner_name from `tmp/src/Makefile`.

Updated `tmp/example.dot_entry.json` to reflect the above JSON changes.

Updated `tmp/manifest.numbers` to reflect the above JSON changes.

Updated `tmp/README.md` to reflect the above JSON changes.
Sorted `tmp/README.md` by existing `tmp` filenames.

Updated all `.entry.json` files to reflect the above JSON changes.

Updated all `author/author_handle.json` files to reflect the above JSON changes.

Added new tool `bin/gen-location.sh` to form the top level file `location.html`
from `author/author_handle.json` files!

Added new tool `bin/gen-years.sh` to form the top level file `years.html`
using `.top`, `.year` and `.entry.json' files!

Added new tool `bin/gen-authors.sh` to form a new top level file
`/authors.html` from `author/author_handle.json` and related
`.entry.json' files!

The old `winners.html` file now redirects to the new `authors.html` file.

Renamed `bin/gen-author.sh` to `bin/output-index-author.sh`.
Renamed `bin/subst.winner-index.sh` to `subst.entry-index.sh`.
Renamed `bin/subst.winner-index.awk` to `subst.entry-index.awk`.
Renamed `bin/manifest.entry.json.awk` to `bin/manifest.entry.json.awk`.
Renamed `bin/gen-inventory.sh` to `bin/output-index-inventory.sh`.
Renamed `bin/sort.gitignore` to `bin/sort.gitignore.sh`.
Renamed `bin/sgi` to `bin/sgi.sh`.

The core logic of converting markdown to HTML has been
generalized into a new `bin/md2html.sh` tool.

The `bin/readme2index.sh` tool now calls the
new `bin/md2html.sh` tool to form entry's `index.html` files.

The `bin/quick-readme2index.sh` tool now calls the new `bin/md2html.sh`
tool, unless the `index.html` is newer than both `.entry.json` and
`README.md`, to form entry `index.html` files.

Increased, slightly, the speed of the `bin/quick-readme2index.sh` tool
with the entry's `index.html` file does not need to be updated.

The `bin/quick-readme2index.sh` tool will touch the `index.html` file,
even if the `bin/md2html.sh` tool determines that the `index.html` file
did not change, so that the `index.html` file will not appear
out of date with respect to `.entry.json`.

Slightly improved the look and feel of `index.html` files for entries.

The logic of `bin/all-run.sh` has been improved.  The initial
processing, from first bash version check, thru the -N test, serves
as the model for the `bin/readme2index.sh` tool and the
`bin/quick-readme2index.sh` tool.  There tools now share
a common set of command line options.

Changed the format of `inc/md2html.cfg` so that for a given "_file_glob_"
match, options follow, one per line.  The "_file_glob_" is on a line
by itself.  The option lines that follow must be intended:

```
[12][0-9][0-9][0-9]/README.md
	-H
	topnav=year
	-o
	bin/subst.default.sh
	-o
	bin/subst.year.sh
```

Added "-D ./" to top level markdown files in `inc/md2html.cfg`.

The above intending is performed with 1 or more whitespace
characters, although we use a leading tab "convention"
out of deference to Makefile formats. :-)

Once a new "_file_glob_" is found, the set of any previous
option lines is said to have ended.

The general argument processing logic now makes used of shell arrays.

Added checks in the `bin/md2html.sh` tool to disallow a "_file_glob_"
of . (dot) as this is used internally to help the shell process the
new `inc/md2html.cfg` format.

Changed `bin/all-run.sh` VERSION from "1.1.2 2024-01-20"
to "1.3 2024-02-11".

Changed `bin/output-index-author.sh` VERSION from "1.3.1 2024-01-16"
to "1.4 2024-02-11".

Changed `bin/pandoc-wrapper.sh` VERSION from "1.3.2 2024-01-19"
to "1.4 2024-02-05".

Changed `bin/quick-readme2index.sh` VERSION from "1.0 2024-01-20"
to "1.1 2024-02-11".

Changed `bin/readme2index.sh` VERSION from "1.1.1 2024-01-20"
to "1.2 2024-02-11".

Changed `bin/subst.default.sh` VERSION from "1.1.1 2024-01-16"
to "1.2 2024-02-05".

Changed `bin/subst.entry-index.sh` VERSION from "1.1.1 2024-01-16
to "1.2 2024-02-11".

Changed `bin/output-index-inventory.sh` VERSION from "1.0.1 2024-01-16"
to "1.1 2024-02-11".

Changed `bin/manifest.entry.json.awk` from "1.0 2024-01-14"
to "1.1 2024-02-11".

Changed `bin/sort.gitignore.sh` from "1.0 2024-02-01"
to "1.1 2024-02-11".

Changed substitution symbol _%%DOCROOT_URL_SLASH%%_ to _%%DOCROOT_SLASH%%_
in various "inc/*.html" files.

Moved setting of symbol _%%DOCROOT_SLASH%%_ from `bin/subst.entry-index.sh`
to `bin/subst.default.sh`.

Changed the variable _$DOCROOT_URL_SLASH_ to _$DOCROOT_SLASH_, in
bin tools that use it, to be more descriptive.

Removed `-P pandoc_opts` from `bin/*.sh` command lines.
The PANDOC_WRAPPER_OPTSTR value is only used in `bin/pandoc-wrapper.sh`.

Removed `-B optstr` and `-A optstr` from the `bin/md2html.sh` command line.

Removed `[-O tool=optstr ..]` from the `bin/md2html.sh` command line.

Removed old use of `-U top_url` from command lines.
Add `-w site_url` as sort of a "replacement" for the old `-U top_url`.

Added a new `-U URL` to `bin/gen-author.sh`, `bin/output-index-inventory.sh`,
`bin/md2html.sh`, `bin/subst.default.sh`, and `bin/subst.entry-index.sh`
to allow for the Nu HTML check can use the encoded absolute URL of
the HTML page.

Added `-t tagline` to most command lines.

Added `-T md2html.sh` to most command lines.

Added `-D docroot/` to most command lines to set DOCROOT_SLASH.
The DOCROOT_SLASH value defaults to "../../" for most in tools,
suitable for HTML files under a `YYYY/dir` directory, except for
`bin/gen-location.sh` and `gen-entries-html.sh` (as this produces a
top level HTML file) and `bin/md2html.sh` (forms files at any level)
who use "./" instead.

In the case of `bin/output-index-inventory.sh`, `bin/quick-readme2index.sh`,
`bin/readme2index.sh`, and `bin/all-run.sh`

Helped make the use of exit code in bin tools a bit more consistent.

Fixed a number of typos in the bin tools.

Added comments for lower level tools such as
`manifest.entry.json.awk`, `bin/subst.default.sh`,
`bin/subst.entry-index.sh`, and bin/`manifest.entry.json.awk` to
indicate how they are usually invoked by other tools.

Changed the comments that a new `bin/md2html.sh` tool (that was the
`bin/readme2index.sh` tool) would add to a entry's `index.html` file.
No longer will it add the tool version number to the comment.  Thus,
a change in tool version will not force all entry `index.html`
files to be modified.  Now both the tool adds two comments, one
is the _tagline_ to indicate how the markdown content was generated,
and one for the new `bin/md2html.sh` tool.  For example:

```
<!-- The original markdown content was formed by the tool: bin/quick-readme2index.sh -->
<!-- The HTML was converted from markdown by the tool: bin/md2html.sh -->
```

Improve the debugging, especially in regards to changing important
exported shell variables, in `bin/md2html.sh`.  Other bin tools
have their exported shell variables improved somewhat as well.

The `bin/README.md` now describes the general _converting markdown
to HTML_ procedure including _getopt phases_ and _HTML phases_.
Content from `inc/md2html.cfg` and `bin/readme2index.sh` that related
to this topic has been centralized into the `bin/README.md` file.

Improved formatting of the `bin/README.md` file.  Updated it as needed
according to the above.

Sorted `2011/.year`, `2018/.year`, and `2019/.year` to be in dictionary order.
Adjusted ${WINNERS} in year Makefile to use dictionary order so
that `make genpath` will produce `.year` files in dictionary order.

FYI: We tested this massive set of changes as best as we could.
     Nevertheless we might have missing something in the JSON changes,
     `.entry.json` renames, manifest updates, code comments, etc.
2024-02-11 16:00:31 -08:00
Landon Curt Noll 112c178030 fix links in footer of top level HTML 2023-12-26 15:53:12 -08:00
Landon Curt Noll 40259c9976 attempt to improve HTML footer at top level 2023-12-26 15:48:12 -08:00
Landon Curt Noll 16df772c41 attempt to fix footer
We are about to leave, so if this fix does not work, we will
have to fix it later.
2023-12-26 14:55:56 -08:00
Landon Curt Noll c9a023ff09 note old Email, header formatting, improve copyright and license
For the top level and year level README.md, where email are found,
a note was added to the effect that email addresses found above are
for historical purposes only, and should not be used today.

Old references to asking for fixes, comments, when content was used,
and next contest links were replaced with a general reference to the FAQ.

Harmonized the Copyright and License and copyright dates.
Now using Creative Commons "CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0
International".

The above Creative Commons will become the standard for the IOCCC.
Replaced old `png/by-sa-3.0-88x31.png` with a new ` png/by-sa.88x31.png` icon.
Updated the top level HTML files to use the license.
2023-12-26 14:43:30 -08:00
Landon Curt Noll 0c6628d667 moved and improved thanks
Moved thanks-for-fixes.md -> thanks-for-help.md

References to thanks-for-help.md are referred to
as just the _thanks file_.

Updated links to reflect the above file change.

Links to winner files in bugs.md now start with /.

Updated the `/inc/sidenav.default.html` file
to use an improved sidenav menu that includes
a link to "How to enter the IOCCC".

Fixed reference to FAQ entry regarding 'gets()' in `bugs.md`.

Removed some trailing whitespace in `bugs.md`.
Removed some trailing whitespace in `faq.md`.

Fixed links into specific thanks file entries.

Added more info to FAQ 0.0 "How may I submit to the IOCCC?".

The temporary top level HTML files (contact.html, index.html,
judges.html, news.html, winners.html, years.html) have
a consistent set of links (w/o any bold links) that
match the revised `/inc/sidenav.default.html` sidenav menu.
These temporary top level HTML files are not yet being built
and so they do not yet use the `inc/*.html` system.

TODO: Turn contact.html, index.html, judges.html, news.html, winners.html,
and years.html into markdown files that markdown to HTML tools will generate.
2023-12-07 17:43:37 -08:00
Landon Curt Noll 78220627a0 move www-history.md into FAQ 1.2 2023-12-05 23:02:49 -08:00
Landon Curt Noll 7df40a150d move how-to-help.md into FAQ
Moved the contents of how-to-help.md into the FAQ as FAQ 5.2.

Renamed FAQ 5.0 _Why does an IOCCC winner fail to compile or or
fail run?_ to FAQ 3.13.

Added FAQ 5.0 for _How may I help the IOCCC?_.

Added FAQ 5.3 for _How may I report an IOCCC web site problem?_.

Added FAQ 5.4 for _How may I submit a fix to an IOCCC web site?_.
2023-11-29 18:53:56 -08:00
Landon Curt Noll 486d3614b8 move ioccc.css to tmp/old-ioccc.css
The previous version of `/ioccc.css`, now `tmp/old-ioccc.css` to make
room for the new IOCCC css being developed.
2023-11-24 19:32:59 -08:00
Cody Boone Ferguson 7edc8b5260 Fix links of how-to-bugfix.md to how-to-help.md
I neglected to do this when I renamed the file.
2023-10-26 09:02:13 -07:00
Cody Boone Ferguson 73fc551f70 sgit -e 's/Un\*x/Unix/g' -e 's/UN\*X/UNIX/g' .
This is not only to help with formatting - especially important in
markdown files -  but it's no longer really necessary to do it. One
might not feel the need to do it in non-markdown files but I did it
anyway to be consistent. Thus instead of showing Un*x/UN*X it shows
Unix/UNIX.

A question of whether or not it should all be the same case is another
thing entirely but if this is desired at some point it should be easy to
do anyway - with some care in case it's in formatted text.

A note about the glob: why '.' when there are C files and other file
types where it could be dangerous to modify? Because I did a git grep
first so I knew that it was safe.
2023-10-11 05:16:15 -07:00
Cody Boone Ferguson 2a236f5cac Remove last references to .hint files
This changes in years.html the 2011/zucker/hint.html to
2011/zucker/README.md (at the top of the file - to do with the IOCCC
logo) and also 1998/dorssel/dorssel.hint to 1998/dorssel/dorssel.md in
years.html (which should have been done in
ccbbacb31b but was left out by accident).
As well it fixes 2004/gavin in bugs.md to refer to (in the Makefile rule
that is included) README.md.

There are still files with 'hint' in the name however. I believe these
to be correct.
2023-07-07 03:23:31 -07:00
Landon Curt Noll ac41f07a83 move fix thanks a file, update top level html links, rename CONTRIBUTING.md
The fix thank you's have been moved from `README.md` to
`thanks-for-fixes.md`.

**WARNING**: Some mistakes may have been made in doing this.
We presume later changes by others will correct any issues.

The `CONTRIBUTING.md` was renamed `how-to-enter.md`.

A 3rd line of links was added to top level html such as
`contact.html`, `index.html`, `judges.html`, `winners.html`,
and `years.html`.

Improved blank line use in a number (but not all) `README.md` files.
2023-06-06 16:59:53 -07:00
Cody Boone Ferguson 5b186c26e4 Fix links in years.html (2020/ferguson1 related)
This is because I forgot to update the paths when I renamed some files
to be .md files.
2023-04-22 04:26:39 -07:00
Cody Boone Ferguson 005fd79916 Address references to *.hint with some exceptions
In years < 2001 (with the exception of ferguson2/) that still have
reference to *.hint files they have been changed to README.md with the
following exception: in 1998/dorssel there was a dorssel.hint2. This was
changed to dorssel.hint since the dorssel.hint was changed to README.md
a while back. The references to dorssel.hint2 were changed to without
the 2.

There was an out of date reference in faq.html file to a .hint file as
well that was updated to README.md; the dorssel2.hint in years.html was
changed to the new name.

With that the only files that have to be updated are those that are >=
2001. I still have to check for hint.* however.
2023-03-21 09:56:39 -07:00
Cody Boone Ferguson 750255aded Roll back ad04d21fda
As was discussed with Landon this was a mistake even if it helped with
consistency. There was even a brilliant pun that was destroyed with that
commit which I think is worth pointing out:

    cp README.md hill
    ./ant hill

in 1991/ant ... even if it's technically 'anthill'.

I hope that I got all links fixed in years.html and winners.html. As
well I tried to make sure I got all handles fixed in all/summary.txt.
Nevertheless these should be checked. For some handles they were never
updated (at least in the html files - though maybe summary.txt too, not
sure) in the first place so there was nothing to do.

Typo fixes like references to *.hint when it should be README.md. There
probably are others that need to be fixed but haven't been located yet.
2023-03-17 08:27:55 -07:00
Cody Boone Ferguson ad04d21fda Rename wrongly named author/winner handles
There were many files renamed in this commit and I hope I got all the
references to the old names changed to the new names. To explain this
commit there were some older entries that had the wrong directory name:
not the surname but something else.

Very possibly there are other directories that need to be renamed and I
am actually aware of one right now but since it's in 2005 (which is
close to being worked on) I am not changing that now but just noting it:
2005/anon should be changed to 2005/anonymous (unless there's a very
good reason I am unaware of). But like I said since 2005 will be worked
on soon I have not touched it.

The Makefiles, .gitignore, the all/summary.txt, years.html and
winners.html files as well as the directories and the files under the
renamed directories have all been updated.

This is a rather big update and it might be that there are conflicts. If
so I will fix them. I will have to update 2005/anon later on to try and
prevent this from happening but very possibly there will be conflicts
here. It's also possible I missed some changes in years.html and/or
winners.html and/or summary/all.txt but I think I got them all. These
should be verified later on.
2023-03-14 05:06:16 -07:00
Cody Boone Ferguson 7c90b435db Move 2014/vik bug notice from years to README.md
As the years.html file will be generated with a tool (yet to be written)
having the bug notice will (greatly)? complicate the generation. Thus
the bug notice (which I discovered when working on 2020/ferguson2) was
moved to 2014/vik/README.md.

But why? Because it is a good idea, I think, to note that although
mostly correct, there is a minor problem with it. I don't have a fix for
it but whether I ever look at that I do not know.

I also made a minor change in 2020/ferguson2/README.md: changed a full
stop to an exclamation mark as it seemed better.
2023-03-14 04:12:22 -07:00
Landon Curt Noll 16e4bb2abf sync years.html with the current fileset 2023-03-13 02:29:03 -07:00
Landon Curt Noll 00a1519de2 change years.html to default to showing the GitHub file contest
File types that are NOT displayable, such as zip and gzip files
are still downloaded.

File that that are displayable, such as html and png, are
directly imaged in the browser.
2023-03-12 23:50:51 -07:00
Cody Boone Ferguson 0ae55de0b8 Revisit 1990 entries
Although I previously got them to all compile they did not all work. Now
they do except that jaw does not work properly in macOS (I have noticed
something odd in linux too but it appears to work mostly if not
entirely).

Yusuke Endoh pointed out for 1990/theorem that atof() nowadays needs
include stdlib.h so this was added to the file. As well I added the
inclusion of string.h for strcmp(). I also fixed some segfaults in this
entry (even though the judges pointed out that for NULL pointer one
needs the four '0 0 0 0' it still segfaulted under those conditions) so
that everything should work now under both linux and macOS. There were
iirc two parts to this: one the NULL pointer is no longer dereferenced
but also the type being passed to strcmp() was a int * and not a char *.
This prevented 1990/theorem/sorter from working at all (segfault) and as
I recall it there was another segfault I encountered as well.

For 1990/jaw Yusuke Endoh provided a ruby implementation of btoa as it's
not always available in modern systems. Thank you Yusuke!

In 1990/jaw shark.sh had to be modified as well. This had to do with '.'
not being in the default PATH.

As well I had previously made a mistake about btoa versus atob as both
were referenced in 1990/jaw/README.md. I believe I have this correct
now.

Many if not all the README files were modified with various changes
including formatting (like turning them into markdown) and section
titles amongst other things.

I seem to recall I'm missing something here but I can't recall what I
recall :-) so this will have to suffice this time round (maybe it was
the btoa/atob issue that I just remembered and added above but I'm not
sure).
2023-03-11 10:07:14 -08:00
Landon Curt Noll 414913d156 removed dead link to 1989/tromp/tromp.orig.c 2023-03-08 03:44:24 -08:00
Landon Curt Noll a91ac11c65 moved 1989/tromp fix thank you from years.html to README.md 2023-03-08 03:35:41 -08:00
Landon Curt Noll 46235a4b3b Merge branch 'master' into 1989 2023-03-08 02:59:01 -08:00
Landon Curt Noll 31b3329fb5 update years.html to account for alt and removed orig code 2023-03-08 02:53:48 -08:00
Cody Boone Ferguson 9d63c37f49 Get 1989 entries to compile
There were some which cannot be compiled under clang. One entry we used
a patch from Yusuke Endoh to get the entry to compile; thank you Yusuke
for your assistance! Another one we used a patch from Yusuke (thank
you!) but I further fixed it so that it would work with clang. It had to
be done: IOCCC Tetris has to work! This was done by changing the
environment arg to main() to be a char * in main() itself rather than a
char **. Using a char ** in main() third arg got it to compile but only
one key worked with clang so I changed it to be not the third argument
but a regular char * in main(). **a (third arg) evaluated correctly but
*a[1] and onward was actually part of the environment. Again IOCCC
Tetris has to work!

I also fixed fubar to work which took a few tweaks.

README.md files were also updated.
2023-03-06 09:04:46 -08:00
Cody Boone Ferguson 04e936191c Point out bug in 2014/vik in years.html
This is to let the viewers know that sometimes the program will display
invalid input. The note is modelled after some of the other entries that
have bug reports. Okay it's also some shameless self promotion but never
mind that! :-)

As well a few minor changes in 2014/vik/README.md mostly being removing
double spaces in favour of single spaces (particularly in the general
text). There were some other formatting fixes as well.

In 2020/ferguson2/README.md I made a few adjustments as well (though I'm
aware of a few more changes in 2020/ferguson[12]/README.md I want to
make).
2023-03-05 05:29:04 -08:00
Cody Boone Ferguson 4a40a4c032 Update years.html for previous commit
With commit 2a40fe10a9 I meant to update
years.html to remove now unneeded information but I forgot by the time I
got to working on it.
2023-03-04 12:19:17 -08:00
Cody Boone Ferguson 017230874f Fix dead links in winning entries in years.html
Some of the links had to be manually updated (including by downloading
from the IOCCC website some missing files which I'm not even sure how
they were missing from the repo) and others were fixed via sgit. To
demonstrate its usage the following command removes from years.html the
patterns 'hint.html' and '\.hint' with tracing enabled and verbosity of
level 2. Notice how in this case the patterns are just deleted but one
could substitute it for something else or run other sed commands as
well. There was no need to specify sed options or the -I option (which
means don't use the -i option to sed). If this change needed to be done
in the entire repo 'years.html' could have been instead just '.' (if at
the root directory of the repo). One can specify more than one glob just
as one can specify more than one command (as of the bug fix in commit
05e83b60ff).

    $ bin/sgit -x -v 2 -e '/hint.html/d' -e '/\.hint/d' years.html
    + getopts :hVv:xIo:s:e: flag
    + case "$flag" in
    + VERBOSITY=2
    + getopts :hVv:xIo:s:e: flag
    + case "$flag" in
    + SED_COMMANDS+=(-e "$OPTARG")
    + getopts :hVv:xIo:s:e: flag
    + case "$flag" in
    + SED_COMMANDS+=(-e "$OPTARG")
    + getopts :hVv:xIo:s:e: flag
    + shift 7
    + [[ -z -e	/hint.html/d	-e	/\.hint/d ]]
    + [[ -z /opt/local/bin/sed ]]
    + [[ ! -f /opt/local/bin/sed ]]
    + [[ ! -x /opt/local/bin/sed ]]
    + [[ 2 -eq 0 ]]
    + git status
    + status=0
    + [[ 0 -ne 0 ]]
    + [[ 2 -gt 1 ]]
    + echo 'debug[2]: sed commands:  -e	/hint.html/d	-e	/\.hint/d'
    debug[2]: sed commands:  -e	/hint.html/d	-e	/\.hint/d
    + [[ 2 -gt 1 ]]
    + echo 'debug[2]: looping through all globs'
    debug[2]: looping through all globs
    + i=0
    + [[ 0 -le 2 ]]
    + [[ 2 -gt 1 ]]
    + echo 'debug[2]: found glob: README.md'
    debug[2]: found glob: README.md
    + [[ 2 -ge 1 ]]
    + [[ -z '' ]]
    + [[ -n '' ]]
    + echo 'debug[1]: about to run: git ls-files README.md | xargs /opt/local/bin/sed -i"" -e	/hint.html/d	-e	/\.hint/d'
    debug[1]: about to run: git ls-files README.md | xargs /opt/local/bin/sed -i"" -e	/hint.html/d	-e	/\.hint/d
    + [[ -z '' ]]
    + [[ -n '' ]]
    + git ls-files README.md
    + xargs /opt/local/bin/sed -i -e /hint.html/d -e '/\.hint/d'
    + (( i++ ))
    + shift 1
    + [[ 1 -le 1 ]]
    + [[ 2 -gt 1 ]]
    + echo 'debug[2]: found glob: years.html'
    debug[2]: found glob: years.html
    + [[ 2 -ge 1 ]]
    + [[ -z '' ]]
    + [[ -n '' ]]
    + echo 'debug[1]: about to run: git ls-files years.html | xargs /opt/local/bin/sed -i"" -e	/hint.html/d	-e	/\.hint/d'
    debug[1]: about to run: git ls-files years.html | xargs /opt/local/bin/sed -i"" -e	/hint.html/d	-e	/\.hint/d
    + [[ -z '' ]]
    + [[ -n '' ]]
    + git ls-files years.html
    + xargs /opt/local/bin/sed -i -e /hint.html/d -e '/\.hint/d'
    + (( i++ ))
    + shift 1
    + [[ 2 -le 0 ]]
2023-02-16 04:54:55 -08:00
Cody Boone Ferguson 0c2a0a471d Capitalise 'fibonacci' and 'turing'
There are some places where this was not done: in data files that refer
to binaries (examples being 2001/herrmann1/{README.md,herrmann1.c} and
those related to 1990/theorem for Turing and Fibonacci respectively). In
comments in code it was changed to be capitalised though this is
potentially problematic in that maybe it was intentional by the authors.
2023-02-15 09:33:55 -08:00