add missing author/index.html

We changed `author/README.md` to refer to FAQs instead
of trying to duplicate FAQ information.

Added `author/README.md` to `bin/md2html.cfg`.

Changed `bin/gen-top-html.sh` VERSION from "1.4.8 2024-08-05"
to "1.4.9 2024-08-11".

Performed `make gen_top_html` to accomplish the above and to test under macOS.
This commit is contained in:
Landon Curt Noll committed 2024-08-11 23:21:13 -07:00
1 parent a9fede7fc6
commit 783d39b24f
4 files changed
+535 -196

No files matched your search

+14 -195
View File
@@ -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:
``` <!---re-->
^[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:
``` <!---re-->
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:
``` <!---json-->
"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:
``` <!---json-->
"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:
``` <!---re-->
^[a-z][0-9a-z]*
```
And there must be the following JSON members:
``` <!---json-->
"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:
``` <!---json-->
"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. :-)
``` <!---json-->
{ "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:
``` <!---json-->
"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:
``` <!---json-->
{
"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:
``` <!---json-->
{
"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_.
<!--
+495
View File
@@ -0,0 +1,495 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- START: two lines up starts content from: inc/top.default.html -->
<!-- END: this line ends content from: inc/top.default.html -->
<!-- START: this line starts content from: inc/head.default.html -->
<head>
<link rel="stylesheet" href="../ioccc.css">
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap" rel="stylesheet">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>The International Obfuscated C Code Contest</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<meta name="description" content="Winning IOCCC Author Information">
<meta name="keywords" content="IOCCC, author_handle, author handle, winning author">
</head>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- END: this line ends content from: inc/head.default.html -->
<!-- -->
<!-- This web page was formed via the tool: bin/gen-top-html.sh -->
<!-- The content of main section of this web page came from: author/README.md -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! Do not modify this web page, instead modify the file: author/README.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: author/README.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: author/README.md !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
<!-- START: this line starts content from: inc/body.default.html -->
<body>
<!-- END: this line ends content from: inc/body.default.html -->
<!-- START: this line starts content from: inc/topbar.default.html -->
<div class="theader">
<nav class="topbar">
<div class="container">
<div class="logo">
<a href="../index.html" class="logo-link">
IOCCC
</a>
</div>
<div class="topbar-items">
<div class="item">
<span class="item-header">
Entries
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="../years.html" class="sub-item-link">
Winning Entries
</a>
</div>
<div class="outfit-font">
<a href="../authors.html" class="sub-item-link">
Winning Authors
</a>
</div>
<div class="outfit-font">
<a href="../location.html" class="sub-item-link">
Location of winning authors
</a>
</div>
<div class="outfit-font">
<a href="../bugs.html" class="sub-item-link">
Bugs and (mis)features
</a>
</div>
</div>
</div>
<div class="item">
<span class="item-header">
Status
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="../news.html" class="sub-item-link">
IOCCC News
</a>
</div>
<div class="outfit-font">
<a href="../status.html" class="sub-item-link">
Contest status
</a>
</div>
<div class="outfit-font">
<a href="../next/index.html" class="sub-item-link">
Rules and Guidelines
</a>
</div>
</div>
</div>
<div class="item">
<span class="item-header">
FAQ
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="../faq.html" class="sub-item-link">
FAQ
</a>
</div>
<div class="outfit-font">
<a href="../faq.html#submit" class="sub-item-link">
How to enter the IOCCC
</a>
</div>
<div class="outfit-font">
<a href="../faq.html#fix_an_entry" class="sub-item-link">
Fixing IOCCC entries
</a>
</div>
<div class="outfit-font">
<a href="../faq.html#fix_web_site" class="sub-item-link">
Fixing the website
</a>
</div>
<div class="outfit-font">
<a href="../faq.html#fix_author" class="sub-item-link">
Updating author info
</a>
</div>
</div>
</div>
<div class="item">
<span class="item-header">
About
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="../index.html" class="sub-item-link">
IOCCC Home
</a>
</div>
<div class="outfit-font">
<a href="../judges.html" class="sub-item-link">
The IOCCC Judges
</a>
</div>
<div class="outfit-font">
<a href="../contact.html" class="sub-item-link">
Contacting the IOCCC
</a>
</div>
<div class="outfit-font">
<a href="../SECURITY.html" class="sub-item-link">
IOCCC Security Policy
</a>
</div>
<div class="outfit-font">
<a href="../thanks-for-help.html" class="sub-item-link">
Thanks for the help
</a>
</div>
<div class="outfit-font">
<a href="../markdown.html" class="sub-item-link">
IOCCC markdown guidelines
</a>
</div>
</div>
</div>
</div>
</div>
</nav>
<div class="header-mobile-menu">
<noscript>
<a href="../nojs-menu.html" class="topbar-js-label">
Please Enable JavaScript
</a>
</noscript>
<button id="header-open-menu-button" class="topbar-mobile-menu">
<img
src="../png/hamburger-icon-open.png"
alt="hamburger style menu icon - open state"
width=48
height=48>
</button>
<button id="header-close-menu-button" class="hide-content">
<img
src="../png/hamburger-icon-closed.png"
alt="hamburger style menu icon - closed state"
width=48
height=48>
</button>
<div id="mobile-menu-panel" class="hide-content">
<div class="mobile-menu-container">
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Entries
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="../years.html">
Winning Entries
</a>
<a class="mobile-submenu-item" href="../authors.html">
Authors of winning IOCCC entries
</a>
<a class="mobile-submenu-item" href="../location.html">
Location of authors
</a>
<a class="mobile-submenu-item" href="../bugs.html">
Bugs and (mis)features
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Status
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="../status.html">
Contest status
</a>
<a class="mobile-submenu-item" href="../next/index.html">
Rules and Guidelines
</a>
<a class="mobile-submenu-item" href="../news.html">
IOCCC News
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
FAQ
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="../faq.html">
Frequently Asked Questions
</a>
<a class="mobile-submenu-item" href="../faq.html#submit">
How to enter the IOCCC
</a>
<a class="mobile-submenu-item" href="../faq.html#fix_an_entry">
Fixing IOCCC entries
</a>
<a class="mobile-submenu-item" href="../faq.html#fix_web_site">
Fixing the website
</a>
<a class="mobile-submenu-item" href="../faq.html#fix_author">
Fixing author info
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
About
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="../index.html">
IOCCC Home
</a>
<a class="mobile-submenu-item" href="../judges.html">
The IOCCC Judges
</a>
<a class="mobile-submenu-item" href="../contact.html">
Contacting the IOCCC
</a>
<a class="mobile-submenu-item" href="../thanks-for-help.html">
Thanks for the help
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
headerOpenMenuButton.addEventListener("click", () => {
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
headerOpenMenuButton.classList.add("hide-content");
headerCloseMenuButton.classList.remove("hide-content");
headerCloseMenuButton.classList.add("topbar-mobile-menu");
mobileMenuPanel.classList.remove("hide-content");
mobileMenuPanel.classList.add("topbar-mobile-panel");
});
headerCloseMenuButton.addEventListener("click", () => {
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
headerCloseMenuButton.classList.add("hide-content");
mobileMenuPanel.classList.add("hide-content");
mobileMenuPanel.classList.remove("topbar-mobile-panel");
headerOpenMenuButton.classList.add("topbar-mobile-menu");
headerOpenMenuButton.classList.remove("hide-content");
});
</script>
<!-- END: this line ends content from: inc/topbar.default.html -->
<!-- START: this line starts content from: inc/header.default.html -->
<div class="header">
<a href="../2011/zucker/index.html">
<img src="../png/ioccc.png"
alt="IOCCC image by Matt Zucker"
width=300
height=110>
</a>
<h1>The International Obfuscated C Code Contest</h1>
<h2>Winning author information directory</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
<!-- START: this line starts content from: inc/navbar.empty.html -->
<div class="navbar">
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2Fauthor%2Findex.html">&#x2713;</a>
</div>
<!-- END: this line ends content from: inc/navbar.empty.html -->
<!-- START: this line starts content from: inc/before-content.default.html -->
<div class="content" id="content">
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: author/README.md -->
<h1 id="author-handle-directory">author handle directory</h1>
<p>The <code>author/</code> 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:</p>
<pre><code> author/author_handle.json</code></pre>
<p>See the
FAQ on “<a href="../faq.html#author_handle_faq">author handle</a>”
and the
FAQ on “<a href="../faq.html#author_json">author_handle.json</a>”
for more information.</p>
<h2 id="note-to-authors">NOTE to authors</h2>
<p>If you wish to update / modify information about yourself, see the
FAQ on “<a href="../faq,html#fix_author">fixing author information</a>”
for information about how to update
and/or correct IOCCC author information.</p>
<p>See the
FAQ on “<a href="../faq,html#find_author_handle">finding author handles</a>”
for how to find an <em>author_handle</em>.</p>
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/
-->
<!-- AFTER: last line of markdown file: author/README.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html -->
</div>
<!-- END: this line ends content from: inc/after-content.default.html -->
<!-- START: this line starts content from: inc/footer.default.html -->
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/
-->
<div class="footer">
<div id="copyright"><h3>Copyright &copy; 1984-2024 by Landon Curt Noll:
<a href="https://creativecommons.org/faq/#what-does-some-rights-reserved-mean"
target="_blank"
rel="license noopener noreferrer">Some Rights Reserved</a></h3>
<p>
This work is <b>licensed by Landon Curt Noll</b> under
<b><a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1"
target="_blank"
rel="license noopener noreferrer"
style="display:inline-block;">CC BY-SA 4.0</a></b>.
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
src="../png/cc.png"
alt="cc inside circle symbol">
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
src="../png/by.png"
alt="person inside circle symbol">
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
src="../png/sa.png"
alt="arrow looping back on itself inside circle symbol"><br>
You should <b>carefully review</b> the
<b><a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en"
target="_blank"
rel="license noopener noreferrer">CC BY-SA 4.0 LEGAL CODE</a></b>
before using the licensed material.<br>
You may wish to review the
<b><a href="../license.html"
target="_blank"
rel="license noopener noreferrer">highlights of some of the key features and terms</a></b>
of <b>CC BY-SA 4.0</b>.<br>
</p>
</div>
<div id="coda"><h3>Coda</h3>
<p>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2Fauthor%2Findex.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="#top">Jump to top</a> <a href="#content">Jump to Content</a>
</p>
</div>
</div>
<!-- END: this line ends content from: inc/footer.default.html -->
<!-- START: this line starts content from: inc/bottom.default.html -->
</body>
</html>
<!-- END: this line ends content from: inc/bottom.default.html -->
+10 -1
View File
@@ -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"
+16
View File
@@ -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