cari
Rumahhujung hadapan webtutorial cssMenggunakan Markdown dan Penyetempatan di Editor Blok WordPress

Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress

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:

  1. Menggunakan markdown untuk dokumentasi dalam blok editor WordPress.
  2. 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!

Kenyataan
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
Kemas kini 'CSS4'Kemas kini 'CSS4'Apr 11, 2025 pm 12:05 PM

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

Tiga jenis kodTiga jenis kodApr 11, 2025 pm 12:02 PM

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

HTTPS mudah!HTTPS mudah!Apr 11, 2025 am 11:51 AM

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

Panduan Atribut Data HTMLPanduan Atribut Data HTMLApr 11, 2025 am 11:50 AM

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

Memahami kebolehubahan dalam JavaScriptMemahami kebolehubahan dalam JavaScriptApr 11, 2025 am 11:47 AM

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

Input bentuk gaya tersuai dengan ciri CSS modenInput bentuk gaya tersuai dengan ciri CSS modenApr 11, 2025 am 11:45 AM

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

Watak nota kakiWatak nota kakiApr 11, 2025 am 11:34 AM

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

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScriptCara membuat pemasa undur animasi dengan HTML, CSS dan JavaScriptApr 11, 2025 am 11:29 AM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

mPDF

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

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版

Dreamweaver Mac版

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma