Little Beastについて
Little Beastは、technicalsuwako.moe及び076.moeのみを駆動するPHPフレームワークです。
此のフレームワークは、此れらのウェブサイトに特化して設計されており、其の為プロプライエタリとして維持されます。
名前の由来は、最小限(データベースなし、シンプルなコード)でありながら非常に高性能(PHP 8.3以降以外のシステム要件がない)からです。
独自の特徴
Little Beastは、他のPHPフレームワークと一線を画す特徴を持っており、以下を含みます:
- データベースなし;全てファイルベース、Unixの本来の意図通り
- 依存関係なし、Composerもなし;全て0から記述(CURL等のライブラリを含む)
- サーバーオーバーヘッド完全ゼロ;存在しないかの様に動作
- コンテナ化なし;ハックなしで設計が良く、簡単にインストール可能
- Maronテンプレート;HTML管理がより簡単
- カスタムMarkdown;公式標準を大幅に拡張、ブログ投稿やチュートリアルに使用
- Markdownメタデータ;設定が簡単
- ActivityPub;Fediverseと連合(現在バグあり)
- 多言語ブログ及びページ対応;グローバルオーディエンスをターゲット
- マルチブログ対応;ブログを独立した区分に分離
- 100% HTML5及びCSS3準拠;何処でも完璧にレンダリング
- SEOフレンドリー;デフォルトで検索結果の上位
- 綺麗なHTMLとCSS;手書きHTMLと保母区別つかず、任意の見た目に簡単に変更可能
- モジュラーCSS;1つのCSSファイルを全て詰め込む代わりに、必要な物だけ使用
- ビルトイン単体テスト;あると楽しい
2つのウェブサイトは決して同じではない!
このブログのマークダウン一覧
構文 | 結果 | ||||||
---|---|---|---|---|---|---|---|
|
|||||||
|
改行 | ||||||
|
ケロケロ |
||||||
|
ケロケロ |
||||||
|
ケロケロ |
||||||
|
ケロケロ |
||||||
|
ケロケロ |
||||||
|
ケロケロ |
||||||
|
|
||||||
|
ケロケロ |
||||||
|
*利用するには、「style-table.css」を読み込む必要
|
||||||
|
|
||||||
|
|
||||||
|
*利用するには、「style-algebra.css」を読み込む必要 Θ = (2 * y4)x2 |
||||||
|
ケロケロ | ||||||
|
kerokero | ||||||
|
ケロケロ | ||||||
|
|||||||
|
*利用するには、「style-blink.css」を読み込む必要 ケロケロ ケロケロ ケロケロ |
||||||
|
ケロケロ ケロケロ |
||||||
|
ケロケロ ケロケロ |
||||||
|
![]() ![]() ![]() |
||||||
|
|||||||
|
|||||||
|
076スタジオ合同会社 | ||||||
|
諏訪子 | ||||||
|
int i = 0; |
^(96)%(ff00ff):(5)**~ケロケロ~**:%^
→ Markdownヘッダー
Little BeastのMarkdownベースのブログシステムの独自の部分は、Markdownヘッダーの使用です。
此れにより、メタデータの調整、サムネイルの設定、CSSファイルの追加などが可能です。
例:
title: 【プログラミング】C++の基本
uuid: e4aa4570-adbc-11f0-96d1-00155dac46f9
author: 諏訪子
date: 1995-05-23 13:22:43
thumbnail: blog-samune.jpg
thumborient: center
category: c++,gamedev,programming
css: blink,table,diffviewer
----
...
title
は記事のタイトルになります。uuid
はActivityPubライブラリ用で、他の目的はありません。author
はブログメタタグの下の投稿著者になります。date
はブログメタタグの下の投稿日時になります。thumbnail
は/public/static/article
にある投稿のサムネイル画像(オプション)になります。thumborient
は投稿のサムネイル向きで、"top"、"center"、"bottom"から選択(オプション、デフォルト"center")。category
はブログメタタグの下のカテゴリ(複数時はカンマ区切り)になります。css
は/public/static
ディレクトリ下の追加CSSファイル(複数時はカンマ区切り、オプション)。ヘッダーは4つのハイフンで終了し、其の下に投稿本文があります。
Maronテンプレート
Maronテンプレートエンジンは、HTMLから大きく逸脱せずにHTMLライクなテンプレートを優雅に管理する方法を提供します。
内部的には、本質的に見栄えの良いPHPです。
例として、従来の:
<?php include("view/common/footer.php"); ?>
の代わりに:
{@ include(common/footer) @}
そして、従来の:
<?php
foreach ($menu as $m) {
if ($m['show']) {
?>
<a class="<?= $m['class'] ?><?php $curPage == $m['page'] ? ' active' : '' ?>" href="<?= $m['href'] ?>"><?= $m['text'] ?></a>
<?php
}
}
?>
の代わりに:
{@ foreach ($menu as $m) @}
{@ if ($m['show']) @}
<a class="menu-item" href="https://076.moe/repo">レポジトリ</a>
{@ endif @}
{@ endforeach @}
但し、更に多くの構文があり、以下です:
構文 | 説明 |
---|---|
|
テンプレート描画を終了し、値をダンプ |
|
foreachループとネストした内容の処理 |
|
forループの処理 |
|
if-elif-else-endifの処理 |
|
変数の出力(エスケープ処理なし) |
|
変数の出力(エスケープ処理あり) |
|
変数の代入 |
|
コメント |
|
PHPコードの実行 |
此のページのコントローラーは以下の様になります:
public function littlebeast(array $params): void {
try {
$tmpl = new Template('/');
$pagetit = 'Little Beast';
$description = 'Little Beastについて';
$tmpl->assign('pagetit', $pagetit);
$tmpl->assign('curPage', 'aboutlb');
$tmpl->assign('custCss', true);
$tmpl->assign('sns', $this->getSns());
$tmpl->assign('support', $this->getSupport());
$tmpl->assign('menu', $this->getMenu());
$tmpl->assign('description', $description);
$tmpl->addCss('algebra');
$tmpl->addCss('blink');
$tmpl->addCss('table');
$tmpl->render('littlebeast');
} catch (\Exception $e) {
throw new \Exception($e->getMessage());
}
}
Templateクラスは/view
ディレクトリ下に固定ルートを持ち、全てのテンプレートは.maron
拡張子でなければなりません。此の場合、
$this->render('littlebeast');
は/view/littlebeast.maron
の内容をレンダリングします。