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.
The script now does more (another feature of the program).
The FAQ now has a name of 'sox' for FAQ 3.10 which the script refers to
and the README.md file now refers it too (instead of 3.10).
Fix make clobber: rm *.wav.
Update .gitignore.
In preparation for converting markdown files to HTML, added
`contact.md` with improved "see the FAQs" / "use pull request" /
"open GitHub action" suggestions instead of sending Email.
Fixed a few typos in `faq.md`. Added / fixed links into most section 5 FAQs.
The question for FAQ 5.6 was improved to be more compact
while addressing both broken and wrong web links.
Removed any direct reference to drugs in an effort to
avoid problems from those who are humor impaired,
as well as "bots" to might flag the site as connected to drugs.
Moved the reference to the tool used by Cory to find
broken links to the thanks page.
... and what one should do, of course. This includes an example of an
invalid link (albeit an extreme one :-) ) that I fixed quite some time
back (months ago) just to give an idea. But it's more useful to check
for dead links in the IOCCC website itself (linking to pages/files in
the website that is). Of course I'll be doing that once the README.md
files are in order but there's a high chance I won't be able to find
them all esp as after the website is done I have more to do.
We make how "how to install" package XYZZY more consistent
for those FAQ in terms of the order the OS/methods
as well as mentioning all of the current methods:
* Red Hat based Linux
* macOS
* mavOS via Homwbrew
* mavOS via macports
* Debian based Linux
* Other Linux distributions
* package website
The sound based FAQ was modified in a similar way
so that should specific Linux distribution instructions
need to be added, those could be added under the
appropriate section.
Use only "dnf install" for RHEL and mention the possibility of that
older RHEL distributions might have to use "yum" instead of "dnf"
Changed linux to Linux.
Suggest in FAQ 3.1 that they look at other FAQ entries (in section 3).
Added missing empty lines before markdown headers.
Three different image utility packages have been described for macOS
(MacPorts and Homebrew) and Red Hat Linux. I don't have any other linux
so I can't explain how to do those with certainty (except for copy/paste
somewhere which might or might not be correct).
The FAQ has been updated to say how to compile and install tcpserver
(for systems that don't have a package in their package manager) as this
entry requires it. The FAQ does not mention this entry.
The README.md file has been format/typo checked.
Add .path files to each winner directory: a file containing
the path to the winner directory from the top directory.
Changed YYYY/.year files to contain the paths, from the top
directory, if the winning directories for the given year.
Changed `/.top` to contain the IOCCC years.
Added `make genpath` rule to the top Makefile and the
year Makefiles to generate the above.
Added FAQ 6.8 to `faq.md` to explain the above.
Updated manifest to reflect recent changes to the list of files.
Adjusted links and references to old archive files
to use the `archive/historic/` tree.
TODO: Build compressed tarballs for winning entries,
individual years, and the entire winning set under `archive/ioccc/`.
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.
Added:
- [5.5 - How may I correct or update IOCCC author information?](#faq5_5)
- [6.5 - What is an author handle?](#faq6_5)
- [6.6 - What is a author_handle.json file and how are they used?](#faq6_6)
- [6.7 - What is a winner_id?](#faq6_7)
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?_.
Since some entries require intr/EOF etc. I have added to the FAQ how to
find it. This was inspired by the 2005/sykes as to end the program one
has to send intr. For those with grep -o it's possible to show just the
output; other ways exist but those ways are more complicated and I've
not gone there.
Refer to thanks file, not the README.md file of the entry when fixing
entries.
Refer to how-to-help.md, not how-to-bugfix.md as I renamed it a while
back as the file doesn't really say how to fix bugs (how could it?) but
rather how to help.
It is not yet clear to me if some of the information in the two files
should be swapped. I think it probably should be done as the point in
the thanks file was to be a quick note but it ended up being long and
with details better left to the FAQ. But this can be done another time
after the remaining entries are reviewed or sometime in between.