semvec/pypi-packages huggingface dataset:
tyx-schema 0.2.11
Safe Pydantic schema for interacting with TyX configurations
Requires Python: >=3.9

<h1 align="center">
    TyX
    <br />
    <img src="https://img.shields.io/github/v/release/tyx-editor/TyX?display_name=tag">
    <img src="https://img.shields.io/badge/license-MIT-blue.svg">
    <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg">
    <img src="https://img.shields.io/readthedocs/TyX">
    <br />
</h1>

<p align="center">
    <b>A LyX-like experience rewritten for Typst and the modern era.</b>
</p>

> [!WARNING]
> TyX is currently in early development and breaking changes
> are introduced frequently.

## Getting Started

Check out the [web editor](https://app.tyx-editor.com) or [download TyX](https://tyx-editor.com)!

## Features

### Math Editor

TyX uses MathLive to make math formula editing easy by _seeing_ the formula you're editing!

![math editor](docs/_static/math-editor.gif)

> [!NOTE]
> This is currently LaTeX-based. We are working on a Typst-based editor!

### Keyboard Shortcuts

TyX supports customizable keyboard shortcuts!

![keyboard shortcuts](docs/_static/keyboard-shortcuts.png)

### Function Calls

TyX supports an easy-to-use wrapper for Typst function calls, including types, labels and documentation for parameters!

![function calls](docs/_static/function-calls.png)

> [!TIP]
> This is how the footnote node is currently implemented!

More definitions can be added to [the functions file](src/functions.ts).

### Keyboard Map

TyX supports keyboard maps (currently only a Hebrew keyboard map has been added [in the Keyboard Map Plugin](src/components/plugins/KeyboardMapPlugin.tsx)).
This enables you to write in your language without having to switch to English every time you edit math environments!

![keyboard map](docs/_static/keyboard-map.gif)

### Typst Importing

Thanks to [contributions by Myriad-Dreamin](https://github.com/tyx-editor/TyX/commits?author=Myriad-Dreamin) you can open `.typ` files into TyX!

> [!NOTE]
> This, as well, is still a work in progress.
> Many Typst features are currently not imported correctly.

### Translations

TyX currently has translations for Hebrew! Further translations can be added via GitHub PRs
by adding a file to [the translations directory](src/translations) and adding it to [the translations file](src/translations/index.ts).

## Acknowledgements

TyX would not be possible without the following open-source libraries:

- [typst](https://github.com/typst/typst/) (Apache-2.0 License)
- [typst.ts](https://github.com/Myriad-Dreamin/typst.ts/) (Apache-2.0 License)
- [tyx2typst](https://github.com/qwinsi/tex2typst/) (Apache-2.0 License)
- [tinymist](https://github.com/Myriad-Dreamin/tinymist/) (Apache-2.0 License)
- [mathlive](https://github.com/arnog/mathlive/) (MIT License)
- [lexical](https://github.com/facebook/lexical/) (MIT License)
- [tauri](https://github.com/tauri-apps/tauri/) (Apache-2.0/MIT License)
- [mantine](https://github.com/mantinedev/mantine/) (MIT License)
- [tabler](https://github.com/tabler/tabler-icons/) (MIT License)
- [vite](https://github.com/vitejs/vite/) (MIT License)
pgturbo 1.3.7
A fast moving zero-boilerplate 2D games framework
Requires Python: >=3.6

Pygame Turbo
============

A quicker moving fork of the zero-boilerplate games programming framework
Pygame Zero, based on Pygame.

The documentation for Pygame Turbo is found here:
https://pgturbo.readthedocs.io/

The code repository for Pygame Turbo is found here:
https://github.com/Mambouna/pgturbo

The documentation for Pygame Zero is found here:
https://pygame-zero.readthedocs.io/en/stable/index.html

The GitHub of Pygame Zero is found here: 
https://github.com/lordmauve/pgzero


Switching to Pygame Turbo
-------------------------

If you've been working with Pygame Zero so far and want to use some of the
new features in Pygame Turbo, it's easy to switch over.

First, install the ``pgturbo`` pip-package::

    pip install pgturbo

If you've been running your game with the command ``pgzrun`` from the command
line, you can simply switch to running it with the command ``pgtrun`` instead.

If you've been using ``import pgzrun`` and ``pgzrun.go()`` in your main script,
you only have to change these to ``import pgtrun`` and ``pgtrun.go()``.

That's it!


Divergence to Pygame Zero
-------------------------

This is a changelog which keeps track of which changes exist in respect to the
main Pygame Zero project. If and when those features are added to Pygame Zero,
they will be removed from the running list.


New features
''''''''''''

* A proper ``mouse`` builtin to get the state of different mouse properties
  like positions, relative movements, state of buttons being pressed and
  more. Also allows changing of visibility, cursor shape and others.


Feature enhancements
''''''''''''''''''''

* Pixel perfect collision check between two actors via
  ``actor1.collidemask(actor2)``.
* Angle and target-based movement functions for Actors, similar to what is
  possible in Scratch and other environments.
* Velocity property and movement function for Actors that only move in
  straigth lines. Also includes an intercept function to calculate necessary
  velocity to meet a target actor that also has a constant velocity.
* Create Actors from simple shapes without needing an image, via
  ``Actor.Rectangle(width, height, color)``,
  ``Actor.Ellipse(width, height, color)`` and
  ``Actor.Triangle(width, height, color)``.
* Function to check if an actor is currently withing the screen bounds:
  ``.is_onscreen()``.


Bug fixes
'''''''''

* Fixed ``music.is_playing()`` requiring an argument.
* Made actor ``width`` and ``height`` read-only properties while no solution
  for scaling actors is implemented.

Integrated changes
''''''''''''''''''

These former divergences between Pygame Turbo and Pygame Zero have been
introduced to Pygame Zero itself:

None so far.