前の記事では、コミュニティ主導のWebサイトの計画段階を調査しました。ユーザーの提出物を受け入れることに伴う多くの考慮事項について議論しました。
それでは、コードに飛び込みましょう!コミュニティ(または個人)Webサイトの基盤として機能する110のセットアップを構築します。
シリーズ:
- 貢献の計画
- サイトの構築(現在の記事)
この記事では:
- ASETUPを設定し、開発とビルドスクリプトを作成します。
- 推奨される構成のカスタマイズ。
- カスタムデータの定義と複数のデータソースのマージ。
- NunjucksとLeaoutチェーンを使用してレイアウトを作成します。
- Netlifyに展開します。
プロジェクトビジョン
ユーザーが猫と犬の写真を提出し、可愛らしさのコンテストで競うプラットフォームを想像してください。
この記事では、PETの提出のみに焦点を当てています。ユーザー投票(サーバーレス関数で簡単に実装)は、将来の開発のために残されています。ユーザーはペットのプロフィールを提出し、ホームページでランダムな犬とランダムな犬をフィーチャーした毎週の「戦闘」を生成します。
110のセットアップ
npm init
を使用して新しいプロジェクトを初期化することから始めてから、110をインストールします。
npmインストール @11ty/eleleen
オプションで、 package.json
スクリプトセクションを変更します。
「スクリプト」:{ 「開発」:「Eleventy -Serve」、 「ビルド」:「Eleventy」 }、
これにより、BrowserSync Hot-Reloading( npm run develop
)と生産ビルド( npm run build
)を使用した開発が可能になります。
効率的なデータ処理のためにfast-glob
をインストールしてください:
npmインストール - save-dev fast-glob
ディレクトリ構造
Eleventyを使用すると、入力および出力ディレクトリのカスタマイズが許可されています。プロジェクトルートでeleventy.js
を作成します:
module.exports = function(eleventyconfig){ 戻る { dir:{ 入力:「SRC」、 出力:「パブリック」 }、 }; };
ペットデータを保存するpets
ディレクトリを作成し、さらにcats
やdogs
サブディレクトリに細分されます。
<code>pets/ cats/ dogs/</code>
各ペットのデータは、次のスキーマを備えたJSONファイルになります。
{ "名前": ""、 「ペットコラー」: "" 「FavoreFood」: "" 「faveitetoy」: "" 「フォトール」: "" 「OwnerName」: "" 「ownertwitter」: "" }
投稿ガイドラインとデータスキーマに関するユーザーをガイドするために、 CONTRIBUTING.md
ファイル(またはREADME.md
)を作成します。 favoriteFood
、 favoriteToy
、およびownerTwitter
オプションであることに注意してください。 photoURL
、セキュリティとホスティングの理由のために、ファイルのアップロードではなくURLである必要があります。
データ処理
_data
ディレクトリでcats.js
とdogs.js
を作成して、個々のペットファイルを配列に結合します。
// cats.js const fastglob = require( "fast-glob"); const fs = require( "fs"); module.exports = async()=> { const catfiles = await fastglob( "./ src/pets/cats/*。json"、{ caseSensitivematch:false、 }); cats = new set(); for const catdata = json.parse(fs.readfilesync(cat)); cats.add(catdata); } return [... cats]; };
( dogs.js
は似ており、「猫」を「犬」に置き換えます)。このアプローチは、マージの競合を最小限に抑えます。
データ出力とテンプレート
サンプルJSONファイルをpets/cats
とpets/dogs
に追加します。 src
ディレクトリにindex.njk
を作成します。
<h1 id="猫">猫</h1>
-
{猫の猫の%%}
- {{cat.name}} {%endfor%}
犬
-
{犬の犬の%%}
- {{dog.name}} {%endfor%}
ペットのプロフィールページとページネーション
cats.njk
とdogs.njk
を作成して、ページネーションフロントマター( cats.njk
の例)を備えたsrc
ディレクトリで:
--- ページネーション: データ:猫 エイリアス:猫 サイズ:1 パーマリンク:「https://www.php.cn/link/543817ed62fa34e371bb229d4f7b603f」 ---
これにより、各ペットの個々のページが生成されます。
レイアウトと計算データ
src/_includes
でbase.njk
とpets.njk
を作成します。 base.njk
は、 {{ content | safe }}
。 layout: base.njk
front matter to index.njk
。また、レイアウトチェーンのlayout: base.njk
をpets.njk
に追加します。
cats.njk
とdogs.njk
でeleventyComputed
使用して、テンプレート変数を共有します。
--- イレブンティック: タイトル: "{{cat.name}}" PetColor: "{{cat.PetColor}}" お気に入りのフード: "{{cat.favoritefood}}" faveitetoy: "{{cat.favoritetoy}}" Photourl: "{{cat.photourl}}" OwnerName: "{{cat.Ownermame}}" ownertwitter: "{{cat.OwnertWitter}}" ---
pets.njk
にコンテンツを追加して、ペットデータを表示します。 layout: pets.njk
cats.njk
とdogs.njk
に。
Netlifyへの展開
サイトを展開してnetlifyにします。 public
ディレクトリからサーブするようにnetlifyを構成し、 npm run build
をマージに実行します。 netlify.toml
ファイルは、このプロセスを簡素化できます。プルリクエストのプレビューの展開を有効にします。
提出を受け入れる
貢献ガイドラインを確認し、支店の保護規則を確立します。提出プロセスには、フォーキング、クローニング、JSONファイルの作成、変更のコミット、プルリクエストの開く、およびマージが含まれます。
結論
これにより、自動展開を備えた機能サイトが作成されます。さらなる機能強化には、電子メールニュースレター、ソーシャルメディアプレビュー、コメントシステム、Netlify CMSが含まれます。完全な例はGitHubで利用できます。
以上がEleventyを備えたコミュニティ主導のサイト:サイトの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

フライアウトメニュー! Hoverイベントを使用してメニュー項目をより多く表示するメニューを実装する必要がある2番目の場合は、トリッキーな領域にあります。 1つは、そうすべきです

今週、#039;のラウンドアップ:DatePickersはキーボードユーザーのHeadachesを提供しています。これは、Foucとの戦いに役立つ新しいWebコンポーネントコンパイラであり、最終的にスタイリングリストのアイテムマーカーと、サイトでWebメントを取得するための4つのステップを手に入れます。

今週のWebプラットフォームニュースの世界を見回すと、Google Searchコンソールによりクロールされたマークアップの表示が簡単になります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
