clarkwinkelmann / flarum-pages-generator
从 Markdown 和 HTML 文件为 Flarum 生成伪静态页面
0.1
2021-08-26 13:14 UTC
Requires
- flarum/core: ^1.0
- spatie/yaml-front-matter: ^2.0
README
这不是 Flarum 扩展。此包提供了一个 Flarum 扩展器,您可以在本地的 extend.php
中使用它来定义自定义页面。
将此包安装到 Flarum 根目录下,或作为您自定义扩展的一个依赖项。
我不建议将其捆绑为公共扩展的依赖项。
此包处于测试阶段!将会定期发布破坏性更新。请确保使用 ^
或 ~
语义版本约束!
composer require clarkwinkelmann/flarum-pages-generator
用法
在 extend.php
中
return [ (new \ClarkWinkelmann\PagesGenerator\Pages()) ->source(__DIR__ . '/pages') ->mithrilComponent('ContactForm', "flarum.extensions['acme-basic-form'].ContactForm"), ];
->source(string $path)
定义一个用于枚举页面的源文件夹。
->mithrilComponent(string $tag, string $import)
可选地定义一个将 HTML 标签映射到 Mithril 组件的映射。表达式将使用 eval()
调用。
您可以在单个扩展实例上多次调用 source
和 mithrilComponent
。
目前,Flarum 应用程序中必须存在单个扩展实例! 如果多个扩展尝试使用它,将会出错。
页面
页面可以是 Markdown (.md
) 或 HTML (.html
),并且必须包含一个 Yaml 前端部分。
Markdown 使用 Flarum 格式器解析。任何由扩展提供的 markdown 或 bbcode 都将可用。
不带文件扩展名的文件名将是页面 URL。源目录下的子文件夹将作为 URL 的一部分保留。
示例:基本 Markdown
---
title: About us
---
This is a markdown text with **formatting**.
示例:基本 HTML
---
title: Find Us
---
<p>It's very simple to find us</p>
<iframe src=""></iframe>
示例:带有自定义组件的 Markdown 页面
---
title: Contact
---
Use the form to contact us:
<ContactForm title="A title attr"></ContactForm>