raffaelj / drupal-theme-drinimal
此软件包已被放弃,不再维护。作者建议使用 drupal/drinimal 软件包。
Drupal 的最小基础主题
dev-main
2024-07-01 15:50 UTC
Requires
- drupal/core: ^10
This package is auto-updated.
Last update: 2024-07-01 15:52:24 UTC
README
此项目/存储库已迁移到 drupal.org,并且已过时。
Drupal 的最小基础主题,包含一些有见地的更改和一些错误修复。
为什么?
Drupal 未经修改即可正常工作,但自带了沉重的 div 汤和许多不必要的类或属性。它还在首页上的 <link> 和 <a> 标记上存在一些严重问题 - 尤其是在多语言设置中。
默认的最小主题 "stable9" 过于臃肿。 "starterkit" 主题是 "stable9" 的子主题,并添加了更多臃肿。 "stark" 主题旨在测试,仅回退到系统模板。
因此,我编写了自己的基础主题,具有最少的 HTML 标记,并且没有核心 CSS。
我还开始了一个 Drupal 论坛上的帖子,其中包含更多解释和一些创建此最小主题过程中的挑战。
待办事项/特性
- 减少 div 汤的量
- [x] 通过钩子移除
dialog-off-canvas-main-canvas
包装 div(可通过主题配置重新启用)- 与 "announcements" 和 "layout_builder" 核心模块不兼容,可以安全禁用 - 请参阅:https://www.drupal.org/project/drupal/issues/3425710
- [x] 通过模板从媒体模块中移除围绕 <img> 的包装 <article>
- [x] 通过钩子从图像包装 <article> 将对齐类传递给 img 标签
- [x] 通过模板移除包装 div
.layout-container
、.layout-content
- 在模板文件的描述中查看更多更改
- [x] 通过钩子移除
- 移除不必要的 HTML 属性
- [x] 从主内容中的 <article> 移除
data-history-node-id
属性 - [x] 通过钩子移除
data-drupal-selector
属性 - [x] 从菜单中的 <a> 移除
data-drupal-link-system-path
属性 - [x] 从 <main>、<header>、<nav> 等. 中移除冗余的
role
属性 - [x] 通过模板从 <article> 移除
data-history-node-id
属性
- [x] 从主内容中的 <article> 移除
- [x] 如果页面是首页,则在
node.html.twig
中修复节点url
- [x] 禁用核心 CSS
- [x] 重新实现
.visually-hidden
CSS(否则布局会出错,还使用clip-path
而不是已弃用的clip
)
- [x] 重新实现
- 在语言切换中移除错误或无用的属性
- [x] 从 <li> 中移除
hreflang
- [x] 从 <li> 和 <a> 中移除
data-drupal-link-system-path
- [x] 从 <li> 中移除
- 修复指向首页的链接
- [x] 在语言切换中
- [x] 如果节点是首页,则修复
url
模板变量(用于rel="bookmark"
链接)
- [x] 通过钩子和模板将
aria-current="page"
和rel="home"
设置到菜单中的 <a> - [x] 通过模板移除无用的 <a id="main-content">,使用 <main id="main-content"> 代替
- [x] 移除 <meta name="Generator" />
- [x] 如果未登录,则移除 <div data-drupal-messages-fallback class="hidden"></div>
- [ ] 首页的规范URL指向
/node/{id}
--> 解决方案:安装drupal/metatag
- 无需配置即可修复,但对该简单任务而言依赖性很大 - [ ] 删除跳过链接中不需要的
focusable
类 --> 需要覆盖html.html.twig
--> 这不值得 - [ ] 减少HTML标记中的空行(优先级低)
- [x] 在语言切换时禁用链接到未翻译的页面(使用
hreflang="x-default"
代替指向首页的链接) --> 可能可以通过language_switcher_extended
模块修复 - 如果如此,那么这应该超出范围 - [x] 修复使用跳过链接时滚动到错误位置的问题(当聚焦时有静态位置,但未聚焦时为绝对位置 --> 因此跳转到主内容会导致跳转到“主内容顶部”+“跳过链接的高度”)
- [ ] TODO:在核心中打开问题
超出范围
- [ ] 如果浏览器/客户端语言匹配,则从
/
重定向到/en
--> 通过 rljutils 插件 修复 - [ ] 禁用核心和贡献模块中的所有 CSS/JS 库(匿名用户) --> 通过 disable_libraries 模块修复
安装
安装 Drupal 和 Drush
mkdir -p my-project && cd my-project
composer create-project drupal/recommended-project .
composer require drush/drush
# call `./vendor/bin/drush` instead of `drush` or
# add drush to $PATH - see https://www.drush.org/12.x/install/
drush site:install
安装并启用主题
# adding the repository can be skipped since 2023-01-15, because it is published on packagist.org
# composer config repositories.drinimal vcs https://codeberg.org/raffaelj/drupal-theme-drinimal
composer require "raffaelj/drupal-theme-drinimal:@dev"
drush theme:install drinimal
# set as default theme (probably unwanted, because it's a base theme)
# drush config:set -y system.theme default drinimal
# rebuild cache after setting default theme
# drush cache:rebuild
更新
composer update
drush cache:rebuild
版权和许可
版权所有 2023 Raffael Jesche,根据 GPL-2.0-or-later 许可协议。
有关更多信息,请参阅 LICENSE.txt
。
致谢和第三方库
我复制并修改了一些来自 Drupal 核心模块的 twig 模板,这些模板根据 GPL-2.0-or-later 许可证授权。