The guidelines had many fixes and where necessary updates (about new
tools for instance) plus some fun for people to discover.
The FAQ was slightly updated as well for the guidelines.
Part of the edit to the Makefile was in error - a yank paste error on my
part that I fixed in a commit that came after but the restoration of the
change put the problem back in.
There were numerous things that had to be fixed and there will likely
have to be some discussion as well.
Some formatting fixes and additional links were also added.
This commit involves some updates to the FAQ and while I was at it I
fixed some references of 'entry'/'entries' to 'submission'/'submissions'
(those that should not be 'entry' or 'entries').
Clarified and simplified the request to not use ASCII tabs within
markdown file content.
Added _guidelines_ to `next/guidelines.md` about not using ASCII
tab characters in markdown files while stating that is just fine
to use ASCII tabs in non-markdown files and C code.
The `make tab_check` rule now simply checks for ASCII tabs within
markdown files, except `markdown.md` where they are required to
serve as examples of what not to do.
Perform `make quick_www` to perform the above and test under macOS.
Perform `make www` to perform the above and test under macOS.
Given that there are no longer any ASCII tab characters within
leading whitespace in markdown files, commit XXX added a `make
tab_check` rule to the top level `Makefile`. Moreover both `make
quick_www` and `make www` perform a `make tab_check` after running
`make clobber`.
Perform `make quick_www` to perform the above and test under macOS.
Perform `make www` to perform the above and test under macOS.
The '{', '}' and other chars that are referred to are now in code blocks
(surrounded by single quotes) to help make them stand out better. The
single quotes are there as depending on the person's perception (or if
they're tired or ...) the colour difference might not be enough (in fact
it's barely enough for me at this point and others are more colour blind
than I am). The block quote colour is being experimented with still,
too, so that is another reason to have the 's.
Added make gen_next rule to Makefile which builds next/index.html from
next/README.md, next/rules.html from next/rules.md and
next/guidelines.html from next/guidelines.md. The make help rule was
updated for this.
This commit changes inc/md2html.cfg also and it is done to make the
header (under the line 'The International Obfuscated C Code Contest')
match the header in the bugs.md file, in case. Updating bugs.md is not
necessary. A keyword was also added to the html file, mis-features,
along with the already existing misfeatures.
Fixed errors in `1991/davidguy/Makefile`, `2000/bmeyer/Makefile`
and `2012/kang/Makefile` where a multi-line `CSILENCE` make variable
was not properly continued onto the next line.
Improve the output of `make quick_www` and `make www` no be less
verbose and more informative. Doing this allowed us to uncover
some bugs in the above mentioned entry Makefiles.
The `make quick_www` and `make www` no longer perform a
`make gen_status`.
The `make gen_top_html` rule, via `bin/gen-top-html.sh` will form
`status.html` based solely on the contents of `status.md`. Only
the `make gen_status` rule will modify `status.md` if needed, and
then rebuild `status.html` if needed.
The `status.html` file was updated to reflect the common way that
`make gen_top_html` forms this file. The `make timestamp` performs
a `make gen_top_html` after running `make gen_status` so that the
resulting `status.html` file matches what `make quick_www` and
`make www` would produce.
Changed `bin/gen-top-html.sh` VERSION from "1.4.5 2024-05-19"
to "1.4.6 2024-05-24" to perform the above.
Improved the text written by `make help`.
Added "for $TOOL" to the debug output of `bin/all-run.sh` to
help identify the tool performing the action.
Changed `bin/all-run.sh` VERSION from "1.3.3 2024-04-13"
to "1.3.4 2024-05-24" to perform the above.
Moved `make gen_other_html` after `make entry_index` and after the
`make quick_entry_index` in `make quick_www` and `make www`.
Perform `make quick_www` to perform the above and test under macOS.
Perform `make www` to perform the above and test under macOS.
It is now possible to specify select files to generate like the comment
at the top suggested (but was not actually allowed). This is useful
rarely but there is a case for it and that has been updated and it runs
a fair bit quicker now.
It is an error if no files specified are in the allowed set (the
variable TOP_MD_SET). If at least one file specified is in TOP_MD_SET it
will process that or those files but it will skip any that are not. This
is to prevent trying to process other markdown files like README.md
files without the proper script.
Added `bin/find-missing-links.sh` tool to check for
markdown links to missing local files.
Regarding the missing link tool:
```
Here be extended regular expression magic dragons! :-)
```
Added `make find_missing_links` to the top level Makefile.
Added `make find_missing_links` to `make www` and `make quick_www`.
Ran `make www` to perform the above.
TODO: Fix markdown links to missing local files.
To prevent the sitemap file being modified every time someone rebuilds website we have removed it from the www and quick_www rules in the top level Makefile.
Added "2024-04-20" news update.
Fixed format for "2023-05-22" news.
Fixed bad links to `judges.html`.
Add "Jump to: top" near the bottom.
The `make gen_top_html` no longer builds `next/rules.html`
nor `next/guidelines.html`. This is being done by
the `bin/gen-status.sh` tool and `make gen_status`.
Moved `make gen_top_html` after `make gen_status` in the top level
Makefile rules for `make www` and `make quick_www` because
`bin/gen-status.sh` uses the modification date of `news.html` (that
make gen_top_html might modify) when forming `status.json`.
Added FAQ 6.12 for "What is Mastodon and why does IOCCC use it?".
Simplified `contact.html` mastodon info to refer the above FAQ
for further mastodon information.
Changed `bin/gen-top-html.sh` VERSION from "1.4.2 2024-04-21"
to "1.4.3 2024-04-21".
The `bin/gen-status.sh` tool will build `next/rules.html` and/or
`next/guidelines.html` if they are missing or empty.
Changed `bin/gen-status.sh` VERSION from "1.3 2024-04-14"
to "1.4 2024-04-21".
Run `make gen_top_html gen_status` to perform the above.
For each YYYY header it is a link to the respective index.html page.
For each entry the index.html file for the entry is in the section name
of the entry (it used to not be a link there but rather in another line
with the source code on the same line). The source code is in a
subsection (that is the index.html is '#' and source code is '##') below
the index.html link.
(The rest of the years might happen later today or it might not happen
until another day due to a timing conflict here.)
The make help rule now has a summary of each rule so that one need not
check the Makefile every time. Of course for more details they still
have to but it's helpful for those who know what they need to do but
still might not remember all the rule names (as there are quite a few).
Typo fixes include things like incorrect statements (in comments) of
what a rule does, some being yank paste errors.
In a few cases, the error message related to a file or directory
test was corrected.
Changed `bin/gen-sitemap.sh` VERSION from "1.3.6 2024-04-13"
to "1.3.7 2024-04-14".
Changed `bin/gen-year-index.sh` VERSION from "1.0.6 2024-04-13"
to "1.0.7 2024-04-14".
Changed `bin/untar-year.sh` VERSION from "1.0.1 2024-04-13"
to "1.0.2 2024-04-14".
Updated `bin/gen-status.sh` to change the header of `next/guidelines.md`
and `next/rules.md` to match the _contest_status_ in `status.json`.
Moved `make gen_top_html` after `make gen_status` in `make www`
and in `make quick_www` rules in the top Makefile.
Changed `bin/gen-status.sh` VERSION from "1.2.1 2024-04-13"
to "1.3 2024-04-14".
Fixed the DESCRIPTION for `next/guidelines.html`.
Run `make www` to perform the above and test under macOS.
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="<!---sh-->"><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.
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.
Typo fixes and change 'download entry source' to 'download entry' as
it's the tarball, not the source itself.
Rebuilt .entry.json and index.html files for all entries.
It turns out that `sed -i ''` is not portable. **sigh** Replaced use of
`sed -i ''` with other portable commands in `bin/tar-year.sh`.
Changed `bin/tar-entry.sh` VERSION from "1.3.4 2024-03-27"
to "1.3.5 2024-03-28".
Changed `bin/tar-year.sh` VERSION from "1.2 2024-03-27"
to "1.2.1 2024-03-28".
Changed `bin/gen-year-index.sh` VERSION from "1.0.4 2024-03-26"
to "1.0.5 2024-03-28".
Changed `bin/sort.gitignore.sh` VERSION from "1.1.3 2024-03-26"
to "1.1.4 2024-03-28".
Added new `bin/untar-year.sh` bin tool.
Tested `make untar_year_tarball` under Linux.
Added `make sort_gitignore` to sort entry `.gitignore` files.
The `make quick_www` and `make www` actions perform `make sort_gitignore`.
Added notes to `bin/README.md` (and thus to `bin/index.html` with
recommendations of top level Makefile actions that use selected bin
tools over all entries or years).
Tested `make www form_entry_tarball form_year_tarball untar_entry_tarball
untar_year_tarball` under Linux.
TODO: Retest `make www form_entry_tarball form_year_tarball
untar_entry_tarball untar_year_tarball` under macOS.
We rewrote the `bin/tar-entry.sh` algorithm so that we do NOT have
to require Linux to produce a compressed tarball that is byte-for-byte
identical to a macOS compressed tarball for the same entry.
Changed `bin/tar-entry.sh` VERSION from "1.2 2024-03-22"
to "1.3 2024-03-25".
Added `bin/untar-entry.sh` to untar an entry from the
compressed tarball.
Added `make untar_entry_tarball` to untar all entry files.
Added `make untar_year_tarball` and `make untar_all_tarball`
stub Makefile rules. The core it referred to does not yet exist.
Updated IOCCC manifest. Updated `.entry.json` for `2004/sds`.
Performed `make www` to update web pages. In most cases the
entry `index.html` added an inventory link for the new `.tar.tstamp` file.
Performed `form_entry_tarball` to complete the test of the above.
TODO: Test the results under Linux.
TODO: Update `bin/tar-year.sh`. Update year level compressed tarballs.
TODO: Update `bin/tar-all.sh`. Update top level compressed tarball.
TODO: Write `bin/untar-year.sh` and `bin/untar-all.sh`.
The `make quick_www` and `make www` rules no longer
run `make gen_status` and `make gen_sitemap`.
Now neither `make quick_www` nor `make www` will
perform actions that depend on modification dates.
Added `make update` to perform all rules needed
to update the web site including `make www`,
`make tar`, `make gen_status` and `make gen_sitemap`.
Also the thanks file had some fixes in them including a consistency
problem: a place that refers to markdown had been updated to refer to
index.html when it should have remained README.md.
In several cases where the `faq.md` had **XXX**'s, we replaced the
text with equivalent text for someone to read (such as the **IOCCC
registration procedure** or **IOCCC submit server** is not ready).
In a number of cases, an HTML comment with a **XXX** inside,
was added as an indicator for the need of a future edit.
Added `make sitemap` as an alias for `make gen_sitemap`.
Performed `make gen_top_html sitemap` to do perform the above.
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.
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.