wagtail-typst
sekarang bisa membuat content wagtail menggunakan typst
Sejak versi 0.15.0 typst menyediakan fitur ekspor ke html yang mendukung MathML. Dengan fitur ini kita bisa membuat html dokumen menggunakan sintaksis typst.
Wagtail-typst adalah package yang bisa digunakan di wagtail untuk memanfaatkan hal ini. Tersedia TypstField dan TypstBlock.
TypstField dapat digunakan pada model halaman wagtail Page:
from wagtail.models import Page
from wagtail.admin.panels import FieldPanel
from wagtail_typst.fields import TypstField
class ArticlePage(Page):
body = TypstField(blank=True)
content_panels = Page.content_panels + [FieldPanel("body")]Sedangkan TypstBlock digunakan pada blok StreamField.
from wagtail.fields import StreamField
from wagtail.models import Page
from wagtail_typst.blocks import TypstBlock
class ArticlePage(Page):
body = StreamField(
[
("typst", TypstBlock()),
# ... your other blocks
],
use_json_field=True,
)detail penggunaan ada pada repository wagtail-typst.
Beberapa contoh fitur typst
Matematika
Euler
$ e^(i pi) + 1 = 0 $
Pecahan, akar
$ x_(1,2) = (-b plus.minus sqrt(b^2 - 4a c)) / (2a), quad
f'(x) = lim_(h -> 0) (f(x+h) - f(x)) / h $
Vektor, matriks
$ vec(1, 2, 3) quad
mat(1, 0, 0; 0, cos theta, -sin theta; 0, sin theta, cos theta) quad
abs(x) = cases(x "if" x >= 0, -x "if" x < 0) $
Kalkulus
$ integral_0^oo e^(-x^2) dif x = sqrt(pi)/2 $ \
$ lim_(n -> oo) (1 + 1/n)^n = e $ \
$ (dif y)/(dif x) = lim_(h -> 0) (f(x+h) - f(x))/h $Euler
Pecahan, akar
Vektor, matriks
Kalkulus
tabel
#table(
columns: 3,
table.header([Framework], [Bahasa], [Backend]),
[Candle], [Rust], [CUDA, Metal],
[Burn], [Rust], [WGPU, tch],
[tch-rs], [Rust], [libtorch],
)| Framework | Bahasa | Backend |
|---|---|---|
| Candle | Rust | CUDA, Metal |
| Burn | Rust | WGPU, tch |
| tch-rs | Rust | libtorch |
kode
```rust
fn main() {
let x: Vec<f64> = (0..10).map(|i| (i as f64).sqrt()).collect();
println!("{x:?}");
}
```fn main() {
let x: Vec<f64> = (0..10).map(|i| (i as f64).sqrt()).collect();
println!("{x:?}");
}