log1x / sage-svg
一个用于在Sage 10项目中使用内联SVG的简单包。
v2.0.1
2024-07-28 16:53 UTC
Requires
- php: ^8.1
Requires (Dev)
- laravel/pint: ^1.16
- roots/acorn: ^4.3
README
Sage SVG是一个用于在您的Sage 10项目中使用内联SVG的简单包。
要求
安装
通过Composer安装
$ composer require log1x/sage-svg
使用
默认情况下,以下路径被检查以查找您的SVG(按顺序)
- 如果传递了一个包含
id
的数组,则假定它是一个WordPress附件,并运行get_attached_file()
。 - 您的默认资产清单(通常是
mix-manifest.json
)。 - 相对于
config('svg.path')
的路径,默认情况下是public_path()
。 - 绝对网络根路径。
Blade指令
除非您需要在某个地方(如控制器)使用高级功能,否则在模板中使用Sage SVG的最佳方式是通过Blade指令。
# Relative path (with dot notation) – resolves to `app/themes/<your theme>/dist/images/logo.svg` by default @svg('images.logo') # Absolute path from webroot with `w-32 h-auto` CSS classes and an aria-label @svg('app/uploads/2019/07/logo.svg', 'w-32 h-auto', ['aria-label' => 'Logo'])
助手
在Blade模板之外使用SVG的最简单方法是全局的get_svg()
助手函数。get_svg()
如果未找到图像,将返回false
。
# Relative path $image = get_svg('images.logo'); # Absolute path from webroot with `w-32 h-auto` CSS classes $image = get_svg('app/uploads/2019/07/logo.svg', 'w-32 h-auto'); # WordPress attachment (e.g. ACF field) with `my-logo` CSS class $image = get_svg( get_field('logo_svg'), 'my-logo' );
外观
渲染SVG的另一种选择是使用SageSvg
外观。
use Log1x\SageSvg\Facades\SageSvg; $image = SageSvg::render('images.logo');
配置
配置文件svg.php
可以使用Acorn发布
$ wp acorn vendor:publish --provider='Log1x\SageSvg\SageSvgServiceProvider'
您可以在config/svg.php
中阅读更多的DocBlocks以获取详细信息。
为什么还需要另一个SVG包?
你没有编写Blade SVG Sage?为什么还需要另一个SVG包?
虽然我有一个叫做Blade SVG的分支,名为Blade SVG Sage,但由于以下原因,我发现它相当令人失望:
- 无法处理WordPress附件
- 无法内联不在特定路径中设置的SVG
- 无法正确使用资产清单。
- 我知道QWp6t
错误报告
如果您在Sage SVG中发现错误,请创建一个问题。
贡献
无论是通过PR、报告问题还是提出建议,都鼓励并感谢您的贡献。
许可
Sage SVG在MIT许可证下提供。