Change Unicode characters for alternative coloured TICK & check marks.
Remove `Tips for vim` users - do you provide the Emacs equivalent, or Nano, Joe, etc. - how to use an editor is not our job.
This commit is contained in:
1 parent
2846b12a4a
commit
73add7628f
1 file changed
+150
-185
+150
-185
@@ -1,133 +1,132 @@
|
||||
<div id="markdown_guidelines"></div>
|
||||
|
||||
# IOCCC 29th Markdown Guidelines
|
||||
|
||||
<div id="markdown_version"></div>
|
||||
## Markdown Guidelines Version
|
||||
|
||||
These [Markdown Guidelines](markdown.html) are version **28.4 2025-04-28**.
|
||||
|
||||
<div id="introduction"></div>
|
||||
## Markdown Guidelines Introduction
|
||||
|
||||
The IOCCC makes extensive use of [markdown](https://daringfireball.net/projects/markdown/).
|
||||
For example, when submitting to the IOCCC we have people submit remarks
|
||||
about their entry in markdown format. Every [winning entry](years.html)
|
||||
uses a `README.md` markdown file as the basis for forming the `index.html`
|
||||
web page for that entry. All HTML 5 generated pages on the
|
||||
[Official IOCCC website](https://www.ioccc.org/index.html) start with some
|
||||
markdown content. We no longer support older HTML standards and some of
|
||||
our guidelines help integrate winning entries into the website more easily.
|
||||
## Introduction
|
||||
|
||||
See the [markdown syntax](https://www.markdownguide.org/basic-syntax) guide.
|
||||
See also the [CommonMark Spec](https://spec.commonmark.org/current/). See
|
||||
the FAQ on "[remarks.md submission file](faq.html#remarks_md)".
|
||||
The IOCCC makes extensive use of [markdown](https://daringfireball.net/projects/markdown/). For example, when
|
||||
submitting to the IOCCC we have people submit remarks about their
|
||||
entry in markdown format. Every [winning entry](years.html) uses a `README.md`
|
||||
markdown file as the basis for forming the `index.html` web page for
|
||||
that entry. All HTML 5 generated pages on the [Official IOCCC website](https://www.ioccc.org/index.html)
|
||||
start with some markdown content. We no longer support older HTML
|
||||
standards and some of our guidelines help integrate winning entries into
|
||||
the website more easily.
|
||||
|
||||
See the [markdown syntax](https://www.markdownguide.org/basic-syntax) guide. See also the [CommonMark Spec](https://spec.commonmark.org/current/).
|
||||
See the FAQ on "[remarks.md submission file](faq.html#remarks_md)".
|
||||
|
||||
Nevertheless, the IOCCC does have certain practices that we ask authors to
|
||||
follow. Some of these relate to use of markdown directly and others relate
|
||||
to injecting HTML into the markdown file.
|
||||
|
||||
In the sections below, examples will mark by <span style="color: red">✕</span>
|
||||
for the incorrect method and <span style="color: green">✔</span> for preferred
|
||||
correct one.
|
||||
|
||||
In the sections below, examples will mark by ❌ for the incorrect method
|
||||
and ✔️ for preferred correct one.
|
||||
|
||||
<div id="sections"></div>
|
||||
|
||||
## Start `remarks.md` sections at level 3
|
||||
|
||||
If (it is not required) you do use sections in your `remarks.md` file (this does
|
||||
not apply to other markdown files), **PLEASE** start at level three up to level six:
|
||||
|
||||
```<!---markdown-->
|
||||
✕ # Section Reserved
|
||||
✕ ## Section Reserved
|
||||
✔ ### Section Level 3
|
||||
✔ #### Section Level 4
|
||||
✔ ##### Section Level 5
|
||||
✔ ###### Section Level 6
|
||||
❌ # Section Reserved
|
||||
❌ ## Section Reserved
|
||||
✔️ ### Section Level 3
|
||||
✔️ #### Section Level 4
|
||||
✔️ ##### Section Level 5
|
||||
✔️ ###### Section Level 6
|
||||
```
|
||||
|
||||
<div id="name"></div>
|
||||
<div id="anchor-name"></div>
|
||||
|
||||
## Replace `<a name="anchor_name"></a>` construct.
|
||||
|
||||
```<!---html-->
|
||||
✕ <a name="old_way">...</a>
|
||||
✔ <div id="new_way">...</div>
|
||||
❌ <a name="old_way">...</a>
|
||||
✔️ <span id="new_way">...</span>
|
||||
```
|
||||
|
||||
<div id="links"></div>
|
||||
|
||||
## Markdown links instead of `<a>...</a>`
|
||||
|
||||
```<!---html-->
|
||||
✕ This <a href="#link_target>HTML link text</a> works, but we prefer
|
||||
✔ [markdown link text](#link_target)
|
||||
❌ This <a href="#link_target>HTML link text</a> works, but we prefer
|
||||
✔️ [markdown link text](#link_target)
|
||||
```
|
||||
|
||||
<div id="del"></div>
|
||||
<div id="strike"></div>
|
||||
<div id="del"></div><div id="strike"></div>
|
||||
|
||||
## Replace `<strike>` or `<s>`
|
||||
|
||||
```<!---html-->
|
||||
✕ <strike>striked through text</strike>
|
||||
✕ <s>HTML 5 striked through text</s>
|
||||
❌ <strike>striked through text</strike>
|
||||
❌ <s>HTML 5 striked through text</s>
|
||||
|
||||
✔ <del>HTML 5 striked through text</del>
|
||||
✔ ~~markdown striked through text~~
|
||||
✔️ <del>HTML 5 striked through text</del>
|
||||
✔️ ~~markdown striked through text~~
|
||||
```
|
||||
|
||||
<div id="ins"></div>
|
||||
<div id="underline"></div>
|
||||
<div id="ins"></div><div id="underline"></div>
|
||||
|
||||
## Replace `<u>`
|
||||
|
||||
```<!---html-->
|
||||
✕ <u>old tags</u>
|
||||
✔ <ins>HTML 5 tags</ins>
|
||||
❌ <u>old tags</u>
|
||||
✔️ <ins>HTML 5 tags</ins>
|
||||
```
|
||||
|
||||
<div id="tt"></div>
|
||||
<div id="span"></div>
|
||||
|
||||
## Replace `<tt>`
|
||||
|
||||
```<!---html-->
|
||||
✕ <tt>obsolete HTML</tt>
|
||||
✔ <span style="font-family: monospace;">monospace font</span>
|
||||
✔ `markdown style monospace`
|
||||
❌ <tt>obsolete HTML</tt>
|
||||
✔️ <span style="font-family: monospace;">monospace font</span>
|
||||
✔️ `markdown style monospace`
|
||||
```
|
||||
|
||||
<div id="indented"></div>
|
||||
<div id="unindented"></div>
|
||||
## Always indent code blocks 4 spaces, not tab.
|
||||
<div id="indent"></div>
|
||||
|
||||
## Indent code blocks by four spaces, not by TAB.
|
||||
|
||||
```<!---sh-->
|
||||
✕ echo "This code block is NOT indented"
|
||||
❌ echo "This code block is NOT indented"
|
||||
```
|
||||
|
||||
We request that you indent the code block by multiples of four (4)
|
||||
ASCII SPACES, never TAB (␉):
|
||||
|
||||
````<!---sh-->
|
||||
✔ echo "This code block is indented by multiples of 4 spaces"
|
||||
✔️ echo "This code block is indented by multiples of 4 spaces"
|
||||
|
||||
✔ # The top level starts with a 4 ASCII space indent.
|
||||
✔ #
|
||||
✔ # Only indent with multiples of 4 ASCII spaces.
|
||||
✔ # 2nd level indent needs 8 ASCII spaces (no tabs).
|
||||
✔ # 3rd level indent needs 12 ASCII spaces (no tabs).
|
||||
✔ # etc.
|
||||
✔️ # The top level starts with a 4 ASCII space indent.
|
||||
✔️ #
|
||||
✔️ # Only indent with multiples of 4 ASCII spaces.
|
||||
✔️ # 2nd level indent needs 8 ASCII spaces (no tabs).
|
||||
✔️ # 3rd level indent needs 12 ASCII spaces (no tabs).
|
||||
✔️ # etc.
|
||||
````
|
||||
|
||||
Alternatively its possible to use ` ``` ` marks, without the initial
|
||||
four (4) space indentation. This is usually the better method.
|
||||
|
||||
````<!---markdown-->
|
||||
✔ ```
|
||||
✔ The same thing applies to any markdown block bracketed by ``` lines.
|
||||
✔ ```
|
||||
✔️ ```
|
||||
✔️ The same thing applies to any markdown block bracketed by ``` lines.
|
||||
✔️ ```
|
||||
````
|
||||
|
||||
<div id="tabs"></div>
|
||||
<div id="spaces"></div>
|
||||
## Do not use ASCII TAB in markdown files.
|
||||
<div id="tabs"></div><div id="spaces"></div>
|
||||
|
||||
## Do not use TAB in markdown files.
|
||||
|
||||
Please do **NOT** indent with ASCII TABs (␉), **OR** use any ASCII TAB
|
||||
(␉) anywhere inside a markdown file.
|
||||
@@ -136,16 +135,16 @@ While we have nothing against the ASCII TAB (␉) character in general,
|
||||
we have discovered that ASCII TAB (␉) characters create problems when
|
||||
used as part of the leading whitespace within a markdown file.
|
||||
|
||||
If you need to indent two (2 or more levels, use multiples of four (4)
|
||||
If you need to indent two (2) or more levels, use multiples of four (4)
|
||||
ASCII SPACES.
|
||||
|
||||
````<!---markdown-->
|
||||
```
|
||||
✕ ␉Please do **NOT**␉use ASCII tabs␉in markdown files.
|
||||
✕ ␉␉Please do **NOT** indent markdown with ASCII tabs.
|
||||
❌ ␉Please do **NOT**␉use ASCII tabs␉in markdown files.
|
||||
❌ ␉␉Please do **NOT** indent markdown with ASCII tabs.
|
||||
|
||||
✕ ␉We don't␉mind␉tabs␉in␉general,
|
||||
✕ ␉We just ask that you NOT use them in markdown files.
|
||||
❌ ␉We don't␉mind␉tabs␉in␉general,
|
||||
❌ ␉We just ask that you NOT use them in markdown files.
|
||||
```
|
||||
````
|
||||
|
||||
@@ -153,70 +152,37 @@ And to clarify, we are only talking about markdown files, not C code or
|
||||
any other non-markdown content:
|
||||
|
||||
````<!---c-->
|
||||
✔ printf("It is fine to use tabs in Obfuscated C code.\n");
|
||||
✔ /* if you wish */
|
||||
✔️ printf("It is fine␉to␉use tabs in Obfuscated C code.\n");
|
||||
✔️ /*␉if␉you␉wish */
|
||||
|
||||
✔ // We ask that you to NOT use ASCII tab characters in your remarks.md writeup,
|
||||
✔ // or in any other markdown files within your entry, please.
|
||||
✔️ // We ask that you to NOT use ASCII tab characters in your remarks.md writeup,
|
||||
✔️ // or in any other markdown files within your entry, please.
|
||||
````
|
||||
|
||||
**NOTE**: Again, you are **perfectly welcome** to use ASCII tab
|
||||
characters in your C code and other non-markdown files. We simply ask
|
||||
that you do **NOT** use any ASCII TAB (␉) characters in markdown files.
|
||||
**NOTE**: Again, you are **perfectly welcome** to use ASCII tab characters
|
||||
in your C code and other non-markdown files. We simply ask that
|
||||
you do **NOT** use any ASCII TAB (␉) characters in markdown files.
|
||||
|
||||
<div id="vim-tabs"></div>
|
||||
### Tip for `vim` users
|
||||
<div id="code"></div><div id="languages"></div>
|
||||
|
||||
If you use `vim` you can put in your `.vimrc` file (usually `~/.vimrc`)
|
||||
the following settings to make sure the tabs are not put in without you
|
||||
noticing:
|
||||
|
||||
```<!---vim-->
|
||||
set tabstop=8 " a tab is 8 spaces (or whatever you wish it to be set to)
|
||||
set softtabstop=4 " ...but when inserting/backspacing use 4 spaces
|
||||
set shiftwidth=4 " ...and auto-indent 4 spaces (when autoindent is set)
|
||||
set expandtab " ...expand tab into spaces
|
||||
```
|
||||
|
||||
If you have file type detection enabled you can, if you prefer, have
|
||||
these settings set just for markdown files:
|
||||
|
||||
```<!---vim-->
|
||||
autocmd! Filetype markdown setlocal set tabstop=8 softtabstop=4 shiftwidth=4 expandtab
|
||||
```
|
||||
|
||||
This will prevent the tab key from inserting tabs; rather it will insert
|
||||
four (4) spaces.
|
||||
|
||||
To **VERIFY** that there are no tabs in a file you may do, in command
|
||||
mode:
|
||||
|
||||
```
|
||||
/\t
|
||||
```
|
||||
|
||||
If you're in insert mode hit `ESC` first.
|
||||
|
||||
<div id="code"></div>
|
||||
<div id="languages"></div>
|
||||
## Use HTML comments for code block language syntax.
|
||||
|
||||
We request that [fenced markdown code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks)
|
||||
**NOT** specify a language directly.
|
||||
|
||||
````<!---markdown-->
|
||||
✕ ```c
|
||||
✕ int main(void) {return 0;}
|
||||
✕ ```
|
||||
❌ ```c
|
||||
❌ int main(void) {return 0;}
|
||||
❌ ```
|
||||
````
|
||||
|
||||
Instead, put the language inside an HTML comment, separated from the
|
||||
markdown code block starting fence by a space:
|
||||
|
||||
````<!---markdown-->
|
||||
✔ ```<!---c-->
|
||||
✔ int main(void) {return 0;}
|
||||
✔ ```
|
||||
✔️ ```<!---c-->
|
||||
✔️ int main(void) {return 0;}
|
||||
✔️ ```
|
||||
````
|
||||
|
||||
**IMPORTANT**: The **initial** **\` \` \`** must be
|
||||
@@ -225,9 +191,8 @@ followed by an **ASCII SPACE**, and **THEN** an **opening** **
|
||||
the **language** and **FINALLY** a **closing** "`-->`" (two "`-`"s
|
||||
followed by a "`>`").
|
||||
|
||||
<div id="text"></div>
|
||||
<div id="code-text"></div>
|
||||
<div id="code-and-text"></div>
|
||||
|
||||
## Ensure blank line between code block and text.
|
||||
|
||||
Please do **NOT** place text on the next line after a markdown code
|
||||
@@ -236,28 +201,28 @@ block as this makes it easier to detect when markdown code blocks are
|
||||
**NOT** properly indented.
|
||||
|
||||
````<!---markdown-->
|
||||
✕ ```
|
||||
✕ int
|
||||
✕ main(int foo)
|
||||
✕ {
|
||||
✕ return foo;
|
||||
✕ }
|
||||
✕ ```
|
||||
✕ C compilers cannot be given a -Wno-main-arg-errors flag.
|
||||
```
|
||||
int
|
||||
main(int foo)
|
||||
{
|
||||
return foo;
|
||||
}
|
||||
❌ ```
|
||||
❌ C compilers cannot be given a -Wno-main-arg-errors flag.
|
||||
|
||||
✔ ```
|
||||
✔ int
|
||||
✔ main(int foo)
|
||||
✔ {
|
||||
✔ return foo;
|
||||
✔ }
|
||||
✔ ```
|
||||
✔
|
||||
✔ C compilers cannot be given a -Wno-main-arg-errors flag.
|
||||
```
|
||||
int
|
||||
main(int foo)
|
||||
{
|
||||
return foo;
|
||||
}
|
||||
✔️ ```
|
||||
✔️
|
||||
✔️ C compilers cannot be given a -Wno-main-arg-errors flag.
|
||||
````
|
||||
|
||||
<div id="void"></div>
|
||||
<div id="slash"></div>
|
||||
<div id="tag-slash"></div>
|
||||
|
||||
## Do not add trailing slash to void HTML tags.
|
||||
|
||||
Please do **NOT** use a trailing slash on
|
||||
@@ -269,61 +234,59 @@ The trailing slash on void HTML elements has no effect and interacts
|
||||
badly with unquoted attribute values.
|
||||
|
||||
```<!---html-->
|
||||
✕ <br/>
|
||||
✕ <hr/>
|
||||
✕ <img src="1984-anonymous-tattoo.jpg"
|
||||
alt="image of a tattoo of the 1984 anonymous C code"
|
||||
width=600 height=401 />
|
||||
❌ <br/>
|
||||
❌ <hr/>
|
||||
❌ <img src="1984-anonymous-tattoo.jpg" alt="image of a tattoo of
|
||||
the 1984 anonymous C code" width=600 height=401 />
|
||||
|
||||
✔ <br>
|
||||
✔ <hr>
|
||||
✔ <img src="1984-anonymous-tattoo.jpg"
|
||||
alt="image of a tattoo of the 1984 anonymous C code"
|
||||
width=600 height=401>
|
||||
✔️ <br>
|
||||
✔️ <hr>
|
||||
✔️ <img src="1984-anonymous-tattoo.jpg" alt="image of a tattoo of
|
||||
the 1984 anonymous C code" width=600 height=401>
|
||||
```
|
||||
|
||||
<div id="br"></div>
|
||||
<div id="backslash"></div>
|
||||
## Do not use a trailing backslash (`\`) outside of a code block
|
||||
<div id="br"></div><div id="backslash"></div>
|
||||
|
||||
## Do not use a trailing backslash outside of a code block
|
||||
|
||||
Unless the line is inside a markdown code block, please do **NOT** end
|
||||
a markdown line with a trailing backslash (`\`). Instead use a trailing
|
||||
`<br>`.
|
||||
|
||||
```<!---markdown-->
|
||||
✕ In markdown,\
|
||||
✕ do NOT use trailing\
|
||||
✕ backslashes outside of\
|
||||
✕ a code block
|
||||
❌ In markdown,\
|
||||
❌ do NOT use trailing\
|
||||
❌ backslashes outside of\
|
||||
❌ a code block
|
||||
|
||||
✔ In markdown,<br>
|
||||
✔ use trailing<br>
|
||||
✔ br's outside of<br>
|
||||
✔ a code block
|
||||
✔️ In markdown,<br>
|
||||
✔️ use trailing<br>
|
||||
✔️ br's outside of<br>
|
||||
✔️ a code block
|
||||
|
||||
✔ ```
|
||||
✔ This is OK\
|
||||
✔ inside a\
|
||||
✔ markdown code\
|
||||
✔ block
|
||||
✔ ```
|
||||
✔️ ```
|
||||
✔️ This is OK\
|
||||
✔️ inside a\
|
||||
✔️ markdown code\
|
||||
✔️ block
|
||||
✔️ ```
|
||||
|
||||
✔ `This is OK\`
|
||||
✔️ `This is OK\`
|
||||
````
|
||||
|
||||
Doing it this way will prevent `pandoc(1)` from generating deprecated
|
||||
HTML elements such as `<br />`.
|
||||
|
||||
<div id="img"></div>
|
||||
<div id="images"></div>
|
||||
|
||||
## Do not use markdown style images
|
||||
|
||||
Instead of using this markdown element to embed an image:
|
||||
|
||||
```<!---markdown-->
|
||||
✕ 
|
||||
❌ 
|
||||
|
||||
✔ <img src="filename.png"
|
||||
✔️ <img src="filename.png"
|
||||
alt="describe the filename.png image for someone who cannot view it"
|
||||
width=PIXEL_WIDTH height=PIXEL_HEIGHT>
|
||||
|
||||
@@ -336,9 +299,8 @@ and `height` information so browsers have to slow down on rendering
|
||||
text around the image until it can internally determine the image size.
|
||||
|
||||
<div id="hr"></div>
|
||||
<div id="lines"></div>
|
||||
<div id="horizontal"></div>
|
||||
## Please do NOT use markdown style horizontal lines
|
||||
|
||||
## Replace markdown style horizontal lines.
|
||||
|
||||
Please do **NOT** use `---` style lines in markdown to create horizontal
|
||||
lines or to separate sections.
|
||||
@@ -353,43 +315,46 @@ values.
|
||||
If a horizontal line is really needed, use:
|
||||
|
||||
```<!---html-->
|
||||
✕ * * *
|
||||
✕ - - -
|
||||
✕ ---
|
||||
❌ * * *
|
||||
❌ - - -
|
||||
❌ ---
|
||||
|
||||
Regular divider...
|
||||
✔ <hr>
|
||||
✔️ <hr>
|
||||
|
||||
A short divider...
|
||||
✔ <hr style="width:10%;text-align:left;margin-left:0">
|
||||
✔️ <hr style="width:10%;text-align:left;margin-left:0">
|
||||
```
|
||||
|
||||
<div id="parentheses"></div>
|
||||
|
||||
## Do not put a literal "`(`" or "`)`" in markdown link titles
|
||||
|
||||
```<!---markdown-->
|
||||
✕ [some (text)](https://example.com/curds)
|
||||
✔ [some (text)](https://example.com/curds)
|
||||
❌ [some (text)](https://example.com/curds)
|
||||
✔️ [some (text)](https://example.com/curds)
|
||||
|
||||
✕ [ls(1)](https://example.com/ls-man-page.1)
|
||||
✔ [ls(1)](https://example.com/ls-man-page.1)
|
||||
❌ [ls(1)](https://example.com/ls-man-page.1)
|
||||
✔️ [ls(1)](https://example.com/ls-man-page.1)
|
||||
```
|
||||
|
||||
<div id="closing-parentheses"></div>
|
||||
|
||||
## Do not end markdown links with "`))`"
|
||||
|
||||
Markdown links that end in "`))`" complicate parsing and sometimes lead
|
||||
to incorrect URLs or file paths.
|
||||
|
||||
```<!---markdown-->
|
||||
✕ [some text](https://example.com/foo_(bar))
|
||||
✔ [some text](https://example.com/foo_(bar))
|
||||
❌ [some text](https://example.com/foo_(bar))
|
||||
✔️ [some text](https://example.com/foo_(bar))
|
||||
|
||||
✕ This thing, ([some text](some/path)), is NOT ideal.
|
||||
✔ This thing, [some text](some/path), is better.
|
||||
❌ This thing, ([some text](some/path)), is NOT ideal.
|
||||
✔️ This thing, [some text](some/path), is better.
|
||||
```
|
||||
|
||||
<div id="italics"></div>
|
||||
|
||||
## Use `_` for italics in markdown
|
||||
|
||||
Please do **NOT** use `*` (single asterisk) for italics in markdown.
|
||||
@@ -398,12 +363,12 @@ parsing and sometimes lead to incorrect results. This can especially
|
||||
go for when it is **_bold and italic_**.
|
||||
|
||||
```<!---markdown-->
|
||||
✕ *this text is italic*
|
||||
✔ _this text is italic_
|
||||
❌ *this text is italic*
|
||||
✔️ _this text is italic_
|
||||
|
||||
✕ ***this text is bold italic***
|
||||
✔ **_this text is bold italic_**
|
||||
✔ _**this text is bold italic**_
|
||||
❌ ***this text is bold italic***
|
||||
✔️ **_this text is bold italic_**
|
||||
✔️ _**this text is bold italic**_
|
||||
```
|
||||
**BTW**: the astute reader might notice that some cases of `*` for
|
||||
italic might have slipped through. We do ask you, however, to please
|
||||
|
||||
Reference in new issue
Block a user