dss_tech_docs 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +29 -0
- data/.gitignore +37 -0
- data/.rspec +2 -0
- data/.rubocop.yml +11 -0
- data/.ruby-version +1 -0
- data/.travis.yml +9 -0
- data/CHANGELOG.md +274 -0
- data/CONTRIBUTING.md +9 -0
- data/Gemfile +4 -0
- data/LICENCE +21 -0
- data/README.md +89 -0
- data/Rakefile +13 -0
- data/docs/configuration.md +205 -0
- data/docs/core-layout-without-sidebar.png +0 -0
- data/docs/core-layout.png +0 -0
- data/docs/expired-page.png +0 -0
- data/docs/frontmatter.md +145 -0
- data/docs/last-reviewed-only.png +0 -0
- data/docs/last-reviewed-only.svg +1 -0
- data/docs/layout-layout.png +0 -0
- data/docs/not-expired-page.png +0 -0
- data/docs/page-expiry.md +85 -0
- data/dss_tech_docs.gemspec +46 -0
- data/example/.ruby-version +1 -0
- data/example/Gemfile +3 -0
- data/example/config.rb +9 -0
- data/example/config/hide-expiry.yml +51 -0
- data/example/config/tech-docs.yml +50 -0
- data/example/source/api-path.html.md +7 -0
- data/example/source/api-reference.html.md +5 -0
- data/example/source/child-of-expired-page.html.md +8 -0
- data/example/source/core-layout-without-sidebar.html.md.erb +7 -0
- data/example/source/core-layout.html.md.erb +12 -0
- data/example/source/expired-page-with-owner.html.md +10 -0
- data/example/source/expired-page.html.md +9 -0
- data/example/source/headings.html.md +11 -0
- data/example/source/index.html.md.erb +19 -0
- data/example/source/javascripts/application.js +1 -0
- data/example/source/not-expired-page.html.md +9 -0
- data/example/source/pets.yml +109 -0
- data/example/source/stylesheets/print.css.scss +3 -0
- data/example/source/stylesheets/screen-old-ie.css.scss +4 -0
- data/example/source/stylesheets/screen.css.scss +1 -0
- data/example/source/templates/proxy_template.html.md +8 -0
- data/lib/assets/javascripts/_analytics.js +58 -0
- data/lib/assets/javascripts/_govuk/modules.js +57 -0
- data/lib/assets/javascripts/_modules/anchored-headings.js +18 -0
- data/lib/assets/javascripts/_modules/collapsible-navigation.js +95 -0
- data/lib/assets/javascripts/_modules/in-page-navigation.js +132 -0
- data/lib/assets/javascripts/_modules/navigation.js +34 -0
- data/lib/assets/javascripts/_modules/page-expiry.js +15 -0
- data/lib/assets/javascripts/_modules/search.js +367 -0
- data/lib/assets/javascripts/_modules/table-of-contents.js +111 -0
- data/lib/assets/javascripts/_start-modules.js +13 -0
- data/lib/assets/javascripts/_vendor/fixedsticky.js +194 -0
- data/lib/assets/javascripts/_vendor/jquery.js +5 -0
- data/lib/assets/javascripts/_vendor/jquery.mark.js +1081 -0
- data/lib/assets/javascripts/_vendor/lodash.js +613 -0
- data/lib/assets/javascripts/_vendor/modernizr.js +3 -0
- data/lib/assets/javascripts/govuk_tech_docs.js +10 -0
- data/lib/assets/stylesheets/_accessibility.scss +9 -0
- data/lib/assets/stylesheets/_core.scss +71 -0
- data/lib/assets/stylesheets/_fonts.scss +29 -0
- data/lib/assets/stylesheets/_govuk_tech_docs.scss +2 -0
- data/lib/assets/stylesheets/_syntax-highlighting.scss +196 -0
- data/lib/assets/stylesheets/_variables.scss +12 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_colours.scss +2 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_conditionals.scss +81 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_css3.scss +90 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_device-pixels.scss +10 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_font_stack.scss +19 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_grid_layout.scss +136 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_helpers.scss +16 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_measurements.scss +14 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_shims.scss +55 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_typography.scss +249 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/_url-helpers.scss +16 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/colours/_organisation.scss +103 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/colours/_palette.scss +77 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_alpha-beta.scss +66 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_breadcrumbs.scss +53 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_buttons.scss +141 -0
- data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_media-player.scss +242 -0
- data/lib/assets/stylesheets/modules/_anchored-heading.scss +54 -0
- data/lib/assets/stylesheets/modules/_app-pane.scss +64 -0
- data/lib/assets/stylesheets/modules/_collapsible.scss +52 -0
- data/lib/assets/stylesheets/modules/_contribution-banner.scss +22 -0
- data/lib/assets/stylesheets/modules/_footer.scss +130 -0
- data/lib/assets/stylesheets/modules/_govuk-logo.scss +47 -0
- data/lib/assets/stylesheets/modules/_header.scss +290 -0
- data/lib/assets/stylesheets/modules/_page-review.scss +35 -0
- data/lib/assets/stylesheets/modules/_phase-banner.scss +22 -0
- data/lib/assets/stylesheets/modules/_search.scss +137 -0
- data/lib/assets/stylesheets/modules/_skip-link.scss +31 -0
- data/lib/assets/stylesheets/modules/_technical-documentation.scss +241 -0
- data/lib/assets/stylesheets/modules/_toc.scss +216 -0
- data/lib/assets/stylesheets/modules/_warning-text.scss +73 -0
- data/lib/assets/stylesheets/palette/_syntax-highlighting.scss +23 -0
- data/lib/assets/stylesheets/utilities/_fonts.scss +29 -0
- data/lib/assets/stylesheets/utilities/_printable.scss +13 -0
- data/lib/assets/stylesheets/vendor/_fixedsticky.scss +22 -0
- data/lib/dss_tech_docs.rb +121 -0
- data/lib/govuk_tech_docs/api_reference/api_reference_extension.rb +101 -0
- data/lib/govuk_tech_docs/api_reference/api_reference_renderer.rb +279 -0
- data/lib/govuk_tech_docs/api_reference/templates/api_reference_full.html.erb +19 -0
- data/lib/govuk_tech_docs/api_reference/templates/operation.html.erb +11 -0
- data/lib/govuk_tech_docs/api_reference/templates/parameters.html.erb +28 -0
- data/lib/govuk_tech_docs/api_reference/templates/path.html.erb +4 -0
- data/lib/govuk_tech_docs/api_reference/templates/responses.html.erb +33 -0
- data/lib/govuk_tech_docs/api_reference/templates/schema.html.erb +29 -0
- data/lib/govuk_tech_docs/contribution_banner.rb +62 -0
- data/lib/govuk_tech_docs/meta_tags.rb +67 -0
- data/lib/govuk_tech_docs/page_review.rb +52 -0
- data/lib/govuk_tech_docs/pages.rb +32 -0
- data/lib/govuk_tech_docs/redirects.rb +39 -0
- data/lib/govuk_tech_docs/table_of_contents/heading.rb +30 -0
- data/lib/govuk_tech_docs/table_of_contents/heading_tree.rb +27 -0
- data/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb +41 -0
- data/lib/govuk_tech_docs/table_of_contents/heading_tree_renderer.rb +46 -0
- data/lib/govuk_tech_docs/table_of_contents/headings_builder.rb +39 -0
- data/lib/govuk_tech_docs/table_of_contents/helpers.rb +79 -0
- data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +34 -0
- data/lib/govuk_tech_docs/unique_identifier_extension.rb +13 -0
- data/lib/govuk_tech_docs/unique_identifier_generator.rb +72 -0
- data/lib/govuk_tech_docs/version.rb +3 -0
- data/lib/govuk_tech_docs/warning_text_extension.rb +23 -0
- data/lib/source/api/pages.json.erb +1 -0
- data/lib/source/favicon.ico +0 -0
- data/lib/source/images/anchored-heading-icon-2x.png +0 -0
- data/lib/source/images/anchored-heading-icon.png +0 -0
- data/lib/source/images/gov.uk_logotype_crown-2x.png +0 -0
- data/lib/source/images/gov.uk_logotype_crown.png +0 -0
- data/lib/source/images/gov.uk_logotype_crown_invert_trans.png +0 -0
- data/lib/source/images/govuk-crest-2x.png +0 -0
- data/lib/source/images/govuk-crest.png +0 -0
- data/lib/source/images/govuk-icn-close.png +0 -0
- data/lib/source/images/govuk-icn-close@2x.png +0 -0
- data/lib/source/images/govuk-icn-numbered-list.png +0 -0
- data/lib/source/images/govuk-icn-numbered-list@2x.png +0 -0
- data/lib/source/images/open-government-licence.png +0 -0
- data/lib/source/images/open-government-licence_2x.png +0 -0
- data/lib/source/images/search-result-caret.svg +13 -0
- data/lib/source/layouts/_analytics.erb +15 -0
- data/lib/source/layouts/_footer.erb +10 -0
- data/lib/source/layouts/_header.erb +44 -0
- data/lib/source/layouts/_page_review.erb +22 -0
- data/lib/source/layouts/_search.erb +16 -0
- data/lib/source/layouts/core.erb +82 -0
- data/lib/source/layouts/layout.erb +18 -0
- metadata +474 -0
data/Rakefile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
2
|
+
require 'rspec/core/rake_task'
|
|
3
|
+
require 'jasmine'
|
|
4
|
+
|
|
5
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
6
|
+
|
|
7
|
+
load 'jasmine/tasks/jasmine.rake'
|
|
8
|
+
|
|
9
|
+
task :lint do
|
|
10
|
+
sh "govuk-lint-ruby example lib spec Rakefile"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
task default: ['lint', 'spec', 'jasmine:ci']
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
You can configure the site using `config/tech-docs.yml`. [See the PaaS tech docs for an example](https://github.com/alphagov/paas-tech-docs/blob/master/config/tech-docs.yml).
|
|
4
|
+
|
|
5
|
+
These are all the available options:
|
|
6
|
+
|
|
7
|
+
## `ga_tracking_id`
|
|
8
|
+
|
|
9
|
+
Tracking ID from Google Analytics
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
ga_tracking_id: UA-XXXX-Y
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## `github_repo`
|
|
16
|
+
|
|
17
|
+
Your repository. Required if [show_contribution_banner](#show-contribution-banner) is true.
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
github_repo: alphagov/example-repo
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## `github_branch`
|
|
24
|
+
|
|
25
|
+
Your github branch name. Useful if your default branch is not named master.
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
github_branch: source
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## `google_site_verification`
|
|
32
|
+
|
|
33
|
+
Adds a [Google Site Verification code](https://support.google.com/webmasters/answer/35179?hl=en) to the meta tags.
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
google_site_verification: TvDTuyvdstyusadrCSDrctyd
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## `enable_search`
|
|
40
|
+
|
|
41
|
+
Enables search functionality. This indexes pages only and is not recommended for single-page sites.
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
enable_search: true
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## `header_links`
|
|
48
|
+
|
|
49
|
+
Right hand side navigation.
|
|
50
|
+
|
|
51
|
+
Example:
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
header_links:
|
|
55
|
+
Documentation: /
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## `host`
|
|
59
|
+
|
|
60
|
+
Host to use for canonical URL generation (without trailing slash).
|
|
61
|
+
|
|
62
|
+
Example:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
host: https://docs.cloud.service.gov.uk
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## `collapsible_nav`
|
|
69
|
+
|
|
70
|
+
Enable collapsible navigation in the sidebar. Defaults to false;
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
collapsible_nav: true
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## `multipage_nav`
|
|
77
|
+
|
|
78
|
+
Enable multipage navigation in the sidebar. Defaults to false;
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
multipage_nav: true
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## `max_toc_heading_level`
|
|
85
|
+
|
|
86
|
+
Table of contents depth – how many levels to include in the table of contents. If your ToC is too long, reduce this number and we'll only show higher-level headings.
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
max_toc_heading_level: 6
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## `phase`
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
phase: "Beta"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## `prevent_indexing`
|
|
99
|
+
|
|
100
|
+
Prevent robots from indexing (e.g. whilst in development)
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
prevent_indexing: false
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## `redirects`
|
|
107
|
+
|
|
108
|
+
A list of redirects, from old to new location. Use this to set up external
|
|
109
|
+
redirects or if [setting `old_paths` in the frontmatter](docs/frontmatter.md#old_paths) doesn't work.
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
redirects:
|
|
113
|
+
/old-page.html: https://example.org/something-else.html
|
|
114
|
+
/another/old-page.html: /another/new-page.html
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## `service_name`
|
|
118
|
+
|
|
119
|
+
The service name in the header.
|
|
120
|
+
|
|
121
|
+
Example:
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
service_name: "Platform as a Service"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## `full_service_name`
|
|
128
|
+
|
|
129
|
+
The full service name (maybe with GOV.UK)
|
|
130
|
+
|
|
131
|
+
Example:
|
|
132
|
+
|
|
133
|
+
```yaml
|
|
134
|
+
full_service_name: "GOV.UK Pay"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## `service_link`
|
|
138
|
+
|
|
139
|
+
What the service name in the header links to.
|
|
140
|
+
|
|
141
|
+
default: '/'
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
service_link: "/"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## `show_contribution_banner`
|
|
148
|
+
|
|
149
|
+
Show a block at the bottom of the page that links to the page source, so readers
|
|
150
|
+
can easily contribute back to the documentation. If turned on [github_repo](#github-repo) is
|
|
151
|
+
required.
|
|
152
|
+
|
|
153
|
+
Off by default.
|
|
154
|
+
|
|
155
|
+
```yaml
|
|
156
|
+
show_contribution_banner: true
|
|
157
|
+
github_repo: alphagov/example-repo
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## `source_urls`
|
|
161
|
+
|
|
162
|
+
Customise the URLs that the contribution banner links to. Only useful if
|
|
163
|
+
[show_contribution_banner](#show_contribution_banner) is turned on. By default, "Report issue" links
|
|
164
|
+
to raising a GitHub issue but by modifying the `report_issue_url` it can link to an email address
|
|
165
|
+
or another page.
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
source_urls:
|
|
169
|
+
report_issue_url: mailto:support@example.com
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## `show_govuk_logo`
|
|
173
|
+
|
|
174
|
+
Whether to show the GOV.UK crown logo.
|
|
175
|
+
|
|
176
|
+
default: `true`
|
|
177
|
+
|
|
178
|
+
```yaml
|
|
179
|
+
show_govuk_logo: true
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## `api_path`
|
|
183
|
+
|
|
184
|
+
Define a path to an Open API V3 spec file. This can be a relative file path or a URI to a raw file.
|
|
185
|
+
|
|
186
|
+
```yaml
|
|
187
|
+
api_path: ./source/pets.yml
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## `owner_slack_workspace` and `default_owner_slack`
|
|
191
|
+
|
|
192
|
+
These attributes are used to specify the owner of a page. See the separate
|
|
193
|
+
[documentation for page expiry][expiry] for more details.
|
|
194
|
+
|
|
195
|
+
## `show_expiry`
|
|
196
|
+
|
|
197
|
+
Decides whether or not to show a red banner when the page needs to be reviewed.
|
|
198
|
+
|
|
199
|
+
If not present or set to `true`, the red banner will appear when the page needs to be reviewed. This is the default behaviour.
|
|
200
|
+
|
|
201
|
+
If set to `false`, the red banner will not appear when the page needs to be reviewed.
|
|
202
|
+
|
|
203
|
+
See the separate [documentation for page expiry][expiry] for more details.
|
|
204
|
+
|
|
205
|
+
[expiry]: https://tdt-documentation.london.cloudapps.digital/page-expiry.html#page-expiry-and-review
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/docs/frontmatter.md
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Available frontmatter
|
|
2
|
+
|
|
3
|
+
"Frontmatter" allows page-specific variables to be included at the top of a template using YAML. For a general introduction on frontmatter, see the [Middleman frontmatter docs][mm].
|
|
4
|
+
|
|
5
|
+
## `last_reviewed_on` and `review_in`
|
|
6
|
+
|
|
7
|
+
These attributes determine the date when the page needs to be reviewed next.
|
|
8
|
+
See the separate [documentation for page expiry][expiry] for more details.
|
|
9
|
+
|
|
10
|
+
[expiry]: https://tdt-documentation.london.cloudapps.digital/page-expiry.html#page-expiry-and-review
|
|
11
|
+
|
|
12
|
+
Example:
|
|
13
|
+
|
|
14
|
+
You can use this in combination with [owner_slack](#owner-slack) to set an owner for the page.
|
|
15
|
+
|
|
16
|
+
## `layout`
|
|
17
|
+
|
|
18
|
+
The layout of the page.
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
---
|
|
22
|
+
layout: core
|
|
23
|
+
---
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
There are 2 available page layouts.
|
|
27
|
+
|
|
28
|
+
### The `layout` layout (default)
|
|
29
|
+
|
|
30
|
+
By default, pages will use the `layout` layout. This layout will parse the page and generate a sidebar with a table of contents consisting of each `h2`, `h3`, `h4` heading.
|
|
31
|
+
|
|
32
|
+
```md
|
|
33
|
+
---
|
|
34
|
+
layout: layout
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# The title
|
|
38
|
+
|
|
39
|
+
## A subheader
|
|
40
|
+
|
|
41
|
+
### A h3 subheader
|
|
42
|
+
|
|
43
|
+
## Another subheader
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Will generate a page with the headings from the content in the sidebar.
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
### `core` layout
|
|
51
|
+
|
|
52
|
+
If you want more control about the layout, use `core` layout. This allows you to specify the sidebar manually with a `content_for` block.
|
|
53
|
+
|
|
54
|
+
```rb
|
|
55
|
+
---
|
|
56
|
+
layout: core
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
<% content_for :sidebar do %>
|
|
60
|
+
You can put anything in the sidebar.
|
|
61
|
+
<% end %>
|
|
62
|
+
|
|
63
|
+
This page has a configurable sidebar that is independent of the content.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
If you do not specify a sidebar, you will get a simple one-column layout without one.
|
|
69
|
+
|
|
70
|
+
```rb
|
|
71
|
+
---
|
|
72
|
+
layout: core
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
This page does not have a sidebar.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+

|
|
79
|
+
|
|
80
|
+
## `old_paths`
|
|
81
|
+
|
|
82
|
+
Any paths of pages that should redirect to this page.
|
|
83
|
+
|
|
84
|
+
Example:
|
|
85
|
+
|
|
86
|
+
```yaml
|
|
87
|
+
---
|
|
88
|
+
old_paths:
|
|
89
|
+
- /some-old-page.html
|
|
90
|
+
---
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## `owner_slack`
|
|
94
|
+
|
|
95
|
+
The Slack username or channel of the page owner. This can be used to appoint an individual or team as responsible for keeping the page up to date.
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
---
|
|
99
|
+
owner_slack: "#operations-teams"
|
|
100
|
+
---
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## `source_url`
|
|
104
|
+
|
|
105
|
+
If the contribution banner is turned on, you can override the "View source" link
|
|
106
|
+
using `source_url`.
|
|
107
|
+
|
|
108
|
+
Example:
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
source_url: http://example.org/source.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## `title`
|
|
115
|
+
|
|
116
|
+
The browser title of the page.
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
---
|
|
120
|
+
title: My beautiful page
|
|
121
|
+
---
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## `weight`
|
|
125
|
+
|
|
126
|
+
Affects the order a page is displayed in the sidebar navigation tree. Lower
|
|
127
|
+
weights float to the top. Higher weights sink to the bottom.
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
---
|
|
131
|
+
weight: 20
|
|
132
|
+
---
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## `parent`
|
|
136
|
+
|
|
137
|
+
The page that should be highlighted as ‘active’ in the navigation.
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
---
|
|
141
|
+
parent: shaving-yaks.html
|
|
142
|
+
---
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
[mm]: https://middlemanapp.com/basics/frontmatter
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg version="1.1" viewBox="0.0 0.0 842.7270341207349 642.2729658792651" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l842.72705 0l0 642.27295l-842.72705 0l0 -642.27295z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l842.72705 0l0 642.27295l-842.72705 0z" fill-rule="evenodd"/><g filter="url(#shadowFilter-p.1)"><use xlink:href="#p.1" transform="matrix(1.0 0.0 0.0 1.0 0.0 2.0)"/></g><defs><filter id="shadowFilter-p.1" filterUnits="userSpaceOnUse"><feGaussianBlur in="SourceAlpha" stdDeviation="2.0" result="blur"/><feComponentTransfer in="blur" color-interpolation-filters="sRGB"><feFuncR type="linear" slope="0" intercept="0.0"/><feFuncG type="linear" slope="0" intercept="0.0"/><feFuncB type="linear" slope="0" intercept="0.0"/><feFuncA type="linear" slope="0.5" intercept="0"/></feComponentTransfer></filter></defs><g id="p.1"><path fill="#000000" fill-opacity="0.0" d="m16.0 16.0l810.0 0l0 299.0l-810.0 0z" fill-rule="evenodd"/><g transform="matrix(1.0 0.0 0.0 1.0 16.0 16.0)"><clipPath id="p.2"><path d="m0 0l810.0 0l0 299.0l-810.0 0z" clip-rule="evenodd"/></clipPath><image clip-path="url(#p.2)" fill="#000" width="810.0" height="299.0" x="0.0" y="0.0" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/></g></g><g filter="url(#shadowFilter-p.3)"><use xlink:href="#p.3" transform="matrix(1.0 0.0 0.0 1.0 0.0 2.0)"/></g><defs><filter id="shadowFilter-p.3" filterUnits="userSpaceOnUse"><feGaussianBlur in="SourceAlpha" stdDeviation="2.0" result="blur"/><feComponentTransfer in="blur" color-interpolation-filters="sRGB"><feFuncR type="linear" slope="0" intercept="0.0"/><feFuncG type="linear" slope="0" intercept="0.0"/><feFuncB type="linear" slope="0" intercept="0.0"/><feFuncA type="linear" slope="0.5" intercept="0"/></feComponentTransfer></filter></defs><g id="p.3"><path fill="#000000" fill-opacity="0.0" d="m16.0 331.0l810.0 0l0 299.0l-810.0 0z" fill-rule="evenodd"/><g transform="matrix(1.0 0.0 0.0 1.0 16.0 331.0)"><clipPath id="p.4"><path d="m0 0l810.0 0l0 299.0l-810.0 0z" clip-rule="evenodd"/></clipPath><image clip-path="url(#p.4)" fill="#000" width="810.0" height="299.0" x="0.0" y="0.0" preserveAspectRatio="none" xlink:href="data:image/png;base64,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J3/ck63n79szW9OcARG9fYFW7u3KpXt/mc2t3rySry9yXBARkaBCUBnBz64+lRs7Tdl7024S8uGj/K0Flxt3fvE8izQinnH1Dvof2s2r9vflyrX7HBNERCSoICIiIiIiQYWggoiIiIiIBBVERERERCSoEFQQEREREZGgQlBBRERERCSoEFQQEREREZGgQlBBRERERCSoEFQQEREREZGgQlBBRERERESCCiIiIiIiElQIKoiIiIiISFAhqCAiIiIiElQIKoiIiIiISFAhqCAiIiIiElQIKoiIiIiISFAhqCAiIiIiIkEFEREREREJKgQVREREREQkqCAiIiIiIkGFoIKIiIiIiAQVggoiIiIiIkGFoIKIiIiIiAQVggoiIiIiIkGFoIKIiIiIiAQVggoiIiIiIhJUEBERERGRoEJQQUREREREggqFiYiIiIhIUCGoICIiIiIiQYWggoiIiIhIUCGoICIiIiIiQYWggoiIiIiIBBVERERERCSoEFQQEREREZGggoiIiIiIBJVjDyoAAAAAAAAEFQAAAAAAIKgAAAAAAAAQVAAAAAAAgKACAAAAAABAUAEAAAAAAIIKAAAAAAAAQQUAAAAAAICgAgAAAAAABBUAAAAAAACCCgAAAAAAEFQAAAAAAAAIKgAAAAAAQFABAAAAAAAgqAAAAAAAABBUAAAAAACAoAIAAAAAAEBQAQAAAAAAggoAAAAAAABBBQAAAAAACCoAAAAAAAAEFQAAAAAAIKgAAAAAAAAQVAAAAAAAAAgqAAAAAABAUAEAAAAAACCoAAAAAAAAQQUAAAAAAICgAgAAAAAABBUAAAAAAICp8/8SK0GKNxgnjwAAAABJRU5ErkJggg=="/></g></g></g></svg>
|
|
Binary file
|
|
Binary file
|
data/docs/page-expiry.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Page Expiry and Review Notices
|
|
2
|
+
|
|
3
|
+
It's possible to include frontmatter configuration for a page to set an
|
|
4
|
+
expiration date for a piece of content. The expiration date is calculated using the `last_reviewed_on` and `review_in` frontmatter configuration parameters.
|
|
5
|
+
|
|
6
|
+
The `show_expiry` parameter in the global configuration file decides if the banners at the bottom of the page say that the page is expired or not.
|
|
7
|
+
|
|
8
|
+
For `show_expiry: true`, the banner at the bottom turns red if it's past the expiration date.
|
|
9
|
+
|
|
10
|
+
If the page doesn't need to be reviewed, we show a blue box with the
|
|
11
|
+
last-reviewed date, when it needs review again, and the owner.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
If the page needs to be reviewed, we show a red box saying the page might not
|
|
16
|
+
be accurate.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
Setting `show_expiry: false` generates a blue banner with the last reviewed date. This banner stays the same whether the page needs to be reviewed or not. The banner does not mention when the page needs to be reviewed next or who the owner is.
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
This feature relies on JavaScript being enabled on the user's browser to
|
|
25
|
+
display the relevant notices.
|
|
26
|
+
|
|
27
|
+
If you want to disable the banners, but keep the review dates in the frontmatter, add the following to `source/javascripts/application.js`
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
// Disable page expiry banner
|
|
31
|
+
window.GOVUK.Modules.PageExpiry = null;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For example if you do not want any page expiry banner at the bottom of the page, but want to have the review dates in the frontmatter for Daniel the Manual Spaniel to pick up.
|
|
35
|
+
|
|
36
|
+
## Frontmatter configuration
|
|
37
|
+
|
|
38
|
+
### `last_reviewed_on` and `review_in`
|
|
39
|
+
|
|
40
|
+
These attributes determine the date when the page needs to be reviewed next.
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
---
|
|
44
|
+
last_reviewed_on: 2018-01-18
|
|
45
|
+
review_in: 6 weeks
|
|
46
|
+
---
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
You can use this in combination with `owner_slack` or `default_owner_slack` to
|
|
50
|
+
set an owner for the page.
|
|
51
|
+
|
|
52
|
+
### `owner_slack`
|
|
53
|
+
|
|
54
|
+
The Slack username or channel of the page owner. This can be used to appoint an
|
|
55
|
+
individual or team as responsible for keeping the page up to date.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Global configuration
|
|
59
|
+
|
|
60
|
+
### `owner_slack_workspace`
|
|
61
|
+
|
|
62
|
+
The Slack workspace name used when linking to the Slack owner of a piece of
|
|
63
|
+
content. If not provided, the owner of a piece of content (channel or user)
|
|
64
|
+
won't be linked.
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
owner_slack_workspace: gds
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### `default_owner_slack`
|
|
71
|
+
|
|
72
|
+
The default Slack user or channel name to show as the owner of a piece of
|
|
73
|
+
content. Can be overridden using the `owner_slack` frontmatter config option.
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
default_owner_slack: '#owner'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
## Page API
|
|
81
|
+
|
|
82
|
+
The expiry date for each page is also shown in the `/api/pages.json`
|
|
83
|
+
representation of all pages. This is used by the
|
|
84
|
+
[tech-docs-notifier](https://github.com/alphagov/tech-docs-notifier) to post
|
|
85
|
+
messages to Slack when pages have expired.
|