tobimori/kirby-paparazzi

程序化生成页面图像

资助包维护!
tobimori

安装: 60

依赖: 0

建议者: 0

安全: 0

星标: 20

观察者: 2

分支: 1

开放问题: 3

类型:kirby-plugin

0.2.0 2024-08-09 09:14 UTC

This package is auto-updated.

Last update: 2024-09-09 09:24:20 UTC


README

一个使用HTML、JS和CSS代码程序化创建图像的工具包,由Kirby提供支持。底层使用Browsershot & Puppeteer

注意

这是一个正在开发中的插件。API & 使用可能随时更改。

先决条件

安装

composer require tobimori/kirby-paparazzi

不支持非Composer的安装方法。

用法

目前,Paparazzi支持以下创建图像的方式

内容表示

1. 创建模板

对于我们的图像表示,让我们在/site/templates目录中创建一个文件default.png.php。该文件包含将由Puppeteer渲染成图像的模板。

它的工作方式就像编写一个正常的HTML模板。

内容表示使用与HTML副本相同的名称。这意味着,如果我们想为所有project页面创建图像,我们的模板名称必须为project.png.php

2. 创建Paparazzi控制器

Paparazzi使用控制器将逻辑注入到您的模板中。让我们在/site/controllers目录中创建一个与您的模板同名文件。

<?php

use tobimori\Paparazzi\Controller;

return Controller::run(width: 1200, height: 630);

3. 向模板添加内容

现在,让我们向我们的模板添加一些内容。我们可以像在正常模板中一样使用所有的Kirby变量 & 助手。

我们的示例模板可能看起来像这样

<h1><?= $page->title() ?></h1>
<img src="<?= $page->image()->url() ?>">

<?php foreach ($page->children()->listed() as $child): ?>
  <h2><?= $child->title() ?></h2>
  <p><?= $child->text()->excerpt(50) ?></p>
<?php endforeach ?>

4. 在浏览器中欣赏结果

现在,我们可以打开我们的页面在浏览器中,只需将.png添加到URL即可。这将使我们的模板渲染成图像。

5. 与kirby-seo一起使用(可选)

如果您正在使用我的kirby-seo插件,并且想将图像用作Open Graph图像,您可以使用程序化默认值功能。

  1. 创建一个页面模型,例如site/models/project.php。您可以在Kirby指南中了解更多关于页面模型的信息。
  2. 添加一个返回包含Open Graph图像URL的数组的metaDefaults()函数,如下所示
<?php

use Kirby\Cms\Page;

class ProjectPage extends Page
{
  public function metaDefaults()
  {
    return [
      'ogImage' => $this->url() . '.png'
    ];
  }
}

请注意,这需要kirby-seo v0.4.0或更高版本。

限制

使用PHP内置服务器

默认情况下,内置的PHP服务器默认不能同时接受超过1个请求。如果您从服务器加载资源或图像,请求将超时,因为Puppeteer永远不会进入空闲状态。您必须在开发中使用Apache或Nginx等适当的Web服务器,或将PHP_CLI_SERVER_WORKERS环境变量设置为大于1的值。

路线图

此插件非常具体,主要随着我的需求而增长。新功能通常只有在我自己项目需要时才会添加。我只考虑资助的功能请求。这并不意味着插件已弃用,它将得到积极维护。

支持

此插件免费提供并发布在宽松的MIT许可证下。如果您将其用于商业项目,请考虑在GitHub上赞助我以支持进一步的开发和插件维护。

许可证

MIT许可证 版权所有 © 2023 托马斯·莫里茨