jekyll-octopod 0.9.0 → 0.9.1
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/assets/_config.yml +47 -0
- data/assets/_includes/post.html +2 -6
- data/assets/_layouts/feed.xml +1 -2
- data/assets/_layouts/post.html +1 -1
- data/assets/_layouts/with_twitter_card.html +98 -0
- data/lib/jekyll/octopod_filters.rb +33 -1
- data/lib/octopod/version.rb +1 -1
- 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: 271f8dde18002a49be98424ac8b9718f4f408760
|
|
4
|
+
data.tar.gz: dde70685d24bf8f53b412a14fa4eb2d9dccfb30d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7dde5076b482570facbbdc08bfb5d2ed3e4b4f2808dd5037117e2153cef01a09de554598ecbe120e189abba4e7eb9122a9467a9ca5de439a78e9b2667e3ceb7a
|
|
7
|
+
data.tar.gz: 360146ce5fb5f779f8d590939df51d088c872d750bdb2ce5b4fa3cfef750e4ba80c875fef9a09cfc550853233ce75cf82d8c86a58d73517d6519881a913b3eea
|
data/assets/_config.yml
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
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: 100
|
|
16
|
+
## Rsync Deploy config #########################################################
|
|
17
|
+
### Be sure your public key is listed in your server's ~/.ssh/authorized_keys
|
|
18
|
+
### file.
|
|
19
|
+
ssh_host: user@host.org
|
|
20
|
+
ssh_port: 22
|
|
21
|
+
document_root: /path/to/your/htdocs/
|
|
22
|
+
rsync_delete: true
|
|
23
|
+
# You can configure this #######################################################
|
|
24
|
+
twitter_nick: my_twitter_handle
|
|
25
|
+
language: en
|
|
26
|
+
explicit: 'no' # 'yes'/'no'/clean
|
|
27
|
+
license: CC BY 4.0
|
|
28
|
+
license_url: https://creativecommons.org/licenses/by/4.0/
|
|
29
|
+
license_image_url: https://i.creativecommons.org/l/by/4.0/88x31.png
|
|
30
|
+
## Flattr ######################################################################
|
|
31
|
+
flattr_uid: # Flattr will not be used unless this is set
|
|
32
|
+
flattr_button: compact # compact | default
|
|
33
|
+
flattr_mode: auto # auto | manual(default)
|
|
34
|
+
flattr_popout: 1 # 1 | 0 (show popout when hovering mouse over button)
|
|
35
|
+
flattr_language: en_GB # available languages - https://api.flattr.com/rest/v2/languages.txt
|
|
36
|
+
flattr_category: audio # available categories - https://api.flattr.com/rest/v2/categories.txt
|
|
37
|
+
## Disqus comments #############################################################
|
|
38
|
+
disqus_shortname: # Disqus will not be used unless this is set
|
|
39
|
+
disqus_developer: 0 # 1 / 0
|
|
40
|
+
## Feed links ###########################################################
|
|
41
|
+
itunes_url: https://itunes.apple.com/at/podcast/myname/id#myid#
|
|
42
|
+
bitlove_url: https://bitlove.org/myaccount
|
|
43
|
+
fyyd_url: https://fyyd.de/podcast/myaccount/myid
|
|
44
|
+
gpodder_url: https://gpodder.net/podcast/mypodcast
|
|
45
|
+
|
|
46
|
+
gems: [jekyll-octopod]
|
|
47
|
+
theme: jekyll-bootflat
|
data/assets/_includes/post.html
CHANGED
|
@@ -4,15 +4,11 @@
|
|
|
4
4
|
{% endif %}
|
|
5
5
|
<section id="{{ post.id | sha1:8 }}" class="active">
|
|
6
6
|
{% include post_header.html %}
|
|
7
|
-
|
|
8
|
-
{% assign download_url = site.url | append: '/episodes' %}
|
|
9
|
-
{% else %}
|
|
10
|
-
{% assign download_url = site.download_url %}
|
|
11
|
-
{% endif %}
|
|
7
|
+
|
|
12
8
|
{{ post.content }}
|
|
13
9
|
{% if post.audio %}
|
|
14
10
|
{% for file in post.audio %}
|
|
15
|
-
<a class="btn btn-primary" href="{{
|
|
11
|
+
<a class="btn btn-primary" href="{{ site | download_url_with_fallback }}/{{ file.last }}">Download .{{ file.first }} ({{ file.last | file_size:'./' | string_of_size }})</a>
|
|
16
12
|
{% endfor %}
|
|
17
13
|
{% endif %}
|
|
18
14
|
<hr>
|
data/assets/_layouts/feed.xml
CHANGED
|
@@ -43,9 +43,8 @@ layout: null
|
|
|
43
43
|
<link>{{ site.url }}</link>
|
|
44
44
|
</image>
|
|
45
45
|
{% for category in site.itunes_categories %}
|
|
46
|
-
<itunes:category text="{{ category }}"
|
|
46
|
+
<itunes:category text="{{ category }}" />
|
|
47
47
|
{% endfor %}
|
|
48
|
-
</itunes:category>
|
|
49
48
|
{% if site.download_url == "" or site.download_url == nil %}
|
|
50
49
|
{% assign download_url = site.url | append: '/episodes' %}
|
|
51
50
|
{% else %}
|
data/assets/_layouts/post.html
CHANGED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="{{ site.language }}">
|
|
3
|
+
<head>
|
|
4
|
+
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
6
|
+
<title>{{ site.title }} - {{ page.title | otherwise:site.subtitle }}</title>
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
+
|
|
9
|
+
{% if site.description %}<meta name="description" content="{{ site.description | markdownify | strip_html }}">{% endif %}
|
|
10
|
+
{% if site.author %}<meta name="author" content="{{ site.author }}">{% endif %}
|
|
11
|
+
|
|
12
|
+
<link rel="alternate" type="application/atom+xml" href="{{ site.url }}/general_feed.xml" title="General Site Atom Feed (No Podcast Metadata!)" />
|
|
13
|
+
{{ site | episode_feeds_html }}
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" type="text/css" href="{{ site.url }}/assets/css/main.css">
|
|
16
|
+
|
|
17
|
+
<script type='text/javascript' src="{{ site.url }}/assets/js/jquery.min.js"></script>
|
|
18
|
+
<script type='text/javascript' src="{{ site.url }}/assets/js/bootstrap.min.js"></script>
|
|
19
|
+
<script type='text/javascript' src="{{ site.url }}/assets/js/icheck.min.js"></script>
|
|
20
|
+
<script type='text/javascript' src="{{ site.url }}/assets/js/jquery.fs.selecter.min.js"></script>
|
|
21
|
+
<script type='text/javascript' src="{{ site.url }}/assets/js/jquery.fs.stepper.min.js"></script>
|
|
22
|
+
<script type='text/javascript' src="{{ site.url }}/assets/js/custom.js"></script>
|
|
23
|
+
|
|
24
|
+
<meta name="twitter:card" content="player" />
|
|
25
|
+
<meta name="twitter:site" content="@{{ site.twitter_nick }}" />
|
|
26
|
+
<meta name="twitter:title" content="{{ page.title }}" />
|
|
27
|
+
<meta name="twitter:description" content="{{ page.subtitle }}" />
|
|
28
|
+
<meta name="twitter:image" content="{{site.url}}{{ page | image_with_fallback }}" />
|
|
29
|
+
<meta name="twitter:player" content="{{ site.url }}/players/{{ page.slug }}" />
|
|
30
|
+
<meta name="twitter:player:width" content="480" />
|
|
31
|
+
<meta name="twitter:player:height" content="480" />
|
|
32
|
+
<meta name="twitter:player:stream" content="{{ site | download_url_with_fallback }}/{{ page.audio | audio }}" />
|
|
33
|
+
<meta name="twitter:player:stream:content_type" content="{{ page.audio | audio_type }}" />
|
|
34
|
+
|
|
35
|
+
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
|
|
36
|
+
|
|
37
|
+
{% if site.flattr_uid %}{% include flattr_loader.html %}{% endif %}
|
|
38
|
+
{% if site.disqus_shortname %}
|
|
39
|
+
<script>
|
|
40
|
+
{{ site | disqus_config }}
|
|
41
|
+
</script>
|
|
42
|
+
{% endif %}
|
|
43
|
+
</head>
|
|
44
|
+
|
|
45
|
+
<body>
|
|
46
|
+
<div class="container-fluid">
|
|
47
|
+
<nav class="navbar navbar-default">
|
|
48
|
+
<div class="container-fluid">
|
|
49
|
+
<div class="navbar-header">
|
|
50
|
+
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
|
51
|
+
<span class="sr-only">Navigation</span>
|
|
52
|
+
<span class="icon-bar"></span>
|
|
53
|
+
<span class="icon-bar"></span>
|
|
54
|
+
<span class="icon-bar"></span>
|
|
55
|
+
</button>
|
|
56
|
+
<a class="navbar-brand" href="{{ site.url }}">{{ site.title }}</a>
|
|
57
|
+
</div>
|
|
58
|
+
<div id="navbar" class="collapse navbar-collapse">
|
|
59
|
+
<ul class="nav navbar-nav">
|
|
60
|
+
{{ site | navigation_list:page }}
|
|
61
|
+
</ul>
|
|
62
|
+
<form class="navbar-form navbar-right" action="https://google.com/search" method="get" role="search">
|
|
63
|
+
<div class="form-group">
|
|
64
|
+
<input type="text" class="form-control" placeholder="search item">
|
|
65
|
+
<input type="hidden" name="q" value="site:{{ site.url | host_from_url }}" />
|
|
66
|
+
</div>
|
|
67
|
+
<button type="submit" class="btn btn-default">Search</button>
|
|
68
|
+
</form>
|
|
69
|
+
</div><!--/.nav-collapse -->
|
|
70
|
+
</div>
|
|
71
|
+
</nav>
|
|
72
|
+
|
|
73
|
+
<div class="container">
|
|
74
|
+
<div class="row ">
|
|
75
|
+
<div class="col-sm-8">
|
|
76
|
+
<div class="content">
|
|
77
|
+
{{ content }}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div id="sidebar" class="col-sm-4">
|
|
81
|
+
<div class="well">
|
|
82
|
+
{% include sidebar.html %}
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
<div class="row" id="footer">
|
|
87
|
+
<small class="pull-right">
|
|
88
|
+
Powered by <a href="https://jekyll-octopod.github.io/">jekyll-octopod</a>
|
|
89
|
+
and <a href="http://jekyllrb.com/">Jekyll</a>.
|
|
90
|
+
</small>
|
|
91
|
+
</div>
|
|
92
|
+
</div><!-- /.container -->
|
|
93
|
+
</div><!-- /.container -->
|
|
94
|
+
|
|
95
|
+
<script>
|
|
96
|
+
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
|
|
97
|
+
</script>
|
|
98
|
+
</html>
|
|
@@ -49,7 +49,7 @@ module Jekyll
|
|
|
49
49
|
first.empty? ? second : first
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
# Returns the
|
|
52
|
+
# Returns the audio file name of a given hash. Is no key as second parameter given, it
|
|
53
53
|
# trys first "mp3", than "m4a" and than it will return a more or less random
|
|
54
54
|
# value.
|
|
55
55
|
#
|
|
@@ -62,6 +62,17 @@ module Jekyll
|
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
+
|
|
66
|
+
# Returns the audio-type of a given hash. Is no key as second parameter given, it
|
|
67
|
+
# trys first "mp3", than "m4a" and than it will return a more or less random
|
|
68
|
+
# value.
|
|
69
|
+
#
|
|
70
|
+
# {{ post.audio | audiotype }} => "my-episode.m4a"
|
|
71
|
+
def audio_type(hsh)
|
|
72
|
+
hsh['mp3'] ? mime_type('mp3') : hsh['m4a'] ? mime_type('m4a') : hsh['ogg'] ? mime_type('ogg') : mime_type('opus')
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
|
|
65
76
|
# Returns the MIME-Type of a given file format.
|
|
66
77
|
#
|
|
67
78
|
# {{ "m4a" | mime_type }} => "audio/mp4a-latm"
|
|
@@ -95,6 +106,27 @@ module Jekyll
|
|
|
95
106
|
page['id'][1..-1].gsub('/', '_')
|
|
96
107
|
end
|
|
97
108
|
|
|
109
|
+
# Returns the image of the post or the default logo.
|
|
110
|
+
#
|
|
111
|
+
# {{ page | image_with_fallback }} => '/path/to/image.png'
|
|
112
|
+
def image_with_fallback(page)
|
|
113
|
+
if page["image"]
|
|
114
|
+
"/img/" + page["image"]
|
|
115
|
+
else
|
|
116
|
+
"/img/logo-itunes.jpg"
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Returns the dowrload url with fallback to the site's episode folder url
|
|
121
|
+
def download_url_with_fallback(site)
|
|
122
|
+
if site["download_url"] == "" or site["download_url"] == nil
|
|
123
|
+
site["url"] + "/episodes"
|
|
124
|
+
else
|
|
125
|
+
site["download_url"]
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
|
|
98
130
|
# Splits a chapter, like it is written to the post YAML front matter into
|
|
99
131
|
# the components 'start' which refers to a single point in time relative to
|
|
100
132
|
# the beginning of the media file nad 'title' which defines the text to be
|
data/lib/octopod/version.rb
CHANGED
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.9.
|
|
4
|
+
version: 0.9.1
|
|
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: 2017-
|
|
12
|
+
date: 2017-09-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: facets
|
|
@@ -98,6 +98,7 @@ extra_rdoc_files: []
|
|
|
98
98
|
files:
|
|
99
99
|
- README.md
|
|
100
100
|
- Rakefile
|
|
101
|
+
- assets/_config.yml
|
|
101
102
|
- assets/_config.yml.sample
|
|
102
103
|
- assets/_includes/disqus_count.html
|
|
103
104
|
- assets/_includes/disqus_thread.html
|
|
@@ -114,6 +115,7 @@ files:
|
|
|
114
115
|
- assets/_layouts/page.html
|
|
115
116
|
- assets/_layouts/player_index.html
|
|
116
117
|
- assets/_layouts/post.html
|
|
118
|
+
- assets/_layouts/with_twitter_card.html
|
|
117
119
|
- assets/_posts/2016-03-22-episode0.md
|
|
118
120
|
- assets/_sass/_overrides.scss
|
|
119
121
|
- assets/apple-touch-icon-precomposed.png
|
|
@@ -194,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
194
196
|
version: '0'
|
|
195
197
|
requirements: []
|
|
196
198
|
rubyforge_project: jekyll-
|
|
197
|
-
rubygems_version: 2.
|
|
199
|
+
rubygems_version: 2.6.8
|
|
198
200
|
signing_key:
|
|
199
201
|
specification_version: 4
|
|
200
202
|
summary: Podcasting Publishing Extension for Jekyll
|