arrowsgm / amped-laravel
基于 amp-wp WordPress 插件的 Laravel HTML 到 AMP 转换器
Requires
- ext-dom: *
- ext-json: *
- ext-libxml: *
- ampproject/amp-wp: dev-main
- guzzlehttp/guzzle: ~6.0|^7.0
Requires (Dev)
- orchestra/testbench: ^6.20
Suggests
- james-heinrich/getid3: For resolving video width and height for custom video sanitizer
- php-ffmpeg/php-ffmpeg: More advanced alternative for james-heinrich/getid3; requres ffprobe/ffmpeg
This package is auto-updated.
Last update: 2024-09-09 19:10:38 UTC
README
此包添加了将现有 HTML 内容转换为 amp-html 的功能。该包使用 AMP 插件 for WordPress 进行内容清理和一些来自 WordPress 的辅助函数用于 amp-wp 插件。
AMP 是一个快速发展的框架,但遗憾的是,目前没有(或者至少我找不到)任何可以提供有效的 HTML 到 amp-html 代码转换器的解决方案。根据 ampproject/amp-wp#2315,@amproject 正在准备发布一个独立的 PHP 库,不受任何 CMS 的限制,但在此期间,使用 amp-wp 插件作为内容清理器是最简单的解决方案,尽管它包含许多与 WordPress 相关的代码。如果您对包的清理器有任何问题,可以轻松地将其替换为自己的,只需更改提供的配置即可。
需求
- PHP >= 7.3
- Laravel >= 6.x
从版本 < 0.4.x 更新
您需要将 composer.json 中的仓库 URL 从 https://github.com/ampproject/amp-wp
更改为 https://github.com/arrowsgm/amp-wp
,这是一个 ampproject/amp-wp
包的硬分叉版本 1.4.4,并更新了依赖关系。
安装
将 amp-wp 插件的链接添加到您的 composer.json
仓库部分
... "repositories": [ ... { "type": "vcs", "url": "https://github.com/arrowsgm/amp-wp" } ] ...
按常规要求包
composer require arrowsgm/amped-laravel
使用
您可以使用 artisan 命令发布配置
php artisan vendor:publish --tag=amped-config
或者只需在 config
目录中创建 amped.php
文件并更改所需的参数。
要转换现有内容,请使用提供的 Amped
门面
... use Arrowsgm\Amped\Facades\Amped; ... class PostController extends Controller { ... public function show(Post $post) { ... $amp_content = Amped::convert($post->content); ... } ... }
您可以在 blade 模板中使用 Amped
门面,已提供别名
<div class="amp-content">{{ Amped::convert($post->content) }}</div>
Amped
类还具有 inlineCss
方法,用于从 CSS 文件添加自定义样式
{!! Amped::inlineCss('amp.css') !!}
并且您可以设置基于 amp_custom_css_path
配置参数的 AMP 样式基本目录。
isDevParam
方法对于 AMP 链接构建很有用。如果 Laravel 应用程序处于调试状态,它将返回 #development=1
字符串
<a href="{{ route('post.show', $prev_post->slug) }}/amp{!! Amped::isDevParam() !!}" class="links links-prev">{{ $prev_post->name }}</a>
并且您可以在浏览器中启用 AMP 验证的情况下轻松浏览现有的帖子。