検索
ホームページウェブフロントエンドhtmlチュートリアルhakyll を使用して静的サイトを構築する_html/css_WEB-ITnose

hakyll とは

hakyll は、静的サイトを構築するための jekyll に似たツールです

hakyll と jekyll の違い

hakyll は、他のほとんどの同様のツール、github のデフォルトと比較して優れた柔軟性を持っています 静的 Web ページ ジェネレーター jekyll は、 jekyll を使用する場合は、その規則に従う必要があります。たとえば、ブログ投稿は yy-mm-dd で始まるファイル名で ~posts~/ フォルダーに保存する必要があります。柔軟性、hakyll の哲学は、ユーザーがコンテンツを作成し、hakyll がこれらのコンテンツをさまざまなプレゼンテーション形式に変換する責任があるということです。このように、生成されるサイト形式にはブログに限定されず、スライドや PDF などのコンテンツも含めることができます。 hakyll のインストールと基本的な使い方

hakyll は非常に高度な Haskell 言語で書かれているため、hakyll を使用するには Haskell 環境が必要です。Mac でのインストールは非常に簡単です

  brew install ghc cabal-install

インストールが完了したら、$HOME/ を忘れずに入れてください。 .cabal/ bin が $PATH に追加されるので、新しいサイトを作成できます

  $ hakyll-init my-site  $ cd my-site  $ ghc --make -threaded site.hs  $ ./site build  $ ./site watch

http://localhost:8000/ を開くと、デフォルトで生成されたサイトが表示されます。jekyll のように hakyll を使用したい場合は、そのまま行ってください。ここで、投稿フォルダーにブログ投稿を書くだけです

hakyll の高度な機能

hakyll の強力で柔軟な構成を体験したい場合は、以下をお読みください

hakyll の仕組み

上記の方法で hakyll を初期化すると、サイトのファイル構造は

  .  ├── README.md  ├── about.rst  ├── contact.markdown  ├── css  │   └── default.scss  ├── images  │   └── haskell-logo.png  ├── index.html  ├── posts  │   └── use-hakyll-to-build-static-website.org  ├── site  ├── site.hi  ├── site.hs  ├── site.o  └── templates      ├── archive.html      ├── default.html      ├── post-list.html      └── post.html

に似ています。ただし、サイトの先頭にあるいくつかのファイルを除きます (サイトはコンパイルされたバイナリ ファイルで、サイズは約 100 MB です。次のファイルは含めないでください)。バージョン管理内にあります!)、その他は静的ファイルであり、構造は自由に定義できます。このうち、site.hs は hakyll の設定ファイルと考えられますが、これを開くと、haskell のわかりにくいコードが大量に表示されます。

少し観察すると、3 つのキーワードがあることがわかります

match

    route
  • compile
  • match は一致で、次のファイル名はサイト ディレクトリ内のソース ファイルです (例: ') css/*' これは、css フォルダー内のすべてのファイルを参照します
route は、通常のプログラムのすべてのルートとは少し異なります。これは、一致したファイルがコンパイルされたサイトの場所に配置されることを意味します (デフォルトは です)。 ~site~ フォルダー)

compile はパイプライン、リソースのようなもので、マークダウン -> HTML や圧縮と難読化など、一致 (先頭) からルート (末尾) までのプロセスで実行する必要がある変換作業です。 、などです。

これは hakyll の構造です。非常に明確です。ユーザーが元のデータを提供すると、hakyll がそれらをコンパイルして正しい場所に配置します

hakyll の能力を示すための実践的な例をいくつか示します

sass

  -- 使用 compass 来处理 scss 样式  match (fromList ["sass/main.scss", "sass/blog.scss"]) $ do      route   $ setExtension "css"      compile $ getResourceString >>=          withItemBody (unixFilter "sass" ["-s", "--scss", "-I", "sass/"]) >>=          return . fmap compressCss
をサポートします

存在しないページを作成します

  create ["archive.html"] $ do      route idRoute      compile $ do          posts <- recentFirst =<< loadAll "posts/*"          let archiveCtx =                  listField "posts" postCtx (return posts) `mappend`                  constField "title" "Archives"            `mappend`                  defaultContext          makeItem ""              >>= loadAndApplyTemplate "templates/archive.html" archiveCtx              >>= loadAndApplyTemplate "templates/default.html" archiveCtx              >>= relativizeUrls

この例では、archive.html ページは元々存在しません。posts/ の下にあるすべてのファイルを読み取り、そのタイトル属性を読み取り、リストします。これは、オブジェクトのプロパティを読み取ってループアウトする Jekyll の方法と同じです。結局のところ、Haskell は関数型言語です

スライド

  match "slides/*" $ do      route   $ setExtension "html"      compile $ getResourceString >>=          withItemBody (unixFilter "pandoc" ["-s", "--mathml", "-i", "-t", "dzslides"])

強力な Pandoc を使用して、マークダウン ファイルを直接スライドに変換します。

実際の例

ここに hakyll を使用している多くの Web サイトがリストされていますが、すべて参照用に github にソースコードが掲載されています

概要

hakyll はパイプラインであり、その機能は、作成したコンテンツを適切な方法で表示することです

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTML、CSS、およびJavaScriptの役割:コアの責任HTML、CSS、およびJavaScriptの役割:コアの責任Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは初心者のために簡単に学ぶことができますか?HTMLは初心者のために簡単に学ぶことができますか?Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境