Steamify
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9b7fc6a20639a4fdeff5e72ff968b0a4b29d51ef24444b6bc260335fce0da26
|
|
| MD5 |
6b4f965fed9752f9ee73a1fc92ba6f7c
|
|
| BLAKE2b-256 |
dd1bf41134f019ac46004b95131507bfa14802a59275a4bc3a96aa0e9dc127ac
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a9350f0d2b85f6a162ab2dac5e1f527bd8207cb522b8cd03db560bd323c8c9b
|
|
| MD5 |
9ba97657810cbbb9e6ddf28343395c08
|
|
| BLAKE2b-256 |
88a9fd4a4900bafea59928c84fa59108a1cc45207f8cd1c7d41b3f6a5c6d5daf
|