skounis / blellow
D8 的机构风格
Requires
- drupal/components: ^1.0
- drupal/ui_patterns: ^1.0
- openeuropa/ecl-twig-loader: ~0.1
This package is auto-updated.
Last update: 2024-09-29 05:02:35 UTC
README
基于 Open Europa Theme 和 Europa Component Library (ECL) 的 Drupal 8 主题。
需求
以下软件是必需的
安装
建议使用 Composer 安装主题。
在你的 Drupal 项目的 composer.json
中添加以下依赖
{ "require": { "cnect-web/blellow": "dev-develop" } }
*待办事项:我们应该验证上述引用。 *
然后运行
$ composer update
开发
Blellow 主题项目包含所有必要的代码和工具,以实现有效的开发过程,即
- 所有 PHP 开发依赖(包括 Drupal 核心)在 composer.json 中是必需的
- 所有 Node.js 开发依赖在 package.json 中是必需的
- 由于与 Task Runner 项目的集成,项目设置和安装可以轻松处理。
- 所有系统需求都使用 Docker Composer 进行容器化。
- 代码库的每次更改都将使用 Drone 自动测试。
项目设置
开发主题需要 ECL 资产的地方副本,包括 Twig 模板、SASS 和 JavaScript 源文件。
为了获取所需的代码,您需要在本地安装 Node.js (>= 8)。
运行以下命令安装所需的 Node.js 依赖
$ npm install
运行以下命令构建最终工件
$ npm run build
这将编译所有 SASS 和 JavaScript 文件为自包含的资产,这些资产作为 Drupal 库公开。
为了下载所有所需的 PHP 代码,运行以下命令
composer install
这将构建一个完全功能性的 Drupal 站点,位于 ./build
目录中,可用于开发和展示主题。
在设置和安装站点之前,请确保通过将 runner.yml.dist 复制到 ./runner.yml
并覆盖相关属性来自定义默认配置值。
运行以下命令设置项目
./vendor/bin/run drupal:site-setup
这将
- 将主题链接到
./build/themes/custom/oe_theme
,以便它可供目标站点使用 - 使用
./runner.yml.dist
中的值设置 Drush 和 Drupal 的设置 - 使用
./runner.yml.dist
中的值设置 PHPUnit 和 Behat 配置文件
设置成功后,通过运行以下命令安装站点
./vendor/bin/run drupal:site-install
这将
- 安装目标站点
- 将 OpenEuropa 主题设置为默认主题
- 启用 OpenEuropa 主题演示和 配置开发 模块
使用 Docker Compose
或者,您可以使用提供的配置使用 Docker 和 Docker Compose 构建开发站点。
Docker提供必要的服务和工具,例如Web服务器和数据库服务器,以确保网站运行,无论您的本地主机配置如何。
需求
配置
默认情况下,Docker Compose读取两个文件,一个是docker-compose.yml
,另一个是可选的docker-compose.override.yml
文件。按照惯例,docker-compose.yml
包含您的基配置,并且默认提供。重写文件,正如其名称所暗示的,可以包含现有服务或全新服务的配置重写。如果服务在两个文件中都定义,Docker Compose将合并配置。
有关Docker Compose扩展机制的更多信息,请参阅官方Docker Compose文档。
用法
首先,运行
docker-compose up
建议不要以守护进程方式运行docker-compose
,这样您可以在完成工作后快速关闭它(CTRL+C
)。然而,如果您想以守护进程方式运行它,您必须添加标志-d
docker-compose up -d
然后
docker-compose exec -u node node npm install docker-compose exec -u node node npm run build docker-compose exec web composer install docker-compose exec web ./vendor/bin/run drupal:site-install
使用默认配置,开发站点的文件应在build
目录中,并且开发站点可在以下位置访问:http://127.0.0.1:8080/build。
运行测试
要运行grumphp检查
docker-compose exec web ./vendor/bin/grumphp run
要运行phpunit测试
docker-compose exec web ./vendor/bin/phpunit
要运行behat测试
docker-compose exec web ./vendor/bin/behat
禁用Drupal 8缓存
手动禁用Drupal 8缓存是一个费力的过程,详情请见此处。
或者,您可以使用以下Drupal Console命令来禁用/启用Drupal 8缓存
./vendor/bin/drupal site:mode dev # Disable all caches. ./vendor/bin/drupal site:mode prod # Enable all caches.
注意:要完全禁用Twig缓存,需要以下额外手动步骤
- 打开
./build/sites/default/services.yml
- 在
twig.config:
属性中设置cache: false
。例如。
parameters: twig.config: cache: false
- 重建Drupal缓存:
./vendor/bin/drush cr
这是由于以下Drupal Console问题。
使用ECL组件
您可以通过使用如下所示的ECL Twig Loader来在您的Twig模板中使用ECL组件
{% include '@ecl/logos' with { 'to': 'https://ec.europa.eu', 'title': 'European Commission', } %}
或者
{% include '@ec-europa/ecl-logos' with { 'to': 'https://ec.europa.eu', 'title': 'European Commission', } %}
可以通过ECL.methodName()
访问JavaScript组件,例如ECL.accordions()
。
重要:并非所有ECL模板都对主题可用,当您需要包含新的ECL模板时,请记住将其添加到ecl-builder.config.js的copy
部分,并运行
npm run build
更新ECL
要更新ECL组件,请修改package.json中的@ec-europa/ecl-preset-full
版本号,并运行
$ npm install && npm run build
这将更新资产,如图片和字体,并重新编译CSS。结果更改不应提交到此存储库。
监视和重新编译Sass和JS更改
要监视Sass和JS文件更改 - /sass文件夹 - 以重新编译它们到目标文件夹
npm run watch
结果更改不应提交到此存储库。
修补ECL组件
可以使用patch-package
NPM项目修补ECL组件。
要修补组件
- 直接在
./node_modules/@ecl/[component-name]
中修改其源文件 - 运行
npx patch-package @ecl/[component-name]
或者,当使用Docker Compose时
docker-compose exec -u node node npx patch-package @ecl/[component-name]
补丁将在./patches
中生成,并在运行npm install
时应用。
修补ECL构建脚本
本项目使用改进版的ecl-builder。安装后,我们应该修补脚本
依赖项
主题需要安装"OpenEuropa 主题助手"模块。
其他
样式指南
开发环境将安装样式指南模块。测试页面可在以下URL访问