You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pages-sections.md 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. +++
  2. title = "Sections and Pages"
  3. weight = 20
  4. +++
  5. Pages and sections are actually very similar.
  6. ## Page variables
  7. Gutenberg will try to load the `templates/page.html` template, the `page.html` template of the theme if one is used
  8. or will render the built-in template: a blank page.
  9. Whichever template you decide to render, you will get a `page` variable in your template
  10. with the following fields:
  11. ```ts
  12. content: String;
  13. title: String?;
  14. description: String?;
  15. date: String?;
  16. slug: String;
  17. path: String;
  18. draft: Bool;
  19. // the path, split on '/'
  20. components: Array<String>;
  21. permalink: String;
  22. summary: String?;
  23. taxonomies: HashMap<String, Array<String>>;
  24. extra: HashMap<String, Any>;
  25. // Naive word count, will not work for languages without whitespace
  26. word_count: Number;
  27. // Based on https://help.medium.com/hc/en-us/articles/214991667-Read-time
  28. reading_time: Number;
  29. // `earlier` and `later` are only populated if the section variable `sort_by` is set to `date`
  30. earlier: Page?;
  31. later: Page?;
  32. // `heavier` and `lighter` are only populated if the section variable `sort_by` is set to `weight`
  33. heavier: Page?;
  34. lighter: Page?;
  35. // See the Table of contents section below for more details
  36. toc: Array<Header>;
  37. // Year/month/day is only set if the page has a date and month/day are 1-indexed
  38. year: Number?;
  39. month: Number?;
  40. day: Number?;
  41. // Paths of colocated assets, relative to the content directory
  42. assets: Array<String>;
  43. // The relative paths of the parent sections until the index onef for use with the `get_section` Tera function
  44. // The first item is the index section and the last one is the parent section
  45. // This is filled after rendering a page content so it will be empty in shortcodes
  46. ancestors: Array<String>;
  47. ```
  48. ## Section variables
  49. By default, Gutenberg will try to load `templates/index.html` for `content/_index.md`
  50. and `templates/section.html` for others `_index.md` files. If there isn't
  51. one, it will render the built-in template: a blank page.
  52. Whichever template you decide to render, you will get a `section` variable in your template
  53. with the following fields:
  54. ```ts
  55. content: String;
  56. title: String?;
  57. description: String?;
  58. date: String?;
  59. slug: String;
  60. path: String;
  61. // the path, split on '/'
  62. components: Array<String>;
  63. permalink: String;
  64. extra: HashMap<String, Any>;
  65. // Pages directly in this section, sorted if asked
  66. pages: Array<Pages>;
  67. // Direct subsections to this section, sorted by subsections weight
  68. // This only contains the path to use in the `get_section` Tera function to get
  69. // the actual section object if you need it
  70. subsections: Array<String>;
  71. // Unicode word count
  72. word_count: Number;
  73. // Based on https://help.medium.com/hc/en-us/articles/214991667-Read-time
  74. reading_time: Number;
  75. // See the Table of contents section below for more details
  76. toc: Array<Header>;
  77. // Paths of colocated assets, relative to the content directory
  78. assets: Array<String>;
  79. // The relative paths of the parent sections until the index onef for use with the `get_section` Tera function
  80. // The first item is the index section and the last one is the parent section
  81. // This is filled after rendering a page content so it will be empty in shortcodes
  82. ancestors: Array<String>;
  83. ```
  84. ## Table of contents
  85. Both page and section have a `toc` field which corresponds to an array of `Header`.
  86. A `Header` has the following fields:
  87. ```ts
  88. // The hX level
  89. level: 1 | 2 | 3 | 4 | 5 | 6;
  90. // The generated slug id
  91. id: String;
  92. // The text of the header
  93. title: String;
  94. // A link pointing directly to the header, using the inserted anchor
  95. permalink: String;
  96. // All lower level headers below this header
  97. children: Array<Header>;
  98. ```