Skip to content

v0.2.0 — First release: bilingual CLI, English-first docs

Choose a tag to compare

@sogeisetsu sogeisetsu released this 02 Nov 22:03
· 3 commits to main since this release

pixellogo 0.2.0 is the first tagged release: a command line tool that turns a title, a few subtitle lines and a footnote into real 8-bit / retro-terminal pixel art — PNG and SVG from the same geometry, five canvases, ten palettes, and mixed Latin / Chinese / Japanese / Korean text without missing glyphs.

Highlights

  • Real pixels, not a filter. Text is rasterized into a binary mask and merged per row into integer-coordinate rectangles. Every edge stays a whole block at any zoom: no anti-aliasing, no gradients, no feathering.
  • One geometry, two formats. PNG and SVG are produced from the same Scene, so they match pixel for pixel. The SVG is self-contained and needs no font files.
  • Five canvases. poster 1080×1440, card 1440×1080, banner 1280×640, slide 1920×1080, square 1080×1080, each with its own layout strategy.
  • Ten palettes. From retro terminal to paper journal; every preset passes a WCAG contrast check (--list presets prints the ratio).
  • CJK-ready. A Chinese pixel font ships in the box, so mixed Latin/Chinese lines keep one stroke weight; Traditional Chinese, Japanese and Korean download on demand.
  • Bilingual CLI. Help page, option tables, font status, warnings and errors in English or Simplified Chinese — automatic from the terminal locale, or forced with --ui-lang.
  • No browser dependency. Pure Python and Pillow rasterization; runs on servers and in CI.
  • Reusable configuration. JSONC files with comments and trailing commas, dot-path overrides, batch mode, and a --dry-run snapshot of the merged result.

New in 0.2.0

Bilingual command line

All terminal output now exists in English and Simplified Chinese: the help page, --list modes|presets|fonts, fonts status, warnings, and every error message (including argparse's own argument errors).

  • Automatic: LC_ALL → LC_MESSAGES → LANG → LANGUAGE → Windows UI language → English. C / POSIX count as English.
  • Explicit: --ui-lang auto|en|zh for a single run, or PIXELLOGO_UI_LANG as a persistent default. Precedence is flag > environment > locale.
  • --ui-lang (CLI wording) is independent of --lang (glyph variant used for the image): --ui-lang en --lang ja gives an English interface with Japanese glyphs.

English-first documentation

  • README.md is now English and is the default entry point.
  • README.zh-CN.md holds the Chinese version; the two are cross-linked.
  • pyproject.toml metadata and the GitHub repository description are in English.

Packaging and robustness

  • Built distribution: wheel, source distribution, and a portable zip (see the asset table below).
  • Missing Pillow no longer breaks the query commands: if Pillow is absent, --version, --help, --list and fonts still work, and rendering exits with code 2 plus an instruction to install it.

Install

From this release:

pipx install pixellogo-0.2.0-py3-none-any.whl
# or
pip install pixellogo-0.2.0-py3-none-any.whl

From source at this tag:

pipx install git+https://github.com/sogeisetsu/pixel-logo-toolkit.git@v0.2.0

Release assets

File What it is
pixellogo-0.2.0-py3-none-any.whl Wheel. pip install this for a normal install; it adds the pixellogo command and bundles the five fonts, license texts and JSON schema.
pixellogo-0.2.0.tar.gz Source distribution (sdist), for packagers or pip install from source.
pixellogo-0.2.0-portable.zip No installation needed. Unpack and run pixellogo.cmd (Windows) or ./pixellogo.sh (macOS / Linux). Contains the package, fonts, licenses, both READMEs and RUNNING.txt.

GitHub also generates "Source code (zip)" and "Source code (tar.gz)" archives for every release. Those are raw repository snapshots and contain no built package — use the assets above if you just want to install and run the tool.

Quick start

# One cover image, both formats, into out/
pixellogo -t "REA" -s "REVERSE ENGINEER" -d "One CLI for agents"

# A 16:9 slide cover in the cyber palette with a grid texture
pixellogo -t "PIXEL" -m slide -p cyber --bg-pattern grid

# Inspect what is available
pixellogo --list modes
pixellogo --list presets
pixellogo fonts

Running pixellogo with no arguments prints the help page; --help, -h and pixellogo help are equivalent.

Command line at a glance

Flag Effect
-t, --title Main title (required)
-s, --subtitle / -d, --desc Subtitle and footnote lines, one flag per line
-m, --mode poster / card / banner / slide / square
-p, --preset One of the ten palettes
--bg --fg --primary --accent --shadow-color Single-color overrides
-f, --format png / svg / both (default both)
-o, --out Output file or directory
-c, --config / --set JSONC config and dot-path overrides
--ui-lang CLI output language: auto / en / zh
--lang Glyph variant: zh-hans / zh-hant / ja / ko
--json / --dry-run / --open Machine-readable output / merged config / open the result

Exit codes: 0 success, 2 invalid arguments or configuration.

Python API

from pixellogo import render, make_image, make_scene, to_svg_text

paths = render(title="REA", mode="banner", preset="cyber", format="png", out="out/")
image = make_image(title="REA", mode="square", scale=1)
scene = make_scene(title="REA", mode="poster")
svg = to_svg_text(title="REA", mode="slide")

Keyword names match the JSONC config keys exactly, so anything valid in a config file is valid here.

Requirements

  • Python 3.9 or newer
  • Pillow 9.0 or newer (only runtime dependency)

Testing

  • 143 unit and integration tests (PYTHONPATH=src python -m unittest discover -s tests).
  • CI runs the suite on Python 3.9, 3.10, 3.11 and 3.12, plus a job that renders real images on Linux.

Known limitations

  • The background must be a solid color; image backgrounds are excluded by design. Use --bg-pattern for graph paper, dots or scanlines.
  • docs/gallery.md, docs/design.md and docs/style-spec.md are currently Chinese only.
  • The GitHub social preview image has to be uploaded manually (Settings → Social preview); a banner render at 1280×640 is the right size.

Changelog

Work merged up to this release, in order: repository restructure, CJK font support, render core (mask → rectangles), canvas modes and layout, JSONC configuration, output formats, CI tests, typography, semantic mode names, ten presets, help page, Python API, background patterns, multilingual fonts, documentation, command gallery, bilingual CLI, and the Pillow-optional startup fix.

Full Changelog: https://github.com/sogeisetsu/pixel-logo-toolkit/commits/v0.2.0