Skip to content
This repository has been archived by the owner on Oct 31, 2022. It is now read-only.

alphagov/govuk_taxonomy_helpers

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GovukTaxonomyHelpers

This project was archived in October 2022, the functionality has been ported into content-tagger.

Parses the taxonomy of GOV.UK into a browseable tree structure.

Installation

Add this line to your application's Gemfile:

gem 'govuk_taxonomy_helpers'

And then execute:

$ bundle

Or install it yourself as:

$ gem install govuk_taxonomy_helpers

Usage

The API is provisional and is likely to change for versions < 1.0.0.

To access the taxonomy, first get the content_id of the piece of content you want the taxonomy for, then parse it to get a LinkedContentItem object.

require 'govuk_taxonomy_helpers'

taxonomy = GovukTaxonomyHelpers::LinkedContentItem.from_content_id(
  content_id: "c75c541-403f-4cb1-9b34-4ddde816a80d",
  publishing_api: Services.publishing_api
)

A LinkedContentItem built from a taxon can access all narrower term taxons below it and all broader term taxons above it.

A taxon may have many child taxons, but can only have one or zero parents.

taxon.children
# => [LinkedContentItem(title: child-1-id, ...), LinkedContentItem(title: child-2, ...)]

taxon.parent
# => LinkedContentItem(title: root, ...)

taxon.breadcrumb_trail
# => [LinkedContentItem(title: root, ...), LinkedContentItem(title: taxon, ...)]

A LinkedContentItem built from an content_item that isn't a taxon can access all taxons associated with it.

content_item.taxons
# => [LinkedContentItem(title: taxon, ...),
#     LinkedContentItem(title: another-taxon, ...)]

content_item.taxons_with_ancestors
# => [LinkedContentItem(title: root, ...),
#     LinkedContentItem(title: taxon-parent, ...),
#     LinkedContentItem(title: taxon, ...),
#     LinkedContentItem(title: another-taxon, ...)]

Nomenclature

  • Taxonomy: The hierarchy of topics used to classify content by subject on GOV.UK. Not all content is tagged to the taxonomy. We are rolling out the taxonomy and navigation theme-by-theme.
  • Taxon: Any topic within the taxonomy.
  • Content Item: A distinct version of a document. A taxon is also a type of content item.

Documentation

To run a Yard server locally to preview documentation, run:

$ bundle exec yard server --reload

Contributing

  1. Fork it ( https://github.com/alphagov/govuk_taxonomy_helpers/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

MIT License

About

Parse the taxonomy of GOV.UK into a browsable tree structure

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages