Otomatisasi Skrip Pengisi Placeholder Template
Pendahuluan
Seorang pengguna bertanya apakah ada yang telah membuat ulang skrip Populate Template Placeholders untuk fungsionalitas otomatisasi OmniFocus yang baru. Beberapa pengguna merespons dengan solusi dan variasi.
Solusi dengan FilePicker dan TypeIdentifier
Berikut adalah contoh kode yang menggunakan FilePicker dan TypeIdentifier untuk memilih file TaskPaper dan mengekstrak placeholder:
var picker = new FilePicker()
pickers = false
pickerle = false
var aType = new TypeIdentifier("taskpaper")
picker = [aType, TypeIdentifierext]
var pickerPromise = picker()
pickerPromise(urlArray => {
var fileURL = urlArray[0]
fileURL(data => {
var importedText = datang()
var openTag = "«"
var closeTag = "»"
var expression = new RegExp(openTag + ".*?" + closeTag, "g")
var placeholders = importedText(expression)
if (placeholders != null && placeholders > 0){
var placeholders = Array(new Set(placeholders))
console(placeholders)
} else {
console("Imported text contains no placeholders.")
}
})
})Catatan: Kelas FileType telah diganti nama menjadi TypeIdentifier, namun istilah lama masih berfungsi.
Mengelola Template dalam OmniFocus
Beberapa pengguna lebih suka menyimpan template di dalam OmniFocus daripada di file eksternal. Keuntungannya adalah template akan diperbarui secara otomatis saat struktur proyek atau tag berubah. Namun, kesulitan muncul saat ingin menetapkan tanggal secara cerdas.
Menangani Tanggal dan Defer
Untuk menetapkan tanggal, pendekatan yang disarankan adalah menggunakan tanggal predikat (misalnya 01/01/2045) sebagai acuan. Saat skrip dijalankan, tanggal tersebut akan digeser ke tanggal yang dimasukkan pengguna. Contoh: jika tanggal predikat adalah 8/5/2021, maka tanggal 31/12/2044 akan menjadi 4/8/2021 di proyek yang dihasilkan.
Kustomisasi Skrip
Untuk mengizinkan skrip dipanggil meskipun ada item yang dipilih, ubah baris return tasks == 0 && projects == 0; menjadi return true. Untuk menyembunyikan folder template, tetapkan folder dengan pengenal tertentu menggunakan Foldertifier('xxxxxx') atau atur tanggal defer/due jauh ke masa depan agar tidak muncul di tampilan.
Kesimpulan
Thread ini menyediakan berbagai pendekatan untuk mengotomatiskan pengisian placeholder template di OmniFocus, baik melalui file eksternal maupun template internal, serta cara menangani offset tanggal.
Platform Lainnya
Berita Piala Dunia
Jika Anda memiliki pertanyaan, silakan kirim email ke [email protected]