ホームページ  >  記事  >  バックエンド開発  >  Katana – Markdown 構文をサポートする PHP 静的サイト/ブログ ジェネレーター

Katana – Markdown 構文をサポートする PHP 静的サイト/ブログ ジェネレーター

WBOY
WBOYオリジナル
2016-06-23 13:14:311349ブラウズ

現在、Hexo、Jekyll などの静的サイト ジェネレーターがいくつかあります。今日私は、PHP 構文を使用し、Markdown 構文をサポートし、Laravel の Blade テンプレート エンジンを使用する静的ブログ ジェネレーターを見つけました。

Katana の主な機能:

  • マークダウン構文のサポート
  • 素早いインストール
  • きれいな URL が付属
  • 簡単な記事ページング
  • Github Pages のサポート

1.

Katana のインストールはとても簡単です。 Composer create-project コマンドを実行するだけです:

composer create-project themsaid/katana your-site-name

Katana が your-site-name ディレクトリにインストールされたので、次のコマンドを実行してサイトを生成する必要があります:

cd your-site-namephp katana build

A はフォルダーに生成されます。ディレクトリには、生成された静的ファイルが含まれます。

bulidのbaseURLを指定します

静的ファイルを生成するとき、base_urlでbaseUrlを指定できます:

php katana build --base_url=/awesome-site

この場合、Bladeの@url()ディレクティブを使用してリンクを生成すると、次のようなURLが生成されます: /awesome - site/about

2. ディレクトリ構造

build コマンドを実行すると、次のファイル構造が生成されます:

  • content: Katana が Web サイトのコンテンツを探す場所です
  • _cache: これは Blade ですコンパイルされたビューファイルが保存される場所
  • public: Katana が生成した静的ファイルをここに保存します
  • config.php: Web サイトの設定項目

2.1 「コンテンツ」のディレクトリ構造について

このファイルが保存されましたこのフォルダーには、Blade ビュー、静的ファイル (JS、CSS、画像など)、_blog フォルダー、および _include フォルダーが含まれます。

_content フォルダーは Blade レイアウトとベース ビューを保存する場所です。Katana はこれらのファイルに対してアクセス可能なページを生成しません。

_blog フォルダーは、ブログのコンテンツが保存される場所です。

2.2 config.php について

このファイルには、Katana が静的ファイルを生成するために必要ないくつかの事前定義された項目が含まれています。各設定項目には、その用途を説明する詳細な説明が含まれています。

このファイルで任意の変数を定義することもでき、Web サイトのどのビューでも呼び出すことができます。

3. Blade テンプレート

Blade テンプレートに詳しくない場合は、次の段落で Laravel Web サイトからの紹介を参照してください:

Blade は、Laravel が提供するシンプルだが強力なテンプレート エンジンです。他の主流の PHP テンプレート エンジンとは異なり、Blade ではビューでの純粋な PHP コードの使用が制限されません。

ここにアクセスして Blade のドキュメントを読むことをお勧めします。

3.1 Blade で Markdown 構文を使用する

Katana は Blade に @markdown ディレクティブを追加します。次のように使用できます:

<h2>Regular HTML heading</h2>@markdown    This is some **Markdown** content.@endmarkdown

3.2 URL を生成する

Katana は Blade の @url() ディレクティブを使用してページと静的ファイルの URL を生成します。これらの URL は、ビルドの実行時に指定されたbase_url パラメーターに基づきます:

@('/')                // Outputs '/'@('about')            // Outputs '/about'@('assets/style.js')  // Outputs '/assets/style.js'

4. ブログ ジェネレーター

Katana でブログを生成するのは非常に簡単で、

/content/_blog

にファイルを作成するだけです。

2016-03-03-my-post-slug.blade.php
ファイル名の前の日付は、ファイル システム内のファイルを並べ替えるために使用され、ブログの URL を生成するためにも使用されます。上記のファイルは、次の URL を生成します。
blog.com/my-post-slug-20160303

4.1 ブログ投稿内の変数

ブログのビューは次のようになります:

@section('post::title', 'Stop Trying To Be Somebody')@section('post::date', 'February 28, 2016')@section('post_body')    <h2>@yield('post::title')</h2>    <small>@yield('post::date')</small>    Post content here.@stop

post:: で始まるセクションは、$blogPosts というグローバル変数に追加されます。この変数はすべてのビューで使用できます。これにはオブジェクトの配列が含まれます。

この変数を使用すると、すべてのブログ投稿をループできます:

@foreach($blogPosts as $blogPost)    <li>        <a href="{{ $blogPost->path }}">            {{ $blogPost->title }} at {{ $blogPost->date }}        </a>    </li>@endforeach

path 属性は Katana によって自動的に追加され、記事の相対 URL が保存されます。

4.2 ブログ投稿のページネーション

Katana は、最初に

config.php

で photosPerPage および PostsListView 設定項目を設定する必要があります。構成ファイルを参照すると、各構成項目が何に使用されているかがわかります。

ページ分割されたビューでは、$paginatedBlogPosts 変数にはページ上のすべての投稿が含まれており、$nextPage 変数と $previousPage 変数はそれぞれ次のページと前のページへのリンクです。

5. Github Pages

public

ディレクトリを Github Pages ライブラリのメイン ブランチ、または他のライブラリの gh-pages ブランチとして使用することができます。

ステップ 1: Master/gh-pages ブランチを除く他のブランチに Katana を追加します ここではこのブランチを

gh-pages-source

と呼び、Kanata をこのブランチにインストールし、通常の手順に従ってコンテンツを追加します。

設定 2: サイトを生成する コンテンツの準備ができたら、ビルドを実行してサイトを生成できます:

php katana build

如果你不是使用的你的用户名的项目,则需要定义 base_url,如我的 Github 用户名为 9IPHP,但我没有把 Katana 发布到 9IPHP.github.com 这个项目,而是建立了一个 Katana 的项目,则需要这样生成站点:

php katana build --base_url=/Katana

Step 3:把文件 Push 到 Step 1 中建立的分支

首先需要移除 .gitignore文件中的 public这一行,否则该目录是提交不上去的,之后运行如下命令:

git add --allgit commit -m 'publishing website'git push origin gh-pages-source

Step 4:把 public 目录添加到 master/gh-pages 分支

git subtree push --prefix public origin master

或者:

git subtree push --prefix public origin gh-pages

六、总结

创建完成之后就可以到你的 Github Pages 中访问网站了,可以查看我创建的示例站点。

项目 Github 地址

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