Rumah > hujung hadapan web > tutorial js > Bagaimana untuk mengesan bahasa kod dalam penyemak imbas

Bagaimana untuk mengesan bahasa kod dalam penyemak imbas

Patricia Arquette
Lepaskan: 2024-11-27 00:13:10
asal
1036 orang telah melayarinya

How to detect code language in browser

Repositori: https://github.com/ray-d-song/guesslang-js

Demo: https://ray-d-song.github.io/guesslang-js/

Baru-baru ini, saya sedang mengusahakan projek yang dipanggil EchoRSS, dan saya mempunyai ciri yang sangat dikehendaki, iaitu memintas pautan luar dalam langganan (baca teks penuh, petikan, dll.) dan memaparkannya terus pada halaman semasa.

Terdapat masalah bahawa blok kod HTML yang dikembalikan kehilangan anotasi bahasa (atau bahasa tidak dianotasi pada teg pra dan kod dalam blok kod asal), jadi ia tidak boleh diserlahkan menggunakan alat seperti shiki atau prism.js .

Saya menemui tiga penyelesaian untuk mengesan bahasa kod:

1. ahli bahasa

Ini ialah projek Ruby yang digunakan pada pelayan dan Github menggunakannya untuk mengesan komposisi bahasa repositori. Jika anda memerlukan ketepatan yang sangat tinggi dan boleh dikira pada pelayan, ini adalah penyelesaian terbaik.

2. hljs

highlight.js ialah perpustakaan penyerlahan kod web yang sangat terkenal, dan ia juga satu-satunya perpustakaan yang menyediakan pengesanan kod automatik.

Prinsipnya sangat mudah, iaitu menghitung kata kunci bahasa, dan kemudian memadankannya satu demi satu dengan teks, dan akhirnya melihat mana yang mempunyai tahap padanan tertinggi.

hljs mempunyai empat masalah.

  • Ia memerlukan panjang kod yang sangat panjang dan kebanyakan bahasa memerlukan sekurang-kurangnya 300 aksara untuk mencapai ketepatan yang agak baik.
  • Bahagian yang mengesan bahasa bukanlah modul yang berasingan, tetapi digandingkan rapat dengan penghurai dan pemaparan, dan kod itu juga sangat penting, menjadikannya sukar untuk mengekstrak bahagian yang berguna.
  • Jika anda tidak mengekstrak modul pengesanan, format asal (pemutus baris dan lekukan) kod akan hilang apabila menggunakan hljs untuk menyerlahkan.
  • Ia memerlukan banyak padanan biasa, prestasinya rendah, dan atas sebab 2, ia tidak boleh dijalankan dalam pekerja web.

3. guesslang

guesslang ialah projek pembelajaran mesin berdasarkan tensorflow.js.

Microsoft mengalihkan projek ini ke node.js pada tahun 2021 dan menambahkan fungsi pengesanan bahasa automatik pada vscode.

Seorang lelaki Vietnam hieplpvip tiga tahun lalu turut mengalihkan projek ini ke penyemak imbas, tetapi terdapat juga tiga masalah:

  • Kebocoran ingatan, kebocoran ingatan...
  • Hanya menyokong tag untuk memperkenalkan format umd, tidak menyokong esm, tidak menyokong bundle
  • Begitu juga, kerana sebab 2, ia tidak menyokong pekerja web

Lelaki itu tidak mengekalkan projek ini, dan permintaan untuk menyokong esm pada bulan Mac tidak dibalas.

Jadi saya mengekstrak modul pengesanan daripada hljs, dan bercabang guesslang-js untuk menyelesaikan masalah di atas, dan akhirnya guesslang menang, hasilnya begini:
https://github.com/ray-d-song/guesslang-js

Saya rasa ia terlalu banyak untuk dibincangkan, mungkin seseorang akan memerlukannya pada masa hadapan, jadi saya akan menyiarkannya.

Jika seseorang mengetahui tensorflow.js, saya harap mereka boleh mengesyorkan beberapa bahan pembelajaran, saya ingin mengubah suainya lagi kepada pengiraan gpu web untuk meningkatkan kecekapan.

Atas ialah kandungan terperinci Bagaimana untuk mengesan bahasa kod dalam penyemak imbas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan