Yub.js adalah baris perintah web sisi klien yang dapat diperluas yang dilengkapi dengan banyak mesin pencari dan pintasan yang berguna, perintah yang dapat digunakan kembali, dan banyak fitur tersembunyi lainnya seperti stopwatch dan video YouTube sebaris. Ia juga memiliki API yang fleksibel sehingga Anda dapat memanggil perintah yub.js dari mana saja: misalnya, Anda dapat menautkan langsung ke perintah, atau mengaksesnya langsung dari bilah alamat browser Anda (cukup siapkan satu pintasan pencarian yang mengarah ke yub.js API, dan dapatkan ratusan pintasan pencarian lainnya secara gratis).
Semuanya dirancang sejak awal untuk menjadi satu halaman dokumen html mandiri yang berisi segala sesuatu yang diperlukan untuk bekerja di luar kotak. Itu dapat diinstal secara lokal dan dijalankan langsung dari komputer Anda tanpa memerlukan server atau hosting web. Sejak itu, ia telah berkembang pesat dan pengembangan telah dipecah menjadi file-file terpisah yang lebih mudah dikelola. Versi halaman html mandiri masih tersedia, meskipun sekarang dibuat secara otomatis oleh skrip Ruby, dan hadir dalam versi yang diperkecil dan versi sumber. Simpan saja halaman tersebut langsung ke komputer Anda atau letakkan di server Anda dan Anda siap berangkat!
Daftar mesin pencari yang tersedia sepenuhnya modular: Anda dapat memasukkan daftar situs web yang sering dikunjungi dengan mengedit atau mengganti file mods.js (json). Membuat perintah baru itu mudah -- cukup gunakan perintah create
(dengan nama perintah baru sebagai argumen opsional). Jangan ragu untuk menambahkan fungsi baru Anda atau memperluas fungsi yang sudah ada dengan mengedit functions.js
. Oh, dan ekspresi reguler didukung di mana saja secara default.
Cara terbaik untuk memahami cara kerja yub.js adalah dengan langsung mencoba perintah. Jadi sebelum masuk ke hal-hal membosankan seperti sejarah atau internal, mari kita lihat beberapa perintah keren yang bisa Anda coba segera.
list
atau ls
http://commandlinefu.com/
atau ftp://ftp.mozilla.org/
!
di depan URL apa pun untuk langsung membuka situs, misalnya: !smh.com.au untuk membuka Sydney Morning Heraldg [searchterm]
untuk Pencarian Google vanilla biasa. Atau Anda mungkin lebih suka menggunakan y
, b
, ix
, atau sp
help
atau man
(opsional sertakan perintah bantuan yang Anda inginkan sebagai argumen, misalnya help shuffle
)calc 857*2^3
: menyelesaikan rumus matematika sederhanacalc (25+2)==(28-1)
: uji kesetaraancalc ~32.56
: angka bulatrand 550
: mengembalikan nomor acak antara 0-550rand site
: buka situs web acakrand img
: menampilkan gambar acakrand git
: kunjungi proyek GitHub acakwatch ninja cat
: tonton playlist tersemat dari hasil video YouTube untuk istilah pencarian "ninja cat"link flint tigers
: dapatkan tautan permanen ke perintah flint harimau (yang menelusuri flickr untuk gambar harimau yang diurutkan berdasarkan "ketertarikan")fspell sometext
: menulis suatu teks dengan gambar flickrascii sometext
: tulis _sometext dalam seni asciiwhere gn
: menampilkan kata kunci dan alamat pencarian default untuk perintah gn> am Alice in Wonderland
: langsung ke hasil pencarian Google pertama untuk istilah "Alice in Wonderland" di Amazon.com> wpde Turing complete
: baca artikel tentang "Kelengkapan Turing" di Wikipedia bahasa Jermancat engadget.com
: menampilkan versi halaman web hanya teks di engadget.compop bbc gn yn bn
: memunculkan tab individual dengan BBC News, Google News, Yahoo News, dan Bing News, semuanya dalam satu perintahpop gim yim bim -t horses
: pop up tab baru yang menampilkan hasil pencarian gambar kuda di Google, Yahoo, dan Bing Catatan: untuk menggunakan perintah pop
Anda mungkin perlu menyiapkan pengecualian di pemblokir pop-up browser Anda untuk yub.js
Mesin pencari default disimpan di file engine.js. Ini berisi beragam pintasan web untuk tujuan umum, mesin pencari, sumber berita, dan hal menarik lainnya yang menunjukkan fitur dasar yub.js dan akan memberi Anda gambaran tentang jenis pintasan apa yang mungkin berguna untuk kebutuhan Anda.
Hal-hal yang dapat Anda temukan di engine.js adalah: mesin pencari utama (Google, Yahoo, Bing... dll) dan berbagai produk terkaitnya (gambar, video, peta, berita, cuaca, terjemahan mesin), Wikipedia dan berbagai produknya Situs sejenis Wikimedia (Wiktionary, Wikiquote, Wikinews... dll), pilihan organisasi berita besar (BBC, Deutsche Welle, France 24... dll), penyedia email web utama (Gmail, Yahoo, Hotmail... dll), dokumentasi untuk beberapa bahasa skrip populer (Bash, JS, PHP, Python, Ruby), dan banyak situs dan alat berguna lainnya (Down For Everyone Or Just Me?, Whois, What Is My Ip?... dll). Panduan lebih rinci dapat ditemukan di wiki.
Manfaat bagus menggunakan pintasan yub.js adalah https digunakan secara default bila memungkinkan (yaitu di mana pun yang didukung).
Semua tautan dan pintasan khusus masuk ke mods.js untuk kenyamanan. File ini sepenuhnya opsional, jadi Anda dapat memasukkan dan mengeluarkannya sesuka Anda. Anda tidak memerlukan file mods.js untuk menggunakan yub.js .
File mods.js raksasa yang ditemukan di repositori hanyalah contoh untuk tujuan mendemonstrasikan berbagai fitur yub.js, seperti pencarian regex unicode, serta berbagai situs pencarian lokal dan hal menarik lainnya yang dapat Anda pilih. kegunaanmu sendiri. Pada entri 106 Kb / 870+ (saat tulisan ini dibuat) ini juga menunjukkan bahwa bahkan dengan daftar pintasan khusus yang sangat banyak, yub.js berjalan dengan lancar tanpa ada penurunan kecepatan yang nyata.
Beberapa contoh hal-hal yang dibuang sembarangan ke dalam contoh file mods.js:
ebin
untuk eBay India, atau amuk
untuk Amazon UK)enes
untuk kamus Inggris-Spanyol, dan esen
untuk kamus Spanyol-Inggris; enko
dan koen
untuk bahasa Korea, enfr
dan fren
untuk bahasa Prancis, dll.Satu hal yang perlu diperhatikan adalah bahwa beberapa situs yang sangat menarik tidak dimasukkan ke dalam engine.js dan bahkan mods.js untuk menjaga pintasan default berguna secara umum . Tapi jangan takut, Anda masih bisa menambahkannya ke file mods.js Anda! Berikut beberapa hal yang mungkin Anda pertimbangkan untuk ditambahkan untuk menyesuaikan mods.js:
cl
atau kj
untuk lokasi yang Anda inginkan dan letakkan di mods.jshttp://www.xe.com/ucc/convert.cgi?Amount=%s&From=[CURRENCY1]&To=[CURRENCY2]
(ganti [CURRENCY1]
dan [CURRENCY2]
dengan kode tiga huruf untuk mata uang pilihan Anda ) Dukungan tema tersedia dalam bentuk file css khusus yang dimuat melalui perintah skin
. Skin pada dasarnya hanyalah file css (terletak di folder /css
), dan dapat dimuat dengan memasukkan perintah skin
dan nama skin (tidak perlu menambahkan ekstensi .css
).
Untuk kembali ke skin default, ketik saja skin default
. Untuk menghapus semua css, gunakan skin none
.
Skin saat ini tidak bertahan di seluruh sesi yub (ini memerlukan pengaturan cookie, yang sejauh ini telah berhasil kami hindari), namun Anda dapat mengubah tautan/bookmark ke instance yub.js Anda menjadi sesuatu seperti https://dohliam.github.io/yub/?skin%20terminal
untuk selalu memulai yub.js dengan skin tertentu dimuat. Atau, setelah Anda memutuskan skin yang ingin Anda jadikan default untuk instalasi lokal Anda, cukup ganti namanya menjadi default.css
(Anda dapat mengganti nama file default.css
asli menjadi old.css
atau serupa jika Anda tidak ingin menimpanya dia). File baru Anda akan dimuat sebagai default saat berikutnya Anda membuka yub.js.
Untuk membuat skin baru, copy saja salah satu file skin yang ada ke file baru misal mynewskin.css
dan sesuaikan sesuka hatimu! (Dan jangan lupa untuk menambahkan skin khusus Anda ke galeri skin di wiki sehingga orang lain dapat menikmatinya!)
Berikut beberapa screenshot skin yang disertakan dengan yub.js:
bawaan :
terminal :
danau gunung :
sinar :
kaki langit :
tidak :
Tentu saja Anda tidak perlu menginstal yub.js untuk mulai menggunakannya. Untuk pencarian satu kali, Anda dapat dengan mudah menggunakan versi terbaru yub.js yang dihosting di sini di GitHub. Semuanya dilakukan sepenuhnya di sisi klien, sehingga tidak ada pertanyaan Anda yang dikirim melalui jaringan.
Anda bahkan dapat menggunakan API untuk menjadikan versi GitHub sebagai pencarian default untuk browser Anda. Namun, jika Anda menggunakan API, perintah apa pun yang Anda masukkan akan terlihat (misalnya, di log server GitHub), jadi Anda mungkin lebih memilih untuk menyiapkan yub.js versi lokal dan menjalankannya sepenuhnya secara offline (atau di situs Anda sendiri ).
Ada panduan terperinci di wiki tentang cara menjadikan yub.js sebagai mesin pencari default Anda. Anda dapat menemukan petunjuk langkah demi langkah tentang cara menyiapkan yub.js untuk Chrome/Chromium dan Firefox (jika Anda menggunakan browser lain dan dapat menginstal yub.js, harap pertimbangkan untuk menambahkan langkah-langkah yang Anda ambil ke panduan) .
Satu hal yang perlu dipertimbangkan saat memasang yub.js apakah Anda ingin mengaturnya sebagai pencarian kata kunci atau menggunakannya sebagai mesin pencari default Anda. Manfaat mengaturnya sebagai default adalah pada dasarnya menjadikan bilah URL browser Anda sendiri menjadi baris perintah web.
Salah satu fitur yub.js yang paling berguna adalah API-nya yang mudah digunakan, yang berfungsi baik di laptop maupun di server. Cukup arahkan tautan, bookmark, atau pencarian kata kunci di URL yub.js Anda dan tambahkan ?
ditambah perintah atau istilah pencarian Anda untuk langsung menuju ke hasilnya.
Contoh 1:
http://example.com/yub
http://example.com/yub?weather tokyo
Contoh 2:
file:///home/user/yub/index.html?rand site
Anda dapat menyematkan yub.js di halaman web mana pun dan mendapatkan baris perintah web fungsional yang terlihat seperti ini:
Cukup salin kode berikut dan sertakan di mana saja pada halaman:
<form method="get" action="#" onsubmit="window.location='https://dohliam.github.io/yub/?'+window.yub.value; return false"><img src="yub.gif" /> <input id="yub" type="text" size=27 value="yub.js web command-line" autocomplete="off" style="border-style: none none solid; color:gray; font-family:monospace;" onfocus="this.value=''; this.style.color='black'" onblur="if (this.value=='') {this.value='yub.js: enter commands here';this.style.color='gray'}"> <input style="visibility: hidden" type="submit" value="" />
Mungkin ada cara yang lebih elegan untuk melakukan hal ini, tetapi setelah beberapa pengujian sepertinya ini adalah satu-satunya cara yang berfungsi baik di Firefox dan Chrome. Jangan ragu untuk bereksperimen dan membuka permintaan tarik jika Anda menemukan sesuatu yang lebih baik!
Masih banyak sekali fitur yang belum diimplementasikan. Sebisa mungkin, fungsionalitas baru yang direncanakan dan fitur yang diminta dilacak di pelacak masalah. Jika Anda punya ide, lanjutkan dan tambahkan (atau potong proyek dan buat permintaan tarik)!
Akan luar biasa melihat berkas mods.js khusus milik semua orang -- tautan ke berkas ini dapat dibagikan di wiki, meskipun repositori terpisah adalah kemungkinan lain di masa mendatang jika daftarnya cukup besar. Sementara itu, beri tahu saya jika Anda memiliki file mods.js yang ingin Anda bagikan -- terutama jika file tersebut disusun berdasarkan tema tertentu (misalnya, koleksi situs media sosial, surat kabar Swedia, database penelitian, alat untuk sejarawan, atau ahli biologi kelautan... dll).
Beberapa fitur terencana yang masih dalam pengerjaan:
watch
, tetapi untuk musik)Jika Anda ingin berkontribusi untuk menambahkan salah satu fitur ini (atau fitur lain yang belum terpikirkan oleh saya), silakan kirimkan permintaan penarikan.
Dahulu kala (tepatnya tahun 2005), sebuah situs web inovatif bernama YubNub diluncurkan yang memungkinkan pengguna untuk menulis perintah dan pintasan mereka sendiri untuk berbagai layanan web. Ide mengakses situs web dengan perintah singkat seperti bash cukup menarik dan benar-benar membuat ketagihan, dan dengan cepat menghasilkan segala macam alat kreatif seperti split dan gimyim . Bersama dengan banyak perintah lainnya, saya membuat banyak perintah dan menggunakan situs ini cukup banyak untuk sementara waktu.
Namun, ada satu hal yang tidak masuk akal -- mengapa ada orang yang ingin memfilter setiap penelusuran yang mereka lakukan melalui situs web (lainnya) pihak ketiga? Bagaimanapun, segera setelah fungsi pencarian kata kunci Firefox dikenal luas, daya tarik menggunakan pintasan YubNub mulai memudar -- lebih mudah untuk hanya mengatur kata kunci Firefox lokal untuk pencarian paling umum dan kemudian menggunakannya. Jadi file bookmark yang berisi lusinan perintah YubNub sebelumnya dalam bentuk kata kunci pencarian berpindah dari komputer ke komputer, bertahan selama hampir satu dekade sebelum menjadi jelas bahwa sistem ini juga terlalu kikuk, lambat dan tidak praktis (misalnya, akses dari komputer lain menyusahkan, dan memperbarui daftar di seluruh komputer juga tidak menyenangkan). Yang lebih buruk lagi, metode ini juga melewatkan banyak fungsi perintah non-pencarian menarik yang ditawarkan YubNub.
Sembilan tahun kemudian, kunjungan ke YubNub mengungkapkan bahwa layanan tersebut masih berjalan, dan menurut Wikipedia, bahkan terdapat lebih dari 22.000 perintah yang dikontribusikan pengguna... pada tahun 2008. Melihat daftar perintah membawa kita pada kesimpulan yang mengecewakan bahwa layanan yang dulunya luar biasa telah dibanjiri oleh ribuan entri spam, menghambat rasa kebersamaan yang tersisa ( baris perintah sosial ) yang pernah menjadi salah satu hal paling menawan di situs ini.
Yang lebih mengecewakan lagi, banyak perintah paling keren (misal, split , gimyim ) bahkan tidak berfungsi lagi. Tentu saja, hal ini tidak terlalu mengejutkan -- arsitektur web telah banyak berubah sejak tahun 2005. (Dalam kasus perpecahan, hal ini terjadi karena memuat situs web dalam bingkai sudah tidak lagi menjadi hal yang normal dan dapat diterima untuk dilakukan, dan juga, seperti yang ditunjukkan oleh gimyim , karena Google dan Yahoo -- serta hampir semua situs web besar lainnya -- kini secara aktif mencegah upaya memuat konten mereka dari situs eksternal). Gelandangan.
Yub.js dimulai sebagai upaya untuk mendapatkan kembali beberapa fungsi baris perintah YubNub lama dalam aplikasi sisi klien yang sepenuhnya dapat diubah atau disesuaikan oleh siapa pun agar sesuai dengan kebutuhan mereka dan kemudian dijalankan di mesin lokal mereka -- atau dijatuhkan ke cloud atau ke server pribadi dan akses dari mana saja.
Meskipun saya sudah memikirkan ide ini selama bertahun-tahun, ide ini selalu menjadi impian belaka, karena saya bahkan tidak yakin apakah mungkin melakukan sebagian besar hal yang ingin saya lakukan dengan JavaScript. Akhirnya saya membuat halaman html kecil untuk mengarahkan pertanyaan ke beberapa mesin pencari umum dan lahirlah "yubSearch".
Namun, segera menjadi jelas bahwa pintasan penelusuran saja tidak cukup. Perintah sederhana untuk mencari daftar pintasan diikuti dengan perintah lain untuk mencetak tanggal dan waktu, menampilkan deskripsi setiap pintasan, dan mengurutkan teks. Kalkulator telah ditambahkan, dan kemudian stopwatch. Ketika perintah-perintah baru berkembang dari potongan-potongan kode dan solusi dari berbagai tempat, menjadi sebuah tantangan untuk melihat apa yang dapat digabungkan dengan JavaScript murni saja. Ini bukan lagi sekadar pintasan penelusuran -- sehingga yubSearch menjadi yub.js.
Pengembangan telah berjalan dengan sangat cepat, dengan fungsionalitas baru ditambahkan kapan dan sesuai kebutuhan. Sejak awal, yub.js menjadi semacam lingkungan pengembangannya sendiri, dan terdapat alat referensi bawaan untuk JavaScript (serta bahasa skrip populer lainnya), linter, dan sintaks pembuatan perintah internal yang telah membantu membuat pengembangan umum tugas-tugas yang berhubungan dengan lebih mudah.
Pada titik tertentu, yub.js memiliki kehidupannya sendiri. Meskipun Turing belum sepenuhnya selesai, Turing menjadi sangat dekat ketika sebuah patch direncanakan untuk menambahkan Eliza sebagai mesin untuk merespons permintaan percakapan...
Yub.js terus dikembangkan dalam JS murni tanpa menggunakan framework atau perpustakaan eksternal. Meskipun banyak fungsi menarik yang dapat ditambahkan menggunakan skrip sisi server, kerangka kerja, dan perangkat pengkodean canggih lainnya, tujuan utamanya selalu adalah portabilitas dan daya tanggap -- Anda dapat meletakkan yub.js secara virtual di mana saja: desktop, a server, ChromeBook, bahkan ponsel, dan cara kerjanya hampir sama persis. Hal ini telah terbukti menjadi penyelamat pada perangkat seluler yang bahkan penelusuran sederhana (apalagi penelusuran yang lebih canggih) terkadang bisa menjadi sangat kikuk dan membuat frustrasi untuk digunakan -- dan ketika situs web seluler sering kali menyembunyikan atau mengecilkan fitur-fitur dasar seperti penelusuran.
Namun, seperti disebutkan di atas, kode tersebut benar-benar dibuat dari suku cadang tanpa (hingga baru-baru ini) pemikiran untuk membuatnya terlihat cantik , apalagi terstandarisasi atau efisien . Namun demikian, semuanya berjalan dengan kecepatan luar biasa, berkat ukuran file yang relatif kecil dan manfaat menjalankan sepenuhnya di sisi klien.
Bisakah ini lebih cepat? Sangat! Tidak diragukan lagi masih banyak pekerjaan yang harus dilakukan untuk mengoptimalkan dan mempercantik basis kode yang ada (yang memang cukup jelek). Akankah rata-rata pengguna menyadari peningkatan ini? Sulit untuk mengatakan hal ini -- lagipula, perbedaan antara waktu respons sesaat dan waktu respons setengahnya mungkin cukup sulit untuk dibedakan. Sebagian besar tugas individu yang ditangani JavaScript pada waktu tertentu sangatlah sepele (membuat daftar, mengalihkan ke URL), sehingga kecepatan jarang menjadi perhatian selama penggunaan sebenarnya.
Di sisi lain, jika hal-hal yang lebih lambat dari yang seharusnya mengganggu Anda pada prinsipnya , Anda mungkin ingin melihat bagian selanjutnya.
Penggemar sinkronisasi cloud : Jika Anda masih bertanya-tanya apa gunanya semua ini ketika Anda bisa menggunakan Firefox Sync atau masuk ke Chrome dengan Akun Google Anda, maka yub.js mungkin bukan untuk Anda.
Manajer bookmark : Opsi sinkronisasi cloud untuk hampir semua browser utama kini ada di mana-mana, dan jika bukan salah satu dari layanan tersebut, Anda selalu dapat mencadangkan file bookmark di server di suatu tempat dan menyelesaikannya. Jika cara tersebut berhasil untuk Anda, bagus -- namun rasa frustrasi terhadap pendekatan ini lah yang menyebabkan yub.js muncul.
Pengikut kode yang elegan : Seperti disebutkan sebelumnya, kode ini cukup jelek saat ini -- tentu saja tidak disengaja, tetapi karena setiap fitur baru telah ditambahkan karena beberapa kebutuhan yang mendesak, kludges, dan segala macam loop brute force yang tidak efisien berlimpah. Mudah-mudahan hal itu akan berubah seiring berjalannya waktu karena kode tersebut (perlahan-lahan) difaktorkan ulang. Namun jika kode jelek menyinggung perasaan Anda, sebaiknya alihkan pandangan Anda.
Pembenci eval : Jika Anda yakin bahwa eval itu jahat dalam keadaan apa pun (bahkan saat menguraikan ekspresi matematika yang sudah disterilkan)... maka Anda mungkin ingin menghapus fungsi kalkulator dari versi yub.js Anda.
Pencari bash.js : Yub.js bukanlah port bash ke dalam JavaScript. Jika Anda bertanya-tanya mengapa yub.js tidak menawarkan perintah mount
, atau memiliki cara untuk kill
proses, atau modprobe
driver mouse Anda... Anda mungkin berada di tempat yang salah (mungkin Anda mencari unixkcd). Di sisi lain, jika Anda dapat memikirkan metafora yang tepat untuk mount
, kill
, atau modprobe
yang masuk akal pada baris perintah web , saya ingin mendengar pendapat Anda! ?
Terima kasih banyak kepada Jon Aquino, dan semua orang yang berkontribusi pada YubNub di masa kejayaannya, atas metafora web-as-command-line yang menjadi inspirasi asli yub.js.
Versi satu halaman yang diperkecil dibuat menggunakan Uglifier untuk Ruby.
Daftar isi dibuat oleh https://github.com/dohliam/tocdown.
Repo GitHub acak didasarkan pada RandomRepo oleh RyanDavison.
Wallpaper latar belakang untuk berbagai skin:
MIT -- lihat file LISENSI untuk detailnya.