Grav - Biến chủ đề
Trong chương này, hãy để chúng tôi hiểu Theme Variablestrong Grav. Các đối tượng và biến được truy cập từ các mẫu cành cây trong khi thiết kế chủ đề của bạn và các đối tượng & biến này được đọc và thao tác bởi Twig Templating Framework.
Đối tượng cốt lõi
Cành mẫu có nhiều core objects; mỗi đối tượng có một tập hợp variables và functions.
Bảng sau đây cho thấy các biến với mô tả ngắn gọn.
Sr.No. | Biến & Mô tả |
---|---|
1 | {{ base_dir }} Chúng ta có thể lấy thư mục tệp cơ sở cài đặt Grav bằng cách sử dụng biến này. |
2 | {{ base_url }} Có thể truy cập url cơ sở của trang Grav bằng cách sử dụng biến này. |
3 | {{ base_url_relative }} Nó trả về đường dẫn tương đối của url cơ sở đến trang Grav. |
4 | {{ base_url_absolute }} Nó trả về đường dẫn tuyệt đối của url cơ sở đến trang Grav. |
5 | {{ theme_dir }} Nó được sử dụng để trả về thư mục thư mục tệp của chủ đề hiện tại. |
6 | {{ theme_url }} Nó được sử dụng để trả về URL tương đối của chủ đề hiện tại. |
đối tượng cấu hình
Trong configuration.yaml , đối tượng cấu hình được đặt để truy cập bất kỳ cài đặt cấu hình Grav nào.
{{ config.pages.theme }}
Nó sẽ trả về chủ đề hiện được định cấu hình.
đối tượng trang web
Cung cấp bí danh cho config.site đối tượng, đại diện cho các cấu hình được đặt trong site.yaml tập tin.
đối tượng stylesheets
Các đối tượng này cung cấp một mảng để nội dung biểu định kiểu CSS được lưu trữ, có thể được lặp lại để thêm CSS vào mẫu.
đối tượng script
Các đối tượng này cung cấp một mảng bao gồm các nội dung JavaScript, được lặp lại và các JavaScrip được thêm vào các mẫu.
đối tượng trang
Vì cấu trúc của Grav được xác định trong pages/ thư mục, page objectchịu trách nhiệm đại diện cho mỗi trang. Cácpage object chứa tất cả thông tin về trang mà bạn hiện đang làm việc.
Bảng sau hiển thị các phương thức của đối tượng trang.
Sr.No. | Phương pháp & Mô tả | Thí dụ |
---|---|---|
1 | summary([size]) Nó cung cấp một ý chính của nội dung trang với kích thước được chỉ định được cung cấp dưới dạng một tham số. Nếu kích thước không được chỉ định thì giá trị nhận được từ summary.size biến trong system/config/site.yaml tập tin. Bạn cũng có thể phân tách ===trong nội dung của bạn. Nội dung trước dấu phân cách sẽ được sử dụng để tóm tắt. |
Hoặc là |
2 | content() Nó được sử dụng để lấy toàn bộ nội dung HTML của trang. |
|
3 | headers() Nó trả về các tiêu đề trang được xác định trong YAML của trang. |
Các tiêu đề trên có thể được truy cập như: |
4 | media() Nó được sử dụng để truy cập tất cả các tệp phương tiện như hình ảnh, video và các tệp khác. Nó sẽ trả về một mảng chứa tất cả các phương tiện được liên kết với một trang. |
|
5 | title() Nó được đặt để trả về tiêu đề của trang được xác định trong tiêu đề YAML cho trang. |
|
6 | menu() Giá trị của menuđược trả về biến được chỉ định trong tiêu đề YAML của trang. Nếutitle biến không được đặt, sau đó nó sẽ mặc định thành title. |
|
7 | visible() Nó được sử dụng để thiết lập khả năng hiển thị của trang. Thông thường các trang có giá trị số theo sau là dấu chấm (tức là 01. tên thư mục) được hiển thị trong menu và tên thư mục không chứa giá trị số (tức là tên thư mục) sẽ không hiển thị. Chúng tôi có thể ghi đè nó trong tiêu đề trang. |
|
số 8 | routable() Bằng cách sử dụng điều này, chúng tôi có thể xác định xem một trang có routable hoặc là not routablenghĩa là liệu bạn có thể nhận lại nội dung khi trỏ trình duyệt của mình đến trang hay không. Các trang không thể định tuyến có thể được sử dụng trong các plugin, mẫu, v.v. và không thể truy cập trực tiếp các trang này. Điều này được đặt trong tiêu đề trang. |
|
9 | slug() Bằng cách sử dụng biến này, chúng ta có thể nhận được tên trực tiếp như được hiển thị trong URL của trang. |
|
10 | url([include_host = false]) Nó được sử dụng để trả về URL của trang |
Hoặc là |
11 | route() Nó được sử dụng để trả về định tuyến nội bộ của trang. |
|
12 | home() Sử dụng biến này, bạn có thể xác định xem trang có được định cấu hình như hometrang hay không. Điều này trả về true khi một trang được định cấu hình làm trang chủ và false khi không được định cấu hình. Bạn có thể tìm thấy cài đặt này trongsystem.yaml tập tin. |
|
13 | root() Nó xác định xem trang hiện tại có phải là trang gốc của hệ thống phân cấp hay không. Nó trở lạitrue nếu đó là trang gốc hoặc false nếu nó không phải là trang gốc. |
|
14 | active() Bạn có thể xác định xem trình duyệt có đang truy cập trang hiện tại hay không bằng cách sử dụng biến này. Nó trở lạitrue nếu trình duyệt đang truy cập trang này hoặc false nếu nó không phải. |
|
15 | modular() Bằng cách sử dụng biến này, chúng tôi có thể xác định xem trang này có phải là mô-đun hay không. Nếu đây là trang mô-đun thì nó trả vềtrue và false nếu nó không phải. |
|
16 | activeChild() Biến này có thể xác định xem URL của URI này có URL của trang đang hoạt động hay không; hay nói cách đơn giản là URL của trang này trong URL hiện tại. Điều này rất hữu ích khi bạn đang làm việc trên điều hướng và bạn muốn biết rằng liệu các trang có lặp lại trên cùng một trang mẹ hay không. |
|
17 | find(url) Như được chỉ định bởi URL định tuyến, đối tượng trang được trả về bởi biến này. |
|
18 | collection() Biến này được sử dụng để trả về nhóm trang cho ngữ cảnh được xác định bởi tiêu đề trang bộ sưu tập. |
|
19 | isFirst() Nếu trang hiện tại là trang đầu tiên của nó, thì nó sẽ trả về true người khác trả lại false. |
|
20 | isLast() Nếu trang hiện tại là trang cuối cùng của trang anh chị em của nó, thì nó sẽ trả về true người khác trả lại false. |
|
21 | nextSibling() Với tham chiếu đến vị trí hiện tại, nó trả về trang anh em tiếp theo từ mảng. |
|
22 | prevSibling() Với tham chiếu đến vị trí hiện tại, nó trả về trang anh chị em trước đó từ mảng. |
|
23 | children() Như đã định nghĩa trong cấu trúc nội dung trang, mảng các trang con được trả về bởi biến này. |
|
24 | orderBy() Loại thứ tự của trẻ em đã được sắp xếp được trả về bằng phương thức này. Các giá trị có thể được bao gồmdefault, title, date và folder và các giá trị này được định cấu hình trong tiêu đề trang. |
|
25 | orderDir() Phương thức này sẽ trả về hướng thứ tự của các trang con được sắp xếp. Và các giá trị có thể làasc(tăng dần) hoặc desc(descending). Thông thường những giá trị này được cấu hình trong tiêu đề trang. |
|
26 | orderManual() Phương thức này trả về một mảng bao gồm thứ tự trang thủ công và thứ tự này sẽ dành cho bất kỳ phần con nào của trang. Giá trị này thường sẽ được đặt trong tiêu đề trang. |
|
27 | maxCount() Biến này cho biết rằng có tối đa bao nhiêu trang con được phép trả về. Thông thường giá trị được chỉ định trong tiêu đề trang. |
|
28 | children.count() Biến này trả về số lượng trang con cho một trang. |
|
29 | children.current() Biến này sẽ trả về mục con hiện tại. |
|
30 | children.next() Thao tác này sẽ trả về mục con tiếp theo từ một mảng các trang con. |
|
31 | children.prev() Thao tác này sẽ trả về mục con trước đó từ một mảng các trang con. |
|
32 | children.nth(position) Điều này sẽ trả lại vị trí của con trong mảng con. |
|
33 | parent() Trong cấu trúc cây lồng nhau khi bạn muốn điều hướng trở lại trang mẹ, bạn có thể sử dụng biến này. Nó sẽ trả về đối tượng trang mẹ cho trang hiện tại. |
|
34 | isPage() Bằng cách sử dụng biến này, bạn có thể xác định xem trang này có .md hoặc nó chỉ là một thư mục để định tuyến. |
|
35 | isDir() Bằng cách sử dụng biến này, bạn có thể xác định xem trang hiện tại chỉ là một thư mục để định tuyến hay không. Nó trở lạitrue hoặc là false dựa trên nó. |
|
36 | id() Điều này sẽ trả về id duy nhất cho trang. |
|
37 | modified() Nó trả về dấu thời gian về thời điểm trang được sửa đổi lần cuối. |
|
38 | date() Dấu thời gian ngày cho trang được trả về bằng phương thức này. Thông thường điều này được định cấu hình trong tiêu đề đại diện cho ngày của trang hoặc bài đăng. Nếu không có giá trị nào được cung cấp theo mặc định, dấu thời gian đã sửa đổi sẽ được sử dụng. |
|
39 | filePath() Bằng cách sử dụng này, bạn có thể nhận được đường dẫn tệp đầy đủ của trang. |
|
40 | filePathClean() Điều này sẽ trả về đường dẫn tương đối. |
|
41 | path() Thao tác này sẽ trả về một đường dẫn đầy đủ đến thư mục chứa trang hiện tại. |
|
42 | folder() Thao tác này sẽ trả về tên thư mục cho trang. |
|
43 | taxonomy() Điều này sẽ trả về một mảng phân loại được kết nối với trang. |
đối tượng trang
Đối tượng Pages được biểu diễn dưới dạng cây lồng nhau của các đối tượng trang. Cây lồng nhau này rất hữu ích trong khi tạonavigations, sitemap hoặc là finding a particular page.
phương pháp trẻ em
Điều này trả về một mảng các đối tượng trang bao gồm các trang con. Đối tượng trang có cấu trúc dạng cây có thể được lặp lại trên mọi trang trong thư mục.
Để có được các trang cấp cao nhất cho menu, hãy sử dụng mã sau.
<ul class = "navigation">
{% for page in pages.children %}
{% if page.visible %}
<li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
{% endif %}
{% endfor %}
</ul>
vật đi tiểu
Một phần của URI hiện tại có thể được truy cập bằng cách sử dụng một số phương thức của đối tượng Uri.
http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:
Bảng sau đây cho thấy các phương thức của đối tượng Uri.
Sr.No. | Phương pháp & Mô tả | Thí dụ |
---|---|---|
1 | path() Phần của url hiện tại có thể được truy cập bằng cách sử dụng phương pháp này. |
|
2 | paths() Mảng các phần tử đường dẫn được trả về bằng cách sử dụng phương thức này. |
|
3 | route([absolute = false][, domain = false]) Phương thức này trả về tuyến đường có URL tuyệt đối hoặc URL tương đối. |
Hoặc là, |
4 | params() Điều này sẽ trả về phần tham số trong URL. |
|
5 | param(id) Điều này sẽ trả về giá trị của tham số. |
|
6 | query() Phần truy vấn của URL có thể được truy cập bằng cách sử dụng phương pháp này. |
|
7 | query(id) Sử dụng điều này, bạn có thể truy cập vào mục truy vấn cụ thể. |
|
số 8 | url([include_host = true]) Điều này trả về URL đầy đủ có thể chứa hoặc không chứa máy chủ. |
|
9 | extension() Điều này sẽ trả về phần mở rộng hoặc nếu không được cung cấp, thì nó sẽ trả về html. |
|
10 | host() Điều này trả về máy chủ của URL. |
|
11 | base() Điều này sẽ trả về phần cơ sở của URL. |
|
12 | rootUrl([include_host = true]) Thao tác này sẽ trả về URL gốc của phiên bản Grav. |
|
13 | referrer() Thông tin liên kết giới thiệu của trang được trả về theo phương thức này. |
đối tượng tiêu đề
Nó là một thay thế cho page.header()của trang gốc. Sẽ thích hợp hơn khi sử dụng tiêu đề trang gốc khi bạn đang xem qua các trang con.
đối tượng nội dung
Nó là một thay thế cho page.content() của trang gốc.
đối tượng phân loại
Tất cả thông tin phân loại của trang web được chứa trong đối tượng phân loại toàn cầu.
đối tượng trình duyệt
Grav xác định theo chương trình nền tảng, trình duyệt và phiên bản của người dùng bằng cách sử dụng hỗ trợ tích hợp sẵn.
{{ browser.platform}} # windows
{{ browser.browser}} # chrome
{{ browser.version}} # 24
Thêm các biến tùy chỉnh
Các biến tùy chỉnh được thêm vào theo một số cách. Nếu bạn đang sử dụng biến trên toàn trang, hãy đặt nó vàouser/config/site.yaml và bạn có thể truy cập nó như hình dưới đây.
{{ site.my_variable }}
Nếu biến chỉ dành cho một trang cụ thể thì bạn có thể thêm nó vào vấn đề chính của YAML và truy cập nó bằng cách sử dụng page.header vật.
For example -
title: My Page
author: John
Tên tác giả có thể được truy cập là -
The author of this page is: {{ page.header.author }}
Thêm đối tượng tùy chỉnh
Bằng cách sử dụng các plugin, bạn có thể thêm các đối tượng tùy chỉnh vào đối tượng Twig. Đây là một chủ đề nâng cao và chúng ta sẽ xem thêm thông tin trong chương bổ sung .