govuk_tech_docs 6.2.1 → 6.2.3
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 +4 -4
- data/.github/dependabot.yml +17 -5
- data/.github/workflows/dependency-review.yaml +11 -3
- data/.github/workflows/publish.yaml +5 -5
- data/.github/workflows/test.yaml +6 -6
- data/CHANGELOG.md +8 -0
- data/govuk_tech_docs.gemspec +11 -5
- data/lib/assets/javascripts/_modules/in-page-navigation.js +14 -32
- data/lib/govuk_tech_docs/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 87a42820b4c7571de0db48c86a823c8510520cfd91e7504e33b82d503eaad139
|
|
4
|
+
data.tar.gz: 826755aa09f87263317723aead5ef82cd456b74863f5492c72eea512099d5737
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e3e3f3da335130b1241dd526bc04bf17b9f14c6ed41aec60d4447b847ec6cb2e762a29983edcc4ee251e7adb944f5bd7f8331f147e3c3bd9cf5890867d50d552
|
|
7
|
+
data.tar.gz: 0512cb5a6002f61c3ec370e77d95b2c008001ebd2a1686f216d7b8cafe1cc97c1a13e40855d0a4eeba5ba27c1d983a743b9f1413a12d8ef263a4591785a19a9b
|
data/.github/dependabot.yml
CHANGED
|
@@ -7,14 +7,23 @@ version: 2
|
|
|
7
7
|
updates:
|
|
8
8
|
# 1. Update Ruby dependencies (Gemfile/gemspec) in the root
|
|
9
9
|
- package-ecosystem: "bundler"
|
|
10
|
-
directory: "/"
|
|
10
|
+
directory: "/"
|
|
11
11
|
schedule:
|
|
12
12
|
interval: "weekly"
|
|
13
13
|
day: "monday"
|
|
14
14
|
time: "06:00"
|
|
15
15
|
commit-message:
|
|
16
16
|
prefix: chore
|
|
17
|
-
open-pull-requests-limit:
|
|
17
|
+
open-pull-requests-limit: 3
|
|
18
|
+
groups:
|
|
19
|
+
prod-safe-updates:
|
|
20
|
+
dependency-type: "production"
|
|
21
|
+
patterns:
|
|
22
|
+
- "*"
|
|
23
|
+
update-types:
|
|
24
|
+
- "minor"
|
|
25
|
+
- "patch"
|
|
26
|
+
|
|
18
27
|
|
|
19
28
|
# 2. Update GitHub Actions (keeps your CI workflows secure)
|
|
20
29
|
- package-ecosystem: "github-actions"
|
|
@@ -29,26 +38,29 @@ updates:
|
|
|
29
38
|
github-actions-updates:
|
|
30
39
|
patterns:
|
|
31
40
|
- "*"
|
|
41
|
+
|
|
32
42
|
- package-ecosystem: "npm"
|
|
33
43
|
directory: "/"
|
|
34
44
|
schedule:
|
|
35
45
|
interval: "weekly"
|
|
36
46
|
day: "monday"
|
|
37
47
|
time: "06:00"
|
|
38
|
-
open-pull-requests-limit:
|
|
39
|
-
|
|
48
|
+
open-pull-requests-limit: 3
|
|
40
49
|
groups:
|
|
41
50
|
# Group all "development" dependencies (linters, test runners, etc.)
|
|
42
51
|
dev-dependencies:
|
|
43
52
|
dependency-type: "development"
|
|
53
|
+
patterns:
|
|
54
|
+
- "*"
|
|
44
55
|
update-types:
|
|
45
56
|
- "patch"
|
|
46
57
|
- "minor"
|
|
47
|
-
|
|
48
58
|
# Group all "production" dependencies (react, express, etc.)
|
|
49
59
|
# but ONLY for minor/patch versions to avoid breaking changes
|
|
50
60
|
prod-safe-updates:
|
|
51
61
|
dependency-type: "production"
|
|
62
|
+
patterns:
|
|
63
|
+
- "*"
|
|
52
64
|
update-types:
|
|
53
65
|
- "patch"
|
|
54
66
|
- "minor"
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
name: 'Dependency Review'
|
|
2
|
-
on:
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
branches: [ "main" ]
|
|
5
|
+
push:
|
|
6
|
+
branches: [ "main" ]
|
|
3
7
|
|
|
4
8
|
permissions:
|
|
5
9
|
contents: read
|
|
@@ -9,9 +13,13 @@ jobs:
|
|
|
9
13
|
runs-on: ubuntu-latest
|
|
10
14
|
steps:
|
|
11
15
|
- name: 'Checkout Repository'
|
|
12
|
-
uses: actions/checkout@v6
|
|
16
|
+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
13
17
|
- name: 'Dependency Review'
|
|
14
|
-
uses: actions/dependency-review-action@
|
|
18
|
+
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 #5.0.0
|
|
15
19
|
with:
|
|
20
|
+
# If it's a PR, use the target branch. If it's a push, use 'main'.
|
|
21
|
+
base-ref: ${{ github.event.pull_request.base.ref || 'main' }}
|
|
22
|
+
# If it's a PR, use the source branch. If it's a push, use the current commit.
|
|
23
|
+
head-ref: ${{ github.event.pull_request.head.ref || github.sha }}
|
|
16
24
|
fail-on-severity: high
|
|
17
25
|
show-patched-versions: true
|
|
@@ -16,11 +16,11 @@ jobs:
|
|
|
16
16
|
go: ${{ steps.gem_version.outputs.new_version }}
|
|
17
17
|
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@v6
|
|
19
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
20
20
|
with:
|
|
21
21
|
show-progress: false
|
|
22
22
|
|
|
23
|
-
- uses: ruby/setup-ruby@v1
|
|
23
|
+
- uses: ruby/setup-ruby@6aaa311d81eba98ae12eaffbcb63296ace0efcde # v1.307.0
|
|
24
24
|
with:
|
|
25
25
|
ruby-version: '3'
|
|
26
26
|
|
|
@@ -48,16 +48,16 @@ jobs:
|
|
|
48
48
|
if: needs.pre.outputs.go == 'true'
|
|
49
49
|
|
|
50
50
|
steps:
|
|
51
|
-
- uses: actions/checkout@v6
|
|
51
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
52
52
|
with:
|
|
53
53
|
show-progress: false
|
|
54
54
|
|
|
55
|
-
- uses: actions/setup-node@v6
|
|
55
|
+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
|
56
56
|
with:
|
|
57
57
|
node-version-file: '.nvmrc'
|
|
58
58
|
cache: 'npm'
|
|
59
59
|
|
|
60
|
-
- uses: ruby/setup-ruby@v1
|
|
60
|
+
- uses: ruby/setup-ruby@6aaa311d81eba98ae12eaffbcb63296ace0efcde # v1.307.0
|
|
61
61
|
with:
|
|
62
62
|
ruby-version: '3'
|
|
63
63
|
bundler-cache: true
|
data/.github/workflows/test.yaml
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
name: Test
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
4
|
pull_request:
|
|
5
|
+
branches: [ "main" ]
|
|
6
|
+
push:
|
|
7
|
+
branches: [ "main" ]
|
|
8
8
|
workflow_dispatch:
|
|
9
9
|
|
|
10
10
|
jobs:
|
|
@@ -17,16 +17,16 @@ jobs:
|
|
|
17
17
|
ruby: ['3.3', '3.4', '4.0']
|
|
18
18
|
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@v6
|
|
20
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
21
21
|
with:
|
|
22
22
|
show-progress: false
|
|
23
23
|
|
|
24
|
-
- uses: actions/setup-node@v6
|
|
24
|
+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
|
25
25
|
with:
|
|
26
26
|
node-version-file: '.nvmrc'
|
|
27
27
|
cache: 'npm'
|
|
28
28
|
|
|
29
|
-
- uses: ruby/setup-ruby@v1
|
|
29
|
+
- uses: ruby/setup-ruby@6aaa311d81eba98ae12eaffbcb63296ace0efcde # v1.307.0
|
|
30
30
|
with:
|
|
31
31
|
ruby-version: ${{ matrix.ruby }}
|
|
32
32
|
bundler-cache: true
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## 6.2.3
|
|
2
|
+
|
|
3
|
+
- [Fix TOC sidebar not scrolling to active item on page load](https://github.com/alphagov/tech-docs-gem/pull/480)
|
|
4
|
+
|
|
5
|
+
## 6.2.2
|
|
6
|
+
|
|
7
|
+
- Update [govuk_tech_docs.gemspec](govuk_tech_docs.gemspec) to only run `npm` if `npm` is installed. Allows gem versions scans to complete properly.
|
|
8
|
+
|
|
1
9
|
## 6.2.1
|
|
2
10
|
|
|
3
11
|
- [Fix comments in code blocks being hard to read](https://github.com/alphagov/tech-docs-gem/pull/477)
|
data/govuk_tech_docs.gemspec
CHANGED
|
@@ -4,11 +4,17 @@ lib = File.expand_path("lib", __dir__)
|
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require "govuk_tech_docs/version"
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
# npm is not necessarily expected in a gemspec, this makes a big assumption about the environment
|
|
8
|
+
# Additionally, for actions such as evaluating the gemspec (e.g. for vulnerability patching) we do not actaully want npm packages
|
|
9
|
+
# We will move these sections into specific rake tasks when we get a chance
|
|
10
|
+
if system("which npm > /dev/null 2>&1")
|
|
11
|
+
`npm ci`
|
|
12
|
+
abort "npm ci failed to run" unless $CHILD_STATUS.success?
|
|
13
|
+
unless File.exist?("node_modules/govuk-frontend/dist/govuk/_base.scss")
|
|
14
|
+
abort "govuk-frontend and other npm packages not installed"
|
|
15
|
+
end
|
|
16
|
+
else
|
|
17
|
+
warn "npm is not available, no assets will be generated. If you did not expect this please confirm your environment settings."
|
|
12
18
|
end
|
|
13
19
|
|
|
14
20
|
Gem::Specification.new do |spec|
|
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
'use strict'
|
|
3
3
|
|
|
4
4
|
Modules.InPageNavigation = function InPageNavigation () {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var $targets
|
|
5
|
+
let $contentPane
|
|
6
|
+
let $tocItems
|
|
7
|
+
let $targets
|
|
9
8
|
|
|
10
9
|
this.start = function start ($element) {
|
|
11
|
-
$tocPane = $element.find('.app-pane__toc')
|
|
12
10
|
$contentPane = $element.find('.app-pane__content')
|
|
13
11
|
$tocItems = $('.js-toc-list').find('a')
|
|
14
12
|
$targets = $contentPane.find('[id]')
|
|
@@ -29,7 +27,7 @@
|
|
|
29
27
|
} else {
|
|
30
28
|
// Store the initial position so that we can restore it even if we
|
|
31
29
|
// never scroll.
|
|
32
|
-
handleInitialLoadEvent
|
|
30
|
+
window.requestAnimationFrame(handleInitialLoadEvent)
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
}
|
|
@@ -41,7 +39,7 @@
|
|
|
41
39
|
}
|
|
42
40
|
|
|
43
41
|
function handleInitialLoadEvent () {
|
|
44
|
-
|
|
42
|
+
let fragment = fragmentForTargetElement()
|
|
45
43
|
|
|
46
44
|
if (!fragment) {
|
|
47
45
|
fragment = fragmentForFirstElementInView()
|
|
@@ -51,7 +49,7 @@
|
|
|
51
49
|
}
|
|
52
50
|
|
|
53
51
|
function handleScrollEvent () {
|
|
54
|
-
|
|
52
|
+
const fragment = fragmentForFirstElementInView()
|
|
55
53
|
|
|
56
54
|
storeCurrentPositionInHistoryApi(fragment)
|
|
57
55
|
highlightActiveItemInToc(fragment)
|
|
@@ -70,8 +68,8 @@
|
|
|
70
68
|
function highlightActiveItemInToc (fragment) {
|
|
71
69
|
// Navigation items for single page navigation don't necessarily include the path name, but
|
|
72
70
|
// navigation items for multipage navigation items do include it. This checks for either case.
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
let $activeTocItem = $tocItems.filter(function (_) {
|
|
72
|
+
const url = new URL($(this).attr('href'), window.location.href)
|
|
75
73
|
return url.href === window.location.href
|
|
76
74
|
})
|
|
77
75
|
|
|
@@ -79,35 +77,19 @@
|
|
|
79
77
|
// Check to see if any nav items contain just the path name.
|
|
80
78
|
if (!$activeTocItem.get(0)) {
|
|
81
79
|
$activeTocItem = $tocItems.filter(function (_) {
|
|
82
|
-
|
|
80
|
+
const url = new URL($(this).attr('href'), window.location.href)
|
|
83
81
|
return url.hash === '' && url.pathname === window.location.pathname
|
|
84
82
|
})
|
|
85
83
|
}
|
|
86
84
|
if ($activeTocItem.get(0)) {
|
|
87
85
|
$tocItems.removeClass('toc-link--in-view')
|
|
88
86
|
$activeTocItem.addClass('toc-link--in-view')
|
|
89
|
-
scrollTocToActiveItem($activeTocItem)
|
|
87
|
+
scrollTocToActiveItem($activeTocItem.get(0))
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
90
|
|
|
93
|
-
function scrollTocToActiveItem (
|
|
94
|
-
|
|
95
|
-
var linkTop = $activeTocItem.position().top
|
|
96
|
-
var linkBottom = linkTop + $activeTocItem.outerHeight()
|
|
97
|
-
|
|
98
|
-
var offset = null
|
|
99
|
-
|
|
100
|
-
if (linkTop < 0) {
|
|
101
|
-
offset = linkTop
|
|
102
|
-
} else if (linkBottom >= paneHeight) {
|
|
103
|
-
offset = -(paneHeight - linkBottom)
|
|
104
|
-
} else {
|
|
105
|
-
return
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
var newScrollTop = $tocPane.scrollTop() + offset
|
|
109
|
-
|
|
110
|
-
$tocPane.scrollTop(newScrollTop)
|
|
91
|
+
function scrollTocToActiveItem (activeTocElement) {
|
|
92
|
+
activeTocElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })
|
|
111
93
|
}
|
|
112
94
|
|
|
113
95
|
function fragmentForTargetElement () {
|
|
@@ -115,14 +97,14 @@
|
|
|
115
97
|
}
|
|
116
98
|
|
|
117
99
|
function fragmentForFirstElementInView () {
|
|
118
|
-
|
|
100
|
+
let result = null
|
|
119
101
|
|
|
120
102
|
$($targets.get().reverse()).each(function checkIfInView (index) {
|
|
121
103
|
if (result) {
|
|
122
104
|
return
|
|
123
105
|
}
|
|
124
106
|
|
|
125
|
-
|
|
107
|
+
const $this = $(this)
|
|
126
108
|
|
|
127
109
|
if (Math.floor($this.position().top) <= 0) {
|
|
128
110
|
result = $this
|