module GovukTechDocs
Constants
- VERSION
Public Class Methods
configure(context, options = {})
click to toggle source
Configure the tech docs template
@param options [Hash] @option options [Hash] livereload Options to pass to the `livereload`
extension. Hash with symbols as keys.
# File lib/govuk_tech_docs.rb, line 32 def self.configure(context, options = {}) context.activate :sprockets context.sprockets.append_path File.join(__dir__, "../node_modules/govuk-frontend/") context.sprockets.append_path File.join(__dir__, "./source") context.activate :syntax context.files.watch :source, path: "#{__dir__}/source" context.set :markdown_engine, :redcarpet context.set :markdown, renderer: TechDocsHTMLRenderer.new( with_toc_data: true, api: true, context: context, ), fenced_code_blocks: true, tables: true, no_intra_emphasis: true # Reload the browser automatically whenever files change context.configure :development do activate :livereload, options[:livereload].to_h end context.configure :build do activate :autoprefixer activate :minify_javascript, ignore: ["/raw_assets/*"] end config_file = ENV.fetch("CONFIG_FILE", "config/tech-docs.yml") context.config[:tech_docs] = YAML.load_file(config_file).with_indifferent_access context.activate :unique_identifier context.activate :warning_text context.activate :api_reference context.helpers do include GovukTechDocs::TableOfContents::Helpers include GovukTechDocs::ContributionBanner def meta_tags @meta_tags ||= GovukTechDocs::MetaTags.new(config, current_page) end def current_page_review @current_page_review ||= GovukTechDocs::PageReview.new(current_page, config) end def format_date(date) date.strftime("%-e %B %Y") end def active_page(page_path) [ page_path == "/" && current_page.path == "index.html", ("/" + current_page.path) == page_path, current_page.data.parent != nil && current_page.data.parent.to_s == page_path, ].any? end end context.page "/*.xml", layout: false context.page "/*.json", layout: false context.page "/*.txt", layout: false context.ready do redirects = GovukTechDocs::Redirects.new(context).redirects redirects.each do |from, to| context.redirect from, to end end if context.config[:tech_docs][:enable_search] context.activate :search do |search| search.resources = [""] search.fields = { title: { boost: 100, store: true, required: true }, content: { boost: 50, store: true }, url: { index: false, store: true }, } search.pipeline_remove = %w[stopWordFilter] search.tokenizer_separator = '/[\s\-/]+/' end end end
Public Instance Methods
active_page(page_path)
click to toggle source
# File lib/govuk_tech_docs.rb, line 85 def active_page(page_path) [ page_path == "/" && current_page.path == "index.html", ("/" + current_page.path) == page_path, current_page.data.parent != nil && current_page.data.parent.to_s == page_path, ].any? end
current_page_review()
click to toggle source
# File lib/govuk_tech_docs.rb, line 77 def current_page_review @current_page_review ||= GovukTechDocs::PageReview.new(current_page, config) end
format_date(date)
click to toggle source
# File lib/govuk_tech_docs.rb, line 81 def format_date(date) date.strftime("%-e %B %Y") end