Class: Jekyll::GeneratorSingleSource::SingleSourcePage
- Inherits:
-
Page
- Object
- Page
- Jekyll::GeneratorSingleSource::SingleSourcePage
- Defined in:
- lib/jekyll/generator-single-source/single_source_page.rb
Instance Method Summary collapse
-
#initialize(nav_item) ⇒ SingleSourcePage
constructor
rubocop:disable Lint/MissingSuper, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity.
- #to_version(input) ⇒ Object
Constructor Details
#initialize(nav_item) ⇒ SingleSourcePage
rubocop:disable Lint/MissingSuper, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/jekyll/generator-single-source/single_source_page.rb', line 6 def initialize(nav_item) # rubocop:disable Lint/MissingSuper, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity # Configure variables that Jekyll depends on @site = nav_item.site # Set self.ext and self.basename by extracting information from the page filename process('index.md') # Override Jekyll::Page's @dir # This is the directory that we're going to write the output file to @dir = nav_item.dest.file_path content = File.read(nav_item.source.full_file_path) # Load content + frontmatter from the file if content =~ Jekyll::Document::YAML_FRONT_MATTER_REGEXP @content = Regexp.last_match.post_match @data = SafeYAML.load(Regexp.last_match(1)) end # Set the "Edit on GitHub" link url @data['edit_link'] = nav_item.source.file_path # Make it clear that this content comes from a generated file @data['path'] = "GENERATED:nav=#{nav_item.nav}:src=#{nav_item.source.file_path}:#{@dir}" @data['is_dir_index'] = nav_item.source.dir? # Set the current release and concrete version @data['release'] = nav_item.release @data['version'] = nav_item.versions['default'] @data['versions'] = nav_item.versions # Set the layout if it's not already provided @data['layout'] ||= 'docs-v2' # Apply any overrides current = to_version(@data['release']) @data['overrides']&.each do |key, entries| entries.each do |value, conditions| gte = conditions['gte'] ? to_version(conditions['gte']) : nil lte = conditions['lte'] ? to_version(conditions['lte']) : nil eq = conditions['eq'] ? to_version(conditions['eq']) : nil if gte && lte @data[key] = value if current >= gte && current <= lte elsif gte @data[key] = value if current >= gte elsif lte @data[key] = value if current <= lte elsif eq @data[key] = value if current == eq end end end end |
Instance Method Details
#to_version(input) ⇒ Object
62 63 64 |
# File 'lib/jekyll/generator-single-source/single_source_page.rb', line 62 def to_version(input) Gem::Version.new(input.gsub(/\.x$/, '.0')) end |