Skip to main content

Steamify

Python PyPI CI Ruff StandWithUkraine

Overview

A lightweight package for converting Markdown into Steam-compatible markup, and back again.

About the Name

Steamify is what the package does: it takes Markdown and makes it Steam-flavoured, and it reads Steam markup back into Markdown. It was extracted from Ihroteka, a personal game-library app, and released standalone.

Features

Zero runtime dependencies, and conversion in both directions.

Markdown -> Steam

  • Headings (# to ######) -> [h1] to [h3], since Steam caps at three levels
  • Bold, italic, strikethrough, inline code
  • Links and images -> [url] / [img]
  • Ordered and unordered lists (nested)
  • Blockquotes (nested)
  • Fenced code blocks -> [code]
  • Horizontal rules -> [hr][/hr]

Steam -> Markdown

  • [h1] to [h6] -> # to ######
  • [b], [i], [strike], [code] -> **, *, ~~, backticks
  • [url] / [img] -> Markdown links and images
  • [list] / [olist] (nested) -> - / 1.
  • [quote] (nested) -> >
  • [hr][/hr] -> ---
  • Steam-only tags such as [spoiler], [noparse], [table], and [u] have no Markdown equivalent, so they pass through verbatim rather than being dropped

Round-tripping

to_steam(to_markdown(steam)) returns the original markup, so a Steam -> Markdown -> Steam cycle is stable. The Markdown side is normalized rather than preserved byte for byte:

  • #### and deeper collapse into [h3] on the way out, and come back as ###
  • Image alt text is not carried by [img], so it returns empty
  • A single-line fenced block returns as an inline code span

Installation

Install with pip or uv:

pip install -U steamify

uv add steamify

Usage

from steamify import to_steam

md_text = """
# My Game Guide

Welcome to the **best** game ever!

## Features

- Easy to learn
- *Beautiful* graphics
- ~~Microtransactions~~ Free to play!

Check out the [wiki](https://example.com) for tips.
"""

steam_text = to_steam(md_text)
print(steam_text)

# [h1]My Game Guide[/h1]

# Welcome to the [b]best[/b] game ever!

# [h2]Features[/h2]

# [list]
# [*] Easy to learn
# [*] [i]Beautiful[/i] graphics
# [*] [strike]Microtransactions[/strike] Free to play!
# [/list]

# Check out the [url=https://example.com]wiki[/url] for tips.

Converting the other way:

from steamify import to_markdown

steam_text = """
[h1]Patch Notes[/h1]

[list]
[*] Fixed [b]crash[/b] on startup
[*] [spoiler]Secret boss[/spoiler] added
[/list]
"""

md_text = to_markdown(steam_text)
print(md_text)

# # Patch Notes

# - Fixed **crash** on startup
# - [spoiler]Secret boss[/spoiler] added

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

steamify-2.0.0.tar.gz (53.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

steamify-2.0.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file steamify-2.0.0.tar.gz.

File metadata

  • Download URL: steamify-2.0.0.tar.gz
  • Upload date:
  • Size: 53.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for steamify-2.0.0.tar.gz
Algorithm Hash digest
SHA256 c9b7fc6a20639a4fdeff5e72ff968b0a4b29d51ef24444b6bc260335fce0da26
MD5 6b4f965fed9752f9ee73a1fc92ba6f7c
BLAKE2b-256 dd1bf41134f019ac46004b95131507bfa14802a59275a4bc3a96aa0e9dc127ac

See more details on using hashes here.

File details

Details for the file steamify-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: steamify-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for steamify-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a9350f0d2b85f6a162ab2dac5e1f527bd8207cb522b8cd03db560bd323c8c9b
MD5 9ba97657810cbbb9e6ddf28343395c08
BLAKE2b-256 88a9fd4a4900bafea59928c84fa59108a1cc45207f8cd1c7d41b3f6a5c6d5daf

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.1

2 files

This release

2.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page