ゞキル実践ガむド

ハブラハブのゞキルはすでに茝いおいたした。 芁するに、これは静的なサむトを生成するためのブログ指向のシステムです。 䞻な機胜Githubペヌゞで䜿甚されたす。これにより、サむトの゜ヌスをGithubのリポゞトリに保持できたす。たた、コミットが収集され、蚪問者に衚瀺されおから10分以内に耇数のキャッシュサヌバヌを保持できたす。 もっず簡単に面癜い堎合は、 この蚘事を読むこずをお勧めしたす。 これに぀いおは、ここで蚀及する資料の䞀郚です。 そしお、ゞキルに぀いお詳しく説明したす。意図した目的にどのように䜿甚できるか、他の目的に䜿甚できる理由、および可胜なこずです。 この蚘事では、以前にこのようなものWordPressで働いおいたようなものを扱ったこずがない人に焊点を圓おおおり、蚘事のほずんどでJekyllはブログの手段ず芋なされたすが、最終的には完党に異なるものになりたす。



すべおの既存のブログプラットフォヌム゚ンゞン、サヌビス、ゞェネレヌタヌの䞭で、Jekyllは奇劙に際立っおいるように芋えたした。 かなり前に静的サむトに興味を持ち、類䌌物を知らなかったためです。 Jekyllは、ブログを意図された目的で䜿甚するこずに興味がある、技術的に読み曞きのできる人を察象ずしおいたす。逆に幎代順に投皿を公開し、倚かれ少なかれ䟿利なナビゲヌションを提䟛したす。 さらに必芁な堎合は、汗をかくか、もっずgiveめる必芁がありたすたあ、たたはゞキルから。 そしお、倚くの点でこの「コミュニケヌション」の方法は、このプラットフォヌムのナヌザヌの茪を決定したす。非垞に理解しやすい構造ず新しい投皿の発行で最小限の問題を抱えるサむトを必芁ずする人々です。



投皿を曞く



Jekyllが最初に反発するのは、ほずんどの初心者です。ビゞュアルWYSIWYG゚ディタヌがたったくないこずです。 これは意図的な倱敗であり、技術的な欠陥ではありたせん。 投皿のデザむンには、゜ヌスコヌドでも読みやすいマヌクアップ蚀語であるMarkdownおよびTextile蚀語を䜿甚するこずが提案されおいたす。 そしお、これの助けを借りお、「真空䞭のJekyllの球状のナヌザヌ」にずっおより重芁な投皿を曞くずいう原則が実珟されたす。



Jekyllのビゞュアル゚ディタヌは、どこに眮くかがあたり明確ではないため、欠垭しおいたす。 入力した結果を自分で保存する必芁がありたす。線集者はそれを曞き蟌むこずができたせん。サむトは䜕らかの圢で静的です。 これは状況から2぀の合理的な方法を課したす



最初の方法を䜿甚するJekyllナヌザヌは誰も知りたせんが、そのような方法があるこずを陀倖したせん。 はい、ブラりザベヌスのビゞュアル゚ディタを䜿甚できたすが、投皿を曞くプロセス党䜓は、゚ディタに入力しお、結果のコヌドをMarkdown* .md、* .markdownのJekyll投皿のあるファむルにコピヌするだけになりたす。 テキスタむルは詊しおいないが、おそらく圌はそのようなナヌモアにも感謝するだろう。 しかし、真剣に考えおいるなら、考えおみおください。なぜゞキルが必芁なのですか



静電気は有害ではありたせん



2぀目は、ゞキルが反発するこずです。組み立おられたサむトの静的な性質、フィヌドバックの欠劂。 これは等しく䞍利であり、長所です。 サヌドパヌティのサヌビスを䜿甚するず、この機胜の欠点を匱めるこずができたす。 このアプロヌチはすべおの人に適しおいるわけではありたせんが、倚くの人に適しおいたす。 WordPressの機胜のごく䞀郚しか䜿甚しおいないため、WordPressを攟棄したした。残りは無効にするか、远加のプラグむンでブロックする必芁がありたした。 最埌に、同じサヌドパヌティサヌビスに投皿されたコメントに制限されおいる堎合、サむトにフィヌドバックが必芁なのはなぜかず思いたした。 倚くのブログはそれ以䞊必芁ずしたせん。



フィヌドバックを拒吊するこずで、ホスティング芁件を倧幅に削枛できたす。静的サむトの堎合、サヌバヌは、ほずんどすべおのWebサヌバヌが実行できるファむルシステムからペヌゞを提䟛する機胜のみを必芁ずしたす。 コメントはDisqusを含む倚くのサヌビスを提䟛し、怜玢する方法はいく぀かありたす。

これはすでに良いブログを始めるのに十分であり、成長するずきにナビゲヌトするのに䟿利です。 同時に、ホスティング偎はペヌゞを提䟛するだけで十分です。 おそらくこれは、他のノヌドに远加の芁求を行う必芁があるクラむアントに関しおは「間違っおいる」かもしれたせんが、この欠点が静的のすべおの利点をどの皋床䞊回るかは、あなた次第です。 通垞、それを䞊回るこずはありたせん。



Githubでのホスティングの機胜



Githubは、䞻にGitリポゞトリのリポゞトリです。 たた、サむトに関しおは、これはサむトぞの倉曎の党履歎を保存するこずを意味したす。 Jekyllのサむトリポゞトリにアクセスしお、コミットによっおサむトの履歎党䜓を確認するのは楜しい堎合がありたす。 これは楜しい機胜であるだけでなく、他のJekyllナヌザヌに䜙分な劎力をかけずにトリックを教育する方法でもありたす。



考えおみるず、GithubはJekyllを䜿甚する最も匷力な理由の1぀です。 実際には管理パネルに代わるリポゞトリの高床なWebむンタヌフェヌスに加えおそこからファむルを䜜成および線集できたす。これで完党に制埡できたす、このようなホスティングにより、少なくずもGithubが動䜜する堎所であればどこからでもダりンロヌド速床が速くなりたす。



たた、ゞキル自身ずは関係のない倚くの機胜がありたす。 リポゞトリのルヌトに404.htmlを配眮するず、ナヌザヌがサむトぞの壊れたリンクをクリックした堎合に、独自の゚ラヌペヌゞが衚瀺されたす。 ルヌトに1行のCNAMEテキストファむルを配眮し、この行に瀺されおいるドメむンをサむトに添付したす。 DNSを䜿甚しおこのドメむンをGithubに転送するだけです。



なぜYAMLがあるのか



Jekyllをむンストヌルしお䜿甚するための十分なガむドがありたす。もっず内郚的なこずに぀いお話したしょう。 「YAMLヘッダヌ」ず呌ぶYAMLフロントマタヌは、ファむルの最初に蚘述されたペヌゞたたは投皿に関する構造化された情報のセットです。 私にずっお最も身近なYAMLの類䌌物であり、非垞に人気がありたす-JSON。 蚀語の本質構造化されたデヌタセットのテキスト圢匏での衚珟 シリアル化 。 そしお、構造化を䟿利にするために、蚀語に2぀のデヌタ構造リストず連想配列リストずマップがあれば十分です。 簡単に蚀えば、倀のリストず特定の名前の倀のリストだけです。



ここでのYAMLは、デヌタの読みやすさを維持しながら、たさにそのずおりに行いたす。 ほずんどの堎合、圌は連想配列でいく぀かの倀を指定するこずに興味がありたす名前、日付、タグ、カテゎリ。 さらに、YAMLはWYSIWYMの感芚をサポヌトしたす。垜子を芋れば、垜子の意味を理解できたす。 しかし、YAMLはそのような原始的な指瀺よりもはるかに倚くのこずができたす。



YAMLには、 兞型的なものからクレむゞヌ なものたで、あらゆるデヌタを絶察に曞き蟌むこずができたすバグレポヌトは既に送信されおいたす。 YAMLの_posts



付きの_posts



内の投皿のセットは、実際にはサむトのデヌタベヌスであり、Jekyllの開発時に考えられた圢匏で䜿甚する必芁はありたせん。 ただし、デヌタベヌスに入力する前に、デヌタベヌスのデヌタの䜿甚方法を孊習する必芁がありたす。 これに぀いおもう少し。



テンプレヌト最も重芁なこず



おそらく、すべおの静的サむトゞェネレヌタヌの䞻な機胜はテンプレヌトです。 コンピュヌタがあなたのためにそれをするこずができるならば、同じコヌドをいく぀かの異なる堎所にコピヌする必芁がないので。 Jekyllテンプレヌトシステム党䜓はシンプルで、ほずんど原始的です。 テンプレヌトはHTMLペヌゞ _layouts



フォルダヌ内であり、Liquidタグ埌で詳しく説明したす {{ content }}



たす。 そしお、テンプレヌトの名前は、拡匵子を陀いたファむル名であるず考えられたす。たずえば、パタヌンfoo



ファむルに蚘述されおいる必芁がありfoo.html



。

サむトのどのペヌゞでもテンプレヌト別のテンプレヌトを含むにリンクできたす

 --- layout: default ---
      
      





Jekyllはペヌゞを䜜成するずきに、䞊蚘のように、ヘッダヌでlayout



パラメヌタヌが指定されおいるかどうかを確認したす。 指定した堎合、ペヌゞは最初に指定されたテンプレヌトからアセンブルされ、受信したペヌゞからタグ{{ content }}



が䜜業䞭のペヌゞのコンテンツに眮き換えられたす。 䟋を挙げたしょう。



私のサむトでは、䞻にlist



ずpost



2぀のテンプレヌトを䜿甚しおいたすが、これらは自絊自足ではなく、 default



テンプレヌトの拡匵機胜default



。 埌者は、ほがすべおのペヌゞで䜿甚される最も倖偎のシェルです。 post



は、投皿、そのタグ、およびコメントフォヌムを衚瀺したす。 list



すべおの皮類の投皿リストに䜿甚され、リスト内のすべおの投皿のコメント数を衚瀺するJavaScriptが含たれおいたす。 ブログに投皿を䜜成するずき、Jekyllは最初にlayout: post



ヘッダヌ内のpost.html



し、 post.html



を呌び出しおlayout: default



たす。 default.html



にテンプレヌトが指定されおいないため、このファむルをダりンロヌドし、 {{ content }}



代わりにpost.html



を曞き蟌みたすこれはテンプレヌトでもあり、 {{ content }}



持ち{{ content }}



 {{ content }}



私の投皿を曞き蟌みたす。



本栌的な蚘事、ニュヌス、匕甚笊、画像理論的には、あなたは、䜍眮やフォヌマットの皮類を行うこずができたす。 投皿が圢匏に応じおさたざたな方法でリストに衚瀺されるように䞀生懞呜働く必芁がありたすが、これはおそらく唯䞀の明癜でない瞬間です。



液䜓の予期せぬ力



サむトを生成するには、生成のルヌルを蚘述する必芁がありたす。 䞀郚は、特定の圢匏日付名に察応する名前を持぀_posts



内のすべおのファむルを凊理し、 site



構造をコンパむルするように、Jekyll自䜓に瞫い付けられたす。 これにより、ブログの䜜業が簡単になりたす。



Liquidでルヌルを蚘述したり、Rubyでプラグむンを開発したりするこずもできたす。 しかし、埌者の堎合、倱望があなたを埅っおいたす-GithubはJekyllを「セヌフモヌド」で起動し、ゞェネレヌタヌはナヌザヌプラグむンに泚意を払いたせん。 本圓に必芁な堎合は、い぀でも自分でサむトを生成し、サむトの゜ヌスではなくゞェネレヌタヌから取埗した結果をGithubにアップロヌドできたす。 同じリポゞトリの2぀の異なるブランチでこれを行うのが賢明です Octopressのように。 すぐに曎なる行動せずにコミットプッシュした埌、゜ヌスコヌドの倉曎をピックアップする胜力を - あなたが倱われおいるこずをすべお。 䞻に同じマシンからサむトを操䜜する堎合、これはたったく問題ではありたせんリポゞトリを含むフォルダヌにサむトを収集し、たずえば日付/時刻をコミットし、倉曎をGithubに送信するシェルスクリプトを曞くこずができたす。 しかし、恐れるこずなくできるこずに戻りたしょう。



Jekyllにサむトを䜜成するだけで、メむンペヌゞのLiquidに1぀の簡単なプログラムが既に衚瀺されたす。 プログラムの本質は簡単です。サむトで利甚可胜なすべおの投皿を衚瀺したす。 そしお、 これを行うコヌドはかなり読みやすいように芋えたす

 {% for post in site.posts %} <li><span>{{ post.date | date_to_string }}</span> &raquo; <a href="{{ post.url }}">{{ post.title }}</a></li> {% endfor %}
      
      



} </a>の</ LI> {% for post in site.posts %} <li><span>{{ post.date | date_to_string }}</span> &raquo; <a href="{{ post.url }}">{{ post.title }}</a></li> {% endfor %}





各投皿の公開日ずその名前で瀺されたリンクを印刷したす。 かなり論理的で短く芋えたす。 しかし、これは最も簡単な圢匏です。 おそらく、各投皿でその䞀郚を衚瀺したいでしょう「カタ」のメカニクス。 ゞキル開発者は、この䜜品を倉数に曞かれおいる各ポストのための研究を行っおいるexcerpt



。 Liquidでは、たずえば次のように実装できたす。

 {% for post in site.posts %} <li> <p><span>{{ post.date | date_to_string }}</span> &raquo; <a href="{{ post.url }}">{{ post.title }}</a></p> <p>{{ post.excerpt }}</p> </li> {% endfor %}
      
      



} </a>の</ P> {% for post in site.posts %} <li> <p><span>{{ post.date | date_to_string }}</span> &raquo; <a href="{{ post.url }}">{{ post.title }}</a></p> <p>{{ post.excerpt }}</p> </li> {% endfor %}





Liquidを䜿甚しおサむトマップ  この人に感謝したすを生成し、 タグクラりド 最もよく䜿甚されるタグは圌のおかげで倧きくなりたすを生成できたす。これはサむトに非垞に圹立ちたす。



YAML +液䜓=



組み蟌み倉数を䜿甚するず、すべおが倚かれ少なかれ明確になりたす。 しかし、問題はそれらに限定されたせん。 実甚的な䟋に続けお、䟋えば、私のサむト䞊で䜿甚されるペヌゞタむトルを芋お、ここずここ 。 各芋出しにはFontAwesomeのアむコンもありたす。 このフォントからアむコンを挿入する叀いバヌゞョンでは、私のように構造によっお実行されたす

 <i class="icon-"> </i>
      
      





ただし、テンプレヌトでこれを行うこずにより、毎回ヘッダヌに曞き蟌むこずはできたせん。

 <i class="icon-{{ post.icon }}"> </i>
      
      





...そしお、必芁なペヌゞのYAMLヘッダヌで次のように簡単に尋ねたす

 icon: tags
      
      





そしお、これは比范的単玔な䟋です。 デヌタ構造党䜓を独自の倉数に栌玍できたす。これにより、䞀郚の人にずっおはおかしなこずをするこずができたす。 これを実珟できるこずに気づいたずき、スクリプトに埓っお10時間で「玠手で」組み立おられたテキストク゚ストを、Jekyllを䜿甚した自動組み立おに再線集したした。 元のバヌゞョンを含め、結果をここで芋るこずができたす。 テキストク゚ストの各「シヌン」は、Jekyllの甚語での「投皿」です。YAMLヘッダヌには、「コヌド名」、シヌンスタむル、シヌンぞの「むラスト」アむコン、リンクのリストが含たれ、それぞれがアむコン、テキスト、目的地、およびそれほど重芁ではないゎミ。 すべおのシヌンに基づくゞキルは、収集にすべおのこのク゚ストが動䜜状態にある倧芏暡なペヌゞをブログ。 䞍快な副䜜甚-シヌンごずにペヌゞが生成されたすが、それらぞのリンクはどこにもありたせん。 これに察凊する方法、私は考えおいたせんでした。



おわりに



繰り返しになりたすが、ゞキルは䞇人向けではありたせん。 しかし、蚘事党䜓を読んで怖がらなかったなら、おそらくJekyllを実際に詊しおみるべきでしょう。Rubyが蚭定した時間できればずWebペヌゞのコンパむルに関する基本的な知識があれば十分です。 すべおのWordPressナヌザヌが䜿甚するわけではない機胜実装に぀いお説明したした。



Jekyllで利甚可胜な機胜により、単なるブログ以䞊のものを䜜成できたす。 しかし、これは他の目的でのJekyllの䜿甚である可胜性が高くなりたすが、Githubでのホスティングずいう圢で玠晎らしいボヌナスを䌎う非垞に興味深いタスクになる可胜性がありたす。 Rubyのプラグむンのトピックは、1぀の簡単な理由で開瀺したせんでした。この蚀語に完党になじみがなく、Githubでプラグむンを䜿甚できないからずいっお勉匷する必芁はありたせん。 凊理を習埗する必芁があるのはYAMLずLiquidの2぀の蚀語のみです。ガむドラむンに準拠し、それ以䞊を目指しおいない堎合は、これも必芁ありたせん。 ただし、完党にナニヌクで非垞に圹立぀ものがそこに投皿されおいない堎合、貧匱で原始的なブログを必芁ずする人はほずんどいたせん。



䞀般的に、自分の匷さず決意を感じたら詊しおみおください。 そしお、ただこのようなこずを詊しおいない堎合。



All Articles