From 3106998954cb888ac45d1317d682fec5fff4b0b5 Mon Sep 17 00:00:00 2001
From: Landon Curt Noll
Date: Sat, 5 Jul 2025 21:24:13 -0700
Subject: [PATCH] allow for year level archive of rules and guidelines
Adjusted `bin/md2html.cfg` to allow for the creation of year level
archive of the rules and guidelines that were in effect when the given
year's content opened for submissions.
We improved `bin/gen-year-index.sh` so that if there exists
a `YYYY/rules.md` rules archive, then `YYYY/rules.html`
will be created.
We improved `bin/gen-year-index.sh` so that if there exists
a `YYYY/guidelines.md` rules archive, then `YYYY/guidelines.html`
will be created.
Changed `bin/gen-year-index.sh` VERSION from "2.0.0 2025-03-13"
to "2.1.0 2025-07-05".
Adjusted `next/rules.md` and `next/guidelines.md` so that when they are
copied as archived copies of rules and guidelines under a YYYY directory,
the internal links do not break. There are **NO** changes to the readable
contents of the rules and guidelines, only some changes to a few internal links.
Updated `1992/buzzard.2/index.html, `1993/rince/index.html`, and
`2012/omoikane/index.html that were modified by recent commits.
Rebuild sitemap due to the changes above.
Ran `make www` to test and perform the above.
---
1992/buzzard.2/index.html | 18 ++--
1993/rince/index.html | 8 +-
2012/omoikane/index.html | 2 +-
Makefile | 13 ++-
bin/gen-year-index.sh | 198 ++++++++++++++++++++++++++++++++------
bin/md2html.cfg | 36 +++++++
next/guidelines.html | 8 +-
next/guidelines.md | 8 +-
next/rules.html | 18 ++--
next/rules.md | 18 ++--
sitemap.xml | 26 ++---
template/README.md.year | 68 +++++++++----
12 files changed, 319 insertions(+), 102 deletions(-)
diff --git a/1992/buzzard.2/index.html b/1992/buzzard.2/index.html
index bfafd5d2a..f4a710dc7 100644
--- a/1992/buzzard.2/index.html
+++ b/1992/buzzard.2/index.html
@@ -643,17 +643,17 @@ and thus indirectly inspiring me to write this program.
diff --git a/2012/omoikane/index.html b/2012/omoikane/index.html
index a4bf99c3c..c9282562e 100644
--- a/2012/omoikane/index.html
+++ b/2012/omoikane/index.html
@@ -598,12 +598,12 @@ JavaScript.
Primary files
Secondary files
diff --git a/Makefile b/Makefile
index 0ae2c24b7..6fbb23d5e 100644
--- a/Makefile
+++ b/Makefile
@@ -421,15 +421,22 @@ genpath:
# generate YYYY level .filelist
#
+# This rule assumes that a YYYY/README.md will produce a YYYY/index.html file.
+# This rule assumes that if there is a YYYY/rules.md then YYYY/rules.html will be created.
+# This rule assumes that if there is a YYYY/guidelines.md then YYYY/guidelines.html will be created.
+# These html files may be later created or updated by the quick_year_index or gen_year_index rules.
+#
# IMPORTANT: .filelist assumes that make clobber was previously done.
#
genfilelist:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in ${YEARS}; do \
${RM} -f "$$i/.genfilelist.tmp"; \
- ${FIND} "$$i" -mindepth 1 -maxdepth 1 -type f ! -path "$$i/.genfilelist.tmp" \
- ! -name .DS_Store ! -name '*.swp' | \
- ${SORT} -f -d -u > "$$i/.genfilelist.tmp"; \
+ (${FIND} "$$i" -mindepth 1 -maxdepth 1 -type f -name '*.md' | \
+ ${SED} -e 's/\.md$$/.html/' -e 's/\/README\.html/\/index.html/'; \
+ ${FIND} "$$i" -mindepth 1 -maxdepth 1 -type f ! -path "$$i/.genfilelist.tmp" \
+ ! -name .DS_Store ! -name '*.swp') | \
+ LANG=C ${SORT} -f -d -u > "$$i/.genfilelist.tmp"; \
if ${CMP} -s "$$i/.genfilelist.tmp" "$$i/.filelist"; then \
${RM} -f "$$i/.genfilelist.tmp"; \
else \
diff --git a/bin/gen-year-index.sh b/bin/gen-year-index.sh
index dc7ba55b9..7011e33bf 100755
--- a/bin/gen-year-index.sh
+++ b/bin/gen-year-index.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# gen-year-index.sh - create year level index.html
+# gen-year-index.sh - create year level index.html, rules.html, guidelines.html
#
# Create an index.html file for a given IOCCC year.
#
@@ -106,7 +106,7 @@ export LC_ALL="C"
# set variables referenced in the usage message
#
-export VERSION="2.0.0 2025-03-13"
+export VERSION="2.1.0 2025-07-05"
NAME=$(basename "$0")
export NAME
export V_FLAG=0
@@ -430,6 +430,30 @@ TOOL_OPTION+=("-t")
TOOL_OPTION+=("$TAGLINE")
+# Determine if and what we need to update.
+#
+export UPDATE_INDEX=""
+export UPDATE_RULES=""
+export UPDATE_GUIDELINES=""
+export NEEDS_UPDATE=""
+if [[ -s $YYYY/rules.md ]]; then
+ if [[ ! -s $YYYY/rules.html || $YYYY/rules.md -nt $YYYY/rules.html ]]; then
+ NEEDS_UPDATE="true"
+ UPDATE_RULES="true"
+ fi
+fi
+if [[ -s $YYYY/guidelines.md ]]; then
+ if [[ ! -s $YYYY/guidelines.html || $YYYY/guidelines.md -nt $YYYY/guidelines.html ]]; then
+ NEEDS_UPDATE="true"
+ UPDATE_GUIDELINES="true"
+ fi
+fi
+if [[ ! -s $YYYY/index.html || $YYYY/README.md -nt $YYYY/index.html ]]; then
+ NEEDS_UPDATE="true"
+ UPDATE_INDEX="true"
+fi
+
+
# parameter debugging
#
if [[ $V_FLAG -ge 3 ]]; then
@@ -471,6 +495,10 @@ if [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: MD2HTML_SH=$MD2HTML_SH" 1>&2
echo "$0: debug[3]: DOT_YEAR=$DOT_YEAR" 1>&2
echo "$0: debug[3]: README_FILE=$README_FILE" 1>&2
+ echo "$0: debug[3]: UPDATE_INDEX=$UPDATE_INDEX" 1>&2
+ echo "$0: debug[3]: UPDATE_RULES=$UPDATE_RULES" 1>&2
+ echo "$0: debug[3]: UPDATE_GUIDELINES=$UPDATE_GUIDELINES" 1>&2
+ echo "$0: debug[3]: NEEDS_UPDATE=$NEEDS_UPDATE" 1>&2
fi
@@ -486,49 +514,165 @@ fi
# case: -Q (quick mode)
#
-# Do nothing if authors.html is newer than all author/author_handle.json files.
+# Do nothing if we do not need to update anything.
#
if [[ -n $QUICK_MODE ]]; then
- if [[ $YYYY/index.html -nt $YYYY/README.md ]]; then
+ if [[ -z $NEEDS_UPDATE ]]; then
exit 0
fi
fi
-# form the YYYY index.html unless -n
+# form the YYYY index.html from YYYY/README.md unless -n
#
if [[ -z $NOOP ]]; then
# possibly update YYYY index.html
#
- if [[ $V_FLAG -ge 1 ]]; then
- echo "$0: debug[1]: about to run: $MD2HTML_SH -U $SITE_URL/$YYYY/index.html ${TOOL_OPTION[*]}" \
- "-m $YYYY/README.md -- $YYYY/README.md $YYYY/index.html" 1>&2
- fi
- "$MD2HTML_SH" -U "$SITE_URL/$YYYY/index.html" "${TOOL_OPTION[@]}" \
- -m "$YYYY/README.md" -- "$YYYY/README.md" "$YYYY/index.html"
- status="$?"
- if [[ $status -ne 0 ]]; then
- echo "$0: ERROR: tool: $MD2HTML_SH -U $SITE_URL/$YYYY/index.html ${TOOL_OPTION[*]}" \
- "-m $YYYY/README.md -- $YYYY/README.md $YYYY/index.html failed, error: $status" 1>&2
- exit 1
- fi
+ if [[ -n $UPDATE_INDEX ]]; then
- # case -Q: (quick mode)
+ # update YYYY index.html
+ #
+ if [[ $V_FLAG -ge 1 ]]; then
+ echo "$0: debug[1]: about to run: $MD2HTML_SH -U $SITE_URL/$YYYY/index.html ${TOOL_OPTION[*]}" \
+ "-m $YYYY/README.md -- $YYYY/README.md $YYYY/index.html" 1>&2
+ fi
+ "$MD2HTML_SH" -U "$SITE_URL/$YYYY/index.html" "${TOOL_OPTION[@]}" \
+ -m "$YYYY/README.md" -- "$YYYY/README.md" "$YYYY/index.html"
+ status="$?"
+ if [[ $status -ne 0 ]]; then
+ echo "$0: ERROR: tool: $MD2HTML_SH -U $SITE_URL/$YYYY/index.html ${TOOL_OPTION[*]}" \
+ "-m $YYYY/README.md -- $YYYY/README.md $YYYY/index.html failed, error: $status" 1>&2
+ exit 1
+ fi
+
+ # case -Q: (quick mode)
+ #
+ # If we are here, then the early quick mode test indicated that the prerequisite files are newer.
+ # We will force the authors.html file to be touched so that a later run with -Q will quickly exit.
+ # We do this because by default, the md2html.sh tool does not modify the target HTML unless it was modified.
+ #
+ if [[ -n $QUICK_MODE ]]; then
+ touch "$YYYY/index.html"
+ fi
+
+ # case: YYYY index.html does not need to be updated
#
- # If we are here, then the early quick mode test indicated that the prerequisite files are newer.
- # We will force the authors.html file to be touched so that a later run with -Q will quickly exit.
- # We do this because by default, the md2html.sh tool does not modify the target HTML unless it was modified.
- #
- if [[ -n $QUICK_MODE ]]; then
- touch "$YYYY/index.html"
+ elif [[ $V_FLAG -ge 3 ]]; then
+ echo "$0: debug[3]: does not need to be updated: $YYYY/README.html" 1>&2
fi
# report disabled by -n
#
-elif [[ $V_FLAG -ge 5 ]]; then
- echo "$0: debug[5]: because of -n, did not run: $MD2HTML_SH ${TOOL_OPTION[*]} -m $YYYY/README.md --" \
- "$YYYY/README.md $YYYY/index.html" 1>&2
+elif [[ $V_FLAG -ge 3 ]]; then
+ if [[ -n $UPDATE_INDEX ]]; then
+ echo "$0: debug[3]: because of -n, did not run: $MD2HTML_SH ${TOOL_OPTION[*]} -m $YYYY/README.md --" \
+ "$YYYY/README.md $YYYY/index.html" 1>&2
+ else
+ echo "$0: debug[3]: no need to be update: $YYYY/README.html" 1>&2
+ fi
+fi
+
+
+# form the YYYY rules.html from YYYY/rules.md, if it exists, unless -n
+#
+if [[ -z $NOOP ]]; then
+
+ # possibly update YYYY rules.html
+ #
+ if [[ -n $UPDATE_RULES ]]; then
+
+ # update YYYY rules.html
+ #
+ if [[ $V_FLAG -ge 1 ]]; then
+ echo "$0: debug[1]: about to run: $MD2HTML_SH -U $SITE_URL/$YYYY/rules.html ${TOOL_OPTION[*]}" \
+ "-m $YYYY/rules.md -- $YYYY/rules.md $YYYY/rules.html" 1>&2
+ fi
+ "$MD2HTML_SH" -U "$SITE_URL/$YYYY/rules.html" "${TOOL_OPTION[@]}" \
+ -m "$YYYY/rules.md" -- "$YYYY/rules.md" "$YYYY/rules.html"
+ status="$?"
+ if [[ $status -ne 0 ]]; then
+ echo "$0: ERROR: tool: $MD2HTML_SH -U $SITE_URL/$YYYY/rules.html ${TOOL_OPTION[*]}" \
+ "-m $YYYY/rules.md -- $YYYY/rules.md $YYYY/rules.html failed, error: $status" 1>&2
+ exit 1
+ fi
+
+ # case -Q: (quick mode)
+ #
+ # If we are here, then the early quick mode test indicated that the prerequisite files are newer.
+ # We will force the authors.html file to be touched so that a later run with -Q will quickly exit.
+ # We do this because by default, the md2html.sh tool does not modify the target HTML unless it was modified.
+ #
+ if [[ -n $QUICK_MODE ]]; then
+ touch "$YYYY/rules.html"
+ fi
+
+ # case: YYYY index.html does not need to be updated
+ #
+ elif [[ $V_FLAG -ge 3 ]]; then
+ echo "$0: debug[3]: no need to be update: $YYYY/rules.html" 1>&2
+ fi
+
+# report disabled by -n
+#
+elif [[ $V_FLAG -ge 3 ]]; then
+ if [[ -n $UPDATE_RULES ]]; then
+ echo "$0: debug[3]: because of -n, did not run: $MD2HTML_SH ${TOOL_OPTION[*]} -m $YYYY/rules.md --" \
+ "$YYYY/rules.md $YYYY/rules.html" 1>&2
+ else
+ echo "$0: debug[3]: does not need to be updated: $YYYY/rules.html" 1>&2
+ fi
+fi
+
+
+# form the YYYY guidelines.html from YYYY/guidelines.md, if it exists, unless -n
+#
+if [[ -z $NOOP ]]; then
+
+ # possibly update YYYY guidelines.html
+ #
+ if [[ -n $UPDATE_GUIDELINES ]]; then
+
+ # update YYYY guidelines.html
+ #
+ if [[ $V_FLAG -ge 1 ]]; then
+ echo "$0: debug[1]: about to run: $MD2HTML_SH -U $SITE_URL/$YYYY/guidelines.html ${TOOL_OPTION[*]}" \
+ "-m $YYYY/guidelines.md -- $YYYY/guidelines.md $YYYY/guidelines.html" 1>&2
+ fi
+ "$MD2HTML_SH" -U "$SITE_URL/$YYYY/guidelines.html" "${TOOL_OPTION[@]}" \
+ -m "$YYYY/guidelines.md" -- "$YYYY/guidelines.md" "$YYYY/guidelines.html"
+ status="$?"
+ if [[ $status -ne 0 ]]; then
+ echo "$0: ERROR: tool: $MD2HTML_SH -U $SITE_URL/$YYYY/guidelines.html ${TOOL_OPTION[*]}" \
+ "-m $YYYY/guidelines.md -- $YYYY/guidelines.md $YYYY/guidelines.html failed, error: $status" 1>&2
+ exit 1
+ fi
+
+ # case -Q: (quick mode)
+ #
+ # If we are here, then the early quick mode test indicated that the prerequisite files are newer.
+ # We will force the authors.html file to be touched so that a later run with -Q will quickly exit.
+ # We do this because by default, the md2html.sh tool does not modify the target HTML unless it was modified.
+ #
+ if [[ -n $QUICK_MODE ]]; then
+ touch "$YYYY/guidelines.html"
+ fi
+
+ # case: YYYY index.html does not need to be updated
+ #
+ elif [[ $V_FLAG -ge 3 ]]; then
+ echo "$0: debug[3]: does not need to be updated: $YYYY/guidelines.html" 1>&2
+ fi
+
+# report disabled by -n
+#
+elif [[ $V_FLAG -ge 3 ]]; then
+ if [[ -n $UPDATE_GUIDELINES ]]; then
+ echo "$0: debug[3]: because of -n, did not run: $MD2HTML_SH ${TOOL_OPTION[*]} -m $YYYY/guidelines.md --" \
+ "$YYYY/guidelines.md $YYYY/guidelines.html" 1>&2
+ else
+ echo "$0: debug[3]: no need to be update: $YYYY/guidelines.html" 1>&2
+ fi
fi
diff --git a/bin/md2html.cfg b/bin/md2html.cfg
index 74b281fc4..6d6f948ac 100644
--- a/bin/md2html.cfg
+++ b/bin/md2html.cfg
@@ -565,6 +565,42 @@ years.md
-D
../
+# Year level rules
+
+[12][0-9][0-9][0-9]/rules.md
+ -H
+ navbar=empty
+ -o
+ bin/subst.default.sh
+ -s
+ TITLE=The International Obfuscated C Code Contest
+ -s
+ DESCRIPTION=Archive of IOCCC Rules
+ -s
+ KEYWORDS=IOCCC, rules, Rules
+ -s
+ HEADER_2=Archive of IOCCC Rules
+ -D
+ ../
+
+# Year level guidelines
+
+[12][0-9][0-9][0-9]/guidelines.md
+ -H
+ navbar=empty
+ -o
+ bin/subst.default.sh
+ -s
+ TITLE=The International Obfuscated C Code Contest
+ -s
+ DESCRIPTION=Archive of IOCCC Guidelines
+ -s
+ KEYWORDS=IOCCC, guidelines, Guidelines
+ -s
+ HEADER_2=Archive of IOCCC Guidelines
+ -D
+ ../
+
# Unless matched above, default process all entry README.md files
[12][0-9][0-9][0-9]/*/README.md
diff --git a/next/guidelines.html b/next/guidelines.html
index 58e1bb6d7..8d6719b51 100644
--- a/next/guidelines.html
+++ b/next/guidelines.html
@@ -588,9 +588,9 @@ FAQ on “obtaining and compiling the most re
and the
FAQ on “how to enter the IOCCC”
as that FAQ has important details on
-how to register
+how to register
as well as
-how to upload your submission to the IOCCC.
+how to upload your submission to the IOCCC.
See also the
@@ -2496,9 +2496,9 @@ FAQs on “obtaining, compiling, installing a
and the
FAQ on “how to enter the IOCCC”
as that FAQ has important details on
-how to register
+how to register
as well as
-how to upload your submission for the IOCCC.
+how to upload your submission for the IOCCC.
Jump to: top
diff --git a/next/guidelines.md b/next/guidelines.md
index 1ad29c925..9fa58b9e2 100644
--- a/next/guidelines.md
+++ b/next/guidelines.md
@@ -212,9 +212,9 @@ FAQ on "[obtaining and compiling the most recent mkiocccentry tools](../faq.html
and the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)"
as that FAQ has important details on
-[how to register](register.html)
+[how to register](../next/register.html)
as well as
-[how to upload your submission](submit.html) to the IOCCC.
+[how to upload your submission](../next/submit.html) to the IOCCC.
@@ -2577,9 +2577,9 @@ FAQs on "[obtaining, compiling, installing and using the mkiocccentry tools](../
and the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)"
as that FAQ has important details on
-[how to register](register.html)
+[how to register](../next/register.html)
as well as
-[how to upload your submission](submit.html) for the IOCCC.
+[how to upload your submission](../next/submit.html) for the IOCCC.
diff --git a/next/rules.html b/next/rules.html
index 456c27a58..f47764383 100644
--- a/next/rules.html
+++ b/next/rules.html
@@ -517,9 +517,9 @@ FAQ on “obtaining and compiling the mkioccc
and the
FAQ on “how to enter the IOCCC”
as that FAQ has important details on
-how to register
+how to register
as well as
-how to upload your submission to the IOCCC.
+how to upload your submission to the IOCCC.
Jump to: top
@@ -647,8 +647,8 @@ See also
Rule 17.
Rule 3
-You must register in order to submit your entry to the IOCCC.
-You may register while the contest is either
+You must register in order to submit your entry to the IOCCC.
+You may register while the contest is either
pending or open.
@@ -658,14 +658,14 @@ will email you your submit server
perhaps as much as a few days, for your registration to be processed and for that email to be sent.
-Those who register while the contest status is pending
+Those who register while the contest status is pending
will receive their email (containing their submit server Username
and Initial password), later: usually a few days around the time when the contest status
becomes open.
Once that email with your Username and Initial password is sent, you
-will have fortnight (14 days) to change your submit server initial password.
+will have fortnight (14 days) to change your submit server initial password.
If you do not change your Initial password in time, you will have to
@@ -803,7 +803,7 @@ Submissions may only be uploaded to the IOCCC
while the contest is open.
-If you have registered and received by email your submit
+If you have registered and received by email your submit
server Username and Initial password you may
upload your submission to the submit server but
ONLY while the contest is open.
@@ -1266,9 +1266,9 @@ FAQ on “obtaining, compiling, installing an
and the
FAQ on “how to enter the IOCCC”
as that FAQ has important details on
-how to register
+how to register
as well as
-how to upload your submission for the IOCCC.
+how to upload your submission for the IOCCC.
Jump to: top
Leonid A. Broukhis
diff --git a/next/rules.md b/next/rules.md
index 09c0d12d3..748805cc1 100644
--- a/next/rules.md
+++ b/next/rules.md
@@ -132,9 +132,9 @@ FAQ on "[obtaining and compiling the mkiocccentry tools](../faq.html#mkiocccentr
and the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)"
as that FAQ has important details on
-[how to register](register.html)
+[how to register](../next/register.html)
as well as
-[how to upload your submission](submit.html) to the IOCCC.
+[how to upload your submission](../next/submit.html) to the IOCCC.
@@ -312,8 +312,8 @@ Jump to: [top](#)
-You must [register](register.html) in order to submit your entry to the IOCCC.
-You may [register](register.html) while the contest is either
+You must [register](../next/register.html) in order to submit your entry to the IOCCC.
+You may [register](../next/register.html) while the contest is either
**[pending](../faq.html#pending)** or **[open](../faq.html#open)**.
@@ -325,7 +325,7 @@ perhaps as much as a few days, for your registration to be processed and for tha
-Those who [register](register.html) while the contest status is **[pending](../faq.html#pending)**
+Those who [register](../next/register.html) while the contest status is **[pending](../faq.html#pending)**
will receive their email (containing their [submit server](https://submit.ioccc.org) **Username**
and **Initial password**), later: usually a few days around the time when the contest status
becomes **[open](../faq.html#open)**.
@@ -333,7 +333,7 @@ becomes **[open](../faq.html#open)**.
Once that email with your **Username** and **Initial password** is sent, you
-will have fortnight (**14 days**) to [change your submit server initial password](pw-change.html).
+will have fortnight (**14 days**) to [change your submit server initial password](../next/pw-change.html).
@@ -514,7 +514,7 @@ while the contest is **[open](../faq.html#open)**.
-If you have [registered](register.html) and received by email your [submit
+If you have [registered](../next/register.html) and received by email your [submit
server](https://submit.ioccc.org) **Username** and **Initial password** you may
upload your submission to the [submit server](https://submit.ioccc.org) but
**ONLY** while the contest is **[open](../faq.html#open)**.
@@ -1141,9 +1141,9 @@ FAQ on "[obtaining, compiling, installing and using the mkiocccentry tools](../f
and the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)"
as that FAQ has important details on
-[how to register](register.html)
+[how to register](../next/register.html)
as well as
-[how to upload your submission](submit.html) for the IOCCC.
+[how to upload your submission](../next/submit.html) for the IOCCC.
diff --git a/sitemap.xml b/sitemap.xml
index 189824130..950d734b7 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2346,7 +2346,7 @@
https://www.ioccc.org/1992/buzzard.2/index.html
- 2025-07-02T22:55:11+00:00
+ 2025-07-06T04:09:17+00:00
https://www.ioccc.org/1992/buzzard.2/Makefile
@@ -2966,7 +2966,7 @@
https://www.ioccc.org/1993/rince/index.html
- 2025-07-02T22:55:11+00:00
+ 2025-07-06T04:10:06+00:00
https://www.ioccc.org/1993/rince/Makefile
@@ -9142,7 +9142,7 @@
https://www.ioccc.org/2012/omoikane/index.html
- 2025-07-02T22:55:11+00:00
+ 2025-07-06T04:17:26+00:00
https://www.ioccc.org/2012/omoikane/Makefile
@@ -15086,7 +15086,7 @@
https://www.ioccc.org/authors.html
- 2025-05-18T11:28:49+00:00
+ 2025-07-06T03:41:26+00:00
https://www.ioccc.org/author/Sjoerd_Mullender.json
@@ -15278,7 +15278,7 @@
https://www.ioccc.org/bin/gen-year-index.sh
- 2025-04-16T20:59:19+00:00
+ 2025-07-06T03:33:13+00:00
https://www.ioccc.org/bin/gen-years.sh
@@ -15318,7 +15318,7 @@
https://www.ioccc.org/bin/md2html.cfg
- 2025-04-16T20:59:19+00:00
+ 2025-07-06T03:32:49+00:00
https://www.ioccc.org/bin/md2html.sh
@@ -15486,11 +15486,11 @@
https://www.ioccc.org/location.html
- 2025-05-18T11:30:03+00:00
+ 2025-07-06T03:43:19+00:00
https://www.ioccc.org/Makefile
- 2025-06-17T02:18:34+00:00
+ 2025-07-06T04:08:33+00:00
https://www.ioccc.org/markdown.html
@@ -15510,11 +15510,11 @@
https://www.ioccc.org/next/guidelines.html
- 2025-06-05T06:45:56+00:00
+ 2025-07-06T03:49:51+00:00
https://www.ioccc.org/next/guidelines.md
- 2025-06-05T06:45:55+00:00
+ 2025-07-06T03:49:21+00:00
https://www.ioccc.org/next/index.html
@@ -15550,11 +15550,11 @@
https://www.ioccc.org/next/rules.html
- 2025-06-05T06:45:57+00:00
+ 2025-07-06T03:49:52+00:00
https://www.ioccc.org/next/rules.md
- 2025-06-05T06:45:55+00:00
+ 2025-07-06T03:48:50+00:00
https://www.ioccc.org/next/submit.html
@@ -15602,7 +15602,7 @@
https://www.ioccc.org/status.html
- 2025-07-02T22:42:40+00:00
+ 2025-07-06T04:21:57+00:00
https://www.ioccc.org/status.json
diff --git a/template/README.md.year b/template/README.md.year
index f84971c38..542f18b76 100644
--- a/template/README.md.year
+++ b/template/README.md.year
@@ -1,20 +1,14 @@
# %%OUTPUT_ENGLISH_ORDINAL%% International Obfuscated C Code Contest
-## Standard IOCCC stuff
+## Where to start
-XXX - put text here - XXX
+See below for links to the [%%YEAR%% winning IOCCC entries](#inventory).
-View the `index.html` web page for the given winning entry for information on how
-on how to compile it and how to run the winning program.
-Look at the winning source and try to figure how it does what it does!
-You may then wish to look at the Author's remarks for even more details.
-
-Some C compilers are not quite as good as they should be. If yours is
-lacking, you may need to compile using clang or gcc instead of your local
-compiler.
-
-The primary website can be found at [www.ioccc.org](https://www.ioccc.org).
+Check out the `index.html` web pages for each winning entry. They have
+most of the information you need to compile and run the winning program.
+Take a look at the winning source code and try to figure out how it works.
+You might also want to check out the author’s remarks for even more details.
## Remarks on some of the winning entries
@@ -22,18 +16,54 @@ The primary website can be found at [www.ioccc.org](https://www.ioccc.org).
XXX - add text here - XXX
-## XXX - other remarks if needed - XXX
+## Rules and Guidelines
-XXX - add text here if needed - XXX
+Here are the final versions of the IOCCC rules and guidelines that were in effect for this contest:
+
+* [%%YEAR%% rules](rules.html) version **XXX**
+* [%%YEAR%% guidelines](guidelines.html) version **XXX**
-## Final Comments
+## Encouragement to those who did not win this year
-XXX - add final text here - XXX
+We know you all put in a lot of hard work into your submissions for
+this year’s IOCCC. Unfortunately, we can’t just give out awards to
+everyone. That would mean taking away from the submissions that we think
+are the best and deserve to win.
+
+Sometimes, a final round submission might be good enough to be a
+winning IOCCC entry, only to be beaten by a similar, but slightly
+better submission. If you think this happened with your submission,
+consider submitting an enhanced version to the next IOCCC.
+
+
+## On Compiling and running winning entries
+
+Some C compilers aren’t as top-notch as they could be. If yours
+isn’t cutting it, you might want to try compiling with an up to date
+version of **clang** or **gcc** instead.
+
+If you encounter problems in compiling and/or running the winning entries, see the FAQ on:
+
+* [Compiling IOCCC entries](../faq.html#compiling)
+* [IOCCC entry dependencies](../faq.html#dependencies)
+* [Problems compiling entries](../faq.html#compile_problems)
+* [Running IOCCC entries](../faq.html#running_entries)
+
+For additional information on how to submit fixes, see the FAQ on:
+
+* [How to submit a fix](../faq.html#fix_an_entry) - how to submit a fix to an entry
+* [Update author information](../faq.html#fix_author) - how to correct or update an IOCCC author’s information
+
+
+## For even more information
+
+* [Reporting an IOCCC website problem](../faq.html#report_website_problem)
+* [Submitting a fix to the IOCCC website](../faq.html#fix_website)
+* [How to contact the IOCCC](../contact.html) - up to date contact details
+* [IOCCC FAQ](../faq.html) - additional information on the IOCCC
+* [www.ioccc.org](https://www.ioccc.org) - the primary IOCCC website
-**IMPORTANT NOTE**: See [contact.html](../contact.html) for up to date contact details
-as well as details on how to provide fixes to any of the entries.
-See also the [IOCCC FAQ](../faq.html) for additional information on the IOCCC.