- Wordgard adalah pustaka JavaScript open-source untuk membuat editor teks kaya di browser, dibangun di atas fondasi editor baru dari pembuat ProseMirror
- Alih-alih editor HTML bentuk bebas, pustaka ini berfokus pada pengendalian struktur dokumen, sehingga pengembang dapat menentukan dengan presisi jenis konten dan struktur makna yang diizinkan
- Untuk editor kustom yang kompleks, pustaka ini menyediakan model berbasis skema dan struktur berpusat pada ekstensi, sehingga fitur dapat diganti atau dimodifikasi sesuai kebutuhan
- Basis editor ini menangani kebutuhan seperti aksesibilitas, internasionalisasi, dokumen RTL dan dwibahasa, konten terstruktur, gaya fungsional, serta pengeditan kolaboratif
- Ini adalah open-source permisif berlisensi MIT, tetapi proyek ini menyambut laporan bug dan tidak menerima pull request
Basis editor untuk mengendalikan struktur dokumen
- Wordgard adalah pustaka JavaScript open-source untuk mengimplementasikan editor teks kaya di dalam browser
- Ini bukan editor HTML bentuk bebas, melainkan sistem editor teks kaya semantik yang memungkinkan pengembang mengendalikan secara tepat jenis konten yang didukung dan struktur dokumen
- Pustaka ini menawarkan pendekatan berbasis skema agar struktur dokumen dapat didefinisikan secara rinci dan elemen dokumen kustom dapat dibuat
- Antarmuka pemrogramannya dirancang dengan tujuan generalitas dan fleksibilitas, sehingga dapat digunakan sebagai fondasi editor kustom dengan kebutuhan yang besar
Ekstensibilitas, aksesibilitas, dan fitur kolaborasi
- Sebagian besar fitur editor diimplementasikan sebagai ekstensi (extension), sehingga dapat diganti atau dimodifikasi bila tidak sesuai kebutuhan
- Fitur aksesibilitas mempertimbangkan pengguna screen reader, pengguna yang hanya memakai keyboard, dan lingkungan perangkat mobile, serta mendukung internasionalisasi UI
- Untuk lingkungan penulisan dari kanan ke kiri, Wordgard mendukung kesadaran arah baik pada konten maupun antarmuka, sehingga dapat menangani konten dwibahasa dan dokumen RTL
- Pohon dokumen dapat mencakup konten terstruktur seperti tabel, daftar bertingkat, figure dengan caption, dan struktur kustom
- Bagian besar sistem ini ditulis dengan gaya fungsional demi kejelasan dan kemudahan pengujian
- Wordgard mendukung pengeditan kolaboratif yang memungkinkan beberapa pengguna mengedit dokumen yang sama secara bersamaan dan menggabungkan hasil edit simultan
Lisensi dan pengelolaan proyek
- Lisensinya adalah MIT, dan pengembangannya berlangsung di code.haverbeke.berlin
- Laporan bug disambut, tetapi pull request tidak diterima
- Untuk diskusi proyek dan pertanyaan, disarankan menggunakan forum, dan bug harus dilaporkan ke issue tracker
1 komentar
Komentar Hacker News
Kebanyakan orang sepertinya ingin tahu “mengapa?”. Dokumen ini membahas perbedaannya dengan ProseMirror, jadi inilah jawaban yang paling mendekati pertanyaan itu: https://wordgard.net/docs/prosemirror/
Satu hal yang perlu diperhatikan adalah tidak adanya jalur upgrade. Ada banyak konsep yang sama dengan ProseMirror, tetapi untuk beralih tampaknya butuh cukup banyak pekerjaan. Obsidian berbasis CodeMirror, jadi sepertinya tidak akan beralih, tetapi tempat seperti tiptap.dev mungkin bisa terdampak
@merijn, saya penasaran apakah Anda bisa menjelaskan mengapa Wordgard cukup bernilai untuk menanggung biaya migrasinya
Edit: Saya melihat banyak isu dibahas di blog pribadi Marijn, dan mengirimkan https://marijnhaverbeke.nl/blog/wordgard-0.1.html ke HN agar konteksnya lebih baik
Namun, seperti yang dijelaskan di posting blog, saya sudah mengumpulkan cukup banyak wawasan desain baru yang bisa menghindari beberapa masalah yang saya temui di ProseMirror, sehingga saya ingin membuat iterasi baru
Saya akan menambahkan tautan posting blog ke bagian dokumentasi situs web
Dan namanya marijn, bukan merijn
Landing page tampaknya butuh lebih banyak informasi tentang “mengapa” daripada “apa”
Terlepas dari editornya, artis yang menangani desainnya benar-benar mengesankan. Sangat rapi dan langsung menarik perhatian: https://kamilastankiewicz.com/
Sekitar 25 tahun lalu, saya ingat tantangan besar untuk membuat editor WYSIWYG berjalan demi meluncurkan situs PHP-Nuke untuk koran sekolah, dan akhirnya berhasil melewatinya
Rasanya tidak masuk akal bahwa belum ada implementasi standar web untuk fitur seperti ini yang sudah lolos 15 tahun lalu
Ini terlihat sangat bagus sampai mengejutkan
Baru-baru ini saya mencari sesuatu yang mirip lalu akhirnya membuat sendiri, dengan operational transform (OT) berbasis blok yang disinkronkan ke server lokal dan sinkronisasi berbasis diff ke server jarak jauh
Saat membaca panduan sistemnya, saya terus mengangguk. Melihat kesamaan dan perbedaannya terasa cukup memvalidasi
Ada satu area yang sangat mendasar tempat semua editor gagal. Yaitu apakah Anda bisa mengetik kalimat lengkap di dalam editor dengan iPhone
Wordgard tidak lulus tes ini. Input dari auto-correct atau saran keyboard tertelan, dan kata yang baru diketik sebagian atau salah eja dihapus
Mobile Safari dan Android Chrome melakukan banyak sekali hal aneh, berbeda dari browser saudara mereka di desktop, dan memperlakukan standar dengan cukup longgar. Karena itu, agar bisa berfungsi dengan benar sering kali dibutuhkan ekor panjang kode workaround
Wordgard pada akhirnya akan sampai ke sana, tetapi fokus sebelum rilis pertama adalah arsitektur
Tidak bisa memilih teks, auto-correct rusak, mengetuk teks tidak memindahkan kursor, input berhenti, keyboard tidak hilang meski elemen kehilangan fokus, dan semacamnya
Selama beberapa dekade terakhir, sudah ada beberapa upaya untuk menambahkan elemen rich text yang layak ke web, tetapi saya tidak tahu mengapa semuanya gagal. Mungkin karena itu pekerjaan besar, kompleks, dan tidak ada imbalannya
Dukungan rich text native yang layak adalah salah satu blind spot besar web. Platform native sudah menyelesaikan masalah ini puluhan tahun lalu
Sekitar 6 tahun lalu, saya sangat kesulitan meneliti dan mengimplementasikan auto-complete sumber daya jarak jauh bergaya @, yaitu fitur untuk merujuk pengguna atau dokumen lain. Cara editor ini melakukan ekstensi terlihat seperti evolusi ProseMirror
Akan sangat bagus kalau ini menjadi fitur bawaan dasar, bukan sesuatu yang harus dibuat sendiri berdasarkan contoh dinosaurus. Setiap kali memakai library editor teks seperti ini, use case nomor satu saya adalah ini, lalu berikutnya WYSIWYG
Dukungan mobile kelas utama juga sama perlunya
Hal yang menyulitkan saat memakai ProseMirror lewat TipTap adalah sangat sering saya harus memanipulasi representasi JSON dokumen secara programatis untuk mengekstrak data. Untuk itu, saya butuh, atau setidaknya sangat menginginkan, representasi dengan tipe statis
ProseMirror tidak punya mekanisme khusus untuk ini, jadi akhirnya saya melakukan salah satu dari dua hal
Saya belum mencoba Wordgard, jadi tidak tahu apakah ini menangani masalah tersebut, tetapi saya mencatatnya sebagai titik sakit yang akan bagus jika diselesaikan
Artwork di situs webnya indah. Rasanya seperti cara menarik perhatian seperti ini sempat terlupakan
Saya tidak suka WYSIWYG di web. Anda memformat posting forum panjang dan membosankan, lalu menutup tab dan semuanya hilang
Saya lebih suka memakai editor teks lokal lalu menempelkannya ke form web dengan Ctrl+V. Kalau Markdown, itu bisa dilakukan
Saat pertama kali mengalami ini setelah tidak sengaja menutup tab, itu benar-benar kejutan yang menyenangkan
Intinya, ini bukan masalah teknis, melainkan masalah produk
Untuk aplikasi catatan, saya memutuskan memakai WYSIWYG karena tidak ada ruang untuk split view dan saya juga tidak ingin hanya melihat sumber Markdown
Keluhan terbesar saya terhadap WYSIWYG adalah ia bisa mengganggu. Misalnya saat saya membuat blok verbatim lalu tidak bisa keluar dari blok itu. Saya sedang menatap Teams saat mengatakan ini. Mungkin itu juga sebabnya saya begitu menyukai LaTeX
Senang sekali bisa melihat seni sungguhan setelah sekian lama. Enak dilihat