主题位置
你必须将主题放在你的 Drupal 安装包的“themes”文件夹里。注意 Drupal 的核心主题如 Bartik 和 Seven 是放置在安装包的 core/themes 文件夹里。
最好的做法(good practice)是把贡献主题放在一个叫做“contrib”的子目录里,而你自定义的主题放置在“custom”文件夹里。
你的 Drupal 安装包的结构可能会是像这样的:
|-core
| |-modules
| |-themes
| | |-bartik
| | |-seven
..
|-modules
|-themes
| |-contrib
| | |-zen
| | |-basic
| | |-bluemarine
| |-custom
| | |-fluffiness
D:\drupal\core\themes 核心主题(系统自带)
D:\drupal\themes 新安装的主题
主题文件夹结构
这是一个典型的主题目录结构示例,其包含的文件和文件夹:
|-fluffiness.breakpoints.yml
|-fluffiness.info.yml
|-fluffiness.libraries.yml
|-fluffiness.theme
|-config
| |-install
| | |-fluffiness.settings.yml
| |-schema
| | |-fluffiness.schema.yml
|-css
| |-style.css
|-js
| |-fluffiness.js
|-images
| |-buttons.png
|-logo.png
|-screenshot.png
|-templates
| |-maintenance-page.html.twig
| |-node.html.twig
下面是一些在主题中常见的文件的描述。
*.info.yml
一个主题必须包含一个 .info.yml 文件用于定义该主题。同时 .info.yml 还定义了一些元数据(meta data),样式表(style sheets),以及区块区域。这是主题中唯一的必须包含的文件。
*.libraries.yml
.libraries.yml 文件是用于定于JavaScript库的 那些可以由主题来加载的。
*.breakpoints.yml
断点(Breakpoints)定义在响应式设计中需要针对不同设备去响应的位置。断点定义在*.breakpoints.yml 文件里
*.theme
.theme文件是一个包含了所有条件逻辑和要输出的(预)处理数据的PHP文件。
css
最好的做法(good practice)是将 .css 文件放在“css”子目录里。Drupal 8 核心主题组织 CSS 文件是遵循 SMACCS 样式指南的。
js
主题特定的 JavaScript 文件放在“js”文件夹里。一个主题想要加载 JavaScript 文件必须先定义在 .libraries.yml文件里。
Images
最好的做法(good practice)是将图片放在“images”子目录里。
Screenshot
如果 screenshot.png 文件在一个主题里被发现,那么它将被用在外观(Appearance)页面。通常你可以在 .info.yml file中定义缩略图。
Logo
如果 logo.svg 文件在一个主题里被发现,那么它将被用在网站的头部。Logo也可以通过“外观” > “设置”( Appearance > Settings)里上传。
Templates
模板(Templates)通常包含了 HTML 标记和一些逻辑。相比 Drupal 7,Drupal 8 模板(*.html.twig 文件)必须要放在“templates”子目录里。如果你遵循特定的命名约定,那么 Drupal 将会用你提供的模板来替换默认的模板,允许你去覆写默认的输出。
评论