terdelyi / phanstatic
一个简单、轻量级且基于命令行的PHP静态网站生成器
dev-main
2024-07-09 22:51 UTC
Requires
- php: >=8.2
- league/commonmark: ^2.4
- spatie/yaml-front-matter: ^2.0
- symfony/console: ^7.1
- symfony/filesystem: ^7.0
- symfony/finder: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.6
- phpstan/phpstan: ^1.10
- phpstan/phpstan-mockery: ^1.1
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2024-09-15 15:43:32 UTC
README
Phanstatic是一个简单、轻量级、基于命令行的PHP静态网站生成器。它不使用框架或模板引擎,只使用纯PHP代码和Markdown文件编写简单页面。在构建过程中,所有内容都将转换为静态HTML文件,准备部署。
安装
要创建一个新项目,只需运行
composer create-project terdelyi/phanstatic:dev-develop
构建
要从您的content
目录构建静态文件到dist
文件夹,请在您的根目录中运行以下命令
php ./vendor/bin/phanstatic build
预览
要在浏览器中预览您的构建
php ./vendor/bin/phanstatic preview
这将在localhost
的8000
端口启动PHP的内置服务器,并将dist
文件夹中的文件提供给浏览器。
如果需要,您可以覆盖默认的主机(--host
)和端口(--port
)设置。
配置
作为一个入门者,您只需要在项目的根目录中有一个content/pages
目录,其中包含.php
文件。
可选地,您也可以在content/config.php
下放置一个配置文件,该文件必须返回一个Config
对象,如下所示
use Terdelyi\Phanstatic\Config\ConfigBuilder; return (new ConfigBuilder) ->setBaseUrl(getenv('BASE_URL')) ->setTitle('My super-fast static site') ->addCollection( key: 'posts', title: 'Posts', slug: 'posts', pageSize: 10 ) ->build();
示例内容结构
这些文件都不是必需的。Phanstatic及其构建器将寻找现有的文件夹和配置,并在它们可用的情况下使用它们。
├── content
│ ├── assets
│ │ ├── images
│ │ ├── css
│ │ ├── js
│ ├── collections
│ │ ├── posts
│ │ │ ├── my-first-blog-post.md
│ ├── pages
│ │ ├── about.php
│ │ ├── index.php
│ ├── config.php
├── composer.json
├── composer.lock
资产文件夹的内容将按原样复制到构建时的dist/assets
文件夹中,并且可以从/assets
的URL访问。
贡献
欢迎提交错误修复和功能请求,但此包处于早期阶段,我计划谨慎地添加任何新功能。