Skip to main content
Warning This document has not been updated for a while now. It may be out of date.
Last updated: 17 Mar 2022

Find hardcoded markup in GovSpeak

Usually to find usage of markup we can look in our source code.

For example if we wanted to see which templates use a class called ‘button’ you could search in GitHub.

However GovSpeak (our variant of Markdown) includes markup such as buttons that will be in published content.

So, with this in mind you’ll need to search all published content.

Searching the Content Store via Jenkins

See the Content Team’s instruction on the wiki: Find instances of a keyword on GOV.UK

Searching the Publishing API

First make sure you can SSH into our integration environment, you can follow the Getting Started guide.

Now if everything is setup you can ssh onto the machine with the publishing api using:

$ ssh publishing-api-1.staging

Then to get access to the console for the publishing-api so you can execute commands do the following:

$ govuk_app_console publishing-api

Example commands

Here’s some example commands you can run, feel free to modify the regex for your specific usecase (and add more here if you fancy :))

This will take a few minutes to execute since it’s iterating over a lot of editions!

Find ‘call to action’

Edition.where.not(content_store: nil).find_each { |e| puts "https://gov.uk#{e.base_path}" if e.details.to_s =~ /class=\\"call-to-action/ }
Edition.where.not(content_store: nil).find_each { |e| puts "https://gov.uk#{e.base_path}" if e.details.to_s =~ /href=\\"https:\/\/www.youtube.com\/watch?v=/ }

Find hardcoded buttons

Edition.where.not(content_store: nil).find_each { |e| puts "https://gov.uk#{e.base_path}" if e.details.to_s =~ /class=\\"button/ }