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

目次
こんにちは、トレロ
ビルディングブロック
遊びたい!
APIの発見(jiàn)
ボードの使用方法を決定します
サイトの生成
ビルドのデータを取得します
畫(huà)像添付ファイル
ステージングコンテンツ
しかし、それはどのように更新されますか?
本當(dāng)にこれを使用できますか?
ホームページ ウェブフロントエンド CSSチュートリアル Trelloを超単純なCMSとして使用します

Trelloを超単純なCMSとして使用します

Apr 03, 2025 am 10:13 AM

Trelloを超単純なCMSとして使用します

時(shí)々、私たちのサイトはコンテンツ管理を少し振りかける必要があります。常にではありません。あまりありません。しかし、少し。 CMS市場(chǎng)は、手頃な価格の親しみやすい製品で繁栄しているため、私たちは選択肢がありません。ありがたいことに、それは企業(yè)にGa-jillionty1ドル(正確なコストではありません:私は最も近いbazillionに丸められている)を、すべての歌、すべての積分、全人材、全人材、大規(guī)模、大規(guī)模な認(rèn)証?CMSプラットフォームのために強(qiáng)制していた世界とは非常に異なる世界です。

ただし、新しいCMSを把握するのではなく、サイト上のコンテンツを更新している人がすでによく知っている非常にシンプルなツールを使用するのは良いことです。

私はアイデアやタスクを管理するためのTrelloが大好きです。そして、それはAPIを持っています。 Webサイトのコンテンツソースとして使用してみませんか?つまり、グーグルシートでそれを行うことができるとしたら、他のことを試してみるのを止めることは何ですか?

こんにちは、トレロ

これが探索する簡(jiǎn)単なサイトです。このTrelloボードからコンテンツを取得し、そのコンテンツはセクションに表示されます。各セクションには、Trelloボードのカードのタイトルと説明フィールドが入力されています。

TrelloはMarkdownを使用しています。これはここで便利です。 Trelloカードでコンテンツを編集している人は誰(shuí)でも、基本的なテキストのフォーマットを適用し、同じマークダウンフローをサイトに入れることができ、ビルドプロセスによってHTMLに変換されます。

ビルディングブロック

私は、さまざまなフィードやソースからコンテンツを引き出し、テンプレートと一緒にマッシュしてWebサイトのHTMLを生成するこのモデルの大ファンです。コンテンツの管理からプレゼンテーションを隔離します(「デカップされた」という用語(yǔ)は、人気のある最新のCMS製品に由來(lái)する場(chǎng)所です)。そして、CSS-Tricksで學(xué)んだすべてのウィジーのトリックとテクニックを使用して、私たちが望む方法でウェブサイトを自由に作成できることを意味します。

ビルド時(shí)にコンテンツを引き込むため、サイトが人気になり、大量のトラフィックをもたらす場(chǎng)合、使用量のクォータやデータソースのパフォーマンスについて心配する必要はありません。そして、なぜそうしないのでしょうか?どれだけきれいにしたか見(jiàn)てください!

遊びたい!

大丈夫。このサイトのコードのコピーを手に入れて、心のコンテンツにいじくり回すことができます。このバージョンには、獨(dú)自のTrelloボードを作成し、ビルドのコンテンツのソースとして使用する方法に関する情報(bào)が含まれています。

  • GitHubのサイトコードリポジトリの例
  • デモサイト
  • 數(shù)回クリックして獨(dú)自のコピーをクローンして展開(kāi)します

自分ですぐに飛び込むのではなく、これが最初にどのように機(jī)能するかを歩きたい場(chǎng)合は、読んでください。

APIの発見(jiàn)

Trelloには、十分に文書(shū)化されたAPIと開(kāi)発者リソースのセットがあります。また、APIを認(rèn)証および対話(huà)するタスクを簡(jiǎn)素化する便利なノードモジュールもあります。ただし、Trelloボードを探索しているときにURLをいじくりすることでAPIを探索することもできます。

たとえば、上記のTrelloボードのURLは次のとおりです。

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

そのURLに.JSONを追加すると、TrelloはJSONとして表されるコンテンツを表示します。見(jiàn)てください。

この手法を使用して、Trello全體の基礎(chǔ)となるデータを検査できます。特に1つのカードのURLは次のとおりです。

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

この小さなトリックを使用してURLに.jsonを追加すると、そのカードを説明するデータが表示されます。

私たちは興味深いものを見(jiàn)つけます - ボード、リスト、カードのためのユニークなID。カードのコンテンツと多くのメタデータを見(jiàn)ることができます。

私はこれをするのが大好きです!すべての素?cái)长圣签`タを見(jiàn)てください!どのように使用しますか?

ボードの使用方法を決定します

この例では、管理可能なコンテンツの1ページしかないサイトがあると仮定します。ボードのリストまたは列は、そのページのセクションを制御するのに最適です。編集者は、タイトルとコンテンツを提供し、必要な注文にドラッグすることができます。

APIを介してアクセスできるように、リストのIDが必要です。幸いなことに、私たちはすでにそれを発見(jiàn)する方法を見(jiàn)てきました - 問(wèn)題のリストにあるカードのデータを見(jiàn)てみましょう。それぞれにIDBoardプロパティがあります。ビンゴ!

サイトの生成

計(jì)畫(huà)は、Trelloからデータを取得し、それをいくつかのテンプレートに適用してサイトに入力することです。ほとんどの靜的サイトジェネレーター(SSG)がジョブを行います。それが彼らが得意なことです。私はそれが理解する最も単純な概念を持っていると思うので、私は110を使用します。さらに、データを取得し、Nunjucks(人気のあるテンプレート言語(yǔ))でクリーンなHTMLを生成するのに非常に効率的です。

Trelloと呼ばれるJavaScriptオブジェクトに見(jiàn)つかった各アイテムのセクション要素を出力するテンプレートの式を使用できるようにしたい:

 
{trello%のカードの%}
<section>
  <h2> {{card.name}} </h2>
  <div>
    {%Markdown%}
      {{ -  card.desc |安全 }}
    {%EndmarkDown%}
  </div>
</section>
{%endfor%}

ビルドのデータを取得します

このようなJamstackサイトで人気のある手法は、Gulp、Grunt、または[ここに最新の新しいビルドスクリプトのHotnessを挿入]を使用してビルドを?qū)g行し、さまざまなAPIとフィードからデータを取得し、SSGの適切な形式でデータを隠してから、SSGを?qū)g行してHTMLを生成します。これはかなりうまく機(jī)能します。

Eleventyは、データファイルでJavaScriptの実行をサポートすることにより、ここで物事を簡(jiǎn)素化します。言い換えれば、JSONまたはYAMLとして保存されているデータのみを活用するのではなく、JavaScriptによって返されるものはすべて使用でき、110のビルドが実行されたときにAPIに直接リクエストを行うための扉を開(kāi)きます。最初にデータを取得するためにオフにするための個(gè)別のビルドステップは必要ありません。 110が私たちのためにそれをします。

それを使用して、テンプレート內(nèi)のTrelloオブジェクトのデータを取得しましょう。

Trelloノードクライアントを使用してAPIをクエリすることもできますが、ボードのJSONに必要なすべてのデータがすぐにあります。すべて! 1つのリクエストで!一度にフェッチすることができます!

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

  //ノードフェッチを使用して、このボードに関するJSONデータを取得します
  const fetch = require( 'node-fetch');
  return fetch(trello_json_url)
    .then(res => res.json())
    .then(json => console.log(json));
};

ただし、そのボードのすべてのデータを表示したくありません。他のリストのカード、閉じられて削除されたカードなどが含まれています。ただし、JavaScriptのフィルターメソッドのおかげで、関心のあるもののみを含めるようにカードをフィルタリングできます。

 // trello.js
module.exports =()=> {
   const trello_json_url = 'https://trello.com/b/zzc0uswz/hellotrello.json'
   const trello_list_id = '5e98325d6d6bd120fb7395f'、
 
   //ノードフェッチを使用して、このボードに関するJSONデータを取得します
   const fetch = require( 'node-fetch');
   return fetch(trello_json_url)
   .then(res => res.json())
   .then(json => {
 
     //私たちが望むリストにあるカードに焦點(diǎn)を合わせるだけです
     //閉じたステータスはありません
     let contentcards = json.cards.filter(card => {
       return card.idlist == trello_list_id &&!card.closed;
     });
 
     コンテンツを返します。
 });
};

それはそれをします!これをEleventy's Data Directoryのtrello.jsというファイルに保存すると、このデータがTrelloというオブジェクトのテンプレートで使用できるようになります。

done-zo! ?

しかし、私たちはより良くすることができます。また、添付の畫(huà)像を処理し、レビューのためにコンテンツをステージングする方法を追加してください。

畫(huà)像添付ファイル

Trelloのカードにファイルを添付することは可能です。畫(huà)像を添付すると、データに記載されている資産のソースURLを使用して、カードにすぐに表示されます。私たちはそれを利用することができます!

カードに畫(huà)像添付ファイルがある場(chǎng)合は、ソースURLを取得し、ビルド時(shí)にテンプレートがページに挿入するものに畫(huà)像タグとして追加します。つまり、JSON(card.desc)の説明プロパティのマークダウンに畫(huà)像のマークダウンを追加することを意味します。

その後、それを他のすべてと一緒に私たちのためにそれをHTMLに変えることができます。このコードは、JSONでカードを探し、データを必要な形狀にマッサージします。

 // trello.js

//カードに添付ファイルがある場(chǎng)合は、畫(huà)像として追加します 
//説明マークダウン
contentcards.foreach(card => {
  if(card.attachments.length){
    card.desc = card.desc` \ n![$ {card.name}]($ {card.attachments [0] .url} '$ {card.name}') `;
  }
});

これで、コンテンツでも畫(huà)像を移動(dòng)できます。ハンディ!

ステージングコンテンツ

Trelloを使用してサイトのコンテンツを管理する方法にもう1つ繁栄しましょう。

コンテンツを世界に起動(dòng)する前に、コンテンツをプレビューしたい方法はいくつかあります。 Trello Boardには、ステージング用のリストが1つ、生産コンテンツ用のリストが1つあります。しかし、それは、すでに公開(kāi)されているものと一緒に新しいコンテンツがどのように生きるかを視覚化することを難しくするでしょう。

より良いアイデアは、Trelloのラベルを使用して、どのカードがライブで公開(kāi)されているか、そして段階的なバージョンのサイトにのみ含める必要があることを示すことです。これにより、素晴らしいワークフローが得られます。適切な場(chǎng)所に新しいカードを追加することで、さらにコンテンツを追加できます。 「ステージ」でラベルを付け、制作ブランチに表示されるカードから除外します。

JavaScriptオブジェクトのもう少しフィルタリングが必要です。

 // trello.js

//「ライブ」またはwithでラベル付けされたカードのみを含めます
//私たちがいるブランチの名前
contentcards = contentcards.filter(card => {
  return card.labels.filter(label =>(
    label.name.tolowercase()== 'live' ||
    label.name.tolowercase()== branch
   ))。長(zhǎng)さ;
 });

「Live」というラベルの付いたコンテンツが、ビルド、ステージングのすべてのバージョンに表示されたいと考えています。さらに、「Branch」と呼ばれる変數(shù)に一致するラベルのあるカードを含めるようになります。

どうして?あれは何でしょう?

これは私たちがcraftyになる場(chǎng)所です! Netlifyでこのサイトをホストすることを選択しました(免責(zé)事項(xiàng):私はそこで働いています)。これは、NetlifyのCI/CD環(huán)境からビルドを?qū)g行できることを意味します。これは、GITリポジトリに変更をプッシュするたびにサイトを再配置し、このサイトに本當(dāng)に便利な他のいくつかのものにアクセスできます。

1つはブランチデプロイです。サイトの新しい環(huán)境が必要な場(chǎng)合は、Gitリポジトリに新しいブランチを作成して作成できます。ビルドはそのコンテキストで実行され、サイトはブランチ名を含むサブドメインで公開(kāi)されます。このような。

見(jiàn)てみると、オレンジ色の「ステージ」ラベルがあるものを含め、リストからすべてのカードが表示されます。このラベルがビルドコンテキストのブランチ名と一致したため、このビルドに含めました。ブランチは、ビルドが実行されたブランチを含む環(huán)境変數(shù)でした。

 label.name.tolowercase()== branch

理論的には、私たちは好きなだけ多くのブランチとラベルを作成し、あらゆる種類(lèi)のステージングとテスト環(huán)境を持つことができました。 「ステージ」から「ライブ」まで何かを宣伝する準(zhǔn)備はできていますか?ラベルを交換すると、行ってもいいです!

しかし、それはどのように更新されますか?

NetlifyのようなCI/CDでサイトビルドを?qū)g行することから得られる2番目の特典は、いつでも好きなときにビルドをトリガーすることができるということです。 Netlifyを使用すると、ビルドフックを作成できます。これらは、HTTP投稿を送信するときに新しい展開(kāi)を開(kāi)始するWebhookです。

TrelloがWebhooksもサポートしている場(chǎng)合は、これらのサービスを一緒に縫い合わせて、Trelloボードが変更されるたびにサイトを自動(dòng)的に更新できます。そして、何を推測(cè)します…彼らはします!フーラ!

Netlifyビルドフックを作成するには、サイトの管理パネルにアクセスする必要があります。 (このデモサイトを、試してみたい場(chǎng)合は、數(shù)回クリックして新しいNetlifyサイトにブートストラップできます。)

ここで、新しいビルドフックURLで武裝して、コンテンツが変更されたときにそれを呼び出す新しいTrello Webhookを登録する必要があります。 TrelloでWebhookを作成する方法は、TrelloのAPIを介して行われます。

このサイトのリポジトリには、Trello APIを呼び出してWebhookを作成するためのわずかなユーティリティが含まれています。ただし、Trello開(kāi)発者のトークンとキーが必要です。ありがたいことに、Trello Developer Portalにアクセスし、「クライアントの承認(rèn)」の下で指示に従うことで、それらを無(wú)料で作成するのは簡(jiǎn)単です。

手に入れましたか?素晴らしい!プロジェクトの.envファイルにそれらを保存すると、このコマンドを?qū)g行してtrello webhookをセットアップできます。

 npm run hook -url https://api.netlify.com/build_hooks/xxxxx

そして、それで、私たちは簡(jiǎn)単なサイトでコンテンツを管理するための素?cái)长市·丹圣榨愆`を作成しました。フロントエンドを必要な方法で作成し、Trelloボードでコンテンツの更新を行うことができます。これにより、変更が行われるたびにサイトを自動(dòng)的に更新できます。

本當(dāng)にこれを使用できますか?

これは単純な例です。それは設(shè)計(jì)によるものです。デカップリングの概念と、外部サービスのAPIを使用してサイトのコンテンツを駆動(dòng)するという概念を?qū)g証したかったのです。

これは、より複雑なプロジェクトのために、フル機(jī)能の分離CMSを置き換えるものではありません。しかし、原則はより複雑なサイトに完全に適用できます。

ただし、このモデルは、獨(dú)立したショップ、バー、レストランなどの企業(yè)に見(jiàn)られるウェブサイトの種類(lèi)にぴったりのものになる可能性があります。レストランのホームページを管理するためのリストが1つあり、メニュー項(xiàng)目を管理するための1つのリストがあるTrelloボードを想像してください。レストランのスタッフが管理するのに非常に親しみやすく、メニューの新しいPDFを変更するたびにアップロードするよりもはるかに優(yōu)れています。

例を探り、自分のボードとコンテンツを試してみる準(zhǔn)備ができましたか?これを試してみてください:

  • 上から例をクローンして展開(kāi)し、変更を開(kāi)始します。
  • netlify netlifyブランチビルドでできることの詳細(xì)については
  • Trello開(kāi)発者のリソースをさらに掘り下げます。

以上がTrelloを超単純なCMSとして使用しますの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

「レンダリングブロッキングCSS」とは何ですか? 「レンダリングブロッキングCSS」とは何ですか? Jun 24, 2025 am 12:42 AM

ブラウザは、特にインポートされたスタイルシート、ヘッダーのインラインCSS、および最適化されていないメディアクエリスタイルを使用して、ブラウザがインラインおよび外部CSSをデフォルトで主要なリソースとして表示するため、ページレンダリングをブロックします。 1.重要なCSSを抽出し、HTMLに埋め込みます。 2。JavaScriptを介して非クリティカルなCSSの読み込みを遅らせる。 3.メディア屬性を使用して、印刷スタイルなどのロードを最適化します。 4.リクエストを減らすためにCSSを圧縮およびマージします。ツールを使用してキーCSSを抽出し、REL = "Preload"非同期負(fù)荷を組み合わせ、過(guò)度の分割と複雑なスクリプト制御を避けるためにメディア遅延荷重を合理的に使用することをお?jiǎng)幛幛筏蓼埂?/p>

外部対內(nèi)部CSS:最良のアプローチは何ですか? 外部対內(nèi)部CSS:最良のアプローチは何ですか? Jun 20, 2025 am 12:45 AM

TheBestAppRoachforCSDependsonTheProject'sSpecificNeeds.forLargerProjects、externalCssissisbetterduetoMaintainasiladability; forsmallerProjectsOrsingLe-PageApplications、internalcsSmightBemoresuitable.it

私のCSSは小文字でなければなりませんか? 私のCSSは小文字でなければなりませんか? Jun 19, 2025 am 12:29 AM

いいえ、CSSDOESNOTHAVETOBEINLOWERCASE。

CSSケース感度:重要なことを理解する CSSケース感度:重要なことを理解する Jun 20, 2025 am 12:09 AM

cssismostlycase-inssensitive、buturlsandfontfamilynamesarecase-sensitive.1)propertiesandvalueslikecolor:red; areotcase-sensitive.2)urlsmustmatchtheserver'scase、例えば、/畫(huà)像/logo.png.3)

Autoprefixerとは何ですか?それはどのように機(jī)能しますか? Autoprefixerとは何ですか?それはどのように機(jī)能しますか? Jul 02, 2025 am 01:15 AM

Autoprefixerは、ターゲットブラウザスコープに基づいてCSS屬性にベンダープレフィックスを自動(dòng)的に追加するツールです。 1.エラーで接頭辭を手動(dòng)で維持する問(wèn)題を解決します。 2. PostCSSプラグインフォーム、CSSを解析し、プレフィックスする必要がある屬性を分析し、構(gòu)成に従ってコードを生成する屬性を分析します。 3.使用手順には、プラグインのインストール、ブラウザーリストの設(shè)定、ビルドプロセスでそれらを有効にすることが含まれます。 4。メモには、接頭辭を手動(dòng)で追加しない、構(gòu)成の更新を保持すること、すべての屬性ではなくプレフィックスを維持することが含まれ、プリ??プロセッサでそれらを使用することをお?jiǎng)幛幛筏蓼埂?/p>

CSSカウンターとは何ですか? CSSカウンターとは何ですか? Jun 19, 2025 am 12:34 AM

csScountersCantAnationally-bersectionSandLists.1)usecounter-resettoinitialize、counter-incrementtoincrease、andcounter()orcounters()todisplayvalues.2)を組み合わせたjavascriptfordynamiccontenttoensureaCurateupdatesと組み合わせます。

CSS:ケースはいつ重要ですか(いつそうではありませんか)? CSS:ケースはいつ重要ですか(いつそうではありませんか)? Jun 19, 2025 am 12:27 AM

CSSでは、セレクターと屬性名はケースに敏感ですが、値、名前の色、URL、およびカスタム屬性はケースに敏感です。 1.バックグラウンドカラーや背景色など、セレクターと屬性名はケース非感受性です。 2。値の16進(jìn)數(shù)色は大文字と小文字を區(qū)別しますが、赤と赤などの名前の色は無(wú)効です。 3. URLは癥例に敏感であり、ファイルロードの問(wèn)題を引き起こす可能性があります。 4.カスタムプロパティ(変數(shù))はケースに敏感であり、使用する場(chǎng)合はケースの一貫性に注意を払う必要があります。

conic-gradient()関數(shù)とは何ですか? conic-gradient()関數(shù)とは何ですか? Jul 01, 2025 am 01:16 AM

TheConic-Gradient()functionsscreateScular勾配の勾配は、測(cè)定されていることを確認(rèn)してください

See all articles