{% extends 'base.html' %} {% block title %}babycode guide{% endblock %} {% block content %}

Babycode guide

{% set sections %}

What is babycode?

You may be familiar with BBCode, a loosely related family of markup languages popular on forums. Babycode is another, simplified, dialect of those languages. It is a way of formatting text by enclosing parts of it in special tags.

Text formatting tags

  • To make some text bold, enclose it in [b][/b]:
    [b]Hello World[/b]
    Will become
    Hello World
  • To italicize text, enclose it in [i][/i]:
    [i]Hello World[/i]
    Will become
    Hello World
  • To make some text strikethrough, enclose it in [s][/s]:
    [s]Hello World[/s]
    Will become
    Hello World

Emoji

There are a few emoji in the style of old forum emotes:

{% for emoji in __emoji %} {% endfor %}
Short code Emoji result
:{{ emoji }}: {{ __emoji[emoji] | safe }}

Special thanks to the Forumoji project and its contributors for these graphics.

Paragraph rules

Line breaks in babycode work like Markdown: to start a new paragraph, use two line breaks:

{{ '[code]paragraph 1\n\nparagraph 2[/code]' | babycode | safe }} Will produce:
{{ 'paragraph 1\n\nparagraph 2' | babycode | safe }}

To break a line without starting a new paragraph, end a line with two spaces:

{{ '[code]paragraph 1 \nstill paragraph 1[/code]' | babycode | safe }} That will produce:
{{ 'paragraph 1 \nstill paragraph 1' | babycode | safe }}

Loose links (starting with http:// or https://) will automatically get converted to clickable links. To add a label to a link, use
[url=https://example.com]Link label[/url]:
Link label

Attaching an image

To add an image to your post, use the [img] tag:
[img=https://forum.poto.cafe/avatars/default.webp]the Python logo with a cowboy hat[/img] {{ '[img=/static/avatars/default.webp]the Python logo with a cowboy hat[/img]' | babycode | safe }}

Text inside the tag becomes the alt text. The attribute is the image URL.

Images will always break up a paragraph and will get scaled down to a maximum of 400px. The text inside the tag will become the image's alt text.

Adding code blocks

{% set code = 'func _ready() -> void:\n\tprint("hello world!")' %}

There are two kinds of code blocks recognized by babycode: inline and block. Inline code blocks do not break a paragraph. They can be added with [code]your code here[/code]. As long as there are no line breaks inside the code block, it is considered inline. If there are any, it will produce this:

{{ ('[code]%s[/code]' % code) | babycode | safe }}

Inline code tags look like this: {{ '[code]Inline code[/code]' | babycode | safe }}

Babycodes are not parsed inside code blocks.

Quoting

Text enclosed within [quote][/quote] will look like a quote:

A man provided with paper, pencil, and rubber, and subject to strict discipline, is in effect a universal machine.

Lists

{% set list = '[ul]\nitem 1\n\nitem 2\n\nitem 3 \nstill item 3 (break line without inserting a new item by using two spaces at the end of a line)\n[/ul]' %}

There are two kinds of lists, ordered (1, 2, 3, ...) and unordered (bullet points). Ordered lists are made with [ol][/ol] tags, and unordered with [ul][/ul]. Every new paragraph according to the usual paragraph rules will create a new list item. For example:

{{ ('[code]%s[/code]' % list) | babycode | safe }} Will produce the following list: {{ list | babycode | safe }}
{% endset %} {{ sections | safe }}

Table of contents

{% set toc = sections | extract_h2 %}
{% endblock %}