diff --git a/author/README.md b/author/README.md index 7397be72e..db90e9a61 100644 --- a/author/README.md +++ b/author/README.md @@ -1,4 +1,4 @@ -# author directory +# author handle 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 @@ -8,204 +8,23 @@ file with the following name format: author/author_handle.json ``` -where `author_handle` is defined below. +See the +FAQ on "[author handle](../faq.html#author_handle_faq)" +and the +FAQ on "[author_handle.json](../faq.html#author_json)" +for more information. -## 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](https://github.com/ioccc-src/winner/pulls). +If you wish to update / modify information about yourself, see the +FAQ on "[fixing author information](../faq,html#fix_author)" +for information about how to update +and/or correct IOCCC author information. + +See the +FAQ on "[finding author handles](../faq,html#find_author_handle)" +for how to find an _author_handle_. + + + + + + + + + +The International Obfuscated C Code Contest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + +
+ +
+ + + + + + +
+ + IOCCC image by Matt Zucker + +

The International Obfuscated C Code Contest

+

Winning author information directory

+
+ + + + + + + + + +
+ + + + + +

author handle 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
+

See the +FAQ on “author handle” +and the +FAQ on “author_handle.json” +for more information.

+

NOTE to authors

+

If you wish to update / modify information about yourself, see the +FAQ on “fixing author information” +for information about how to update +and/or correct IOCCC author information.

+

See the +FAQ on “finding author handles” +for how to find an author_handle.

+ + + + + + +
+ + + + + + + + + + + + + + + diff --git a/bin/gen-top-html.sh b/bin/gen-top-html.sh index cc53f044b..7c5da8026 100755 --- a/bin/gen-top-html.sh +++ b/bin/gen-top-html.sh @@ -93,7 +93,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.4.8 2024-08-05" +export VERSION="1.4.9 2024-08-11" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -122,6 +122,7 @@ unset TOP_MD_SET declare -ag TOP_MD_SET TOP_MD_SET+=("CODE_OF_CONDUCT") TOP_MD_SET+=("README") +TOP_MD_SET+=("author/README") TOP_MD_SET+=("archive/historic/README") TOP_MD_SET+=("bin/README") TOP_MD_SET+=("bugs") @@ -511,6 +512,10 @@ if (( ${#TOP_MD_SELECT_SET[@]} )); then if [[ $name == next/README ]]; then HTML_FILE="next/index.html" fi + # author/README is a special case + if [[ $name == author/README ]]; then + HTML_FILE="author/index.html" + fi # archive/historic/README is a special case if [[ $name == archive/historic/README ]]; then HTML_FILE="archive/historic/index.html" @@ -586,6 +591,10 @@ else if [[ $name == next/README ]]; then HTML_FILE="next/index.html" fi + # author/README is a special case + if [[ $name == author/README ]]; then + HTML_FILE="author/index.html" + fi # archive/historic/README is a special case if [[ $name == archive/historic/README ]]; then HTML_FILE="archive/historic/index.html" diff --git a/bin/md2html.cfg b/bin/md2html.cfg index e585972d0..d733005bb 100644 --- a/bin/md2html.cfg +++ b/bin/md2html.cfg @@ -115,6 +115,22 @@ archive/historic/README.md -D ../../ +author/README.md + -H + navbar=empty + -o + bin/subst.default.sh + -s + TITLE=The International Obfuscated C Code Contest + -s + DESCRIPTION=Winning IOCCC Author Information + -s + KEYWORDS=IOCCC, author_handle, author handle, winning author + -s + HEADER_2=Winning author information directory + -D + ../ + authors.md -H navbar=empty