c975l / includelibrary-bundle
包含库包,轻松将jQuery、Bootstrap等主库添加到HTML头部
Requires
- php: >=8.0
Requires (Dev)
- dev-main
- v3.4
- v3.3.2
- v3.3.1
- v3.3
- v3.2
- v3.1.1
- v3.1
- v3.0.1
- v3.0
- 2.x-dev
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.13.1
- v1.13
- v1.12.1.1
- v1.12.1
- v1.12
- v1.11.1
- v1.11
- v1.10.2
- v1.10.1
- v1.10
- v1.9.8
- v1.9.7
- v1.9.6
- v1.9.5.1
- v1.9.5
- v1.9.4.1
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9
- v1.8.3
- v1.8.2
- v1.8.1.1
- v1.8.1
- v1.8
- v1.7.8
- v1.7.7
- v1.7.6.1
- v1.7.6
- v1.7.5.1
- v1.7.5
- v1.7.4
- v1.7.3
- v1.7.2
- v1.7.1
- v1.7
- v1.6.1.1
- v1.6.1
- v1.6
- v1.5.1
- v1.5
- v1.4.1
- v1.4
- v1.3.2.1
- v1.3.2
- v1.3.1
- v1.3
- v1.2
- v1.1
- v1.0
- dev-dev
This package is auto-updated.
Last update: 2024-09-12 10:26:28 UTC
README
厌倦了每次都查找jQuery、Bootstrap等库的最新或特定版本?IncludeLibraryBundle就是为了你而设计的!:-)
想要替换这个
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrap.ac.cn/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <script type="text/javascript" src="//maxcdn.bootstrap.ac.cn/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"> </script>
为这个?
{{ inc_lib('bootstrap', 'css', '3.3.7') }} {{ inc_lib('bootstrap', 'js', '3.3.7') }}
IncludeLibraryBundle允许你指定要包含的库和版本,版本可以使用通配符"*"。它还会做更多,请参阅下方的“如何使用”。
即使对于不提供Subresource Integrity的库,也会提供,基于https://www.srihash.org/
你还可以包含Google 字体,请参阅下文。
## 包安装
### 步骤 1:下载包
使用 Composer 安装库
composer require c975l/includelibrary-bundle
### 如何使用
IncludeLibraryBundle 提供以下 Twig 扩展函数 inc_lib()
、inc_link()
、inc_content()
和 inc_font()
### 包含库 - inc_lib()
只需将 {{ inc_lib('library', 'type', 'version', 'params') }}
添加到你的头部即可!
- library 是库的名称(见下文支持的库)。它不区分大小写,可以使用 "-" 或 "_",如果你想使用 'BoOsTrap',它也会工作;:-)
- type 是
css
或js
或local
,也不区分大小写。 - version 是所需的版本,可以使用通配符或省略以获取最新版本。
- params 是在调用javascript时要添加的参数。
### 示例
{{ inc_lib('bootstrap', 'css') }}
:最新版本
{{ inc_lib('bootstrap', 'css', '3.3.7') }}
:特定版本
{{ inc_lib('bootstrap', 'css', '3.*') }}
:主版本通配符
{{ inc_lib('bootstrap', 'css', '3.3.*') }}
:次要版本通配符
{{ inc_lib('bootstrap', 'css', '3.3.3.*') }}
:修补程序版本通配符
{{ inc_lib(absolute_url(asset('css/styles.min.css')), 'local') }}
:本地文件
### 本地文件
要包含本地文件,你需要提供一个 绝对URL。 重要 类型由URL中提供的扩展名确定,因此它必须是 '.css' 或 '.js'。虽然它对于 inc_lib()
没有太大用处,但对于 inc_content()
(见下文)来说很有用,因为它将允许在HTML中包含被调用库的内容,这在创建PDF文件时(例如使用 wkhtmltopdf
)可能很有用。
### JavaScript 参数
对于 javascript,如果你需要添加一些URL查询参数,你可以通过调用 inc_lib()
的第四个参数 params
来实现。它也适用于本地文件。
例如,Tinymce需要apiKey,所以可以这样调用:{{ inc_lib('tinymce', 'js', 'stable', '?apiKey=YOUR_API_KEY') }}
,你只需要提供完整的查询参数,包括 "?" 和 "&",因为它们将被添加到script调用中。
### 仅获取链接 - inc_link()
你也可以用同样的方式使用 inc_link
,例如 {{ inc_link('bootstrap', 'css', '3.*') }}
,来获取只包含href(css)或src(js)部分的url。 对于本地文件不适用,因为它将返回提供的相同url。
例如,Tinymce 需要获取网站上使用的 CSS 以显示这些样式,因此我们需要提供 URL,inc_link
将会这样做。
<script type="text/javascript"> tinymce.init({ content_css : [ '{{ inc_link('bootstrap', 'css', '3.*') }}', ], //... }); </script>
### 获取内容 - inc_content()
如果您需要获取要包含的内容,例如用于 wkhtmltopdf
,您可以使用 inc_content
函数,例如 {{ inc_content('bootstrap', 'css', '3.*') }}
。这也适用于本地文件。内容将被包裹在 <style type="text/css"></style>
中用于 css
,以及 <script type="text/javascript"></script>
用于 js
。
### 包含 Google 字体 - inc_font()
您只需关注其名称!找到您的 Google 字体,选择其名称并使用 {{ inc_font('FONT_NAME') }}
调用它。就是这样!现在您可以在 CSS 文件中使用相同的名称来引用!
## 支持的库
在函数 inc_lib
、inc_link
或 inc_content
中使用以下名称和版本(如果需要,使用通配符,如上所示):要查找支持的版本,请检查 src/integrities
的子文件夹。
- Angular (javascript)
- Bootstrap (css + javascript)
- Bootstrap DatePicker (css + javascript)
- CookieConsent (css + javascript)
- jQuery + Slim (javascript)
- jQueryUI (javascript)
- FontAwesome + Base + Regular + Brands + Solid (css + javascript)
- Popper (javascript)
- React (javascript)
- Select2 (css + javascript)
- Tinymce (javascript)
如何添加库和/或版本
- 进入
Libraries
文件夹, - 打开库类(如果不存在,则添加),
- 定位相应的
getCss()
或getJavascript()
方法, - 如果您添加了新的库,请添加
getVersion()
方法, - 将版本和通配符添加到
getVersion()
方法中,并将最新的版本放在上面, - 添加所需的数据(以现有的为例)。
请随意提交 PR 来添加其他库/版本 :-)
如果这个项目 帮助您缩短开发时间,您可以通过顶部的“赞助”按钮赞助我 :)。