Grav-테마 변수
이 장에서 이해합시다 Theme VariablesGrav. 테마를 디자인하는 동안 개체 및 변수는 twig 템플릿에서 액세스되며 이러한 개체 및 변수는 Twig Templating Framework에서 읽고 조작합니다.
핵심 개체
나뭇 가지 템플릿에는 많은 core objects; 각 개체에는 variables 과 functions.
다음 표는 간단한 설명과 함께 변수를 보여줍니다.
Sr. 아니. | 변수 및 설명 |
---|---|
1 | {{ base_dir }} 이 변수를 사용하여 Grav 설치 기본 파일 디렉토리를 가져올 수 있습니다. |
2 | {{ base_url }} Grav 사이트의 기본 URL은이 변수를 사용하여 액세스 할 수 있습니다. |
삼 | {{ base_url_relative }} Grav 사이트에 대한 기본 URL의 상대 경로를 반환합니다. |
4 | {{ base_url_absolute }} Grav 사이트에 대한 기본 URL의 절대 경로를 반환합니다. |
5 | {{ theme_dir }} 현재 테마의 파일 디렉토리 폴더를 반환하는 데 사용됩니다. |
6 | {{ theme_url }} 현재 테마의 상대 URL을 반환하는 데 사용됩니다. |
구성 개체
에 configuration.yaml 파일에서 구성 개체는 Grav 구성 설정에 액세스하도록 설정됩니다.
{{ config.pages.theme }}
현재 구성된 테마를 반환합니다.
사이트 개체
별칭을 제공합니다. config.site 개체, site.yaml 파일.
스타일 시트 객체
이러한 객체는 CSS 스타일 시트 자산을 저장할 배열을 제공하며, CSS를 템플릿에 추가하기 위해 반복 할 수 있습니다.
스크립트 객체
이러한 개체는 반복되는 JavaScript 자산으로 구성된 배열을 제공하며 JavaScript는 템플릿에 추가됩니다.
페이지 개체
Grav의 구조는 pages/ 폴더, page object각 페이지를 대표합니다. 그만큼page object 현재 작업중인 페이지에 대한 모든 정보를 포함합니다.
다음 표는 페이지 개체의 메서드를 보여줍니다.
Sr. 아니. | 방법 및 설명 | 예 |
---|---|---|
1 | summary([size]) 매개 변수로 제공되는 지정된 크기로 페이지 콘텐츠의 요점을 제공합니다. 크기가 지정되지 않은 경우 값은 summary.size 변수 system/config/site.yaml 파일. 구분 기호도 가능합니다. ===귀하의 콘텐츠에서. 구분 기호 앞의 내용이 요약에 사용됩니다. |
또는 |
2 | content() 페이지의 전체 HTML 콘텐츠를 가져 오는 데 사용됩니다. |
|
삼 | headers() 페이지의 YAML 전면에 정의 된 페이지 헤더를 반환합니다. |
위의 헤더는 다음과 같이 액세스 할 수 있습니다. |
4 | media() 이미지, 비디오 및 기타 파일과 같은 모든 미디어 파일에 액세스하는 데 사용됩니다. 페이지와 관련된 모든 미디어를 포함하는 배열을 반환합니다. |
|
5 | title() 페이지의 YAML 헤더에 정의 된 페이지의 제목을 반환하도록 설정됩니다. |
|
6 | menu() 가치 menu페이지의 YAML 헤더에 지정된 변수가 반환됩니다. 만약title 변수가 설정되지 않은 경우 기본값은 title. |
|
7 | visible() 페이지의 가시성을 설정하는 데 사용됩니다. 일반적으로 숫자 값 뒤에 마침표 (예 : 01.foldername)가있는 페이지는 메뉴에 표시되며 숫자 값 (예 : 폴더 이름)이 포함되지 않은 폴더 이름은 표시되지 않습니다. 페이지 헤더에서 재정의 할 수 있습니다. |
|
8 | routable() 이를 사용하여 페이지가 routable 또는 not routable즉, 브라우저에서 페이지를 가리키는 동안 콘텐츠를 다시받을 수 있는지 여부를 의미합니다. 라우팅 할 수없는 페이지는 플러그인, 템플릿 등에서 사용할 수 있으며 이러한 페이지는 직접 액세스 할 수 없습니다. 이것은 페이지 헤더에 설정됩니다. |
|
9 | slug() 이 변수를 사용하여 페이지의 URL에 표시되는 직접적인 이름을 얻을 수 있습니다. |
|
10 | url([include_host = false]) 페이지의 URL을 반환하는 데 사용됩니다. |
또는 |
11 | route() 페이지의 내부 라우팅을 반환하는 데 사용됩니다. |
|
12 | home() 이 변수를 사용하여 페이지가 다음과 같이 구성되었는지 여부를 확인할 수 있습니다. home페이지 여부. 페이지가 홈 페이지로 구성되면 true를 반환하고 구성하지 않으면 false를 반환합니다. 이 설정은system.yaml 파일. |
|
13 | root() 현재 페이지가 계층 구조의 루트 페이지인지 여부를 결정합니다. 그것은 반환true 루트 페이지이거나 false 루트 페이지가 아닌 경우. |
|
14 | active() 이 변수를 사용하여 브라우저가 현재 페이지에 액세스하고 있는지 여부를 확인할 수 있습니다. 그것은 반환true 브라우저가이 페이지에 액세스하거나 false 그렇지 않은 경우. |
|
15 | modular() 이 변수를 사용하여이 페이지가 모듈 식인지 여부를 확인할 수 있습니다. 모듈 식 페이지 인 경우 다음을 반환합니다.true 과 false 그렇지 않은 경우. |
|
16 | activeChild() 이 변수는이 URI의 URL에 활성 페이지의 URL이 있는지 여부를 판별 할 수 있습니다. 또는 간단히 말해서 현재 URL에있는이 페이지의 URL입니다. 이것은 탐색 작업을 할 때 페이지가 동일한 상위 페이지에서 반복되는지 여부를 알고 싶을 때 매우 유용합니다. |
|
17 | find(url) 경로 URL에 지정된대로 페이지 개체는이 변수에 의해 반환됩니다. |
|
18 | collection() 이 변수는 컬렉션 페이지 헤더에 의해 결정된 컨텍스트에 대한 페이지 그룹을 반환하는 데 사용됩니다. |
|
19 | isFirst() 현재 페이지가 형제 페이지의 첫 번째 페이지이면 다음을 반환합니다. true 그렇지 않으면 반환 false. |
|
20 | isLast() 현재 페이지가 형제 페이지의 마지막 페이지이면 다음을 반환합니다. true 그렇지 않으면 반환 false. |
|
21 | nextSibling() 현재 위치를 참조하여 배열에서 다음 형제 페이지를 반환합니다. |
|
22 | prevSibling() 현재 위치를 참조하여 배열에서 이전 형제 페이지를 반환합니다. |
|
23 | children() 페이지 콘텐츠 구조에 정의 된대로 하위 페이지의 배열은이 변수에 의해 반환됩니다. |
|
24 | orderBy() 정렬 된 하위 주문 유형은이 메서드에 의해 반환됩니다. 포함될 수있는 값은 다음과 같습니다.default, title, date 과 folder 페이지 헤더에 구성된 이러한 값. |
|
25 | orderDir() 정렬 된 하위 페이지의 순서 방향은이 메서드에 의해 반환됩니다. 그리고 값은asc(오름차순) 또는 desc(descending). 일반적으로 이러한 값은 페이지 머리글에 구성됩니다. |
|
26 | orderManual() 이 메소드는 매뉴얼 페이지 순서로 구성된 배열을 리턴하며이 순서는 페이지의 모든 하위에 적용됩니다. 이 값은 일반적으로 페이지 머리글에 설정됩니다. |
|
27 | maxCount() 이 변수는 반환 할 수있는 하위 페이지의 수를 나타냅니다. 일반적으로 값은 페이지 헤더에 지정됩니다. |
|
28 | children.count() 이 변수는 페이지에있는 하위 페이지 수를 반환합니다. |
|
29 | children.current() 이 변수는 현재 자식 항목을 반환합니다. |
|
30 | children.next() 그러면 하위 페이지 배열에서 다음 하위 항목이 반환됩니다. |
|
31 | children.prev() 그러면 하위 페이지 배열에서 이전 하위 항목이 반환됩니다. |
|
32 | children.nth(position) 이것은 자식 배열에서 자식의 위치를 반환합니다. |
|
33 | parent() 상위 페이지로 다시 이동하려는 경우 중첩 된 트리 구조에서이 변수를 사용할 수 있습니다. 현재 페이지의 상위 페이지 개체를 반환합니다. |
|
34 | isPage() 이 변수를 사용하면이 페이지에 실제 페이지가 있는지 확인할 수 있습니다. .md 파일 또는 라우팅을위한 폴더 일뿐입니다. |
|
35 | isDir() 이 변수를 사용하여 현재 페이지가 라우팅 용 폴더인지 여부를 결정할 수 있습니다. 그것은 반환true 또는 false 그것을 기반으로. |
|
36 | id() 페이지의 고유 ID를 반환합니다. |
|
37 | modified() 페이지가 마지막으로 수정 된 타임 스탬프를 반환합니다. |
|
38 | date() 이 메서드는 페이지의 날짜 타임 스탬프를 반환합니다. 일반적으로 이것은 페이지 또는 게시물의 날짜를 나타내는 헤더에 구성됩니다. 기본적으로 값이 제공되지 않으면 수정 된 타임 스탬프가 사용됩니다. |
|
39 | filePath() 이것을 사용하면 페이지의 전체 파일 경로를 얻을 수 있습니다. |
|
40 | filePathClean() 이것은 상대 경로를 반환합니다. |
|
41 | path() 그러면 현재 페이지가있는 디렉토리의 전체 경로가 반환됩니다. |
|
42 | folder() 그러면 페이지의 폴더 이름이 반환됩니다. |
|
43 | taxonomy() 페이지와 연결된 분류법의 배열을 반환합니다. |
페이지 개체
페이지 개체는 페이지 개체의 중첩 된 트리로 표시됩니다. 이 중첩 된 트리는navigations, sitemap 또는 finding a particular page.
어린이 방법
하위 페이지로 구성된 페이지 개체의 배열을 반환합니다. 트리와 같은 구조의 페이지 개체는 폴더의 모든 페이지에서 반복 될 수 있습니다.
메뉴에 대한 최상위 페이지를 얻으려면 다음 코드를 사용하십시오.
<ul class = "navigation">
{% for page in pages.children %}
{% if page.visible %}
<li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
{% endif %}
{% endfor %}
</ul>
uri 객체
현재 URI의 일부는 Uri 개체의 여러 메서드를 사용하여 액세스 할 수 있습니다.
http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:
다음 표는 Uri 개체의 메서드를 보여줍니다.
Sr. 아니. | 방법 및 설명 | 예 |
---|---|---|
1 | path() 이 방법을 사용하여 현재 URL의 일부에 액세스 할 수 있습니다. |
|
2 | paths() 경로 요소의 배열은이 메서드를 사용하여 반환됩니다. |
|
삼 | route([absolute = false][, domain = false]) 이 메서드는 절대 또는 상대 URL이있는 경로를 반환합니다. |
또는, |
4 | params() 그러면 URL의 매개 변수 부분이 반환됩니다. |
|
5 | param(id) 이것은 매개 변수의 값을 반환합니다. |
|
6 | query() 이 방법을 사용하여 URL의 쿼리 부분에 액세스 할 수 있습니다. |
|
7 | query(id) 이를 사용하여 특정 쿼리 항목에 액세스 할 수 있습니다. |
|
8 | url([include_host = true]) 호스트를 포함하거나 포함하지 않을 수있는 전체 URL을 반환합니다. |
|
9 | extension() 이것은 확장자를 반환하거나 제공되지 않은 경우 html을 반환합니다. |
|
10 | host() 이것은 URL의 호스트를 반환합니다. |
|
11 | base() 그러면 URL의 기본 부분이 반환됩니다. |
|
12 | rootUrl([include_host = true]) 그러면 Grav 인스턴스의 루트 URL이 반환됩니다. |
|
13 | referrer() 페이지의 리퍼러 정보는이 메소드에 의해 리턴됩니다. |
헤더 객체
에 대한 대안입니다 page.header()원본 페이지의. 하위 페이지를 반복 할 때 원본 페이지 헤더를 사용하는 것이 더 적절합니다.
콘텐츠 개체
에 대한 대안입니다 page.content() 원본 페이지의.
분류 객체
사이트의 모든 분류 정보는 전역 분류 개체에 포함됩니다.
브라우저 개체
Grav는 기본 제공 지원을 사용하여 사용자의 플랫폼, 브라우저 및 버전을 프로그래밍 방식으로 결정합니다.
{{ browser.platform}} # windows
{{ browser.browser}} # chrome
{{ browser.version}} # 24
맞춤 변수 추가
사용자 지정 변수는 여러 가지 방법으로 추가됩니다. 사이트 전체 변수를 사용하는 경우user/config/site.yaml 파일에 액세스 할 수 있습니다.
{{ site.my_variable }}
변수가 특정 페이지에만 해당되는 경우 YAML 전면에 추가하고 다음을 사용하여 액세스 할 수 있습니다. page.header 목적.
For example −
title: My Page
author: John
작성자 이름은 다음과 같이 액세스 할 수 있습니다.
The author of this page is: {{ page.header.author }}
사용자 지정 개체 추가
플러그인을 사용하여 Twig 개체에 사용자 지정 개체를 추가 할 수 있습니다. 이것은 고급 주제이며 플러그인 장 에서 더 많은 정보를 볼 것 입니다.