A Typst Editor for iPad
Important
Typstify is currently NOT in active development as my other projects and school works has a relatively higher priority. But, I am still working on Typstify bit by bit.
- @Cubik65536 (Developer)
Important
Typstify is currently in development and not yet recommended for production use. You can test-drive the current in development version by building the app on your own and run it.
The app is not available on App Store or TestFlight yet. As there's major issues related to performance and some important feature are not refined, there's currently no plan to release this app on App Store or TestFlight.
Typst, designed as an alternative for LaTeX, can be very useful for students for taking notes due to its simplicity. However, it is difficult to draw quick sketches. It is possible for drawing stuff in Typst, but they are often too complicated when a precise figure is not needed (e.g. when we want to draw a quick visual representation of some math concepts). Typstify is designed to meet the needs of being able to draw anything and insert it into the Typst document by integrating PencilKit into the app.
- Basic Typst Editing
- Real-Time PDF Preview
- Real-Time Syntax Error Check
- Access to Online Packages
- Image Insertion
- Syntax Highlighting
- Sketching
- Drag-and-Drop Support
- PDF Export
- Project Import/Export
- Templates Support
- Support for Additional Fonts
- macOS Ventura 13.5 or later
- Rust 1.80.0 or later
- cargo-lipo
- Xcode 15.0 or later
- iPadOS 17.0 or later
Open the Xcode project via Typstify/Typstify.xcodeproj
, and then build.
src
contains all Rust codes for using Typst library in Swift.
Typstify
contains all codes and resources for the iPadOS app.
If you just need to build the Rust module and the bridge, run PROJECT_DIR="${PWD}/Typstify" ./Typstify/build-rust.sh
in the project root.
As of now, some help are needed to get the application into an usable state:
- an app icon is missing
- features are not completed and bugs has to be fixed
- code optimization is needed
and all contribution related to solving these problems are very welcomed!
This project relies on these open source projects:
- Typst Libraries for Typst related functionality such as Typst document rendering and syntax check.
- tfachmann/typst-as-library for providing a wrapper around the Typst Library.
- chinedufn/swift-bridge for enabling Swift-Rust interoperability.
- mchakravarty/CodeEditorView: A SwiftUI code editor view for iOS, visionOS, and macOS
- mchakravarty/ProjectNavigator: A SwiftUI project navigation view for macOS and iOS
Some fonts are embedded into typst-library-swift
for rendering the document. This might change when further font support is added. All the embedded fonts are licensed under the SIL Open Font License, they are:
- CMU* Concrete
- CMU* Sans Serif
- CMU* Serif
- CMU* Typewriter
- IBM Plex Mono
- IBM Plex Sans
- IBM Plex Serif
- STIX Two Math
- LXGW WenKai Mono Lite
* CMU stands for Computer Modern Unicode, which is a derivative of the Computer Modern font family.
By default, the fonts always falls backs to:
- STIX Two Math for mathematical formulas
- IBM Plex Mono for raw text (e.g. code)
- IBM Plex Sans and LXGW WenKai Mono Lite for normal text (LXGW WenKai Mono Lite is used for characters that are not supported by IBM Plex Sans, such as Chinese characters)