From Esolang
Jump to: navigation, search

This page is split into two parts: how to achieve certain effects, and style guidelines regarding use of those effects.

Where to test things out

If you wish to experiment with editing without changing an actual article, you may do so in the Sandbox.

How to do stuff

Text formatting and organization

Use two apostrophes for italics: ''fun'' produces fun.

Use three apostrophes for bold: '''Brainfuck''' produces Brainfuck. This should only be used for titles of pages, the first time they appear in the article.

Use two equals signs for sections: ==Computational class==. Three for subsections: ===Turing equivalence===.

Internal links

Use two brackets for links within the wiki: [[Brainfuck]] produces Brainfuck.

We use the singular form for all nouns for article names (except in the Esolang: namespace). MediaWiki is smart, so this is pretty easy: just do [[esoteric programming language]]s and you get esoteric programming languages. Notice how the s is outside the brackets, but it appears to be within the link anyway.

Sometimes you have to be more creative, like this: Such languages are similar to [[cellular automaton|cellular automata]], which produces: Such languages are similar to cellular automata. Article names are case sensitive (so don't link to "BrainFuck"), but MediaWiki automatically uppercases the first letter for you.

External links

For an external link, do [http://whatever.the/urlis.html Description of page]. External links should mostly only be used at the bottom of an article in the "External resources" section. See below for more information.


For textual code snippets, start lines with spaces. They will magically get set off like this:

[-]     empty cell
>+++++  set next cell to 5
[-<++>] multiply by 2
<.      print a newline

You can click on "edit" for this page if any of the above is unclear.

For those who use wikitables, our wiki has a special plainpres class that makes preformatted code (as above, or using explicit <pre> tags) look nicer in table cells. Start the table with

{| class="wikitable plainpres"

Some esolangs don't allow easy formatting with whitespace, and so naturally give programs that consist of one huge line. Or you might just think having no whitespace fits the language's style better. In any case, we have a rectwrap class that is intended to allow such code to be nicely wrapped with straight margins. Use e.g. as follows:

<pre class="rectwrap">...your code goes here...</pre>


You add something to a category by linking to it, usually at the end of a page. So if you want to put an article in the "Low-level" category, add [[Category:Low-level]] to the end of it.

If you want to provide a normal link to a category page you must use an additional colon in front of the category. [[:Category:Low-level]] will produce Category:Low-level.

Pages about specific languages should be added both to Category:Languages (as above) and to the Language_list page (by editing the latter).

See also Categorization.


Finally, bulleted lists are made by starting successive lines with asterisks. For example, "* One thing" followed by "* Another thing" then "* The last thing" produces this:

  • One thing
  • Another thing
  • The last thing

For numbered lists, do the same, but start the line with an octothorpe (#). For example, the three most commercially successful esoteric programming languages are:

  1. Perl
  2. Biota
  3. Brainfuck

Article names with forbidden characters

Some characters are not allowed in article names. This is typically characters that aren't allowed in URLs, like ?, [ and ]. For instance, the SMITH# article is named SMITH sharp. Such articles should include the wrongtitle template at the top of the page.

Here's the code for adding a wrongtitle template (in the case of SMITH#):


This will look like this on the page:

The title of this article is incorrect because of technical limitations. The correct title is SMITH#.

For articles whose name should be lowercase, put {{lowercase}} at the top to have their title display correctly.

Signing your posts on talk pages

You can sign your posts by typing ~~~~, which automatically substitutes in your username, a link to your userpage, and the time and date. Always do this when commenting on talk pages. Only do this when commenting on talk pages.

You can also use the signature button above the editing box, which inserts "--~~~~".


Sometimes it is useful to have a page that automatically redirects the user to another page. For example, the articles Brainf*** and BF both redirect to Brainfuck.

To make an automatic redirect, insert the following code at the top of the page to be redirected:

 #REDIRECT [[Name of page to redirect to]]

When to do stuff


Only use bold for the title of an article, and only the first time it appears. Important terms can be set off with italics the first time they appear (unless they're important enough to have a separate article, in which case just link to it).


Try to use subsections sparingly in general (this help page notwithstanding).

Only capitalize the first word in a section's name. "Computational class", not "Computational Class".

Article names

Most articles that are named after nouns should be in the singular form. So we have an article called cellular automaton that discusses cellular automata, for instance.

External links

Try to keep external links only in the section "External resources". There may be times to break this rule, but only occasionally.

The section is called external resources, not links! Saying "links" is silly; the links are a presentation feature and the resources, which we're linking to, are important.

This section should be a list. So if you only have one element, put a * before it.

By the nature of our wiki's topic, our external links may often be the only outside documentation on a subject, and have a tendency to disappear. Please don't delete links without checking if there is an alternative available, like a moved page or a cached page on the wayback machine. Template:Deadlink (to mark a link as out of date) and Template:Wayback (to link to wayback in a useful format) are available to help with this.

Linking to user pages

Generally speaking, don't link to user pages, but if you have a good reason to do so, make it obvious by leaving the "User:" part of the link visible (e.g. User:Graue). See Esolang:Authors for more information.


Esolang:Categorization has information about the existing categories. Please don't make a new category without discussing it at Esolang talk:Categorization.

See also

External resources