ホームページ >バックエンド開発 >PHPチュートリアル >Katana – Markdown 構文をサポートする PHP 静的サイト/ブログ ジェネレーター
現在、Hexo、Jekyll などの静的サイト ジェネレーターがいくつかあります。今日私は、PHP 構文を使用し、Markdown 構文をサポートし、Laravel の Blade テンプレート エンジンを使用する静的ブログ ジェネレーターを見つけました。
Katana の主な機能:
Katana のインストールはとても簡単です。 Composer create-project コマンドを実行するだけです:
composer create-project themsaid/katana your-site-name
Katana が your-site-name ディレクトリにインストールされたので、次のコマンドを実行してサイトを生成する必要があります:
cd your-site-namephp katana build
A はフォルダーに生成されます。ディレクトリには、生成された静的ファイルが含まれます。
静的ファイルを生成するとき、base_urlでbaseUrlを指定できます:
php katana build --base_url=/awesome-site
この場合、Bladeの@url()ディレクティブを使用してリンクを生成すると、次のようなURLが生成されます: /awesome - site/about
build コマンドを実行すると、次のファイル構造が生成されます:
このファイルが保存されましたこのフォルダーには、Blade ビュー、静的ファイル (JS、CSS、画像など)、_blog フォルダー、および _include フォルダーが含まれます。
_content フォルダーは Blade レイアウトとベース ビューを保存する場所です。Katana はこれらのファイルに対してアクセス可能なページを生成しません。
_blog フォルダーは、ブログのコンテンツが保存される場所です。
2.2 config.php についてこのファイルで任意の変数を定義することもでき、Web サイトのどのビューでも呼び出すことができます。
3. Blade テンプレート
Blade は、Laravel が提供するシンプルだが強力なテンプレート エンジンです。他の主流の PHP テンプレート エンジンとは異なり、Blade ではビューでの純粋な PHP コードの使用が制限されません。
ここにアクセスして Blade のドキュメントを読むことをお勧めします。
3.1 Blade で Markdown 構文を使用する
<h2>Regular HTML heading</h2>@markdown This is some **Markdown** content.@endmarkdown
3.2 URL を生成する
@('/') // Outputs '/'@('about') // Outputs '/about'@('assets/style.js') // Outputs '/assets/style.js'
4. ブログ ジェネレーター
にファイルを作成するだけです。 2016-03-03-my-post-slug.blade.php
ファイル名の前の日付は、ファイル システム内のファイルを並べ替えるために使用され、ブログの URL を生成するためにも使用されます。上記のファイルは、次の URL を生成します。
blog.com/my-post-slug-201603034.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
この変数を使用すると、すべてのブログ投稿をループできます:
@foreach($blogPosts as $blogPost) <li> <a href="{{ $blogPost->path }}"> {{ $blogPost->title }} at {{ $blogPost->date }} </a> </li>@endforeachpath 属性は Katana によって自動的に追加され、記事の相対 URL が保存されます。
4.2 ブログ投稿のページネーション
Katana は、最初に
ページ分割されたビューでは、$paginatedBlogPosts 変数にはページ上のすべての投稿が含まれており、$nextPage 変数と $previousPage 変数はそれぞれ次のページと前のページへのリンクです。
5. Github Pagespublic
ステップ 1: Master/gh-pages ブランチを除く他のブランチに Katana を追加します ここではこのブランチを
gh-pages-source設定 2: サイトを生成する コンテンツの準備ができたら、ビルドを実行してサイトを生成できます:
php katana build
如果你不是使用的你的用户名的项目,则需要定义 base_url,如我的 Github 用户名为 9IPHP,但我没有把 Katana 发布到 9IPHP.github.com 这个项目,而是建立了一个 Katana 的项目,则需要这样生成站点:
php katana build --base_url=/Katana
首先需要移除 .gitignore文件中的 public这一行,否则该目录是提交不上去的,之后运行如下命令:
git add --allgit commit -m 'publishing website'git push origin gh-pages-source
git subtree push --prefix public origin master
或者:
git subtree push --prefix public origin gh-pages
创建完成之后就可以到你的 Github Pages 中访问网站了,可以查看我创建的示例站点。