jekyll-octopod 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -64
- data/assets/_config.yml +53 -0
- data/assets/_config.yml.sample +1 -0
- data/assets/_layouts/feed.xml +6 -1
- data/assets/_plugins/feed_generator.rb +40 -0
- data/lib/jekyll/octopod/version.rb +2 -2
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 407054feab491c836c3756f08d6fb2a9e107d66d
|
|
4
|
+
data.tar.gz: 6ca029cd8f126d6764458760720ecf6216d8a81d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e96c4a9e63b139683a7713fdd396ffa3968c996b44d22b15ab7c4d3c5a16c6bd1c757afcd63be0ea5036103e679cda4f95749e990d7fe0defe0d565941905681
|
|
7
|
+
data.tar.gz: a2eb1e597101a284150cefcece71617aa7a1628997d72eabac7bb03c7bc9f66db5b5166b763e0f9b0f601643e241326ba55e9c97e11baf9405f208fe32744ea0
|
data/README.md
CHANGED
|
@@ -5,67 +5,4 @@
|
|
|
5
5
|
<img align="right" src="assets/img/logo.jpg" alt="logo">
|
|
6
6
|
A podcast publishing extension for the static site generator [Jekyll](https://jekyllrb.com/)
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
You generate a static web site for your podcast on your own computer, test drive it and sync it to your web space.
|
|
11
|
-
|
|
12
|
-
So no Wordpress, PHP, Ruby other scripting language, database management system or any other dynamic component is needed on your server.
|
|
13
|
-
This increases security immensely.
|
|
14
|
-
|
|
15
|
-
## Tell me more!
|
|
16
|
-
|
|
17
|
-
If you want to take a look: See (and listen to) Stefan's podcast [Aua-Uff-Code!](https://aua-uff-co.de).
|
|
18
|
-
|
|
19
|
-
The page, you will get, when you follow the installation instructions later, looks like this:
|
|
20
|
-
|
|
21
|
-

|
|
22
|
-
|
|
23
|
-
Technically speaking, jekyll-octopod is a Jekyll plugin and a Ruby Gem. It
|
|
24
|
-
contains of scripts, templates, helpers and extensions to publish your
|
|
25
|
-
podcasts the cool text file lover's way.
|
|
26
|
-
|
|
27
|
-
If you are not afraid of the command line of your computer and text files are the
|
|
28
|
-
stuff to heat up your geeky little heart, jekyll-octopod may be worth a trial
|
|
29
|
-
to publish your podcasts.
|
|
30
|
-
|
|
31
|
-
The underlying assumptions of jekyll-octopod are that static content
|
|
32
|
-
should be delivered statically and text files are the perfect way to handle
|
|
33
|
-
podcast metadata. So jekyll-octopod makes it easy to generate and deploy a
|
|
34
|
-
website and feeds for your podcast out of one textfile and at least one audio
|
|
35
|
-
file per episode.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## Features
|
|
39
|
-
|
|
40
|
-
jekyll-octopod brings innately:
|
|
41
|
-
* iTunes ready episode feeds for different file formats (e.g. mp3, ogg, m4a)
|
|
42
|
-
* a ready to use [Bootflat](http://bootflat.github.io/) and [Twitter Bootstrap](http://twitter.github.com/bootstrap/) based, responsible (i.e. mobile friendly) layout modifiable to your heart's desire.
|
|
43
|
-
* [Flattr](https://flattr.com/) support on the website and in the episode feed
|
|
44
|
-
* [Twitter](https://twitter.com) integration on the website
|
|
45
|
-
* comments via [Disqus](http://disqus.com/)
|
|
46
|
-
* [Podlove Web Player](http://podlove.org/podlove-web-player/) in it's current version 3.0
|
|
47
|
-
* Static player pages that are embeddable in iframes at your other or affiliates' sites
|
|
48
|
-
* [Podlove Alternate Feeds](http://podlove.org/alternate-feeds/)
|
|
49
|
-
* [Podlove Simple Chapters](http://podlove.org/simple-chapters/)
|
|
50
|
-
* [Podlove Subscribe Button](http://podlove.org/podlove-subscribe-button/) for easy podcast subscription on any operating system, including mobile phones.
|
|
51
|
-
* https compatibility
|
|
52
|
-
* Google search integration
|
|
53
|
-
* easy creation of show notes
|
|
54
|
-
|
|
55
|
-
**Is this production ready?**
|
|
56
|
-
|
|
57
|
-
We use it in production, so we believe it is.
|
|
58
|
-
But it is very likely, that it still contains bugs. And there is no guarantee that behavior will not change with the next update :-).
|
|
59
|
-
|
|
60
|
-
Hopefully you are brave enough to play with this cute little toy anyway.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## Documentation
|
|
64
|
-
|
|
65
|
-
Detailed documentation is provided in the [Wiki](https://github.com/informatom/jekyll-octopod/wiki)
|
|
66
|
-
|
|
67
|
-
## Maintainer
|
|
68
|
-
|
|
69
|
-
Stefan Haslinger <mailto:stefan.haslinger@informatom.com>
|
|
70
|
-
|
|
71
|
-
Credits go to lots of [people and projects](https://github.com/informatom/jekyll-octopod/wiki/Credits).
|
|
8
|
+
jekyll-octopod has now it's own [Project Site](https://jekyll-octopod.github.io/)!
|
data/assets/_config.yml
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# You have to configure this ###################################################
|
|
2
|
+
title: Octopod
|
|
3
|
+
# You should configure this ####################################################
|
|
4
|
+
url: http://localhost:4000
|
|
5
|
+
subtitle: Static Site Podcast Publishing for Geeks
|
|
6
|
+
description: My super duper cool podcast.
|
|
7
|
+
author: Uncle Octopod
|
|
8
|
+
email: octopod@example.com
|
|
9
|
+
keywords: [octopod, podcast, magic]
|
|
10
|
+
itunes_categories: [Technology]
|
|
11
|
+
# additional_feeds:
|
|
12
|
+
# itunes: http://itunes.apple.com/de/podcast/podcast_name/id42424242
|
|
13
|
+
# torrent_m4a: http://bitlove.org/example_user/example_podcast_m4a/feed
|
|
14
|
+
# torrent_mp3: http://bitlove.org/example_user/example_podcast_mp3/feed
|
|
15
|
+
episodes_per_feed_page: 99
|
|
16
|
+
## podlove-web-palyer ##########################################################
|
|
17
|
+
poster: /img/logo-360x360.png
|
|
18
|
+
alwaysShowHours: true
|
|
19
|
+
startVolume: 0.8
|
|
20
|
+
width: auto
|
|
21
|
+
summaryVisible: false
|
|
22
|
+
timecontrolsVisible: false
|
|
23
|
+
chaptersVisible: true
|
|
24
|
+
sharebuttonsVisible: false
|
|
25
|
+
## Rsync Deploy config #########################################################
|
|
26
|
+
### Be sure your public key is listed in your server's ~/.ssh/authorized_keys
|
|
27
|
+
### file.
|
|
28
|
+
ssh_host: user@host.org
|
|
29
|
+
ssh_port: 22
|
|
30
|
+
document_root: /path/to/your/htdocs/
|
|
31
|
+
rsync_delete: true
|
|
32
|
+
# You can configure this #######################################################
|
|
33
|
+
twitter_nick: my_twitter_handle
|
|
34
|
+
language: en
|
|
35
|
+
explicit: 'no' # 'yes'/'no'/clean
|
|
36
|
+
license: CC BY 4.0
|
|
37
|
+
license_url: https://creativecommons.org/licenses/by/4.0/
|
|
38
|
+
license_image_url: https://i.creativecommons.org/l/by/4.0/88x31.png
|
|
39
|
+
## Flattr ######################################################################
|
|
40
|
+
flattr_uid: # Flattr will not be used unless this is set
|
|
41
|
+
flattr_button: compact # compact | default
|
|
42
|
+
flattr_mode: auto # auto | manual(default)
|
|
43
|
+
flattr_popout: 1 # 1 | 0 (show popout when hovering mouse over button)
|
|
44
|
+
flattr_language: en_GB # available languages - https://api.flattr.com/rest/v2/languages.txt
|
|
45
|
+
flattr_category: audio # available categories - https://api.flattr.com/rest/v2/categories.txt
|
|
46
|
+
## Disqus comments #############################################################
|
|
47
|
+
disqus_shortname: # Disqus will not be used unless this is set
|
|
48
|
+
disqus_developer: 0 # 1 / 0
|
|
49
|
+
## Feed links ###########################################################
|
|
50
|
+
itunes_url: https://itunes.apple.com/at/podcast/myname/id#myid#
|
|
51
|
+
bitlove_url: https://bitlove.org/myaccount
|
|
52
|
+
fyyd_url: https://fyyd.de/podcast/myaccount/myid
|
|
53
|
+
gpodder_url: https://gpodder.net/podcast/mypodcast
|
data/assets/_config.yml.sample
CHANGED
|
@@ -12,6 +12,7 @@ itunes_categories: [Technology]
|
|
|
12
12
|
# itunes: http://itunes.apple.com/de/podcast/podcast_name/id42424242
|
|
13
13
|
# torrent_m4a: http://bitlove.org/example_user/example_podcast_m4a/feed
|
|
14
14
|
# torrent_mp3: http://bitlove.org/example_user/example_podcast_mp3/feed
|
|
15
|
+
episodes_per_feed_page: 99
|
|
15
16
|
## podlove-web-palyer ##########################################################
|
|
16
17
|
poster: /img/logo-360x360.png
|
|
17
18
|
alwaysShowHours: true
|
data/assets/_layouts/feed.xml
CHANGED
|
@@ -6,7 +6,12 @@ layout: null
|
|
|
6
6
|
<channel>
|
|
7
7
|
<title>{{ site.title }}</title>
|
|
8
8
|
<link>{{ site.url }}</link>
|
|
9
|
-
<atom:link href="{{ site.url }}/episodes.{{ page.format }}.rss" rel="self" type="application/rss+xml" title="{{ page.format }} Episode RSS-Feed"/>
|
|
9
|
+
<atom:link href="{{ site.url }}/episodes.{{ page.format }}.rss{{page.myself}}" rel="self" type="application/rss+xml" title="{{ page.format }} Episode RSS-Feed"/>
|
|
10
|
+
<atom:link href="{{ site.url }}/episodes.{{ page.format }}.rss" rel="first" type="application/rss+xml" />
|
|
11
|
+
<atom:link href="{{ site.url }}/episodes.{{ page.format }}.rss{{page.last}}" rel="last" type="application/rss+xml" />
|
|
12
|
+
{% if page.next %}<atom:link href="{{ site.url }}/episodes.{{ page.format }}.rss{{page.next}}" rel="next" type="application/rss+xml" />{% endif %}
|
|
13
|
+
{% if page.prev %}<atom:link href="{{ site.url }}/episodes.{{ page.format }}.rss{{page.prev}}" rel="prev" type="application/rss+xml" />{% endif %}
|
|
14
|
+
|
|
10
15
|
{{ site | episode_feeds_rss:page.format }}
|
|
11
16
|
<description>{{ site.description | markdownify | strip_html }}</description>
|
|
12
17
|
<lastBuildDate>{{ site.time | time_to_rssschema }}</lastBuildDate>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Jekyll
|
|
2
|
+
class PagedFeedPage < Page
|
|
3
|
+
def initialize(site, base, dir, name, page_number, pages_total, format)
|
|
4
|
+
@site = site
|
|
5
|
+
@dir = "/"
|
|
6
|
+
@name = name
|
|
7
|
+
|
|
8
|
+
self.process(@name)
|
|
9
|
+
self.read_yaml(File.join(base, '_layouts'), 'feed.xml')
|
|
10
|
+
self.data['next'] = pages_total > page_number ? "?page=" + (page_number + 1).to_s : nil
|
|
11
|
+
self.data['last'] = pages_total > 1 ? "?page=" + pages_total.to_s : nil
|
|
12
|
+
self.data['prev'] = case page_number
|
|
13
|
+
when 1 then nil
|
|
14
|
+
when 2 then ""
|
|
15
|
+
else "?page=" + (page_number - 1).to_s
|
|
16
|
+
end
|
|
17
|
+
self.data['myself'] = page_number == 1 ? nil : "?page=" + page_number.to_s
|
|
18
|
+
self.data['format'] = format
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class PagedFeedPageGenerator < Generator
|
|
23
|
+
safe true
|
|
24
|
+
|
|
25
|
+
def generate(site)
|
|
26
|
+
pages_total = site.posts.docs.count / site.config["episodes_per_feed_page"].ceil
|
|
27
|
+
|
|
28
|
+
site.config["episode_feed_formats"].each do |page_format|
|
|
29
|
+
name = "episodes." + page_format + ".rss"
|
|
30
|
+
page = PagedFeedPage.new(site, site.source, ".", name, 1, pages_total, page_format)
|
|
31
|
+
site.pages << page
|
|
32
|
+
(1..pages_total).each do |page_number|
|
|
33
|
+
name = "episodes." + page_format + ".rss?page=" + page_number.to_s
|
|
34
|
+
page = PagedFeedPage.new(site, site.source, ".", name, page_number, pages_total, page_format)
|
|
35
|
+
site.pages << page
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-octopod
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Arne Eilermann
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2016-06-
|
|
12
|
+
date: 2016-06-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: jekyll
|
|
@@ -50,6 +50,7 @@ extra_rdoc_files: []
|
|
|
50
50
|
files:
|
|
51
51
|
- README.md
|
|
52
52
|
- Rakefile
|
|
53
|
+
- assets/_config.yml
|
|
53
54
|
- assets/_config.yml.sample
|
|
54
55
|
- assets/_includes/disqus_count.html
|
|
55
56
|
- assets/_includes/disqus_thread.html
|
|
@@ -64,6 +65,7 @@ files:
|
|
|
64
65
|
- assets/_layouts/page.html
|
|
65
66
|
- assets/_layouts/player_index.html
|
|
66
67
|
- assets/_layouts/post.html
|
|
68
|
+
- assets/_plugins/feed_generator.rb
|
|
67
69
|
- assets/_plugins/flattr_filters.rb
|
|
68
70
|
- assets/_plugins/octopod_filters.rb
|
|
69
71
|
- assets/_plugins/podcast_player_page_generator.rb
|
|
@@ -203,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
203
205
|
version: '0'
|
|
204
206
|
requirements: []
|
|
205
207
|
rubyforge_project: jekyll-
|
|
206
|
-
rubygems_version: 2.4
|
|
208
|
+
rubygems_version: 2.6.4
|
|
207
209
|
signing_key:
|
|
208
210
|
specification_version: 4
|
|
209
211
|
summary: Podcasting Publishing Extension for Jekyll
|