Perlu memaparkan dokumentasi secara langsung dalam editor WordPress? Artikel ini meneroka pendekatan yang optimum, memanfaatkan markdown untuk pengurusan dokumentasi dan penyetempatan dokumentasi yang diperkemas.
Walaupun komponen React dan HTML mungkin kelihatan intuitif, mereka dapat dengan cepat menjadi sukar dan sukar untuk dikekalkan untuk dokumentasi yang luas. Pertimbangkan contoh ini dari artikel sebelumnya yang menunjukkan dokumentasi dalam modal:
const cacheControldescription = () => { kembali ( <p>Pengepala kawalan cache akan mengandungi nilai maksimum maksimum minimum dari semua medan/arahan yang terlibat dalam permintaan, atau <code>no-store if the max-age is 0</code> ) }</p>
Markdown menawarkan penyelesaian yang lebih bersih. Di atas boleh diubahsuai ke dalam fail markdown ( /docs/cache-control.md
):
Pengepala kawalan cache akan mengandungi nilai maksimum maksimum minimum dari semua bidang/arahan yang terlibat dalam permintaan, atau `no-store` jika max-usia 0
Markdown vs HTML: Kelebihan dan Kekurangan
Markdown memudahkan proses, tetapi tidak mempunyai sokongan penyetempatan terbina dalam, tidak seperti komponen React yang membolehkan terjemahan mudah menggunakan fail periuk. Oleh kerana penyetempatan adalah penting, kami akan menangani batasan ini. Artikel ini bertujuan untuk mencapai dua objektif utama:
- Menggunakan markdown untuk dokumentasi dalam blok editor WordPress.
- Melaksanakan terjemahan dokumentasi berdasarkan bahasa pengguna.
Memuatkan kandungan markdown
Dengan /docs/cache-control.md
dicipta, kami boleh mengimport dan menjadikan kandungan HTML-convertednya:
import cachecontroldocumentation dari '../docs/cache-control.md'; const cacheControldescription = () => { kembali ( <div dangerouslysetinnerhtml="{{" __html: cachecontroldocumentation></div> ); }
Ini bergantung pada Webpack, modul modul teras editor WordPress (versi 4.42). Kami akan menyesuaikan konfigurasi WebPack untuk mengendalikan markdown dan pemuat HTML.
Buat webpack.config.js
di akar blok:
const defaultConfig = memerlukan ('@wordpress/scripts/config/webpack.config'); modul.exports = { ... defaultconfig, modul: { ... defaultconfig.module, Kaedah: [ ... defaultconfig.module.rules, { Ujian: /\.md$/, Gunakan: [ {loader: "html-loader"}, {loader: "markdown-loader"} ] } ], }, };
Pasang pakej yang diperlukan:
Pemasangan NPM--Save-Dev Markdown-Loader HTML-Loader
Untuk organisasi yang lebih baik, tambahkan alias webpack ( @docs
menunjuk ke /docs
):
const Path = memerlukan ('jalan'); config.resolve.alias ['@docs'] = path.resolve (process.cwd (), 'docs/');
Sekarang import mudah untuk:
import CacheControldocumentation dari '@docs/cache-control.md';
Dokumentasi penyetempatan
Oleh kerana terjemahan markdown langsung tidak boleh dilaksanakan, kami membuat fail markdown khusus bahasa:
-
/docs/en/cache-control.md
-
/docs/fr/cache-control.md
-
/docs/zh/cache-control.md
dll.
Pendekatan ini juga boleh mengendalikan variasi khusus rantau (misalnya, /docs/en_US/cache-control.md
).
Mengambil semula bahasa pengguna
Bahasa pengguna diperoleh menggunakan get_locale()
dan dihuraikan untuk mengekstrak kod bahasa:
fungsi get_locale_language (): string { $ localeparts = explode ('_', get_locale ()); kembali $ localeparts [0]; }
Kod bahasa ini diluluskan ke blok melalui wp_localize_script()
:
wp_localize_script ( $ blockscriptregistrationName, 'GraphqlapacacheControl', [ 'userlang' => get_locale_language (), ] );
Kini boleh diakses di blok sebagai window.graphqlApiCacheControl.userLang
.
Import dinamik
Oleh kerana bahasa pengguna hanya diketahui semasa runtime, kami menggunakan import dinamik:
const lang = window.graphqlapacachecontrol.userlang; import (`@docs/$ {lang}/cache-control.md`) .then (module => { // ... });
Kandungan diakses melalui obj.default
:
const CacheControlContent = import (`@docs/$ {lang}/cache-control.md`) .theTHen (obj => obj.default);
Ini terkandung dalam fungsi getMarkdownContent
:
const getmarkdowncontent = (fileName, lang) => { Kembali Import (/ * WebPackChunkName: "Docs/[Request]" */`@docs/$ {lang}/$ {fileName} .md`) .the (obj => obj.default); };
The /* webpackChunkName: "docs/[request]" */
Comment Memastikan Pengurusan Bahagian Terorganisir.
Menetapkan jalan awam
publicPath
adalah penting untuk webpack untuk mencari ketulan yang dimuatkan secara dinamik. Ini boleh dikodkan, ditetapkan melalui pembolehubah persekitaran, atau diluluskan pada masa runtime. Untuk contoh ini, kami akan lulus:
$ blockPublicPath = plugin_dir_url (__ file__). '/blok/Cache-Control/binaan/'; wp_localize_script ( $ blockscriptregistrationName, 'GraphqlapacacheControl', [ // ... 'PublicPath' => $ BlockPublicPath, ] );
Kemudian tetapkannya di sebelah JavaScript:
__webpack_public_path__ = window.graphqlapicachecontrol.publicpath;
Sandaran bahasa lalai
Mekanisme sandaran mengendalikan terjemahan yang hilang:
const getmarkdowncontentorusedefault = (fileName, defaultLang, lang) => { Kembali getmarkdownContent (nama fail, lang) .catch (err => getMarkDownContent (FileName, DefaultLang)); };
Mengintegrasikan dengan modal
Akhirnya, kandungan markdown diintegrasikan ke dalam modal:
import {usestate, useeffect} dari '@wordpress/element'; // ... import lain const CacheControlContentModal = (props) => { // ... const [page, setPage] = useState ([]); useeffect (() => { getmarkdownContentorusedefault (FileName, DefaultLang, Lang) .then (nilai => { setPage (nilai); }); }, []); kembali ( <contentmodal content="{page}"></contentmodal> ); };
Pendekatan ini menyediakan sistem dokumentasi yang mantap, dikekalkan, dan setempat dalam editor WordPress.
Atas ialah kandungan terperinci Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Sejak saya mula -mula berbunyi pada perkara CSS4¹, ada lebih banyak perbincangan di atasnya. Saya akan mengulangi pemikiran kegemaran saya dari orang lain di sini. Ada

Setiap kali saya memulakan projek baru, saya menyusun kod yang saya cari dalam tiga jenis, atau kategori jika anda suka. Dan saya fikir jenis ini boleh digunakan

Saya ' telah bersalah secara terbuka merungut kerumitan HTTPS. Pada masa lalu, saya membeli sijil SSL dari vendor pihak ketiga dan menghadapi masalah

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Sekiranya anda tidak bekerja dengan kebolehubahan dalam JavaScript sebelum ini, anda mungkin mudah mengelirukan dengan memberikan pembolehubah kepada nilai baru, atau penugasan semula.

Ia mungkin sepenuhnya untuk membina kotak semak tersuai, butang radio, dan suis bertukar hari ini, sambil tetap semantik dan boleh diakses. Kami tidak memerlukan

Terdapat watak nombor superset khas yang kadang -kadang sesuai untuk nota kaki. Di sini mereka:

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Dreamweaver Mac版
Alat pembangunan web visual

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma