国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
我最擔(dān)心的問題
基本塊轉(zhuǎn)換
更神奇的東西:來(lái)自原始代碼的塊轉(zhuǎn)換

WordPress塊變換

Apr 06, 2025 am 10:29 AM

WordPress Block Transforms

CSS-Tricks 的Gutenberg 之年。去年年底,我們定下了這個(gè)目標(biāo)。我們的進(jìn)展比預(yù)期快得多,所有內(nèi)容都在塊編輯器1中創(chuàng)作,現(xiàn)在所有內(nèi)容都啟用了塊編輯器。這意味著當(dāng)我們打開大多數(shù)舊帖子時(shí),我們會(huì)看到所有內(nèi)容都在“經(jīng)典”塊中。它看起來(lái)像這樣:

帖子的全部?jī)?nèi)容都在單個(gè)塊中,因此並沒有真正利用塊編輯器。它仍然是“可視的”,就像塊編輯器一樣,但更像是使用TinyMCE 的舊可視編輯器。我從未使用過它,因?yàn)樗晕也幌矚g的方式強(qiáng)制破壞了HTML。

我最擔(dān)心的問題

將經(jīng)典塊轉(zhuǎn)換為新塊就像選擇經(jīng)典塊並選擇“轉(zhuǎn)換為塊”選項(xiàng)一樣簡(jiǎn)單。

當(dāng)我們從“轉(zhuǎn)換為塊”選項(xiàng)中告訴它這樣做時(shí),塊編輯器如何處理舊內(nèi)容的塊化?如果轉(zhuǎn)換過程中內(nèi)容完全被破壞了怎麼辦?我們能夠切換嗎?

答案是:它做得相當(dāng)好。但是……仍然存在問題。不是“錯(cuò)誤”,而是我們舊內(nèi)容中包含自定義HTML 的情況,它不知道該如何處理——更不用說(shuō)如何將其轉(zhuǎn)換為我們希望的塊了。有一種方法!

基本塊轉(zhuǎn)換

這就是“塊轉(zhuǎn)換”這個(gè)想法的由來(lái)。所有(好吧,大多數(shù)?)原生塊都有“到”和“從”轉(zhuǎn)換。您可能已經(jīng)熟悉它在UI 中的表現(xiàn)方式。例如,段落可以轉(zhuǎn)換為引用,反之亦然。這是一個(gè)關(guān)於本段的超級(jí)元截圖:

這些轉(zhuǎn)換並非魔法;它們是明確編碼的。註冊(cè)塊時(shí),您會(huì)指定轉(zhuǎn)換。假設(shè)您正在註冊(cè)您自己的自定義代碼塊。您需要確保您可以轉(zhuǎn)換它……

  • 和到默認(rèn)內(nèi)置代碼塊,以及可能還有其他一些可能有用的塊。
  • 返回到內(nèi)置代碼塊。

它可能看起來(lái)像這樣:

 <code>registerBlockType("my/code-block", { title: __("My Code Block"), ... transforms: { from: [ { type: "block", priority: 7, blocks: ["core/code", "core/paragraph", "core/preformatted"], transform: function (attributes) { return createBlock("my/code-block", { content: attributes.content, }); }, }, ], to: [ { type: "block", blocks: ["core/code"], transform: ({ content }) => createBlock("core/code", { content }), }, ], ...</code>

這些是到其他塊和從其他塊的轉(zhuǎn)換。幸運(yùn)的是,這是一個(gè)非常簡(jiǎn)單的塊,我們只是在四處移動(dòng)內(nèi)容。更複雜的塊可能需要傳遞更多數(shù)據(jù),但我還沒有處理過這種情況。

更神奇的東西:來(lái)自原始代碼的塊轉(zhuǎn)換

這是舊內(nèi)容的真相時(shí)刻:

在這種情況下,塊的創(chuàng)建不是來(lái)自其他塊,而是來(lái)自原始代碼。從字面上看,HTML 正在被查看,並且正在做出關(guān)於從HTML 塊創(chuàng)建哪些塊的決定。這就是塊編輯器在選擇方面做得如此出色的地方,也是事情可能出錯(cuò)、做出錯(cuò)誤的塊選擇或破壞內(nèi)容的地方。

在我們的舊內(nèi)容中,帖子中的代碼塊(非常重要的事情)看起來(lái)像這樣:

 <code><code markup="tt">let html = `</code></code> cool `;

有時(shí)塊轉(zhuǎn)換會(huì)對(duì)這些塊進(jìn)行處理,將其轉(zhuǎn)換為原生代碼塊。但存在一些問題:

  1. 我不想要原生代碼塊。我希望將其轉(zhuǎn)換為我們自己的代碼塊(此處有博客文章)。
  2. 我需要這些屬性中的一些信息來(lái)告知新塊的設(shè)置,例如代碼的類型。
  3. 我們舊代碼塊中的HTML未轉(zhuǎn)義,我需要它不要被卡住。

我在這裡並沒有所有答案,因?yàn)檫@是一個(gè)不斷發(fā)展的過程,但我確實(shí)已經(jīng)實(shí)現(xiàn)了一些現(xiàn)在運(yùn)行得很好的塊轉(zhuǎn)換。以下是“原始”轉(zhuǎn)換(與“塊”轉(zhuǎn)換相反)的樣子:

 <code>registerBlockType("my/code-block", { title: __("My Code Block"), // ... transforms: { from: [ { type: "block", priority: 7, // ... }, { type: "raw", priority: 8, isMatch: (node) => node.nodeName === "PRE" && node.children.length === 1 && node.firstChild.nodeName === "CODE", transform: function (node) { let pre = node; let code = node.querySelector("code"); let codeType = "html"; if (pre.classList.contains("language-css")) { codeType = "css"; } if (pre.getAttribute("rel") === "CSS") { codeType = "css"; } if (pre.classList.contains("language-javascript")) { codeType = "javascript"; } if (code.classList.contains("language-javascript")) { codeType = "javascript"; } // ... other data wrangling... return createBlock("csstricks/code-block", { content: code.innerHTML, codeType: codeType, }); }, }, ], to: [ // ... ], // ... }</code>

isMatch函數(shù)運(yùn)行於它找到的每個(gè)HTML 節(jié)點(diǎn)上,因此這是在您需要的情況下從該函數(shù)返回true的絕佳機(jī)會(huì)。請(qǐng)注意,在上面的代碼中,我特別是在尋找看起來(lái)像

<code>的HTML。當(dāng)匹配時(shí),轉(zhuǎn)換運(yùn)行,我可以返回一個(gè)`createBlock` 調(diào)用,該調(diào)用傳入我使用JavaScript 從節(jié)點(diǎn)中提取的數(shù)據(jù)和內(nèi)容。</code>另一個(gè)示例:粘貼URL


<p>“原始”轉(zhuǎn)換不僅發(fā)生在您“轉(zhuǎn)換為塊”時(shí)。當(dāng)您將內(nèi)容粘貼到塊編輯器中時(shí),也會(huì)發(fā)生這種情況。您可能之前已經(jīng)體驗(yàn)過這種情況。假設(shè)您從某處複製了一些表格標(biāo)記並將其粘貼到塊編輯器中——它可能會(huì)粘貼為表格。 YouTube URL 可能會(huì)粘貼到嵌入中。這種事情就是為什麼從Word 文檔等複制/粘貼往往與塊編輯器配合得如此好。</p>



<p>假設(shè)您希望在將某種類型的URL 粘貼到編輯器中時(shí)執(zhí)行某些特殊行為。這就是我使用自定義CodePen Embed 塊的情況。我希望如果粘貼codepen.io URL,它將使用此自定義塊,而不是默認(rèn)嵌入。</p>



<p>這是一個(gè)看起來(lái)像這樣的“from”轉(zhuǎn)換:</p>



{
  type: "raw",
  priority: 8, // higher number to beat out default
  isMatch: (node) =>
    node.nodeName === "P" &&
    node.innerText.startsWith("https://codepen.io/"),

  transform: function (node) {
    return createBlock("cp/codepen-gutenberg-embed-block", {
      penURL: node.innerText,
      penID: getPenID(node.innerText), // helper function
    });
  },
}


<h3>所以……</h3>


<p>它很凌亂嗎?有點(diǎn)。但它功能強(qiáng)大,滿足您的需求。如果您有一個(gè)包含大量定制HTML、短代碼等內(nèi)容的舊網(wǎng)站,那麼進(jìn)入塊轉(zhuǎn)換是唯一的出路。</p>



<p>我很高興能夠掌握這一點(diǎn),因?yàn)槲椰F(xiàn)在非常喜歡塊編輯器。用它來(lái)寫作和構(gòu)建內(nèi)容是一種樂趣。我喜歡Justin Tadlock 的說(shuō)法:</p>



<blockquote><p>塊系統(tǒng)不會(huì)消失。 WordPress 已經(jīng)超越了我們應(yīng)該將塊編輯器視為單獨(dú)實(shí)體的階段。它是WordPress 不可或缺的一部分,最終將觸及編輯屏幕之外的更多領(lǐng)域。</p></blockquote>



<p>它會(huì)一直存在。擁抱塊編輯器並使其符合我們的意願(yuàn)是關(guān)鍵。</p>




<ol><li>我們到底稱它為什麼呢? “Gutenberg”似乎不再合適了。感覺它會(huì)逐漸消失,即使它的開發(fā)仍在Gutenberg 插件中進(jìn)行。我認(rèn)為我只會(huì)稱它為“塊編輯器”,除非特別指代該插件。</li></ol>

以上是WordPress塊變換的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

什麼是'渲染障礙CSS”? 什麼是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。 1.提取關(guān)鍵CSS並內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合併CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

外部與內(nèi)部CSS:最好的方法是什麼? 外部與內(nèi)部CSS:最好的方法是什麼? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。 1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

什麼是AutoPrefixer,它如何工作? 什麼是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器範(fàn)圍自動(dòng)為CSS屬性添加廠商前綴的工具。 1.它解決了手動(dòng)維護(hù)前綴易出錯(cuò)的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動(dòng)加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

什麼是CSS計(jì)數(shù)器? 什麼是CSS計(jì)數(shù)器? Jun 19, 2025 am 12:34 AM

csscounterscanautomationallymentermentermentections和lists.1)usecounter-ensettoInitializize,反插入式發(fā)芽,andcounter()orcounters()

CSS:何時(shí)重要(何時(shí)不)? CSS:何時(shí)重要(何時(shí)不)? Jun 19, 2025 am 12:27 AM

在CSS中,選擇器和屬性名不區(qū)分大小寫,而值、命名顏色、URL和自定義屬性則區(qū)分大小寫。 1.選擇器和屬性名不區(qū)分大小寫,例如background-color和Background-Color相同。 2.值中的十六進(jìn)制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無(wú)效。 3.URL區(qū)分大小寫,可能導(dǎo)致文件加載問題。 4.自定義屬性(變量)區(qū)分大小寫,使用時(shí)需注意大小寫一致。

什麼是圓錐級(jí)函數(shù)? 什麼是圓錐級(jí)函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

See all articles