Advanced
Skrip Rhai
Gunakan mesin skrip Rhai yang tertanam untuk logika dan manipulasi tingkat lanjut.
Rhai adalah bahasa skrip sandbox yang ringan, sangat cepat, dan tertanam langsung di dalamnya Backend Rust Snipset. Ketika variabel templat standar tidak dapat menangani kasus penggunaan yang kompleks, Rhai memberi Anda kontrol terprogram penuh—dengan akses asli ke clipboard, tanggal, dan info sistem.
Sintaks yang Benar
- Waktu habis: 10 detik. Jika skrip Anda berjalan lebih lama, skrip tersebut akan menampilkan
[Script Timeout]. - Errors: Jika ada kesalahan sintaksis, maka akan ditampilkan
[Script Error: <message>].
Ekspresi Sederhana
Anda dapat menggunakan Rhai untuk matematika dasar atau manipulasi string.
#{script:"hello".to_upper()} → HELLO
#{script:get_clipboard().len().to_string() + " chars"} → 42 chars
Referensi Fungsi Bawaan
Snipset memasukkan beberapa fungsi khusus ke dalam lingkungan Rhai khusus untuk teks otomatisasi:
| Fungsi | Pengembalian | Contoh |
|---|---|---|
| `get_clipboard()` | String | `#{script:get_clipboard()}` |
| `date_format(fmt)` | String | `#{script:date_format("yyyy-MM-dd")}` |
| `add_days(n)` | String (tanggal ISO) | `#{script:add_days(7)}` |
| `is_weekend()` | Boolean | ` #{script:if is_weekend() {"Yes"} else {"No"}} ` |
| `get_user_name()` | String | `#{script:get_user_name()}` |
Logika Bersyarat
Rhai supports standard if / else blocks. This is useful for snippets that change berdasarkan konteks, seperti hari dalam seminggu.
`
#{script:if is_weekend() {"Enjoy your weekend! "} else {"Have a productive day! "}
}
`
Menggabungkan dengan Variabel Lain
Rhai dievaluasi di awal alur Snipset. Ini berarti Anda dapat menyarangkan variabel Snipset lainnya di dalam skrip Rhai. Namun, cara paling ampuh untuk memanipulasi data adalah dengan menggunakan Rhai native functions (like get_clipboard()) instead of nesting #{clipboard}.
Keterbatasan dan Keamanan
- Kotak Pasir: Rhai berjalan di lingkungan kotak pasir yang ketat. Ia tidak memiliki sistem file mengakses dan tidak dapat melakukan panggilan jaringan. (Gunakan Ollama untuk tugas AI).
- No Imports: There is no
importorrequiremodule mendukung. Semua kode harus sebaris. - Batas Perulangan: Perulangan memiliki jumlah perulangan maksimum untuk mencegah komputer Anda membeku karena loop tak terbatas yang tidak disengaja.
- Output Teks Biasa: Output skrip Rhai diperlakukan sebagai string biasa. Dia cannot output another
#{variable}and expect it to be evaluated.