linkorb / blazon
Blazon:从数据(例如Xillion Resources)快速且美观地发布网站、宣传站点、文档、指南等
Requires
- php: >=7.2.0
- guzzlehttp/guzzle: ^7.4
- laminas/laminas-diactoros: ^2.6
- league/commonmark: ^2.3
- league/container: ^4.0
- league/event: ^3.0
- linkorb/xillion: ^1.8
- monolog/monolog: ^2.3
- symfony/console: ^5.2
- symfony/dotenv: ^5.0
- symfony/yaml: ^5.0
- twig/twig: ^1.0
Requires (Dev)
- linkorb/autotune: ^1.0
This package is not auto-updated.
Last update: 2024-09-10 08:38:24 UTC
README
blazon
Blazon是一个数据驱动的、插件驱动的、多目标内容发布框架。
用例
- 文档、指南、手册
- 合同(带变量)
- 法律文件
- "条件文本"内容
- Wiki内容渲染
- 营销网站
- 政策、程序、表格
- 知识图谱
- 数字花园
- 代码库项目文档
- 复杂数据图可视化(例如组织结构)
定义
- 发布:文档集合
- 文档:唯一标识符(路径),以及渲染输出的控制器
- 插件:允许修改加载和发布过程的每个阶段
- 目标:Publisher(例如静态HTML、PDF等)产生的许多输出之一
特性
- 从本地或远程来源加载数据
- Markdown,带有前端资料
- Xillion Resources
- Twig模板
- 支持静态站点生成和动态渲染
示例
- https://github.com/linkorb/starwars-blazon graphql + twig 示例网站
安装
git clone git@github.com:linkorb/blazon.git cd blazon composer install # install php dependencies into blazon's vendor/ directory ./bin/blazon -v # get version and help output
用法
您的Blazon项目(例如您的网站、书籍、报告等)应存储在其自己的目录中,最好是Git仓库。
从那里,使用blazon
命令行工具将静态HTML站点生成到您的项目build/
目录中
发布
cd path/to/my/blazon-project
path/to/blazon publish -vvv
此命令
- 在内存中构建您的发布,使用您自定义的
PublicationFactory
或默认工厂。 - 遍历所有注册的
Document
实例 - 使用它的
handler
回调渲染每个Document
的输出,并将其写入到build/
中的文档的path
- 递归地复制任何公共资产(图像、CSS、JS、PDF等)从
public/
到build/
现在您可以在您喜欢的服务上作为静态(HTML)网站提供生成的build/
目录
- 简单的nginx容器
- Github页面
- Netlify
- ...等等
使用“监视模式”自动发布
将-w
标志传递给blazon publish
命令以告诉Blazon监视您项目源目录的更改。检测到任何更改后,它将自动(重新)发布到build/
预览服务器
Blazon包含一个最小的预览服务器,您可以在编写内容并设计您的发布时使用。
只需将您的 favorite PHP-enabled webserver(例如,apache with mod-php,nginx with php-fpm等)指向Blazon的public/
目录。
确保在Blazon的.env
文件中设置SOURCE_PATH=/path/to/your/blazon-project
。
特性
- 每次HTTP请求时构建发布
- 内存中,不写入
build/
- 当在
.env
文件中将DEBUG=true
设置为true时,提供详细的错误信息。 - 支持从您的发布的
public/
目录提供静态资产。
不建议在生产中使用预览服务器。使用blazon publish
命令以获得最佳的安全性和性能。
灵感
- Gatsby
- Hugo
- Sage
- Xillion
- Schemata
贡献
我们欢迎贡献,以使此存储库更加完善。无论是修复错误、添加功能还是改进文档,您的帮助都非常受珍视。要开始,请分叉此存储库然后克隆您的分叉。
在提交任何更改之前,请务必熟悉LinkORB的贡献指南,其中包括我们对提交、分支和拉取请求的标准,以及我们的行为准则。
如果您无法自己实现喜欢的更改,请不要犹豫,可以打开一个新的问题报告,以便我们或其他人来处理。
由LinkORB工程技术团队提供
请访问我们的其他项目页面:linkorb.com/engineering。顺便说一句,我们正在招聘!