textoutpc.builtin.parsers – Built-in tag and parser definitions#
This module defines four parsers:
strict_inline_parserParser only defining tags and smileys used in inline contexts on PCv43, without extensions.
strict_parserParser only defining tags and smileys used in other contexts on PCv43, without extensions.
default_inline_parserParser defining tags and smileys used in inline contexts on PCv43, with extensions.
default_parserParser defining tags and smileys used in other contexts on PCv43, with extensions.
- class textoutpc.builtin.parsers.TextTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagMain tag for setting text formatting.
Example uses:
[b]Bold text.[/b] [i]Italic text.[/i] [u]Underlined text.[/u] [strike]Striked text.[/strike] [striked]Text strikes again.[/striked] [font=arial]Arial text.[/font] [arial]Arial text again.[/arial] [blue]This will be in blue[/blue] [color=blue]This as well[/color] [color=rgb(255, 255, 255, 0.4)]BLACKNESS[/color] [color=hsl(0, 100%, 0.5)]This will be red.[/color]
Also supports a hack used on Planète Casio for a while, which is a CSS injection, e.g.:
[color=brown; size: 16pt]Hello world![/color]
See the following sections for more information:
- FONT_NAMES: ClassVar[dict[str, str]] = {'arial': 'Arial', 'comic': 'Comic MS', 'courier': 'Courier', 'haettenschweiler': 'Haettenschweiler', 'mono': 'monospace', 'monospace': 'monospace', 'tahoma': 'Tahoma'}#
Tag names to decode as fonts, and corresponding font family names.
- COLOR_TAG_NAMES: ClassVar[set[str]] = {'blue', 'brown', 'gray', 'green', 'grey', 'maroon', 'purple', 'red', 'yellow'}#
Tag names to decode as colors.
- font_size_unit: Literal['pt', 'em']#
Unit of the font size.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.InlineCodeTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagInline code tag.
This tag does not display a box, simply doesn’t evaluate the content and uses a monospace font.
Example uses:
`some inline code` [inlinecode][b]The tags will be shown verbatim.[/b][/inlinecode] [inlinecode][inlinecode][i]This also[/inlinecode] works![/inlinecode]
See Code blocks or spans for more information.
- class textoutpc.builtin.parsers.LinkTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for linking to an external resource.
Example uses:
[url=https://example.org/hi]Go to example.org[/url]! [url=/Fr/index.php][/url] [url]https://random.org/randomize.php[/url]
See Hyperlinks for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- is_raw() bool#
Return whether the content of this tag should be read as raw.
- Returns:
Whether the tag should be read as raw or not.
- class textoutpc.builtin.parsers.ProfileTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for linking to a profile for the current site.
This tag was originally made for Planète Casio’s profiles. It adds a prefix to the content, and sets the value.
Example uses:
[profil]Cakeisalie5[/]
See Hyperlinks for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.NoEvalTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for not evaluating content.
Same as above, except doesn’t apply any parent container or additional style.
Example uses:
[noeval][b]wow, and no need for monospace![/b][/noeval]
- class textoutpc.builtin.parsers.CalcTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for displaying a calculator icon.
Example use:
[calc]g90+e[/calc]
- class textoutpc.builtin.parsers.TextTagWithSizeAllowed(*, name: str, value: str | None, parser: Parser)#
Bases:
TextTagExtended text tag.
- font_size_unit: Literal['pt', 'em']#
Unit of the font size.
- class textoutpc.builtin.parsers.LabelTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for defining an anchor at a point of the document.
Example uses:
[label=installation]Installation de tel logiciel... (no ending req.) [label=compilation][/label] Compilation de tel logiciel...
See Labels and targets for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.TargetTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for linking to an anchor defined in the document.
Example uses:
[target=installation]Check out the installation manual[/target]!
See Labels and targets for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.ImageTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for displaying an image.
Example uses:
[img]picture_url[/img] [img=center]picture_url[/img] [img=12x24]picture_url[/img] [img=center|12x24]picture_url[/img] [img=x24|right]picture_url[/img]
See Images for more information.
- MODES: ClassVar[dict[str, tuple[Literal['center', 'left', 'right'] | None, bool]]] = {'center': ('center', False), 'centre': ('center', False), 'float': (None, True), 'float-center': ('center', True), 'float-centre': ('center', True), 'float-left': ('left', True), 'float-right': ('right', True), 'floating': (None, True), 'left': ('left', False), 'right': ('right', False)}#
The mapping between mode strings and alignment and floating.
- alignment: Literal['center', 'left', 'right'] | None#
The alignment to display the image as, if provided.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.AdminImageTag(*, name: str, value: str | None, parser: Parser)#
Bases:
ImageTagTag for displaying an image from the administration.
This tag is special for Planète Casio, as it takes images from the administration’s (hence
ad) image folder. It adds the folder’s prefix.Example uses:
[adimg]some_picture.png[/img] [adimg=center]some_picture.png[/img] [adimg=12x24]some_picture.png[/img] [adimg=center|12x24]some_picture.png[/img] [adimg=x24|right]some_picture.png[/img]
See Images for more information.
- class textoutpc.builtin.parsers.AlignTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagMain tag for aligning paragraphs.
Example uses:
[align=center]This text is centered horizontally.[/align] [justify]This text is justified.[/justify]
See Alignment for more information.
- ALIGN_KEYS: ClassVar[dict[str, Literal['center', 'left', 'right', 'justify']]] = {'center': 'center', 'centre': 'center', 'justify': 'justify', 'left': 'left', 'right': 'right'}#
Alignment keys recognized as tags or tag values.
- kind: Literal['center', 'left', 'right', 'justify']#
Kind of alignment.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.QuoteTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for presenting a quote.
Example uses:
[quote]Someone said that.[/] [quote=Cakeisalie5]Ever realized that my name contained “Cake”?[/]
See Quotes for more information.
- class textoutpc.builtin.parsers.SpoilerTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for hiding content at first glance.
This tag produces a node that requires the reader to click on a button to read its content. It can help to contain “secret” nodes, such as solutions, source code, or various other things.
Example uses:
[spoiler]This is hidden![/spoiler] [spoiler=Y a quelque chose de caché !|Ah, bah en fait non :)]:E And it's multiline, [big]and formatted[/big], as usual :D[/spoiler]
See Spoilers / Content Warnings for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.CodeTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagBasic code tag, for displaying code.
Example uses:
[code]int main() { printf("hello, world"); }[/code]
See Code blocks or spans for more information.
- class textoutpc.builtin.parsers.IndentTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagIndentation tag.
Example uses:
[indent]Indented text![/indent]
- class textoutpc.builtin.parsers.ProgressTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for displaying a progress bar.
Example uses:
[progress=50]My great progress bar[/progress] [progress=100][/progress]
See Progress bars for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.ListTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for creating a list.
Example uses:
[list] [li]hello[/li] [li]world[/li] [/list]
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- process(*, children: Sequence[Node]) Iterator[Node]#
Process the tag with children to build document nodes.
- Parameters:
children – The children to process.
- Returns:
The produced nodes.
- name: str#
Name of the tag.
This is surrounded by brackets in case of a normal tag, or the character directly if a special character has been used, e.g. backquotes.
- class textoutpc.builtin.parsers.ListItemTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for creating a list element.
See
ListTagfor more information.- CLOSE_IF_OPENED_WITHIN_ITSELF: ClassVar[bool] = True#
Whether to close and re-open the tag, if opened within itself.
This is for tags such as
[li]not to have to be closed if placed within themselves, e.g.:[list] [li]Bullet 1 [li]Bullet 2 [/list]
- process(*, children: Sequence[Node]) Iterator[Node]#
Process the tag with children to build document nodes.
- Parameters:
children – The children to process.
- Returns:
The produced nodes.
- name: str#
Name of the tag.
This is surrounded by brackets in case of a normal tag, or the character directly if a special character has been used, e.g. backquotes.
- class textoutpc.builtin.parsers.TableTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for creating a table.
An example use of the base elements is the following:
[table] [tr][th]Col 1[/th][th]Col 2[/th][/tr] [tr][td]Data 1_1[/td][td]Data 1_2[/td][/tr] [tr][td]Data 2_1[/td][td]Data 2_2[/td][/tr] [/table]
An example use with separators is the following:
[table] [tr=|]Col 1 | Col 2[/tr] [tr=|]Data 1_1 | Data 1_2[/tr] [tr=|]Data 2_1 | Data 2_2[/tr] [/table]
- process(*, children: Sequence[Node]) Iterator[Node]#
Process the tag with children to build document nodes.
- Parameters:
children – The children to process.
- Returns:
The produced nodes.
- name: str#
Name of the tag.
This is surrounded by brackets in case of a normal tag, or the character directly if a special character has been used, e.g. backquotes.
- class textoutpc.builtin.parsers.TableRowTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for creating a table row.
See
TableTagfor more information.- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- is_raw() bool#
Return whether the content of this tag should be read as raw.
- Returns:
Whether the tag should be read as raw or not.
- process(*, children: Sequence[Node]) Iterator[Node]#
Process the tag with children to build document nodes.
- Parameters:
children – The children to process.
- Returns:
The produced nodes.
- name: str#
Name of the tag.
This is surrounded by brackets in case of a normal tag, or the character directly if a special character has been used, e.g. backquotes.
- class textoutpc.builtin.parsers.TableHeaderTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for creating a table header (cell).
See
TableTagfor more information.- process(*, children: Sequence[Node]) Iterator[Node]#
Process the tag with children to build document nodes.
- Parameters:
children – The children to process.
- Returns:
The produced nodes.
- name: str#
Name of the tag.
This is surrounded by brackets in case of a normal tag, or the character directly if a special character has been used, e.g. backquotes.
- class textoutpc.builtin.parsers.TableCellTag(*, name: str, value: str | None, parser: Parser)#
Bases:
TagTag for creating a table cell.
See
TableTagfor more information.- process(*, children: Sequence[Node]) Iterator[Node]#
Process the tag with children to build document nodes.
- Parameters:
children – The children to process.
- Returns:
The produced nodes.
- name: str#
Name of the tag.
This is surrounded by brackets in case of a normal tag, or the character directly if a special character has been used, e.g. backquotes.
- class textoutpc.builtin.parsers.VideoTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for displaying a video player.
Example uses:
[video]https://www.youtube.com/watch?v=yDp3cB5fHXQ[/video] [video tiny]https://youtu.be/0twDETh6QaI[/video tiny]
- format: Literal['normal', 'tiny']#
Format.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.TopicTag(*, name: str, value: str | None, parser: Parser)#
Bases:
LinkTagTag for linking topics for the current site.
Originally made for Planète Casio’s forum topics.
Example uses:
[topic]234[/]
See Hyperlinks for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.TutorialTag(*, name: str, value: str | None, parser: Parser)#
Bases:
LinkTagTag for linking tutorials for the current site.
Originally made for Planète Casio’s tutorials.
Example uses:
[tutorial]71[/]
See Hyperlinks for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.ProgramTag(*, name: str, value: str | None, parser: Parser)#
Bases:
LinkTagTag for linking programs for the current site.
Originally made for Planète Casio’s programs.
Example uses:
[program]3598[/]
See Hyperlinks for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.RotTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for un-rot13-ing raw text and returning such text.
Example uses:
[rot=13]obawbhe[/rot] [rot13]Obawbhe[/rot13]
- general_tag_names = ('[rot]',)#
The accepted tag names for this tag, with an expected value.
- embedded_tag_pattern = re.compile('\\[rot0*?([0-9]|1[0-9]|2[0-5])\\]', re.IGNORECASE)#
The compiled pattern for tag names with embedded rot values.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.TitleTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTitle tag.
Example uses:
[title]Example title[/]
See Titles and subtitles for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.SubtitleTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagSubtitle tag.
Example uses:
[subtitle]Example subtitle[/]
See Titles and subtitles for more information.
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.
- class textoutpc.builtin.parsers.YoutubeTag(*, name: str, value: str | None, parser: Parser)#
Bases:
RawTagTag for displaying a YouTube video player.
Example uses:
[youtube]yDp3cB5fHXQ[/youtube]
- validate() None#
Validate the name and value for this tag.
- Raises:
TagValidationError – The name and value combination is invalid.