dss_tech_docs 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -0,0 +1,46 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "govuk_tech_docs/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "dss_tech_docs"
|
8
|
+
spec.version = GovukTechDocs::VERSION
|
9
|
+
spec.authors = ["Digital Shared Services"]
|
10
|
+
spec.email = ["stephen.patterson@finance-ni.gov.uk"]
|
11
|
+
|
12
|
+
spec.summary = %q{Gem to distribute the DSS Tech Docs Template}
|
13
|
+
spec.description = %q{Gem to distribute the DSS Tech Docs Template. See https://github.com/dof-dss/tech-docs-gem for the project.}
|
14
|
+
spec.homepage = "https://github.com/dof-dss/tech-docs-gem"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
|
+
f.match(%r{^(test|spec|features)/})
|
19
|
+
end
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_dependency "activesupport"
|
25
|
+
spec.add_dependency "chronic", "~> 0.10.2"
|
26
|
+
spec.add_dependency "middleman", "~> 4.0"
|
27
|
+
spec.add_dependency "middleman-autoprefixer", "~> 2.7.0"
|
28
|
+
spec.add_dependency "middleman-compass", ">= 4.0.0"
|
29
|
+
spec.add_dependency "middleman-livereload"
|
30
|
+
spec.add_dependency "middleman-sprockets", "~> 4.0.0"
|
31
|
+
spec.add_dependency "middleman-syntax", "~> 3.0.0"
|
32
|
+
spec.add_dependency 'middleman-search-gds', '~> 0.11.0a'
|
33
|
+
spec.add_dependency "nokogiri"
|
34
|
+
spec.add_dependency "redcarpet", "~> 3.3.2"
|
35
|
+
spec.add_dependency "openapi3_parser"
|
36
|
+
spec.add_dependency "pry"
|
37
|
+
|
38
|
+
|
39
|
+
spec.add_development_dependency "bundler", "~> 2.0.1"
|
40
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
41
|
+
spec.add_development_dependency "capybara", "~> 2.18.0"
|
42
|
+
spec.add_development_dependency "govuk-lint", "~> 3.7.0"
|
43
|
+
spec.add_development_dependency "jasmine", "~> 3.1.0"
|
44
|
+
spec.add_development_dependency "rspec", "~> 3.7.0"
|
45
|
+
spec.add_development_dependency "byebug"
|
46
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
2.4.2
|
data/example/Gemfile
ADDED
data/example/config.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# Host to use for canonical URL generation (without trailing slash)
|
2
|
+
host: https://docs.example.com
|
3
|
+
|
4
|
+
# Header-related options
|
5
|
+
show_govuk_logo: true
|
6
|
+
service_name: My First Service
|
7
|
+
service_link: /
|
8
|
+
phase: Beta
|
9
|
+
|
10
|
+
# Links to show on right-hand-side of header
|
11
|
+
header_links:
|
12
|
+
Documentation: /
|
13
|
+
Expired page: /expired-page.html
|
14
|
+
Expired with owner: /expired-page-with-owner.html
|
15
|
+
Not expired page: /not-expired-page.html
|
16
|
+
|
17
|
+
# Tracking ID from Google Analytics (e.g. UA-XXXX-Y)
|
18
|
+
ga_tracking_id:
|
19
|
+
|
20
|
+
# Enable multipage navigation in the sidebar
|
21
|
+
multipage_nav: true
|
22
|
+
|
23
|
+
# Enable collapsible navigation in the sidebar
|
24
|
+
collapsible_nav: true
|
25
|
+
|
26
|
+
# Table of contents depth – how many levels to include in the table of contents.
|
27
|
+
# If your ToC is too long, reduce this number and we'll only show higher-level
|
28
|
+
# headings.
|
29
|
+
max_toc_heading_level: 6
|
30
|
+
|
31
|
+
# Prevent robots from indexing (e.g. whilst in development)
|
32
|
+
prevent_indexing: false
|
33
|
+
|
34
|
+
google_site_verification: dstbao8TVS^DRVDS&rv76
|
35
|
+
|
36
|
+
enable_search: true
|
37
|
+
|
38
|
+
show_contribution_banner: true
|
39
|
+
|
40
|
+
github_repo: alphagov/example-repo
|
41
|
+
github_branch: source
|
42
|
+
|
43
|
+
redirects:
|
44
|
+
/something/old.html: /index.html
|
45
|
+
|
46
|
+
api_path: source/pets.yml
|
47
|
+
|
48
|
+
# Optional global settings for the page review process
|
49
|
+
owner_slack_workspace: gds
|
50
|
+
default_owner_slack: '#2nd-line'
|
51
|
+
show_expiry: false
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Host to use for canonical URL generation (without trailing slash)
|
2
|
+
host: https://docs.example.com
|
3
|
+
|
4
|
+
# Header-related options
|
5
|
+
show_govuk_logo: false
|
6
|
+
service_name: DSS Tech Docs Example
|
7
|
+
service_link: /
|
8
|
+
phase: Beta
|
9
|
+
|
10
|
+
# Links to show on right-hand-side of header
|
11
|
+
header_links:
|
12
|
+
Documentation: /
|
13
|
+
Expired page: /expired-page.html
|
14
|
+
Expired with owner: /expired-page-with-owner.html
|
15
|
+
Not expired page: /not-expired-page.html
|
16
|
+
|
17
|
+
# Tracking ID from Google Analytics (e.g. UA-XXXX-Y)
|
18
|
+
ga_tracking_id:
|
19
|
+
|
20
|
+
# Enable multipage navigation in the sidebar
|
21
|
+
multipage_nav: true
|
22
|
+
|
23
|
+
# Enable collapsible navigation in the sidebar
|
24
|
+
collapsible_nav: true
|
25
|
+
|
26
|
+
# Table of contents depth – how many levels to include in the table of contents.
|
27
|
+
# If your ToC is too long, reduce this number and we'll only show higher-level
|
28
|
+
# headings.
|
29
|
+
max_toc_heading_level: 6
|
30
|
+
|
31
|
+
# Prevent robots from indexing (e.g. whilst in development)
|
32
|
+
prevent_indexing: false
|
33
|
+
|
34
|
+
google_site_verification: dstbao8TVS^DRVDS&rv76
|
35
|
+
|
36
|
+
enable_search: true
|
37
|
+
|
38
|
+
show_contribution_banner: true
|
39
|
+
|
40
|
+
github_repo: dof-dss/example-repo
|
41
|
+
github_branch: source
|
42
|
+
|
43
|
+
redirects:
|
44
|
+
/something/old.html: /index.html
|
45
|
+
|
46
|
+
api_path: source/pets.yml
|
47
|
+
|
48
|
+
# Optional global settings for the page review process
|
49
|
+
owner_slack_workspace: gds
|
50
|
+
default_owner_slack: '#2nd-line'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
title: DSS Tech Docs Example
|
3
|
+
old_paths:
|
4
|
+
- /something/old-as-well.html
|
5
|
+
---
|
6
|
+
|
7
|
+
# Hello, World!
|
8
|
+
|
9
|
+
## Edit Me!
|
10
|
+
|
11
|
+
Open `source/documentation/index.md` in your favourite text editor and start editing!
|
12
|
+
|
13
|
+
You can write content in [Markdown](https://daringfireball.net/projects/markdown/) using **all** of the _usual_ syntax that you're used to!
|
14
|
+
|
15
|
+
To change the title of the page or include additional files you'll need to edit `source/index.html.md.erb`.
|
16
|
+
|
17
|
+
If you want slightly more control, you can always use <strong>HTML</strong>.
|
18
|
+
|
19
|
+
For more detail and troubleshooting, take a look at the `README.md` file in the root of this project.
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require govuk_tech_docs
|
@@ -0,0 +1,109 @@
|
|
1
|
+
openapi: "3.0.0"
|
2
|
+
info:
|
3
|
+
version: 1.0.0
|
4
|
+
title: Swagger Petstore
|
5
|
+
description: A sample API that uses a petstore as an example to demonstrate features in the OpenAPI 3.0 specification
|
6
|
+
license:
|
7
|
+
name: MIT
|
8
|
+
servers:
|
9
|
+
- description: Production
|
10
|
+
url: http://petstore.swagger.io/v1
|
11
|
+
- description: Development
|
12
|
+
url: http://dev.petstore.swagger.io
|
13
|
+
paths:
|
14
|
+
/pets:
|
15
|
+
get:
|
16
|
+
summary: List all pets
|
17
|
+
operationId: listPets
|
18
|
+
tags:
|
19
|
+
- pets
|
20
|
+
parameters:
|
21
|
+
- name: limit
|
22
|
+
in: query
|
23
|
+
description: How many items to return at one time (max 100)
|
24
|
+
required: false
|
25
|
+
schema:
|
26
|
+
type: integer
|
27
|
+
format: int32
|
28
|
+
responses:
|
29
|
+
'200':
|
30
|
+
description: A paged array of pets
|
31
|
+
headers:
|
32
|
+
content:
|
33
|
+
application/json:
|
34
|
+
schema:
|
35
|
+
$ref: "#/components/schemas/Pets"
|
36
|
+
default:
|
37
|
+
description: unexpected error
|
38
|
+
content:
|
39
|
+
application/json:
|
40
|
+
schema:
|
41
|
+
$ref: "#/components/schemas/Error"
|
42
|
+
post:
|
43
|
+
summary: Create a pet
|
44
|
+
operationId: createPets
|
45
|
+
tags:
|
46
|
+
- pets
|
47
|
+
responses:
|
48
|
+
'201':
|
49
|
+
description: Null response
|
50
|
+
default:
|
51
|
+
description: unexpected error
|
52
|
+
content:
|
53
|
+
application/json:
|
54
|
+
schema:
|
55
|
+
$ref: "#/components/schemas/Error"
|
56
|
+
/pets/{petId}:
|
57
|
+
get:
|
58
|
+
summary: Info for a specific pet
|
59
|
+
operationId: showPetById
|
60
|
+
tags:
|
61
|
+
- pets
|
62
|
+
parameters:
|
63
|
+
- name: petId
|
64
|
+
in: path
|
65
|
+
required: true
|
66
|
+
description: The id of the pet to retrieve
|
67
|
+
schema:
|
68
|
+
type: string
|
69
|
+
responses:
|
70
|
+
'200':
|
71
|
+
description: Expected response to a valid request
|
72
|
+
content:
|
73
|
+
application/json:
|
74
|
+
schema:
|
75
|
+
$ref: "#/components/schemas/Pets"
|
76
|
+
default:
|
77
|
+
description: unexpected error
|
78
|
+
content:
|
79
|
+
application/json:
|
80
|
+
schema:
|
81
|
+
$ref: "#/components/schemas/Error"
|
82
|
+
components:
|
83
|
+
schemas:
|
84
|
+
Pet:
|
85
|
+
required:
|
86
|
+
- id
|
87
|
+
- name
|
88
|
+
properties:
|
89
|
+
id:
|
90
|
+
type: integer
|
91
|
+
format: int64
|
92
|
+
name:
|
93
|
+
type: string
|
94
|
+
tag:
|
95
|
+
type: string
|
96
|
+
Pets:
|
97
|
+
type: array
|
98
|
+
items:
|
99
|
+
$ref: "#/components/schemas/Pet"
|
100
|
+
Error:
|
101
|
+
required:
|
102
|
+
- code
|
103
|
+
- message
|
104
|
+
properties:
|
105
|
+
code:
|
106
|
+
type: integer
|
107
|
+
format: int32
|
108
|
+
message:
|
109
|
+
type: string
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "govuk_tech_docs";
|
@@ -0,0 +1,58 @@
|
|
1
|
+
(function($) {
|
2
|
+
function trackLinkClick(action, $element) {
|
3
|
+
var linkText = $.trim($element.text());
|
4
|
+
var linkURL = $element.attr('href');
|
5
|
+
var label = linkText + '|' + linkURL;
|
6
|
+
|
7
|
+
ga(
|
8
|
+
'send',
|
9
|
+
'event',
|
10
|
+
'SM Technical Documentation', // Event Category
|
11
|
+
action, // Event Action
|
12
|
+
label // Event Label
|
13
|
+
);
|
14
|
+
}
|
15
|
+
|
16
|
+
function linkTrackingEventHandler(action) {
|
17
|
+
return function() {
|
18
|
+
trackLinkClick(action, $(this));
|
19
|
+
};
|
20
|
+
};
|
21
|
+
|
22
|
+
function catchBrokenFragmentLinks() {
|
23
|
+
var fragment = window.location.hash;
|
24
|
+
var $target = $(fragment);
|
25
|
+
if(!$target.get(0)) {
|
26
|
+
ga(
|
27
|
+
'send',
|
28
|
+
'event',
|
29
|
+
'Broken fragment ID', // Event Category
|
30
|
+
'pageview', // Event Action
|
31
|
+
window.location.pathname + fragment // Event Label
|
32
|
+
);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
$(document).on('ready', function() {
|
37
|
+
if (typeof ga === 'undefined') {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
|
41
|
+
$('.technical-documentation a').on('click', linkTrackingEventHandler('inTextClick'));
|
42
|
+
$('.header a').on('click', linkTrackingEventHandler('topNavigationClick'));
|
43
|
+
$('.toc a').on('click', linkTrackingEventHandler('tableOfContentsNavigationClick'));
|
44
|
+
catchBrokenFragmentLinks();
|
45
|
+
|
46
|
+
// Borrowed from:
|
47
|
+
// https://github.com/alphagov/govuk_frontend_toolkit/blob/master/javascripts/govuk/analytics/analytics.js
|
48
|
+
window.stripPIIFromString = function (string) {
|
49
|
+
var EMAIL_PATTERN = /[^\s=/?&]+(?:@|%40)[^\s=/?&]+/g
|
50
|
+
var POSTCODE_PATTERN = /[A-PR-UWYZ][A-HJ-Z]?[0-9][0-9A-HJKMNPR-Y]?(?:[\s+]|%20)*[0-9][ABD-HJLNPQ-Z]{2}/gi
|
51
|
+
var DATE_PATTERN = /\d{4}(-?)\d{2}(-?)\d{2}/g
|
52
|
+
var stripped = string.replace(EMAIL_PATTERN, '[email]')
|
53
|
+
.replace(DATE_PATTERN, '[date]')
|
54
|
+
.replace(POSTCODE_PATTERN, '[postcode]');
|
55
|
+
return stripped
|
56
|
+
}
|
57
|
+
});
|
58
|
+
})(jQuery);
|