Sha256: 0074dbf1082d8b4b8dc75fbb169144f85f45c68980c5e69a022c15a7ac1ef922

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Kitchen
  module Directions
    # Bake directons for eoc glossary
    #
    module BakeChapterGlossary
      def self.v1(chapter:, metadata_source:, append_to: nil)
        metadata_elements = metadata_source.children_to_keep.copy

        definitions = chapter.glossaries.search('dl').cut
        definitions.sort_by! do |definition|
          [definition.first('dt').text.downcase, definition.first('dd').text.downcase]
        end

        chapter.glossaries.trash

        return if definitions.none?

        append_to_element = append_to || chapter

        append_to_element.append(child:
          <<~HTML
            <div class="os-eoc os-glossary-container" data-type="composite-page" data-uuid-key="glossary">
              <h2 data-type="document-title">
                <span class="os-text">#{I18n.t(:eoc_key_terms_title)}</span>
              </h2>
              <div data-type="metadata" style="display: none;">
                <h1 data-type="document-title" itemprop="name">#{I18n.t(:eoc_key_terms_title)}</h1>
                #{metadata_elements.paste}
              </div>
              #{definitions.paste}
            </div>
          HTML
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
openstax_kitchen-3.2.0 lib/kitchen/directions/bake_chapter_glossary.rb
openstax_kitchen-3.1.0 lib/kitchen/directions/bake_chapter_glossary.rb