Sha256: 869acf2a5d551885afecf3d98d61d5f069b4e34ca6f9685f94ea9243a7445867

Contents?: true

Size: 1.98 KB

Versions: 7

Compression:

Stored size: 1.98 KB

Contents

module Jekyll
  class PodigeePlayerTag < Liquid::Tag
    # From here: https://github.com/podigee/podigee-podcast-player/tree/master/src/themes
    PLAYER_THEMES = ["default", "default-dark", "legacy", "minimal", "republica"]

    def playerconfig(context)
      config = context.registers[:site].config
      page = context.registers[:page]

      audio = {}
      download_url = config["download_url"] || config["url"] + "/episodes"
      page["audio"].each { |key, value| audio[key] = download_url + "/" + value}

      { options: { theme: page["player_theme"] && PLAYER_THEMES.include?(page["player_theme"]) ? page["player_theme"] : "default",
                   startPanel: "ChapterMarks" },
        extensions: { ChapterMarks: {},
                      EpisodeInfo:  {},
                      Playlist:     {} },
        title: options['title'],
        episode: { media: audio,
                   coverUrl: config['url'] + "/img/" + (page["image"] || "logo-360x360.png"),
                   title: page["title"],
                   subtitle: page["subtitle"],
                   url: config['url'] + page["url"],
                   description: page["description"],
                   chaptermarks: page["chapters"] ? page["chapters"].map {|chapter| { start: chapter[0..12], title: chapter[13..255] }} : nil
                 }
      }.to_json
    end

    def render(context)
      config = context.registers[:site].config
      page = context.registers[:page]
      return unless page["audio"]
      return <<~HTML
        <script>
          window.playerConfiguration = #{playerconfig(context)}
        </script>
        <script class="podigee-podcast-player" data-configuration="playerConfiguration"
                src="#{config["url"]}/podigee-player/javascripts/podigee-podcast-player.js">
        </script>
HTML
    end
  end
end

Liquid::Template.register_tag('podigee_player', Jekyll::PodigeePlayerTag)

# src="#{config["url"].split(":").first}://cdn.podigee.com/podcast-player/javascripts/podigee-podcast-player.js">

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
jekyll-octopod-0.9.14 lib/jekyll/podigee_player_tag.rb
jekyll-octopod-0.9.13 lib/jekyll/podigee_player_tag.rb
jekyll-octopod-0.9.12 lib/jekyll/podigee_player_tag.rb
jekyll-octopod-0.9.11 lib/jekyll/podigee_player_tag.rb
jekyll-octopod-0.9.10 lib/jekyll/podigee_player_tag.rb
jekyll-octopod-0.9.9 lib/jekyll/podigee_player_tag.rb
jekyll-octopod-0.9.8 lib/jekyll/podigee_player_tag.rb