FiturHargaBlogDownload

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

Penting: Sintaks yang benar untuk memanggil skrip Rhai adalah `#{script:expression}`. Do NOT use `#{rhai:expression}`. Using the `rhai:` prefix will fail.
Saat Snipset mengevaluasi variabel, ia menjalankan seluruh ekspresi sebagai skrip Rhai. Kembalinya value (hasil ekspresi terakhir) adalah apa yang dimasukkan ke dalam cuplikan Anda.
  • 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:2 + 2}` → `4`

#{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.

Snipset:
    `
      #{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}.

Benar (Asli): `#{script:get_clipboard().replace("old", "new")}`

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 import or require module 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.