Files
ioccc/author
Landon Curt Noll 4ee4c731f7 convert markdown copyright TAB chars into SPACE chars
While not strictly necessary, replacing the two ASCII tab characters
in the markdown copyright comment makes it easier to detect problematic
TAB indentation within markdown files.

After this commit, only 90 markdown files have leading ASCII TAB
characters.  And again, while not strictly necessary, we can consider
running expand on those 90 markdown files to see what effect that
might have on the HTML files they produce.

Replace leading ASCII TAB characters with multiples of 8 ASCII SPACE
characters (the default action of the `expand(1)` tool) might have
an negative effect on some HTML formatting where **hack-a-round**
formatting was attempted to fix broken indentation caused by
problematic ASCII TAB characters.

Think of this as a baseline for evaluating leading
TAB characters within markdown files.

TODO: Consider either using `expand(1)` to replace leading ASCII
TAB characters with multiples of 8 ASCII SPACE characters AND/OR
modifying the appropriate `bin` tool to convert leading ASCII TAB
characters into multiples of 8 ASCII SPACE characters.
2024-06-22 22:15:25 -07:00
..
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00
2024-06-18 11:44:08 -07:00

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, or null if not given
  • "url" value is the author's home page URL as a JSON encoded string, or null if not given
  • "alt_url" value is the author's alternate or second URL as a JSON encoded string, or null if not given
  • "deprecated_twitter_handle" value is the author's twitter handle as a JSON encoded string, starting with "@", or null if not given
  • "mastodon" value is the author's Mastodon handle in "@user@server" form as a JSON encoded string, or null if not given
  • "mastodon_url" value is the URL as a JSON encoded string of the author's Mastodon page, or null if not given
  • "github" value is the author's GitHub username as a JSON encoded string, starting with "@", or null if not given
  • "affiliation" is the author's affiliation as a JSON encoded string, or null if 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.