찾다
웹 프론트엔드CSS 튜토리얼WordPress 블록 편집기에서 Markdown 및 현지화 사용

WordPress 블록 편집기에서 Markdown 및 현지화 사용

WordPress 편집기 내에 직접 문서를 표시해야합니까? 이 기사는 간소화 된 문서 관리 및 현지화를 위해 Markdown을 활용하여 최적의 접근 방식을 살펴 봅니다.

React 구성 요소와 HTML은 직관적 인 것처럼 보일 수 있지만 광범위한 문서를 위해 다루기 어려워지고 유지하기가 어려워 질 수 있습니다. 이 예제는 모달에 문서를 보여주는 이전 기사에서 다음과 같습니다.

 const cachecontroldescription = () => {
  반품 (
    <p>캐시 제어 헤더에는 요청과 관련된 모든 필드/지시문의 최소 최대 연령 값이 포함되거나 <code>no-store if the max-age is 0</code>
  ))
}</p>

Markdown은 더 깨끗한 솔루션을 제공합니다. 위는 Markdown 파일 ( /docs/cache-control.md )으로 리팩토링 될 수 있습니다.

 캐시 제어 헤더에는 요청과 관련된 모든 필드/지시문의 최소 최대 연령 값이 포함되거나 최대 연령이 0 인 경우 'No-Store'가 포함됩니다.

Markdown vs. HTML : 장점과 단점

Markdown은 프로세스를 단순화하지만 POT 파일을 사용하여 쉽게 번역 할 수있는 React 구성 요소와 달리 내장 현지화 지원이 부족합니다. 현지화가 중요 하므로이 제한 사항을 해결할 것입니다. 이 기사는 두 가지 주요 목표를 달성하는 것을 목표로합니다.

  1. WordPress 편집기 블록 내에서 문서화를위한 Markdown 사용.
  2. 사용자의 언어를 기반으로 문서 번역 구현.

마크 다운 컨텐츠로드

/docs/cache-control.md 만들어 HTML-Converted 컨텐츠를 가져오고 렌더링 할 수 있습니다.

 '../docs/cache-control.md'에서 Cachecontroldocumentation 가져 오기;

const cachecontroldescription = () => {
  반품 (
    <div dangerouslysetinnerhtml="{{" __html: cachecontroldocumentation></div>
  );
}

이것은 WordPress 편집기의 핵심 모듈 Bundler (버전 4.42) 인 Webpack에 의존합니다. Markdown 및 HTML 로더를 처리하기 위해 WebPack의 구성을 사용자 정의 할 것입니다.

블록의 루트에서 webpack.config.js 작성하십시오.

 const defaultConfig = require ( '@wordpress/scripts/config/webpack.config');

module.exports = {
  ... DefaultConfig,
  모듈 : {
    ... defaultConfig.Module,
    규칙 : [
      ... defaultConfig.Module.rules,
      {
        테스트 : /\.md$/,
        사용: [
          {로더 : "html-loader"},
          {로더 : "Markdown-Loader"}
        ]]
      }
    ],,
  },
};

필요한 패키지 설치 :

 NPM 설치--Save Dev Markdown-Loader HTML-Loader

개선 된 조직의 경우 Webpack Alias ​​( @docs /docs 가리키는)를 추가하십시오.

 const path = 요구 ( '경로');
config.resolve.alias [ '@docs'] = path.resolve (process.cwd (), 'docs/');

이제 가져 오기 단순화 :

 '@docs/cache-control.md'에서 Cachecontroldocumentation 가져 오기;

현지화 문서화

직접 마크 다운 번역이 가능하지 않으므로 언어 ​​별 마크 다운 파일을 만듭니다.

  • /docs/en/cache-control.md
  • /docs/fr/cache-control.md
  • /docs/zh/cache-control.md

이 접근법은 또한 지역별 변형 (예 : /docs/en_US/cache-control.md )을 처리 할 수 ​​있습니다.

사용자 언어 검색

사용자의 언어는 get_locale() 사용하여 얻어지고 언어 코드를 추출하기 위해 구문 분석합니다.

 함수 get_locale_language () : String {
  $ localeparts = Explode ( '_', get_locale ());
  Return $ LocalEparts [0];
}

이 언어 코드는 wp_localize_script() 를 통해 블록으로 전달됩니다.

 wp_locaite_script (
  $ blockscriptRegistrationName,
  'GraphQlapicacheControl',
  [의 뜻
    'userLang'=> get_locale_language (),
  ]]
);

이제 block에서 window.graphqlApiCacheControl.userLang 으로 액세스 할 수 있습니다.

동적 수입

사용자의 언어는 런타임에만 알려져 있으므로 동적 가져 오기를 사용합니다.

 const lang = window.graphqlapicachecontrol.userlang;
import (`@docs/$ {lang}/cache-control.md`). (module => {
  // ...
});

내용은 obj.default 를 통해 액세스합니다.

 CONT CACHECONTROLCONTENT = import (`@docs/$ {lang}/cache-control.md`) .then (obj => obj.default);

이것은 getMarkdownContent 함수로 캡슐화됩니다.

 const getMarkdownContent = (filename, lang) => {
  return import (/ * WebPackChunkName : "docs/[request]" */`@docs/$ {lang}/$ {filename} .md`)
    . (obj => obj.default);
};

/* webpackChunkName: "docs/[request]" */ 댓글은 체계적인 청크 관리를 보장합니다.

공개 길을 설정합니다

publicPath 는 Webpack이 동적으로로드 된 청크를 찾는 데 중요합니다. 이는 하드 코딩, 환경 변수를 통해 설정하거나 런타임에 전달 될 수 있습니다. 이 예에서는 다음과 같이 전달하겠습니다.

 $ blockpublicpath = plugin_dir_url (__ file__). '/블록/캐시 제어/빌드/';
wp_locaite_script (
  $ blockscriptRegistrationName,
  'GraphQlapicacheControl',
  [의 뜻
    // ...
    'publicpath'=> $ blockpublicpath,
  ]]
);

그런 다음 JavaScript 측에 설정하십시오.

 __webpack_public_path__ = wind

기본 언어 폴백

폴백 메커니즘은 누락 된 번역을 처리합니다.

 const getMarkdownContEntorUsedEfault = (filename, defaultlang, lang) => {
  return getMarkdownContent (Filename, Lang)
    .catch (err => getMarkdownContent (filename, defaultLang));
};

모달과 통합

마지막으로 마크 다운 컨텐츠는 모달에 통합됩니다.

 '@wordpress/element'에서 {usestate, useeffect} import;
// ... 기타 수입

CONT CACHECONTROLCONTENTMODAL = (props) => {
  // ...
  const [page, setpage] = usestate ([]);

  useeffect (() => {
    getMarkdownContentOrusedEfault (filename, defaultlang, lang). then (value => {
      setPage (값);
    });
  }, []);

  반품 (
    <contentmodal content="{page}"></contentmodal>
  );
};

이 접근법은 WordPress 편집기 내에서 강력하고 유지 관리 가능하며 현지화 된 문서화 시스템을 제공합니다.

위 내용은 WordPress 블록 편집기에서 Markdown 및 현지화 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
슬라이드 아웃 바닥 글슬라이드 아웃 바닥 글Apr 09, 2025 am 11:50 AM

마크 업이라는 매혹적인 새 사이트가 방금 시작되었습니다. 태그 라인 : Big Tech가 당신을보고 있습니다. 우리는 큰 기술을보고 있습니다. 위의 위대한 일. 그만큼

좋아하는 페이지좋아하는 페이지Apr 09, 2025 am 11:47 AM

나는 다른 날 JavaScript로 RSS 피드를 구문 분석하는 것에 대해 게시했습니다. 또한 RSS 설정에 대해 Feedbin이 어떻게 핵심인지에 대해 이야기했습니다.

Codepen Gutenberg Embed Block for Sanity.io를 재현합니다Codepen Gutenberg Embed Block for Sanity.io를 재현합니다Apr 09, 2025 am 11:43 AM

Chris Coyier의 WordPress의 Gutenberg 편집기 구현에서 영감을 얻은 Sanity Studio를위한 미리보기로 사용자 정의 코드펜 블록을 만드는 방법에 대해 알아보십시오.

CSS와 라인 차트를 만드는 방법CSS와 라인 차트를 만드는 방법Apr 09, 2025 am 11:36 AM

라인, 바 및 파이 차트는 대시 보드의 빵과 버터이며 모든 데이터 시각화 툴킷의 기본 구성 요소입니다. 물론 SVG를 사용할 수 있습니다

접근 가능한 색상 조합을 생성하기 위해 SASS를 프로그래밍합니다접근 가능한 색상 조합을 생성하기 위해 SASS를 프로그래밍합니다Apr 09, 2025 am 11:30 AM

우리는 항상 웹에 더 액세스 할 수 있도록하고 있습니다. 색상 대비는 수학 일 뿐이므로 Sass는 디자이너가 놓친 에지 케이스를 다룰 수 있습니다.

SVG에서 타탄 패턴을 생성하는 정적 사이트를 만드는 방법SVG에서 타탄 패턴을 생성하는 정적 사이트를 만드는 방법Apr 09, 2025 am 11:29 AM

타탄은 일반적으로 스코틀랜드, 특히 세련된 킬트와 관련된 패턴의 천입니다. tartanify.com에서 우리는 5,000 개가 넘는 타탄을 모았습니다

PHP 템플릿에 대한 후속 조치PHP 템플릿에 대한 후속 조치Apr 09, 2025 am 11:14 AM

얼마 전, PHP 템플릿에 대해 PHP (기본적으로 HEREDOC 구문)에 대해 게시했습니다. 나는 문자 그대로 그 기술을 사용하여 슈퍼 기본을 사용합니다

부트 스트랩 구성 요소가있는 모달 이미지 갤러리 생성부트 스트랩 구성 요소가있는 모달 이미지 갤러리 생성Apr 09, 2025 am 11:10 AM

다른 사진을보기 위해 탐색으로 더 큰 버전의 이미지를 열어주는 웹 페이지의 이미지를 클릭 한 적이 있습니까?

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기