Metadata-Version: 2.5
Name: pygments-lexer-pseudocode-i18n
Version: 0.2.0
Summary: Python-inspired Pygments lexer for multilingual educational pseudocode
Project-URL: Homepage, https://rod2ik.gitlab.io/pygments-lexer-pseudocode-i18n/
Project-URL: Documentation, https://rod2ik.gitlab.io/pygments-lexer-pseudocode-i18n/
Project-URL: Repository, https://gitlab.com/rod2ik/pygments-lexer-pseudocode-i18n
Project-URL: Issues, https://gitlab.com/rod2ik/pygments-lexer-pseudocode-i18n/-/issues
Author: Rod2ik
License: GPL-3.0-or-later
License-File: LICENSE
Keywords: education,i18n,lexer,pseudocode,pygments
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Education
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: pseudocode-i18n<0.3,>=0.2.1
Requires-Dist: pygments>=2.18
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: mkdocs-material>=9.6; extra == 'dev'
Requires-Dist: mkdocs<2,>=1.6; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.12; extra == 'dev'
Description-Content-Type: text/markdown

# pygments-lexer-pseudocode-i18n

Reusable Pygments highlighting for the multilingual educational pseudocode language defined by `pseudocode-i18n`.

Version 0.2.0 is designed for:

```text
pseudocode-i18n >= 0.2.1, < 0.3
```

The lexer intentionally maps pseudocode concepts onto Python-like Pygments token families, while consuming the shared language definitions instead of maintaining a duplicate grammar.

## Installation

```bash
python -m pip install pygments-lexer-pseudocode-i18n
```

## Aliases

Generic:

```text
pseudocode
pseudo
```

Language-specific:

```text
pseudocode-fr / pseudo-fr
pseudocode-en / pseudo-en
pseudocode-es / pseudo-es
pseudocode-de / pseudo-de
pseudocode-it / pseudo-it
pseudocode-pt / pseudo-pt
```

## Example

```python
from pygments import highlight
from pygments.formatters import HtmlFormatter
from pygments_lexer_pseudocode_i18n import PseudocodeFrenchLexer

source = '''\
Pour note Dans notes:
    Si note >= 10:
        Afficher note
'''

html = highlight(source, PseudocodeFrenchLexer(), HtmlFormatter())
```

## Shared configuration

The generic lexer can use the same `pseudocode.config.yml` project configuration as `pseudocode-i18n`:

```yaml
language: fr
languages:
  fr:
    keywords:
      display:
        add:
          - Montrer
```

Language-specific lexers keep their explicit language while still consuming that language's project overrides.

## Development

```bash
yarn setup
yarn bfc
```

`yarn bfc` synchronizes the version, lints, tests, regenerates/checks the documentation, builds MkDocs strictly, and builds the Python package.

## Release workflow

Normal publication:

```bash
push "message"
```

updates `main` and GitLab Pages only.

Release publication:

```bash
push "release 0.2.0" --release
```

also pushes the version tag. The tag pipeline verifies the tag/version match, publishes PyPI, and creates an actual GitLab Release.

## Documentation policy

Documentation is part of every code/configuration/workflow change. The documentation is structured under `site/` into Installation, Configuration, exhaustive Usage (including one generated page per language), Development, and Reference sections.

## License

GNU General Public License v3 or later (`GPL-3.0-or-later`).
