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

目錄
您好,Trello
構(gòu)建塊
我想玩!
發(fā)現(xiàn)API
決定如何使用板
生成網(wǎng)站
獲取構(gòu)建數(shù)據(jù)
圖像附件
分期內(nèi)容
但是如何更新呢?
我真的可以使用這個嗎?
首頁 web前端 css教學(xué) 將Trello用作超級簡單的CMS

將Trello用作超級簡單的CMS

Apr 03, 2025 am 10:13 AM

將Trello用作超級簡單的CMS

有時,我們的網(wǎng)站需要一些內(nèi)容管理。並非總是如此。不多。但是有點。 CMS市場蓬勃發(fā)展,價格合理,平易近人的產(chǎn)品,因此我們不足以選擇。值得慶幸的是,這與曾經(jīng)迫使公司濺出一筆ga-億萬美元(不是確切的成本:我四捨五入到最接近的千億美元)的世界截然不同。

但是,有時候,最好使用一個非常簡單的工具,任何更新網(wǎng)站上內(nèi)容的人已經(jīng)熟悉,而不是使用新的CMS。

我非常喜歡Trello來管理思想和任務(wù)。它有一個API。為什麼不將其用作網(wǎng)站的內(nèi)容源?我的意思是,嘿,如果我們可以用Google表進行操作,那麼什麼可以阻止我們嘗試其他事情?

您好,Trello

這是一個可以探索的簡單網(wǎng)站。它從該Trello板上獲取內(nèi)容,並在各節(jié)中顯示內(nèi)容。每個部分都由我們的Trello板上卡的標題和描述字段填充。

Trello使用Markdown,這很方便。任何在Trello卡中編輯內(nèi)容的人都可以應(yīng)用基本的文本格式,並將相同的降價流入站點,並通過構(gòu)建過程轉(zhuǎn)換為HTML。

構(gòu)建塊

我是這種運行構(gòu)建模型的忠實擁護者,該模型可以從各種供稿和來源中汲取內(nèi)容,然後將它們與模板一起搗碎以生成網(wǎng)站的HTML。它使演示文稿與內(nèi)容的管理(這是流行的現(xiàn)代CMS產(chǎn)品中來自“分離”一詞的位置)。這意味著我們可以自由地使用我們在CSS-tricks上學(xué)到的所有技巧和技術(shù)來按照我們想要的方式製作網(wǎng)站。

由於我們在構(gòu)建時間介紹了內(nèi)容,因此如果我們的網(wǎng)站流行並引入大量流量,我們不必擔(dān)心使用配額或數(shù)據(jù)源的性能。他們?yōu)槭颤N不呢?看看我們使它們變得多麼漂亮!

我想玩!

美好的。您可以獲取本網(wǎng)站的代碼的副本,然後修改您內(nèi)心的內(nèi)容。此版本包括有關(guān)如何創(chuàng)建自己的Trello板並將其用作構(gòu)建內(nèi)容的源的信息。

  • 示例網(wǎng)站代碼存儲庫在github上
  • 演示網(wǎng)站
  • 克隆並單擊幾下部署自己的副本

如果您想首先瀏覽它的工作方式,而不是自己潛入其中,請繼續(xù)閱讀。

發(fā)現(xiàn)API

Trello擁有有據(jù)可查的API和一組開發(fā)人員資源。還有一個方便的節(jié)點模塊,可以簡化身份驗證和與API交互的任務(wù)。但是,當您探索Trello板時,您也可以通過修補URL來探索API。

例如,上面的Trello板的URL是:

 https://trello.com/b/zzc0uswz/hellotrello

如果我們將.json添加到該URL,則Trello向我們展示了表示為JSON的內(nèi)容??纯?。

我們可以使用此技術(shù)來檢查整個Trello的基礎(chǔ)數(shù)據(jù)。這是一張卡的URL:

 https://trello.com/c/yvxlsezy/4-sections-from-cards

如果我們使用這個小技巧並將.json添加到URL中,我們將看到描述該卡的數(shù)據(jù)。

我們會找到有趣的東西 - 董事會,列表和卡的獨特ID。我們可以看到該卡的內(nèi)容以及許多元數(shù)據(jù)。

我喜歡這樣做!查看所有可愛的數(shù)據(jù)!我們該如何使用它?

決定如何使用板

在此示例中,假設(shè)我們只有一個只有一頁可管理的內(nèi)容的站點。我們董事會中的列表或列對於控制該頁面上的各個部分是理想的選擇。編輯可以給他們標題和內(nèi)容,並將其拖入所需的順序。

我們需要列表的ID,以便我們可以通過API訪問它。幸運的是,我們已經(jīng)看到瞭如何發(fā)現(xiàn)這一點 - 查看有關(guān)列表中任何卡片的數(shù)據(jù)。每個人都有一個IDBOARD屬性。賓果!

生成網(wǎng)站

該計劃是從Trello獲取數(shù)據(jù),並將其應(yīng)用於某些模板以填充我們的網(wǎng)站。大多數(shù)靜態(tài)站點生成器(SSG)都可以完成這項工作。那就是他們擅長的。我會使用高度,因為我認為它具有最簡單的概念要理解。另外,使用nunjucks(一種流行的模板語言),獲取數(shù)據(jù)並生成清潔的HTML非常有效。

我們希望能夠使用一個表達式lin我們的模板,該模板為JavaScript對像中的每個項目輸出一個名為Trello:的截面元素:

 
{trello%的卡片}

  <h2> {{card.name}} </h2>
  <div>
    {%Markdown%}
      {{ -  card.desc |安全的 }}
    {%endmarkDown%}
  </div>

{%endfor%}

獲取構(gòu)建數(shù)據(jù)

像這樣的jamstack網(wǎng)站的一種流行技術(shù)是,在此處使用Gulp,Grunt或[在此處插入最新的新構(gòu)建腳本Hotness]的構(gòu)建,並從各種API中獲取數(shù)據(jù),並以適合SSG的格式將數(shù)據(jù)藏起來,然後運行SSG以生成HTML。這效果很好。

高架通過支持JavaScript在其數(shù)據(jù)文件中的執(zhí)行來簡化此處的內(nèi)容。換句話說,它不僅可以利用存儲為JSON或YAML的數(shù)據(jù),還可以使用JavaScript返回的任何內(nèi)容,在高度構(gòu)建運行時為直接向API提出請求打開大門。我們不需要單獨的構(gòu)建步驟才能首先獲取數(shù)據(jù)。高架會為我們做。

讓我們使用它在模板中獲取我們的trello對象的數(shù)據(jù)。

我們可以使用trello節(jié)點客戶端來查詢API,但是事實證明,我們想要的所有數(shù)據(jù)就在板上的JSON中。一切!在一個請求中!我們可以一口氣獲?。?/p>

 // trello.js
Module.exports =()=> {
  const trello_json_url ='https://trello.com/b/zzc0uswz/hellotrello.json';

  //使用Node-fetch獲取有關(guān)此板的JSON數(shù)據(jù)
  const fetch = require('node-fetch');
  返回提?。╰rello_json_url)
    然後(res => res.json())
    然後。
};

但是,我們不想顯示該董事會的所有數(shù)據(jù)。它包括其他列表上的卡,已關(guān)閉和刪除的卡片等等。但是,由於JavaScript的過濾器方法,我們可以過濾卡以僅包括有趣的卡片。

 // trello.js
Module.exports =()=> {
   const trello_json_url ='https://trello.com/b/zzc0uswz/hellotrello.json'
   const trello_list_id ='5E98325D6BD120F2B7395F',
 
   //使用Node-fetch獲取有關(guān)此板的JSON數(shù)據(jù)
   const fetch = require('node-fetch');
   返回提?。╰rello_json_url)
   然後(res => res.json())
   。然後(json => {
 
     //只專注於我們想要的列表中的卡片
     //並且沒有封閉狀態(tài)
     LET ContentCards = JSON.CARDS.FILTER(card => {
       return card.idlist == trello_list_id &&! card.closed;
     });
 
     返回contentcard;
 });
};

那會做的!將其保存在高度數(shù)據(jù)目錄中的名為trello.js的文件中,我們將準備在模板中使用此數(shù)據(jù)在一個名為Trello的對像中。

完成! ?

但是我們可以做得更好。我們還可以處理附件的圖像,還添加了一種在上線之前進行審查的方法。

圖像附件

可以將文件附加到Trello的卡上。當您附加圖像時,它在卡片中顯示在數(shù)據(jù)中所述資產(chǎn)的源URL中。我們可以利用它!

如果卡具有圖像附件,我們將要獲取其源URL,並將其作為圖像標籤添加到構(gòu)建時間時的模板插入到頁面中的內(nèi)容。這意味著將圖像的標記添加到我們的JSON(card.desc)的描述屬性中的降價中。

然後,我們可以讓高架將其與其他所有事物一起將其轉(zhuǎn)變?yōu)镠TML。此代碼在我們的JSON中尋找卡片,並將數(shù)據(jù)按摩到我們需要的形狀中。

 // trello.js

//如果卡有附件,請將其添加為圖像 
//在說明降價中
contentcards.foreach(card => {
  if(card.attachments.length){
    card.desc = card.desc`\ n! [$ {card.name}]($ {card.attachments [0] .url}'$ {card.name}')
  }
});

現(xiàn)在,我們也可以在內(nèi)容中移動圖像。便利!

分期內(nèi)容

讓我們添加一個蓬勃發(fā)展,以便如何使用Trello來管理網(wǎng)站的內(nèi)容。

在將內(nèi)容啟動到世界之前,我們可能需要多種方法來預(yù)覽內(nèi)容。我們的Trello董事會可能有一個列表進行分期,並有一個用於生產(chǎn)內(nèi)容的列表。但這將使很難形象化新內(nèi)容與已經(jīng)發(fā)布的內(nèi)容一起生活。

一個更好的主意是使用Trello的標籤來表示現(xiàn)場直播的卡片,哪些應(yīng)該僅包含在該網(wǎng)站的舞臺版本中。這將為我們提供一個不錯的工作流程。我們可以通過在正確的位置添加新卡來添加更多內(nèi)容。用“舞臺”標記它,並將其從我們生產(chǎn)分支上出現(xiàn)的卡片中濾出。

我們的JavaScript對象進行了更多的過濾:

 // trello.js

//僅包含標有“ Live”或帶有標籤的卡片
//我們所在的分支的名稱
contentcards = contentcards.filter(card => {
  返回卡.labels.filter(label =>((
    label.name.tolowercase()=='live'||
    label.name.tolowercase()==分支
   ))。長度;
 });

我們希望標有“ Live”的內(nèi)容出現(xiàn)在構(gòu)建的每個版本,是否登臺上。此外,我們將考慮包含具有匹配一個稱為“分支”的變量的標籤的卡。

怎麼會?那是什麼?

這是我們狡猾的地方!我選擇在Netlify上託管此網(wǎng)站(免責(zé)聲明:我在那里工作)。這意味著我可以從Netlify的CI/CD環(huán)境中運行構(gòu)建。每當我推動更改其GIT存儲庫時,這將重新部署該網(wǎng)站,並可以訪問其他幾件事,這些內(nèi)容對於此網(wǎng)站確實很方便。

一個是分支部署。如果您想要一個網(wǎng)站的新環(huán)境,則可以通過在GIT存儲庫中製作一個新分支來創(chuàng)建一個環(huán)境。該構(gòu)建將在這種情況下運行,您的網(wǎng)站將在包括分支名稱的子域上發(fā)布。像這樣。

看一看,您將看到我們列表中的所有卡,包括具有橙色“舞臺”標籤的卡片。我們將其包括在此構(gòu)建中,因為它的標籤與構(gòu)建上下文的分支名稱匹配。分支是一個環(huán)境變量,其中包含構(gòu)建式運行的分支。

 label.name.tolowercase()==分支

從理論上講,我們可以根據(jù)自己的意願製作盡可能多的分支機構(gòu)和標籤,並具有各種分期和測試環(huán)境。準備從“舞臺”推廣到“現(xiàn)場”的東西了嗎?交換標籤,您很高興!

但是如何更新呢?

我們從CI/CD(例如Netlify的)中運行網(wǎng)站構(gòu)建而獲得的第二好是,我們可以隨時觸發(fā)構(gòu)建構(gòu)建。 Netlify使我們可以創(chuàng)建構(gòu)建鉤子。這些是Webhooks,當您向其發(fā)送HTTP帖子時,可以啟動新部署。

如果Trello也支持Webhooks,那麼我們可以將這些服務(wù)縫合在一起,並在Trello板更改時自動刷新網(wǎng)站。猜猜……他們做什麼!哇!

要創(chuàng)建一個NetLify Build Hook,您需要訪問網(wǎng)站的管理面板。 (如果您想嘗試一下,您可以單擊幾下將此演示站點引導(dǎo)到一個新的NetLify站點中。)

現(xiàn)在,用新的構(gòu)建掛鉤URL武裝,我們需要註冊一個新的Trello Webhook,該Webhook在內(nèi)容更改時調(diào)用它。在Trello中創(chuàng)建Webhooks的方法是通過Trello的API。

該網(wǎng)站的存儲庫包括一個點擊Trello API並為您創(chuàng)建Webhook的實用程序。但是您需要有一個Trello開發(fā)人員令牌和鑰匙。值得慶幸的是,很容易通過訪問Trello開發(fā)人員門戶網(wǎng)站並按照“授權(quán)客戶”下的說明來免費創(chuàng)建它們。

得到了嗎?偉大的!如果將它們保存在項目中的.env文件中,則可以運行此命令以設(shè)置Trello Webhook:

 npm run鉤-url https://api.netlify.com/build_hooks/xxxxxx

因此,我們創(chuàng)建了一個不錯的流程,用於在簡單站點上管理內(nèi)容。我們可以按照我們想要的方式來製作前端,並在Trello板上更新內(nèi)容,該內(nèi)容在進行更改時會自動更新網(wǎng)站。

我真的可以使用這個嗎?

這是一個簡單的例子。那是設(shè)計。我真的想演示解耦的概念,以及使用外部服務(wù)的API來推動網(wǎng)站的內(nèi)容。

這不會代替全功能的分離CM,以提供更多參與的項目。但是這些原則完全適用於更複雜的站點。

但是,對於我們看到的獨立商店,酒吧和餐館等企業(yè)所看到的網(wǎng)站類型,這種模型可能是一個很好的匹配。想像一下,一個特里洛板,其中有一個用於管理餐廳主頁的列表,另一個用於管理菜單項。餐廳工作人員的管理非常容易,並且在更改時上傳菜單的新pdf要好得多。

準備探索一個榜樣並嘗試自己的董事會和內(nèi)容嗎?嘗試以下操作:

  • 克隆並從上方部署示例,然後開始進行更改。
  • 了解有關(guān)NetLify您可以使用NetLify分支機構(gòu)構(gòu)建的更多信息
  • 深入研究Trello開發(fā)人員資源。

以上是將Trello用作超級簡單的CMS的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

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

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

CSS會阻塞頁面渲染是因為瀏覽器默認將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(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減少請求。建議使用工具提取關(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)避免使用促進性技術(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是一個根據(jù)目標瀏覽器範圍自動為CSS屬性添加廠商前綴的工具。 1.它解決了手動維護前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

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

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

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

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

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

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

See all articles