From f4078c5c8194e430726cbcd5da5ecbee00e5eb20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Andr=C3=A9?= Date: Sat, 15 Aug 2026 19:14:23 +0200 Subject: [PATCH] Refresh package docs --- README.md | 7 +++++-- assets/logo/README.md | 23 ----------------------- assets/logo/mark-mono.svg | 6 ------ assets/logo/mark.svg | 10 ---------- composer.json | 7 +++---- docs/outlines.md | 2 +- docs/shaping.md | 19 ++++++++++--------- 7 files changed, 19 insertions(+), 55 deletions(-) delete mode 100644 assets/logo/README.md delete mode 100644 assets/logo/mark-mono.svg delete mode 100644 assets/logo/mark.svg diff --git a/README.md b/README.md index 920325e..eab621f 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,11 @@ The full documentation is published at ## Contributing +Contributions are welcome. Visit the [project on GitHub](https://github.com/ateliersvg/text) +to [report a bug](https://github.com/ateliersvg/text/issues/new), +[suggest a feature](https://github.com/ateliersvg/text/issues/new), or +[open a pull request](https://github.com/ateliersvg/text/pulls). + Before submitting code, run: ```bash @@ -159,8 +164,6 @@ Changes to public behaviour need a test and a documentation update. Bug reports, security disclosures, and contribution guidelines are collected at [ateliersvg.com/support](https://ateliersvg.com/support/). -Atelier is maintained by Simon André. - ## License Atelier Text is released under the [MIT License](LICENSE). diff --git a/assets/logo/README.md b/assets/logo/README.md deleted file mode 100644 index f461f5a..0000000 --- a/assets/logo/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Logo - -A capital T traced as the contour of the filled letterform, with the anchor points of that -path left visible. The mark is an instance of what the package makes: turning Unicode into -glyph outlines is the whole job, and an outline is a path with points. - -| File | Box | Contents | -| --- | --- | --- | -| `mark.svg` | 24 x 24 | the contour in the accent, its six anchor points in the soft tone | -| `mark-mono.svg` | 24 x 24 | the contour in `currentColor`, alternate segments at 55% | - -Accent `#e8657f`, soft `#f2a0b1`. `mark-mono.svg` takes the colour of its context, which is -what a README or a sidebar needs. - -The points sit on the letter's own corners; the two at the bar and stem junction are left out -because they crowd the joint without saying anything the others do not. - -In the reduced mark every other segment of the contour takes the softer tone, the way the -barcode bars and the rasterizer grid alternate. The caps are square: with butt caps each -segment stops short of the corner and nicks it. - -The full `ATELIER \ TEXT` lockups do not exist yet: the other packages derive theirs from the -Atelier wordmark, which is type converted to paths and is not reproduced here. diff --git a/assets/logo/mark-mono.svg b/assets/logo/mark-mono.svg deleted file mode 100644 index 261aa63..0000000 --- a/assets/logo/mark-mono.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - Atelier Text - - - diff --git a/assets/logo/mark.svg b/assets/logo/mark.svg deleted file mode 100644 index 5a7cae0..0000000 --- a/assets/logo/mark.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - Atelier Text - - - - - - - diff --git a/composer.json b/composer.json index dd89689..e176601 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "Map Unicode text to positioned font glyphs, vector outlines, and SVG documents using alto/font and atelier/svg.", "type": "library", "license": "MIT", - "homepage": "https://github.com/ateliersvg/text", + "homepage": "https://ateliersvg.com/text/", "keywords": [ "font", "glyph", @@ -23,7 +23,8 @@ "authors": [ { "name": "Simon André", - "email": "smn.andre@gmail.com" + "email": "smn.andre@gmail.com", + "homepage": "https://smnandre.dev" } ], "minimum-stability": "stable", @@ -53,7 +54,6 @@ "sort-packages": true }, "scripts": { - "coverage": "vendor/bin/phpunit --coverage-text", "cs": "vendor/bin/php-cs-fixer fix --dry-run --diff --sequential", "cs:fix": "vendor/bin/php-cs-fixer fix --sequential", "qa": [ @@ -61,7 +61,6 @@ "@sa", "@test" ], - "rector": "vendor/bin/rector process --dry-run", "sa": "vendor/bin/phpstan analyse --memory-limit=-1", "test": "vendor/bin/phpunit" } diff --git a/docs/outlines.md b/docs/outlines.md index cf4facc..d0bd6ec 100644 --- a/docs/outlines.md +++ b/docs/outlines.md @@ -25,7 +25,7 @@ $path->isEmpty(); // false | Member | Type | What it is | |---|---|---| | `d()` | `string` | every glyph's contours, concatenated, in one `d` attribute | -| `$advanceWidth` | `float` | how far the run advances, including any spacing you asked for | +| `$advanceWidth` | `float` | how far the run advances, including configured spacing | | `isEmpty()` | `bool` | true when the text produced no glyphs, as an empty string does | `$advanceWidth` is the value to use when you lay several runs out yourself: it diff --git a/docs/shaping.md b/docs/shaping.md index 040fba8..1cfce7a 100644 --- a/docs/shaping.md +++ b/docs/shaping.md @@ -4,14 +4,15 @@ order: 60 # Shaping Shaping is the step between a string and a set of positioned glyphs: which -glyph each character maps to, and where each one sits. This package ships a -deliberately small implementation of it, and a seam where a real one goes. +glyph each character maps to, and where each one sits. This package provides a +deliberately limited mapper and an interface for replacing it with a full +shaping engine. ## What the built-in mapper does One direct `cmap` lookup per Unicode codepoint, producing a left-to-right run. -Each glyph gets its advance from the font's metrics, plus whatever -`letterSpacing` and `wordSpacing` you asked for. +Each glyph gets its advance from the font's metrics, plus the configured +`letterSpacing` and `wordSpacing`. That is the whole algorithm. It is enough for a headline, a chart label, a watermark, or a social card in a Latin script, which is what the package was @@ -27,9 +28,9 @@ built for. | kerning | reading `GPOS` or `kern` | | script shaping | per-script rules for Arabic, Devanagari, and others | -None of these is a bug to be fixed later in this class. Each is a body of work -that HarfBuzz exists to do, and pretending otherwise would produce text that -looks right in English and wrong everywhere else. +Complex scripts, bidirectional text, ligatures, kerning, and font fallback +require a full shaping engine such as HarfBuzz. The built-in mapper keeps its +scope explicit instead of approximating those behaviors. A codepoint the font has no glyph for throws [`MissingGlyphException`](errors.md) rather than falling back, because falling @@ -78,8 +79,8 @@ a ligature is one glyph from two characters, so it has one cluster and no single codepoint. The built-in mapper never produces that case, but the contract already allows it. -`TextDirection::RightToLeft` exists in the enum for the same reason. Nothing in -the package emits it yet. +`TextDirection::RightToLeft` is available to custom shapers. The built-in mapper +returns `TextDirection::LeftToRight`. ## Replacing the mapper