Given how problematic leading tabs in markdown files can be,
we have expanded all leading tabs in markdown files by:
```sh
find * -type f -name '*.md' -print |
while read -r file; do
rm -f "$file.tmp" ;
expand < "$file" > "$file.tmp" ;
mv -f -v "$file.tmp" "$file" ;
done
```
Given the previous changes to `bin/pandoc-wrapper.sh` and other recent
commits and recent pull requests, the were were **NO** changes to
any HTML files. This is a **good thing** as the expression goes.
No there are no leading tabs in any markdown files.
A check to catch any re-introduction of leading tabs
into any markdown file is on the way.
BTW: We do not have anything against leading tabs in files,
even though we have had to deal with their impact on forming
HTML from markdown files (as well as the calc source code).
It is just that this is one of those cases where tabs conflict
(sometimes caused by people wanting to change the classic
8-space tab model) with a desired outcome.
Perform `make www` to perform the above and test under macOS.
author directory
The author/ directory contains a JSON file for each author of at
least one winning IOCCC entry. For each author, there is a JSON
file with the following name format:
author/author_handle.json
where author_handle is defined below.
author_handle
Each author of a winning IOCCC entry has an assigned author_handle,
an IOCCC unique string that matches this regex:
^[0-9a-z][0-9a-z_]*$
The author_handle, by default, is derived from the name of the author.
While there is a algorithm that maps the name of the author
(which can contain any UTF-8 characters) into a default
author_handle string, those who submit an entry to the IOCCC
are free to choose a different author_handle string.
An author who has won a previous IOCCC is encouraged to reuse their
author_handle so that new winning entries will be associated with the same
author or authors.
anonymous author_handle's
For an anonymous author, their handle is one of these forms:
Anonymous_year
or:
Anonymous_year.digits
The latter form is in case there are more than one anonymous author in a given year.
Anonymous author_handle's match this regexp:
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
author_handle.json JSON syntax
The author_handle.json must have the following JSON members:
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "0.1 2023-05-22",
There must be the following JSON members:
"full_name" : "Your Full Name",
"sort_word" : "lowercaselast",
"location_code" : "XX",
"location_name" : "Formal location name",
"full_name"value is the author's formal full name."sort_word"value is the author's last name, mapped into lower case ASCII, as a JSON encoded string"location_code"value is a 2 UPPER CASE ISO 3166 code selected by the author"location_name"value is the formal name corresponding to the"location_code", in JSON encoded string form
A "sort_word" that is used to determine the position within the authors.html file,
an author and the entry they submitted are to be listed.
A sort_word matches this regexp:
^[a-z][0-9a-z]*
And there must be the following JSON members:
"email" : "user0@example.com",
"url" : "https://a.host0.example.com/index.html",
"alt_url" : "https://b.host0.example.com/index.html",
"deprecated_twitter_handle" : "@something",
"mastodon" : "@mastodon0@example.com",
"mastodon_url" : "https://example.org/@mastodon0",
"github" : "@github0",
"affiliation" : "an affiliation group",
"email"value is the author's email address as a JSON encoded string, ornullif not given"url"value is the author's home page URL as a JSON encoded string, ornullif not given"alt_url"value is the author's alternate or second URL as a JSON encoded string, ornullif not given"deprecated_twitter_handle"value is the author's twitter handle as a JSON encoded string, starting with "@", ornullif not given"mastodon"value is the author's Mastodon handle in "@user@server" form as a JSON encoded string, ornullif not given"mastodon_url"value is the URL as a JSON encoded string of the author's Mastodon page, ornullif not given"github"value is the author's GitHub username as a JSON encoded string, starting with "@", ornullif not given"affiliation"is the author's affiliation as a JSON encoded string, ornullif not given
If an author does not have one of the previous set of values, or wishes to not disclose it / keep it anonymous,
then the JSON value can be null. For example:
"email" : null,
"url" : null,
"alt_url" : null,
"deprecated_twitter_handle" : null,
"mastodon" : null,
"mastodon_url" : null,
"github" : null,
"affiliation" : null,
NOTE: The JSON value of null is NOT enclosed in double quotes.
The "winning_entry_set" is an array of JSON members that indicate
each of the IOCCC winning entries that the author is the author of. :-)
{ "entry_id" : "YYYY_dirname" }
The "YYYY_dirname" is a entry ID in JSON encoded string form.
Here "YYYY" is the IOCCC year, and "dirname" is the directory name
of the winning entry under the given year directory.
NOTE: Due to mis-features in the JSON spec, the final JSON member must NOT be followed by a comma. For example:
"winning_entry_set" : [
{ "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" }
]
author_handle.json example
Here is a fictitious author_handle.json example:
{
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "1.0 2023-06-10",
"author_handle" : "first0_last0",
"full_name" : "First Middle Last",
"sort_word" : "lowercaselast",
"location_code" : "AU",
"location_name" : "Australia",
"email" : "user0@example.com",
"url" : "https://a.host0.example.com/index.html",
"alt_url" : "https://b.host0.example.com/index.html",
"deprecated_twitter_handle" : "@something",
"mastodon" : "@mastodon0@example.com",
"mastodon_url" : "https://example.org/@mastodon0",
"github" : "@github0",
"affiliation" : "an affiliation group",
"winning_entry_set" : [
{ "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" }
]
}
Here is fictitious author_handle.json example where all entries that may be withheld are null:
{
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "1.0 2023-06-10",
"author_handle" : "first0_last0",
"full_name" : "First Middle Last",
"sort_word" : "lowercaselast",
"location_code" : "AU",
"location_name" : "Australia",
"email" : null,
"url" : null,
"alt_url" : null,
"deprecated_twitter_handle" : null,
"mastodon" : null,
"mastodon_url" : null,
"github" : null,
"affiliation" : null,
"winning_entry_set" : [
{ "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" }
]
}
NOTE to authors
If you wish to update / modify information about yourself, you need to
modify your author_handle.json file via a GitHub pull
request.