Added `bin/find-missing-links.sh` tool to check for
markdown links to missing local files.
Regarding the missing link tool:
```
Here be extended regular expression magic dragons! :-)
```
Added `make find_missing_links` to the top level Makefile.
Added `make find_missing_links` to `make www` and `make quick_www`.
Ran `make www` to perform the above.
TODO: Fix markdown links to missing local files.
Fixed stuff we broke by mistake, previously.
Ran `make www` to perform the above.
TODO: Fix stuff we broke by mistake doing the above.
TODO: Fix more broken markdown links.
We fix more markdown links in markdown files that refer to files
internally to the web site.
Added tmp tools to find and print various markdown links:
* `tmp/md-links.sh` - print all markdown links
* `tmp/md-token-links.sh` - print all markdown links that start with a **%%TOKEN%%**
* `tmp/md-local-links.sh` - print all markdown links to a local file
* `tmp/md-link-paths.sh` - print local file paths referenced in markdown links
Fixed a number of markdown formatting problems with `thanks-for-help.md`.
Fixed markdown links to files in `thanks-for-help.md`. Improved
heading levels in `thanks-for-help.md`, and made entry sections consistent.
Changed all markdown links that end in "))" to end in a better way.
Explained in `markdown.md` why we are avoiding markdown links that
end in "))".
Ran `make www` to perform the above.
TODO: Fix stuff we broke by mistake doing the above.
TODO: Fix more broken markdown links.
For each YYYY header it is a link to the respective index.html page.
For each entry the index.html file for the entry is in the section name
of the entry (it used to not be a link there but rather in another line
with the source code on the same line). The source code is in a
subsection (that is the index.html is '#' and source code is '##') below
the index.html link.
(The rest of the years might happen later today or it might not happen
until another day due to a timing conflict here.)
Attempted to fix formatting problems of `thanks-for-help.html`
that was introduced in commit 476b0d45f0.
Fixed some HTML info notices in `bugs.html` as well.
This HTML is now obsolete in HTML 5:
```html
<a name="faq0"></a>Section 0: Submitting entries to a new IOCCC
```
Instead we need to use the div HTML elements:
```html
<div id="faq0">Section 0: Submitting entries to a new IOCCC</div>
```
We are testing a fix for the top level HTML files.
Run `make gen_top_html` to perform the above and test under macOS.
TODO: Apply this type of fix across the entire web site if all is well.
We added a space between the markdown triple code mark
and language that was enclosed in HTML comments.
So a line of the form:
````
```<!---c--->
````
became:
````
``` <!---c--->
````
This was done to **help** some code see that the HTML comment
string was not a markdown code specifier. Not all code
understands this after this changed. For example, `pandoc(1)`
still forms HTML classes of the form "<!---c-->"
when it encounters the above mentioned change.
We also fixed a problem with `2019/dogon/README.md` regarding
a markdown code block.
We also fixed a problem with `2020/yang/README.md` regarding
a markdown code block.
When language is specified in a markdown code block such as:
````
```c
printf("Hello, world!\n");
```
````
is used, the resulting HTML as produced by `pandoc(1)` combined
with our revised `ioccc.css` is not intent the code block well.
A temporary "_hack-a-round_" is to turn the "markdown code language
specifier" into an HTML comment. For example:
````
```<!---c-->
printf("Hello, world!\n");
```
````
This commits turns off existing markdown code language specifiers
for now, while preserving our ability to restore them in the future
when a better "_hack-a-round_" to the "markdown code language
specifier" problem is found.
The HTML impact if this "_hack-a-round_" is to produce HTML that
looks like this:
```
<pre class="<!---c-->"><code> .. </code></pre>
```
We might be able to create a complex set of classes for each markdown
code language (there won't be very many) in `ioccc.css`, or we might
find a more general CSS (or maybe `pandoc(1)`?) solution.
For now, this hack-a-round will have to do.
All code blocks in markdown have been intended by at least 4 spaces.
We add `--tab-stop=8` to all `pandoc(1)` executions in order to set
a better tab stop indentation, especially for tab intended code blocks.
Changed `bin/pandoc-wrapper.sh` VERSION from "1.5.3 2024-03-26"
to "1.6 2024-03-31".
Fixed `1991/brnstnd/sorta.README.md` so that the sorta code
is code blocks.
Removed unneeded paragraph group in copyright in `inc/footer.default.html`.
Fixed excess whitespace after list Author on entry `index.html` page.
Changed `bin/output-index-author.sh` VERSION from "1.5.2 2024-03-26"
to "1.6 2024-03-31".
Performed `make www` to perform the above and test under macOS.
TODO: Fix the problem of the initial line of code being extra intended.
TODO: Fix excess whitespace around code that is inline.
Commit cbc022d864 which edited
2004/sds/README.md broke the functionality of one of the features of the
code so the previous revision of README.md was copied to README_sds.md
and the script now uses that file.
This does mean the manifest is out of date and that will have to be
fixed another time but now the script works okay. Without this one of
the files to be compiled does not compile at all and it seems better
this way than to tamper with the code especially given what the entry
does and because it would take more time to fix anyway.
The problem it had is that it was reverted back to trying to compile the
very unsafe file name without deleting it after the ${CC} line. Thus the ${RM}
part was moved back to the end of the rule. I added the file (or a glob
that will match the file) to .gitignore a long time ago possibly when I
added the alt code.
The thanks file was fixed to account for the fact that the Makefile no
longer automatically builds the alt version if the code fails to
compile.
The inc/footer.default.html now has a common Copyright and CC BY-SA
4.0 License section for all generated HTML files.
All markdown files have a similar Copyright and CC
at the bottom in the form of an HTML comment.
Remove markdown where test is both bold and code.
This double formatting produces undesirable effects in HTML.
One should make something **bold** or something `code`.
but not both. The stacking of these two options produces bad
effects when rendered.
In particular although main() has to have two args don't do (void)argc
as that was not in the code.
To make it more consistent with other added functions (that I had to do
in other entries for instance and for the same reason) I made the
function poke() (r short of poker) pain() instead.
The thanks file was modified for this entry too, improving it a bit
(hopefully making certain points clearer too).
We used this command to find markdown files with trailing whitespace.
```sh
find . -name '*.md' -print0 | xargs -0 grep -E -l '[[:space:]][[:space:]]*$'
```
After removal, we did a `make www`.
Also the thanks file had some fixes in them including a consistency
problem: a place that refers to markdown had been updated to refer to
index.html when it should have remained README.md.
The problem was that the alt rule had the ${CC} ... when it's not
supposed to. That's for the rule ${PROG}.alt which there is none in this
entry as there is no alt code.
This warning was previously not possible to silence but by changing the
(alt) code slightly (with same functionality including indeed the
problem I documented in compilers.md) it now is.
Entry source is now prog.c for IOCCC years 2014 thru 2020,
or is now dirname.c IOCCC years 1984 thru 2013.
To achieve this state, we renamed the following:
renamed: 2004/hibachi/src/hibachi.c -> 2004/hibachi/hibachi.c
renamed: 2012/omoikane/nyaruko.alt.c -> 2012/omoikane/omoikane.alt.c
renamed: 2012/omoikane/nyaruko.alt2.c -> 2012/omoikane/omoikane.alt2.c
renamed: 2012/omoikane/nyaruko.c -> 2012/omoikane/omoikane.c
renamed: 2012/omoikane/nyaruko.orig.c -> 2012/omoikane/omoikane.orig.c
Modified `bin/subst.entry-index.sh` to add to entry `index.html` file,
links to the `Makefile` and the _C code_ to the top navigation bar.
Changed `bin/subst.entry-index.sh` VERSION from "1.2.2 2024-02-25"
to "1.3 2024-03-02".
Moved printing the Inventory link in the top navigation bar
from `bin/subst.entry-navbar.awk` to `bin/subst.entry-index.sh`.
Changed `bin/subst.entry-navbar.awk` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-03-02".
Moved printing the Inventory link in the top navigation bar
from `bin/subst.year-navbar.awk` to `bin/subst.year-index.sh`.
Changed `bin/subst.year-index.sh` VERSION from "1.0 2024-02-11"
to "1.1 2024-03-02".
Changed `bin/subst.year-navbar.awk` VERSION from "1.0 2024-02-11"
to "1.1 2024-03-02".
Added location names (both default and common) to `author.html`.
Changed `tmp/gen_author_json.sh` VERSION from "1.0 2023-06-06"
to "1.1 2024-03-04".
Added location names (both default and common) to `author.html`.
Changed `bin/gen-authors.sh` VERSION from "1.2 2024-03-09"
to "1.3 2024-03-04".
The manifest and the resulting `.entry.json` files have been changed
for `2004/hibachi` and `2012/omoikane`.
The Makefiles for `2004/hibachi` and `2012/omoikane` copy the
source file into the "previously used location". The `make clobber`
rule removes the copied source. The `.gitignore` files have been
updated accordingly.
Improved how the concept of IOCCC terms _entry_, _author_ and _submission_ are
used in markdown files.
Links to markdown files (files ending in .md) within the repo were
changed to link to HTML files (files ending in .html). Special cases
where `README.md` became `index.html` were modified accordingly.
Fixed URL for `bugs.html` in Makefile comments.
Fixed name of `bin/sgi.sh` referenced in comments in `.gitignore` files.
Links to locations within the repo are now relative. For example a
link to `/contact.html` may become `../contact.html' or '../../contact.html`
depending on the directory level of the markdown file.
Nearly all links with absolute URLs under _https://www.ioccc.org_
or `https://ioccc-src.github.io/temp-test-ioccc_ have been changed to
relative paths within the repo. Some exceptions to this (such as
referring to a GitHub repo) were preserved.
Fixed a number of inside `faq.md` and `bugs.md`.
Added HTML name tags (in the form of an _entry_id_) for each entry
referenced in `bugs.md`. Fixed links from outside of `bugs.html`
into `bugs.html` accordingly.
Where FAQ entries are referenced, a named tag is used so that if a
FAQ is ever renumbered, links outside of `faq.html` will still work.
Changed the _inventory_order_ of a compressed tarball from _300_
to _100000_. While this may have been done for the manifest,
this changed had not yet been propagated into the `.entry.json` files.
Links to web sites that were in the for <URL> are now [URL](URL).
Performed `name www` to process all of the above.
Improved format of `authors.html`. Full names are now bold.
Location codes are now links back into `location.html` and
location names (both default and common) are now italics.
Added _author_handle_ each author.
Changed `bin/gen-authors.sh` VERSION from "1.1 2024-02-25"
to "1.2 2024-03-09".
Improved format of `location.html` as location codes are now bold,
author counts in a given location are now bold, and location names
(both default and common) are now italics.
Changed `bin/gen-location.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-03-04".
Added italic location name after location code in entry
`index.html` files.
Changed `bin/output-index-author.sh` VERSION from "1.4.1 2024-02-23"
to "1.5 2024-03-04".
Added _Location of authors_ to the sidebar as a link to `location.html`.
TODO: While nearly all of the above mentioned changes are likely correct,
they likely introduced a few errors that need correcting.
There appears to be a bug where the program blocks. In one case another
command makes it work but the judges remarks suggest one way and it does
not. The other command does not seem to work at all, even if used like
the workaround with the first one.
Updated make clobber to remove foo.ps.
Updated .gitignore.
This involves a couple java files being added to the repo both with a
joke included (to make it more fun).
The instructions of how to view the code are to make the layout correct
(at least for those who use vim (vi too? Been too long now)).
This commit will require a manifest update which will happen no later
than this weekend but it might happen sooner.
This is a HUGE commit and this task is not done. There are still some
changes that might need to be discussed and since so much is done here I
think it's better to let this go through and then make sure everything
is okay. When the remaining references are discussed they can also be
changed.
I did NOT include changes in the tmp/OLD_manifest directory.
Some of the changes in this commit (it might be exhaustive but it might
not be - not sure):
- In the Makefiles the WINNERS was renamed AUTHORS.
- References to winners.html were changed to authors.html.
- The FAQ named anchor 'fix_a_winner' was renamed 'fix_an_entry'.
- The JSON fields (or whatever they're called) 'winner_id' and
'winner_JSON_format_version' were changed so that 'winner' is 'entry'.
- In scripts for entries 'IOCCC winner' was changed to 'IOCCC entry'.
- 'winners_text' is now 'entries_text'. It might be better to be
'entry_text' as it's per entry but this was not noticed at first. Since
this is easy to fix I am holding off on this for the meantime.
- The script tmp/update-manifest.sh now has the commit log messages
changed to the correct terms as well.
The index.html files were updated as well with any of the above
changes.
There are some references that should NOT be updated. Two examples
caught (and maybe more have slipped through that will have to be changed
back): in 1984/anonymous/README.md the author wrote back to Landon after
being told about the famous tattoo and they used the words:
.. my entry will be the first IOCCC winner ..
but since this comes from the author it should remain so.
The other one is that winners.html should still refer to winners.html as
it informs people that it's been moved to authors.html (it does redirect
too but even so if it was changed it would defeat the purpose of the
message).
With paths like authors.html I tried to copy paste so that hopefully
there are no typos. It is possible that I did not end up doing this with
all but these can be fixed when discovered.
The -Wno-foo options were in the CDEFINE variable which although works
it is not congruent with the other Makefiles and it is slightly more
confusing (even though not confusing).
This also fixes the missing reference to try.sh in the README.md file.
Using both scripts one can see the problem the alt code has that was
fixed by the author.
The .gitignore was updated but it cannot be sorted because it excludes
'*.mid' but then negates the .mid files in the repo, cvikl.mid and
entertainer.mid. These have to come after the exclusion of '*.mid'. This
is important as one might use the entry to create a .mid file that is
not done in the try script. The make clobber rule does not remove
'*.mid' files as doing so would remove the ones we want to keep.
try.sh now runs makegif.sh.
Fix makegif.sh to first compile the program, allow one to specify CC and
convert and check that the output file was created. In the case
convert(1) is not found or it fails to generate the output file it
suggests the user look at the FAQ entry about ImageMagick.
The alt code provided by the author back in 2020 uses Unicode but there
wasn't a script for it (the script run_clock.sh which I made some fixes
in last year was added by the judges but no version for the alt code was
added).
The scripts also have another fix in them: make clock or make clock.alt
first as if not and the program does not exist the script will happily
overwrite the C files and prevent it from being compiled. They use 'make
-B' just to be sure that it's compiled.
The bugs.md has more details on the bug I discovered when working on
2020/ferguson2. Even the usage in the try section (now in try.sh)
resulted in files that cannot be translated to English right.
The make clobber rule now removes *.raw instead of specific raw files.
This is important for clean up prior to updating the manifest.
Updated .gitignore.