此包已被废弃,不再维护。作者建议使用 linaphp/lina 包。

静态博客生成器

v0.6.1 2024-05-12 18:11 UTC

README

lina's logo

Lina PHP - 轻量级且极速的静态博客生成器

Lina 是一个针对希望拥有简单快速博客的用户定制的扁平文件内容管理系统。Lina 使用 Blade 模板引擎,因此您可以使用所有 Blade 功能。

特性

  • 极速:Lina 是一个轻量级且超级快速的静态博客生成器。
  • 用 PHP 编写:如果您讨厌 JavaScript,那么 Lina 就是您的选择。
  • Blade 模板引擎:您可以使用所有 Blade 功能。
  • 极简主义:Lina 是一个静态博客生成器。它不是一个完整的 CMS。
  • 部署到任何地方!您知道,只是 html 文件 🤣

要求

  • PHP 8.3

入门

安装 Lina 有几种方法

将 Lina 作为依赖项,使用此选项,您可以轻松保持 lina 更新。

mkdir my-blog && cd my-blog && composer init --name=linaphp/blog --no-interaction --require=bangnokia/lina:^0.5 && composer install
./vendor/bin/lina new . # scaffolding a new blog skeleton in the current directory
./vendor/bin/lina serve # start a development server and happy writing

或者全局安装 Lina 作为 composer 包

composer global require linaphp/lina
lina new my-blog
lina serve

或者您可以使用 phar 文件

curl -LO https://github.com/linaphp/lina/releases/latest/download/lina.phar && chmod +x lina.phar

文件夹结构

如果您想从另一个博客平台迁移,您可以查看 Lina 的基本结构。

content/
    posts/
        2020-11-01-hello.md
    index.md
resources/
    views/
        index.blade.php
        post.blade.php
public/ 
    images/
    style.css
  • content 目录是您存储 markdown 内容文件的目录。
  • resources/views 目录是您存储 blade 模板的目录。
  • public 目录是您存储资产(如图片、css 等)的目录。此文件夹也是所有生成的文件存储的地方。所以如果您想将它们存储在 git 中,请务必将您的自定义文件添加到 .gitignore 中。

我们强烈建议您在内容文件前添加日期前缀,这样就可以轻松排序和查找您的内容。Lina 会自动从 slug 中删除日期,所以您不需要担心 URL。

辅助函数

有一些函数您可以使用以编程方式访问您的内容。

获取目录中所有内容

获取目录中的所有内容。内容将按文件名中的日期排序。

foreach (lina()->index('post') as $post) {
    echo $post->title;
}

获取单个内容

$post = lina()->get('posts/2020-11-01-hello.md');

部署

Lina 可以部署到任何静态托管提供商。以下是一些示例:GitHub Pages、Netlify、Vercel、Cloudflare Pages 等。

在 GitHub Pages 上部署

因此,您需要修改文件 .github/workflows/deploy.yml 以满足您的需求。

在 Cloudflare Pages 上部署

我们还提供了 Cloudflare Pages 的配置文件。您可以在 cloudflare-page.sh 中找到它。您可以修改它以匹配您的需求。同时,您还需要更改 构建配置 如此。 Cloudflare deploy

使用 Lina 构建

所以,你知道,至少那是我的。

待办事项

  • 添加 lina serve 命令以进行开发
  • 添加代码高亮支持
  • 支持实时重新加载
  • 支持 Cloudflare Pages