jekyll-octopod 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|