jekyll-octopod 0.5.3 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
![screenshot](materials/demo.png)
|
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
|