class Kitchen::Directions::BakeChapterReferences::V1

Public Instance Methods

bake(chapter:, metadata_source:, uuid_prefix: '.', klass: 'references') click to toggle source
# File lib/kitchen/directions/bake_chapter_references/v1.rb, line 5
def bake(chapter:, metadata_source:, uuid_prefix: '.', klass: 'references')
  chapter.pages.each do |page|
    bake_page_references(page: page)
  end

  return if chapter.pages.references.none?

  content = chapter.pages.references.cut.paste

  Kitchen::Directions::EocCompositePageContainer.v1(
    container_key: klass,
    uuid_key: "#{uuid_prefix}#{klass}",
    metadata_source: metadata_source,
    content: content,
    append_to: chapter
  )
end
bake_page_references(page:) click to toggle source
# File lib/kitchen/directions/bake_chapter_references/v1.rb, line 23
    def bake_page_references(page:)
      return if page.nil?

      references = page.references
      return if references.none?

      title = if page.is_introduction?
                <<~HTML
                  <a href="##{page.title.id}">
                    <h3 data-type="document-title" id="#{page.title.copied_id}">
                      <span class="os-text" data-type="" itemprop="">#{page.title_text}</span>
                    </h3>
                  </a>
                HTML
              else
                Kitchen::Directions::EocSectionTitleLinkSnippet.v1(page: page)
              end

      references.each do |reference|
        Kitchen::Directions::RemoveSectionTitle.v1(section: reference)
        reference.prepend(child: title)
      end
    end