Steam Editor Tools: Help You Write Guides and Reviews
This package offers editor tools helping users write Steam guides and reviews.
This package supports:
- Steam information queries
- Image editing tools
- BBCode text processing tools
Users can write their documents with Markdown, use this package to process the images in the document, and convert the document to the Steam BBCode format.
1. Install
Intall the latest released version of this package by using the PyPI source:
python -m pip install steam-editor-tools
2. Usage
The following minimal example shows a simple customization, where we convert a Markdown file into Steam BBCode, and print each header during the conversion.
import os
import steam_editor_tools as stet
class CustomizedRenderer(stet.BBCodeRenderer):
def render_heading(self, node: stet.bbcode.nodes.HeadingNode) -> str:
print(self.render_children(node.children))
return super().render_heading(node)
def convert(file_path: str) -> None:
out_file_path = os.path.splitext(file_path)[0].strip() + ".bbcode"
doc = stet.DocumentParser().parse_file(file_path)
with open(out_file_path, "w", encoding="utf-8") as fobj:
fobj.write(CustomizedRenderer().render(doc))
convert("example.md")
Currently, we support the following features:
2.1. Steam information query
| Functionality | Description |
|---|---|
| Search app by name | Given the partial name of an app (game), search for its information, including the ID. Support fuzzy searching. |
| Get app details by ID | Given the app ID, fetch the full details, including the name, description, price, about page, and other information. |
| Download images | Use methods such as get_header_image() to get the header image, background image, and official screenshots on the store page. |
| Download achievements | Download the achievements of a specific game. Then, dump the information as a BBCode file and save the icon images in a specific folder. |
2.2. Image editing tools
| Functionality | Description |
|---|---|
| Image stack | A code-based image editor, allowing users to stack multiple layers of images, texts, or LaTeX equations with styles. |
| Image anchor | Inspired by LaTeX's TikZ package, this package allows users to place images on the same canvas by using their relative positions. |
| Image optimization | Users only need to specify the quality and the saving format. The package can choose the best way to optimize the saved image size. |
| Image modifications | Basic image modification tools such as image resizing, cropping and blurring. |
| Image effects | Features mimicing the "Layer blending options" of the image editor, allowing users to add stroke, shadows, and other effects to an existing layer. |
| Thumbnail | Provide an option to create Steam-compatible thumbnails. This feature is useful when users need to upload screenshots by themselves. |
| Batch processing | Walk through a folder, apply a customized image processing function to each image, and save the results with thumbnails in another folder. |
| Font searching | Perform fuzzy searches for system or customized fonts. Users can provide a list of fallback options. |
Actually, the title banner of this Readme file is created by the image editing tools. See the examples.
2.3. BBCode text processing tools
| Functionality | Description |
|---|---|
| Structured data | All conversions are divided into two steps: Other formats -> Document stucture -> Steam BBCode. The intermediate Document strcture is supported by pydantic. |
| HTML to BBCode | Recursively parse an HTML file, and convert it into Document or Steam BBCode. |
| Markdown to BBCode | Use markdown-it to convert a Markdown file to HTML, then convert the HTML to Document or BBCode. |
| Read BBCode | Use bbcode to load a BBCode file. The loaded file can be rendered with style customizations. |
| Fetch a Steam guide | Given the URL of a Steam guide, convert it into Document or BBcode. |
3. Why using this package
- Compared to other BBCode conversion packages such as html2bbcode and html2phpbbcode, our package strictly follows the current Steam BBCode format. Different forums may have different BBCode standards.
- Compared to ihroteka-converter, we fully support every format provided by Steam. Unlike that regular-expression-based conversion, the BBCode reconstruction in this package is based on a recursive analysis of the HTML structure. Therefore, our package will not omit any text as long as it appears in the original document.
- We offer flexibility of customization. Users can inject any rendering step of this package by simply overriding the methods of
steam_editor_tools.bbcode.BBCodeRenderer. For example, we can customize aBBCodeRendererto create a title image for each header. - We offer convenient approaches for integrating the store page information into the output data. For example, users can easily convert a store page to BBCode if needed.
4. Examples
Currently, we offer the following examples in ./examples folder:
| Example | Description |
|---|---|
markdown_to_bbcode |
A minimal example converting Markdown to BBCode. |
bbcode_table_to_list |
An example of loading a BBCode file, and convert the tables inside it to lists. |
bbcode_achievements |
Download achievement information of a game and save it as a BBCode list. |
save_description_of_a_game |
Save the "about the game" section of a Steam app as an HTML file. |
download_screenshots |
Download all official screenshots of a game and create thumbnails of them. |
download_a_guide |
Fetch a Steam guide and save it as a BBCode file. |
create_a_title_figure |
Customize a figure-based title. Such title images can be inserted into the Steam guide. |
create_logo |
Render the title bar of this readme file. |
render_latex_equations |
Render a LaTeX equation as an image. |
search_font |
Search the font by name, and use the searched font to render an image. |
composer_list |
Generate examples for each image composer, and gather the results as an image. |
effect_list |
Show the performance of all image layer effects in an image. |
The following two guides are written with the help of this tool. Check them for viewing the details:
| Guide | Link |
|---|---|
| 此后,勇者学会了后验概率 | 🔗 |
| 《海猫鸣泣之时·出题篇》解(伪) | 🔗 |
5. Documentation
Check the documentation to find more details about the examples and APIs.
https://cainmagi.github.io/steam-editor-tools/
See the articles discussing this tool:
| Article | Link |
|---|---|
| Steam Editor Tools: Help You Write Guides and Reviews | 🔗 |
| Steam Editor Tools: 帮助你撰写评测和指南 | 🔗 |
6. Contributing
7. Changelog
See Changelog.md 📖
8. Future plan
- HTML/Markdown to BBCode
- Support the conversion of extensive Markdown alert block.
- Multi-layer image synthesis
- Query Steam app ID by name
- Get Steam app details by ID
- Screenshot formatting
- System/User font file detection
- Image overlay with alpha channel
- Image layer properties
- Improved image anchor interfaces
- More Steam queries based on public APIs
Metadata
Release files for steam-editor-tools 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| steam_editor_tools-0.6.1.tar.gz | 426.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| steam_editor_tools-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 525.0 kB
Release files / steam_editor_tools-0.6.1.tar.gz
| Download URL | steam_editor_tools-0.6.1.tar.gz |
|---|---|
| Size | 426.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23b9780da25f08a910c1bea04e1fce67fecf2924665e11ecb9d3dc3e5db669b4
|
|
BLAKE2b-256 checksum How to use checksums |
5cf7b99f79704ea44276d40d602c27202774ff3a9bad1f9c3bc413dd422e2a8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / steam_editor_tools-0.6.1-py3-none-any.whl
| Download URL | steam_editor_tools-0.6.1-py3-none-any.whl |
|---|---|
| Size | 98.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f9602d38872dd888fdbb20048310636047d2394cf4481d9e301c16b66fecfd4
|
|
BLAKE2b-256 checksum How to use checksums |
6a402bc1d40510173fa8f0a25dc1a01393c889cbe16ddb5b3589031f7f75886b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log