govuk_tech_docs 2.0.13 → 2.2.2

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.

Potentially problematic release.


This version of govuk_tech_docs might be problematic. Click here for more details.

Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +1 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +3 -0
  5. data/CHANGELOG.md +54 -1
  6. data/README.md +15 -22
  7. data/example/.ruby-version +1 -1
  8. data/example/source/index.html.md.erb +1 -0
  9. data/example/source/prevent-index-page.html.md +10 -0
  10. data/govuk_tech_docs.gemspec +1 -7
  11. data/lib/assets/javascripts/_modules/search.js +13 -2
  12. data/lib/assets/javascripts/_modules/table-of-contents.js +9 -14
  13. data/lib/assets/stylesheets/modules/_page-review.scss +3 -5
  14. data/lib/assets/stylesheets/modules/_search.scss +47 -9
  15. data/lib/assets/stylesheets/modules/_technical-documentation.scss +11 -2
  16. data/lib/assets/stylesheets/modules/_toc.scss +12 -2
  17. data/lib/govuk_tech_docs/api_reference/api_reference_extension.rb +0 -1
  18. data/lib/govuk_tech_docs/api_reference/api_reference_renderer.rb +70 -186
  19. data/lib/govuk_tech_docs/api_reference/templates/api_reference_full.html.erb +3 -2
  20. data/lib/govuk_tech_docs/api_reference/templates/operation.html.erb +1 -1
  21. data/lib/govuk_tech_docs/api_reference/templates/parameters.html.erb +1 -1
  22. data/lib/govuk_tech_docs/api_reference/templates/responses.html.erb +1 -1
  23. data/lib/govuk_tech_docs/api_reference/templates/schema.html.erb +12 -12
  24. data/lib/govuk_tech_docs/meta_tags.rb +27 -8
  25. data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +75 -1
  26. data/lib/govuk_tech_docs/version.rb +1 -1
  27. data/lib/source/images/search-button.png +0 -0
  28. data/lib/source/layouts/_search.erb +10 -4
  29. data/lib/source/layouts/core.erb +7 -10
  30. data/package-lock.json +3 -3
  31. metadata +7 -74
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35c96cfb5a9198c31ad6a4e4d4a3676299c938089127b1c2a564d2401c50ac10
4
- data.tar.gz: 7ea84b4a4c0601a8c291020f538817b4d7dd7503aa57c22124e2dedf8deb3f34
3
+ metadata.gz: 4ebb7068421c3f7bc160f08cc145763a4d85df044700f794193403de1774bde5
4
+ data.tar.gz: 2ac84d99205129b273d153bfba9223bfb03933f4ca0a9202f0074e68869e267d
5
5
  SHA512:
6
- metadata.gz: 3b906c3c277e8f1a5a923c7e05a57491b801109d61d8bda3f3ab393905eff5b39297663ce856ec06735703df5bc1a2389be39948e6b23f633657cc6744226233
7
- data.tar.gz: 0ffe6a62bed3f6f8e32c4a087fb3d1a7fb617ff1867e27d3d99f20c08e098de53230885e4dcd438348347596368366212bf17a81042528e5767abe5baa6300d0
6
+ metadata.gz: a8893b47757fcd32d00e863c58a0ca96d1dbc96d6eb139db9d7a6c56a852322040a737b56c64e0b6871a25bfdc84bfcd217e3786cd7d21afc66dbae24c770617
7
+ data.tar.gz: 05e1d0c02f4cf4a912afdb86e560e1cb31c5f74f67962baf392002e26c78d8567df5c51396b1546a71ae7e2476c30df5175f2e6aeea4ec0b9214ed3ff0695a67
@@ -0,0 +1 @@
1
+ ⚠️ Don't forget to update the gem version in the [CHANGELOG](https://github.com/alphagov/tech-docs-gem/blob/master/CHANGELOG.md) before merging! When you're ready to release bump [version file](https://github.com/alphagov/tech-docs-gem/blob/master/lib/govuk_tech_docs/version.rb) and generate a tag. ⚠️
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
1
+ 2.7.2
data/.travis.yml CHANGED
@@ -1,4 +1,7 @@
1
1
  language: ruby
2
+ cache:
3
+ bundler: true
4
+ npm: true
2
5
  before_install:
3
6
  - gem update --system
4
7
  - gem install bundler
data/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.2.2
4
+
5
+ - [#223: Remove unnecessary CSS class on the search submit button](https://github.com/alphagov/tech-docs-gem/pull/223)
6
+ - [#224: Accessibility fix: Hide the 'table of contents close' button when search results are open](https://github.com/alphagov/tech-docs-gem/pull/224)
7
+
8
+ ## 2.2.1
9
+
10
+ - [#218: Remove unnecessary explicit dependencies: sprockets, activesupport, sass and pry](https://github.com/alphagov/tech-docs-gem/pull/218)
11
+ - [#125: Fix API docs showing required properties as optional](https://github.com/alphagov/tech-docs-gem/pull/125)
12
+
13
+ ## 2.2.0
14
+
15
+ ### Accessibility Fixes
16
+
17
+ - [#205: Improve table of contents accessibility](https://github.com/alphagov/tech-docs-gem/pull/205)
18
+ - [#209: Some search and keyboard navigation updates](https://github.com/alphagov/tech-docs-gem/pull/209)
19
+ - [#210: Stop linking images to new tabs](https://github.com/alphagov/tech-docs-gem/pull/210)
20
+ - [#214: Implement row level table headings to allow accessible tables with row headings](https://github.com/alphagov/tech-docs-gem/pull/214)
21
+ - [#215: Add tabindex and focus states to code blocks](https://github.com/alphagov/tech-docs-gem/pull/215)
22
+
23
+ ### Docs
24
+
25
+ - [#206: Remove tdt docs content from readme file](https://github.com/alphagov/tech-docs-gem/pull/206)
26
+
27
+ ## 2.1.1
28
+
29
+ ### Fixes
30
+
31
+ We’ve made fixes in the following pull requests:
32
+
33
+ - [#199: Fix page expiry box link colours (hover and focus) ](https://github.com/alphagov/tech-docs-gem/pull/199)
34
+
35
+ ### Ruby version bump
36
+
37
+ We've updated the Ruby version supported:
38
+
39
+ - [#201: Bump ruby to 2.7.2](https://github.com/alphagov/tech-docs-gem/pull/201)
40
+
41
+ ## 2.1.0
42
+
43
+ ### New features
44
+
45
+ #### Exclude pages from search engine results
46
+
47
+ You can now exclude a page from search engine results by including `prevent_indexing: true` in the page's frontmatter.
48
+
49
+ This was added in [pull request #192: Fixes and improvements to meta tags](https://github.com/alphagov/tech-docs-gem/pull/192).
50
+
51
+ ### Fixes
52
+
53
+ We’ve made fixes in the following pull requests:
54
+
55
+ - [#192: Fixes and improvements to meta tags](https://github.com/alphagov/tech-docs-gem/pull/192)
56
+
3
57
  ## 2.0.13
4
58
 
5
59
  - [Pull request #189: Update orange code highlight colour to meet minimum AA colour contrast ratio criterion](https://github.com/alphagov/tech-docs-gem/pull/189)
@@ -56,7 +110,6 @@ You can look at the [2.0.6 milestone](https://github.com/alphagov/tech-docs-gem/
56
110
 
57
111
  ## 2.0.5
58
112
 
59
-
60
113
  Adds [new global configuration option](https://github.com/alphagov/tech-docs-gem/pull/122) that controls whether review banners appear or not at the bottom of pages when expiry dates are set in the frontmatter.
61
114
 
62
115
  [Fixes the hard-coded service link](https://github.com/alphagov/tech-docs-gem/pull/119) in the header.
data/README.md CHANGED
@@ -3,23 +3,19 @@
3
3
  This repo contains the Ruby gem that distributes the [Tech Docs Template][tdt-template]. The Tech Docs Template is a [middleman template][mmt] that
4
4
  you can use to build technical documentation using a GOV.UK style.
5
5
 
6
- 👉 Find out more about the template and its features from the [Tech Docs Template documentation][tdt-docs].
7
-
8
- ## Usage
9
-
10
- 👉 Find out how to [generate a new website with the Tech Docs Template][tdt-readme].
6
+ To find out more about setting up and managing content for a website using this template, see the [Tech Docs Template documentation][tdt-docs].
11
7
 
12
8
  ## Contributing
13
9
 
14
10
  Everybody who uses this project is encouraged to contribute.
15
11
 
16
- 👉 [See CONTRIBUTING.md](CONTRIBUTING.md) for guidance on making changes.
12
+ You can find out more about contributing to this project from the[CONTRIBUTING.md file](CONTRIBUTING.md).
17
13
 
18
14
  ## GOV.UK frontend
19
15
 
20
16
  This gem uses [GOV.UK Frontend](https://github.com/alphagov/govuk-frontend), part of the [GOV.UK Design System](https://design-system.service.gov.uk/).
21
17
 
22
- We use `npm` to download the govuk-frontend package. To update to a new version, change the version in [package.json](blob/master/package.json) and run `npm update`.
18
+ We use `npm` to download the govuk-frontend package. To update to a new version, change the version in the [package.json file](blob/master/package.json) and run `npm update`.
23
19
 
24
20
  ## Developing locally
25
21
 
@@ -30,19 +26,13 @@ There are 2 ways to develop with this gem. You can see your changes on either:
30
26
 
31
27
  ### Use your own Tech Docs Template website
32
28
 
33
- If you want to see how your changes to the gem affect your website, you have to point your site's Gemfile to your local checkout:
29
+ To see how your changes to the gem affect your website, point your website's Gemfile to your local checkout:
34
30
 
35
31
  ```rb
36
32
  gem 'govuk_tech_docs', path: '../tech-docs-gem'
37
33
  ```
38
34
 
39
- To view your changes locally run:
40
-
41
- ```sh
42
- bundle exec middleman server
43
- ```
44
-
45
- See your website on `http://localhost:4567` in your browser.
35
+ To preview your documentation changes locally, see the [Tech Docs Template documentation on previewing your documentation](https://tdt-documentation.london.cloudapps.digital/create_project/preview/#preview-your-documentation).
46
36
 
47
37
  ### Use the example in this repo
48
38
 
@@ -56,14 +46,16 @@ bundle exec middleman server
56
46
 
57
47
  See your website on `http://localhost:4567` in your browser.
58
48
 
49
+ For more information on previewing your documentation locally, see the [Tech Docs template documentation on previewing your documentation](https://tdt-documentation.london.cloudapps.digital/create_project/preview/#preview-your-documentation).
50
+
59
51
  ## Tests
60
52
 
61
- The repository contains automated JavaScript tests that use [Jasmine][jas] test framework.
53
+ This repository contains automated JavaScript tests that use the [Jasmine test framework][jas].
62
54
 
63
- To run the tests and see the results in your browser:
55
+ You can run these tests and see the results in your browser.
64
56
 
65
- 1. Run `bundle exec rake jasmine`
66
- 2. Go to `http://localhost:8888` in your browser
57
+ 1. Run `bundle exec rake jasmine`.
58
+ 2. Go to `http://localhost:8888` in your browser.
67
59
 
68
60
  To run the tests and see the results in your terminal, run:
69
61
 
@@ -73,14 +65,15 @@ bundle exec rake jasmine:ci
73
65
 
74
66
  ## Releasing new versions
75
67
 
76
- To release a new version, create a new Pull Request that updates [version.rb](lib/govuk_tech_docs/version.rb) and [CHANGELOG.md](CHANGELOG.md). Don't mix this in with other changes - this makes it easier to find out what was released when. See [this PR to release a new version as an example](https://github.com/alphagov/tech-docs-gem/pull/15).
68
+ To release a new version, create a new pull request (PR) that updates [version.rb](lib/govuk_tech_docs/version.rb) and [CHANGELOG.md](CHANGELOG.md).
69
+
70
+ Do not include other changes in your pull request, as this makes it easier to find out what was released when. See an example of a [PR for releasing a new version](https://github.com/alphagov/tech-docs-gem/pull/15).
77
71
 
78
72
  Travis will automatically release a [new version to Rubygems.org](https://rubygems.org/gems/govuk_tech_docs).
79
73
 
80
74
  ## Licence
81
75
 
82
- Unless stated otherwise, the codebase is released under [the MIT License][mit].
83
- This covers both the codebase and any sample code in the documentation.
76
+ Unless stated otherwise, the codebase is released under [the MIT License][mit]. This covers both the codebase and any sample code in the documentation.
84
77
 
85
78
  The documentation is [© Crown copyright][copyright] and available under the terms of the [Open Government 3.0][ogl] licence.
86
79
 
@@ -1 +1 @@
1
- 2.6.3
1
+ 2.7.2
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  title: GOV.UK Documentation Example
3
+ description: Example of a documentation homepage
3
4
  old_paths:
4
5
  - /something/old-as-well.html
5
6
  ---
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: Un-indexed Page
3
+ prevent_indexing: true
4
+ hide_in_navigation: true
5
+ ---
6
+
7
+ # Un-indexed page
8
+
9
+ This page should not be indexed by search engines, because it contains a
10
+ `<meta name="robots" content="noindex">` tag.
@@ -32,7 +32,6 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ["lib"]
34
34
 
35
- spec.add_dependency "activesupport"
36
35
  spec.add_dependency "chronic", "~> 0.10.2"
37
36
  spec.add_dependency "middleman", "~> 4.0"
38
37
  spec.add_dependency "middleman-autoprefixer", "~> 2.10.0"
@@ -42,14 +41,9 @@ Gem::Specification.new do |spec|
42
41
  spec.add_dependency "middleman-sprockets", "~> 4.0.0"
43
42
  spec.add_dependency "middleman-syntax", "~> 3.2.0"
44
43
  spec.add_dependency "nokogiri"
45
- spec.add_dependency "openapi3_parser", "~> 0.5.0"
46
- spec.add_dependency "pry"
44
+ spec.add_dependency "openapi3_parser", "~> 0.9.0"
47
45
  spec.add_dependency "redcarpet", "~> 3.5.0"
48
- spec.add_dependency "sass"
49
- spec.add_dependency "sprockets", "~> 4.0.0"
50
46
 
51
-
52
- spec.add_development_dependency "bundler", "~> 2.1.4"
53
47
  spec.add_development_dependency "byebug"
54
48
  spec.add_development_dependency "capybara", "~> 3.32"
55
49
  spec.add_development_dependency "jasmine", "~> 3.5.0"
@@ -6,6 +6,7 @@
6
6
  Modules.Search = function Search () {
7
7
  var s = this
8
8
  var $html = $('html')
9
+ var $tocNav
9
10
  var $searchForm
10
11
  var $searchLabel
11
12
  var $searchInput
@@ -26,6 +27,7 @@
26
27
  $searchResults = $searchResultsWrapper.find('.search-results__content')
27
28
  $searchResultsTitle = $searchResultsWrapper.find('.search-results__title')
28
29
  $searchResultsClose = $searchResultsWrapper.find('.search-results__close')
30
+ $tocNav = $('#toc')
29
31
  s.downloadSearchIndex()
30
32
  attach()
31
33
  changeSearchLabel()
@@ -67,7 +69,14 @@
67
69
  $searchForm.on('submit', function (e) {
68
70
  e.preventDefault()
69
71
  showResults()
70
- $searchResults.find('.search-result__title a').first().focus()
72
+ var $firstResult = $searchResults.find('.search-result__title a').first()
73
+ if ($firstResult.length) {
74
+ $firstResult.focus()
75
+ } else {
76
+ // if there are no results, show the "0 results" state
77
+ results = []
78
+ updateTitle()
79
+ }
71
80
  })
72
81
 
73
82
  // Closing the search results, move focus back to the search input
@@ -98,7 +107,7 @@
98
107
  }
99
108
 
100
109
  function changeSearchLabel () {
101
- $searchLabel.text('Search')
110
+ $searchLabel.text('Search this documentation')
102
111
  }
103
112
 
104
113
  function getResults (query) {
@@ -192,12 +201,14 @@
192
201
  $searchResultsWrapper.addClass('is-open')
193
202
  .attr('aria-hidden', 'false')
194
203
  $html.addClass('has-search-results-open')
204
+ $tocNav.addClass('search-results-open')
195
205
  }
196
206
 
197
207
  function hideResults () {
198
208
  $searchResultsWrapper.removeClass('is-open')
199
209
  .attr('aria-hidden', 'true')
200
210
  $html.removeClass('has-search-results-open')
211
+ $tocNav.removeClass('search-results-open')
201
212
  }
202
213
 
203
214
  function sendQueryToAnalytics () {
@@ -7,23 +7,22 @@
7
7
  var $toc
8
8
  var $tocList
9
9
 
10
- var $openLink
11
- var $closeLink
10
+ var $openButton
11
+ var $closeButton
12
12
 
13
13
  this.start = function ($element) {
14
14
  $toc = $element
15
15
  $tocList = $toc.find('.js-toc-list')
16
-
17
16
  // Open link is not inside the module
18
- $openLink = $html.find('.js-toc-show')
19
- $closeLink = $toc.find('.js-toc-close')
17
+ $openButton = $html.find('.js-toc-show')
18
+ $closeButton = $toc.find('.js-toc-close')
20
19
 
21
20
  fixRubberBandingInIOS()
22
21
  updateAriaAttributes()
23
22
 
24
23
  // Need delegated handler for show link as sticky polyfill recreates element
25
- $openLink.on('click.toc', preventingScrolling(openNavigation))
26
- $closeLink.on('click.toc', preventingScrolling(closeNavigation))
24
+ $openButton.on('click.toc', preventingScrolling(openNavigation))
25
+ $closeButton.on('click.toc', preventingScrolling(closeNavigation))
27
26
  $tocList.on('click.toc', 'a', closeNavigation)
28
27
 
29
28
  // Allow aria hidden to be updated when resizing from mobile to desktop or
@@ -65,21 +64,17 @@
65
64
 
66
65
  toggleBackgroundVisiblity(false)
67
66
  updateAriaAttributes()
68
-
69
- focusFirstLinkInToc()
67
+ $toc.focus()
70
68
  }
71
69
 
72
70
  function closeNavigation () {
73
71
  $html.removeClass('toc-open')
72
+ $html.removeClass('has-search-results-open')
74
73
 
75
74
  toggleBackgroundVisiblity(true)
76
75
  updateAriaAttributes()
77
76
  }
78
77
 
79
- function focusFirstLinkInToc () {
80
- $('a', $tocList).first().focus()
81
- }
82
-
83
78
  function toggleBackgroundVisiblity (visibility) {
84
79
  $('.toc-open-disabled').attr('aria-hidden', visibility ? '' : 'true')
85
80
  }
@@ -87,7 +82,7 @@
87
82
  function updateAriaAttributes () {
88
83
  var tocIsVisible = $toc.is(':visible')
89
84
 
90
- $($openLink).add($closeLink)
85
+ $($openButton).add($closeButton)
91
86
  .attr('aria-expanded', tocIsVisible ? 'true' : 'false')
92
87
 
93
88
  $toc.attr('aria-hidden', tocIsVisible ? 'false' : 'true')
@@ -13,11 +13,9 @@
13
13
 
14
14
  a:link,
15
15
  a:visited {
16
- color: inherit;
17
- }
18
-
19
- a:hover {
20
- color: $govuk-link-hover-colour;
16
+ &:not(:focus) {
17
+ color: inherit;
18
+ }
21
19
  }
22
20
 
23
21
  a:active {
@@ -1,16 +1,9 @@
1
+ $input-size: 40px;
2
+
1
3
  @include govuk-media-query($media-type: screen) {
2
4
  .page-title + .search {
3
5
  margin-top: govuk-spacing(6);
4
6
  }
5
-
6
- .js .search__label {
7
- position: absolute;
8
- left: -9999em;
9
- top: auto;
10
- width: 1px;
11
- height: 1px;
12
- overflow: hidden;
13
- }
14
7
  }
15
8
 
16
9
  @include govuk-media-query($media-type: print) {
@@ -19,11 +12,55 @@
19
12
  }
20
13
  }
21
14
 
15
+ .js .search__label {
16
+ @extend .govuk-visually-hidden;
17
+ }
18
+
19
+ .search__form {
20
+ position: relative;
21
+ }
22
+
23
+ .search__input {
24
+ width: 230px;
25
+ width: calc(100% - #{$input-size});
26
+ }
27
+
28
+ .search__button {
29
+ position: absolute;
30
+ bottom: 0;
31
+ right: 0;
32
+ border: 0;
33
+ background-color: govuk-colour('blue');
34
+ color: #fff;
35
+ cursor: pointer;
36
+ padding: 0;
37
+ width: $input-size;
38
+ height: 100%;
39
+ background-image: url('/images/search-button.png');
40
+ background-repeat: no-repeat;
41
+ background-position: 2px 50%;
42
+ text-indent: -5000px;
43
+ overflow: hidden;
44
+ &:focus {
45
+ outline: $govuk-focus-width solid $govuk-focus-colour;
46
+ outline-offset: 0;
47
+ box-shadow: inset 0 0 0 $govuk-border-width-form-element * 2 govuk-colour("black");
48
+
49
+ @include govuk-if-ie8 {
50
+ border-width: $govuk-border-width-form-element * 2;
51
+ }
52
+ }
53
+ }
54
+
22
55
  html.has-search-results-open {
23
56
  overflow: hidden;
24
57
  .app-pane__content {
25
58
  overflow: hidden;
26
59
  }
60
+
61
+ .toc__close{
62
+ display: none;
63
+ }
27
64
  }
28
65
  .search-results {
29
66
  display: none;
@@ -47,6 +84,7 @@ html.has-search-results-open {
47
84
  top: 0;
48
85
  // The width of the sidebar
49
86
  left: 330px;
87
+ min-height: auto;
50
88
  }
51
89
 
52
90
  a:link, a:visited {