mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
45 lines
2.9 KiB
Markdown
45 lines
2.9 KiB
Markdown
## BitLogger Update Changes
|
|
|
|
version 0.4.0
|
|
|
|
### Feature
|
|
|
|
- feat: add `ColorMode = Never | Auto | Always` for text formatter color control
|
|
- feat: add ANSI level, target, timestamp, and field rendering to `format_text(...)`
|
|
- feat: add `color_mode` to `TextFormatter` and `TextFormatterConfig`
|
|
- feat: support `text_formatter.color_mode` in JSON config parsing and serialization
|
|
- feat: add inline style markup support in message text for ANSI text formatter output
|
|
- feat: support named color tags like `<red>...</>`, style tags like `<b>...</>`, and hex tags like `<#ff0000>...</>` / `<bg:#010203>...</>`
|
|
- feat: keep JSON formatter output unchanged and limit inline style parsing to text message rendering only
|
|
- feat: add `TextStyle`, `StyleTagRegistry`, `style_tag_registry()`, and `default_style_tag_registry()` for reusable inline style tags
|
|
- feat: add formatter-local `style_tags`, global style tag registry helpers, builtin-tag override support, and alias reuse via `define_alias(...)`
|
|
- feat: support minimal `sink.text_formatter.style_tags` JSON config parsing and serialization for custom formatter tag styles
|
|
- feat: add `StyleMarkupMode = Disabled | Builtin | Full` plus formatter helpers so callers can explicitly disable style parsing or allow builtin-only parsing
|
|
- feat: support `sink.text_formatter.style_markup` in JSON config parsing and serialization
|
|
|
|
### Test
|
|
|
|
- test: cover ANSI text formatter rendering in `Always` mode
|
|
- test: cover `Auto` mode fallback behavior when `NO_COLOR` is present
|
|
- test: cover config parsing and serialization for `color_mode`
|
|
- test: cover named inline color tags in ANSI mode
|
|
- test: cover plain mode tag stripping, nested tags, hex tags, and unknown-tag fallback behavior
|
|
- test: cover custom tags, builtin-tag override, formatter-vs-global priority, global registry fallback, and alias reuse
|
|
- test: cover formatter `style_tags` JSON parsing, config roundtrip, JSON helper export, and config-driven styled formatter rendering
|
|
- test: cover disabled markup mode, builtin-only mode, and config-driven `style_markup` behavior
|
|
|
|
### Example
|
|
|
|
- docs: add `color_mode` usage examples to formatter documentation
|
|
- docs: add runtime and JSON `style_tags` examples, and document current JSON schema scope
|
|
- docs: add runtime and JSON examples for toggling style markup parsing
|
|
|
|
### Notes
|
|
|
|
- `Auto` currently uses a conservative rule: if `NO_COLOR` exists, ANSI is disabled; otherwise ANSI is enabled
|
|
- inline style markup currently supports short close `</>` only
|
|
- unknown or invalid inline tags currently fall back to plain text and do not raise formatter errors
|
|
- formatter-local tag lookup currently takes precedence over global tag lookup, and global lookup takes precedence over builtin tags
|
|
- JSON config currently supports concrete style objects only; alias-style declarations remain runtime-only
|
|
- users can now decide whether custom style parsing is enabled through runtime formatter APIs or `sink.text_formatter.style_markup`
|