lazerwalker / tracery-dot-app

Native desktop app for experimenting with Tracery grammars
MIT License
12 stars 1 forks source link

Tracery.app

Linux Build Status Windows build status

This is a simple desktop editor/IDE for Tracery.

The app

As you edit your Tracery grammar on the left, it'll live-reload new example texts on the right.

Download It!

To download the latest release, go to the GitHub Releases Tab in this repo. Right now, Tracery.app is only available for macOS.

Windows and Linux builds are coming very soon. In the meanmwhile, Windows/Linux users can follow the development setup instructions below to build your own copy of the app.

Current Status

It's very early prerelease! Please open issues or tweet at me (https://twitter.com/lazerwalker) if you encounter any issues. I'm particularly interested in feedback about Windows or Linux builds, as I've only really tested on macOS.

Some features include:

Worth noting: although Tracery's documentation suggests you can embed JavaScript code within your Tracery grammar (e.g. { letters: "a b c".split(" ") }), this app only supports strict JSON for security purposes. This is a common tradeoff for Tracery-based tools; if you're used to using something like Cheap Bots Done Quick, you'll likely not even notice this.

Contributing

Contributions are welcome!

Tracery.app is built using Electron, which means it's a JavaScript webapp bundled up within a native shell. Specifically, it's built using TypeScript and React, with Electron Forge to manage the build process.

Yes, Electron apps are relatively unperformant compared to building proper native apps. Have that discussion elsewhere :)

To get a dev environment up and running:

  1. Clone this repo
  2. Yarn install
  3. electron-forge start will spin up a dev copy of the app with an inspector attached.
  4. electron-forge make will compile you a full generated app binary for your current platform. If you're on a Mac, you'll either need to set up codesigning and notarization (documentation coming soon) or disable both of those by going into package.json and removing the osxSign and osxNotarize keys/objects from the config -> forge -> electronPackagerConfig subobject.

For more info on dev tooling, check out the Electron Forge documentation

License

This project is licensed under the MIT License. See the LICENSE file in this repo for more information.

Contact Info

https://github.com/lazerwalker https://twitter.com/lazerwalker