octopod-exe 0.9.4

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.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +8 -0
  3. data/Rakefile +11 -0
  4. data/assets/_config.yml.sample +48 -0
  5. data/assets/_includes/disqus_count.html +13 -0
  6. data/assets/_includes/disqus_thread.html +13 -0
  7. data/assets/_includes/flattr_loader.html +14 -0
  8. data/assets/_includes/isso_thread.html +6 -0
  9. data/assets/_includes/post.html +20 -0
  10. data/assets/_includes/post_header.html +17 -0
  11. data/assets/_includes/post_line.html +3 -0
  12. data/assets/_includes/sidebar.html +109 -0
  13. data/assets/_includes/tweet_us.html +3 -0
  14. data/assets/_layouts/default.html +86 -0
  15. data/assets/_layouts/feed.xml +107 -0
  16. data/assets/_layouts/jsonfeed.json +48 -0
  17. data/assets/_layouts/page.html +15 -0
  18. data/assets/_layouts/player_index.html +36 -0
  19. data/assets/_layouts/post.html +10 -0
  20. data/assets/_layouts/with_twitter_card.html +98 -0
  21. data/assets/_posts/2016-03-22-episode0.md +24 -0
  22. data/assets/_sass/_overrides.scss +68 -0
  23. data/assets/apple-touch-icon-precomposed.png +0 -0
  24. data/assets/episodes.m4a.rss +5 -0
  25. data/assets/episodes.mp3.rss +5 -0
  26. data/assets/episodes.ogg.rss +5 -0
  27. data/assets/episodes/episode0.m4a +0 -0
  28. data/assets/episodes/episode0.mp3 +0 -0
  29. data/assets/episodes/episode0.ogg +0 -0
  30. data/assets/favicon.ico +0 -0
  31. data/assets/feed.m4a.json +5 -0
  32. data/assets/feed.mp3.json +5 -0
  33. data/assets/feed.ogg.json +5 -0
  34. data/assets/general_feed.xml +30 -0
  35. data/assets/img/favicon.ico +0 -0
  36. data/assets/img/logo-360x360.png +0 -0
  37. data/assets/img/logo-itunes.jpg +0 -0
  38. data/assets/img/logo.jpg +0 -0
  39. data/assets/img/logo/android-icon-144x144.png +0 -0
  40. data/assets/img/logo/android-icon-192x192.png +0 -0
  41. data/assets/img/logo/android-icon-36x36.png +0 -0
  42. data/assets/img/logo/android-icon-48x48.png +0 -0
  43. data/assets/img/logo/android-icon-72x72.png +0 -0
  44. data/assets/img/logo/android-icon-96x96.png +0 -0
  45. data/assets/img/logo/apple-icon-114x114.png +0 -0
  46. data/assets/img/logo/apple-icon-120x120.png +0 -0
  47. data/assets/img/logo/apple-icon-144x144.png +0 -0
  48. data/assets/img/logo/apple-icon-152x152.png +0 -0
  49. data/assets/img/logo/apple-icon-180x180.png +0 -0
  50. data/assets/img/logo/apple-icon-57x57.png +0 -0
  51. data/assets/img/logo/apple-icon-60x60.png +0 -0
  52. data/assets/img/logo/apple-icon-72x72.png +0 -0
  53. data/assets/img/logo/apple-icon-76x76.png +0 -0
  54. data/assets/img/logo/apple-icon-precomposed.png +0 -0
  55. data/assets/img/logo/apple-icon.png +0 -0
  56. data/assets/img/logo/browserconfig.xml +2 -0
  57. data/assets/img/logo/favicon-16x16.png +0 -0
  58. data/assets/img/logo/favicon-32x32.png +0 -0
  59. data/assets/img/logo/favicon-96x96.png +0 -0
  60. data/assets/img/logo/favicon.ico +0 -0
  61. data/assets/img/logo/manifest.json +41 -0
  62. data/assets/img/logo/ms-icon-144x144.png +0 -0
  63. data/assets/img/logo/ms-icon-150x150.png +0 -0
  64. data/assets/img/logo/ms-icon-310x310.png +0 -0
  65. data/assets/img/logo/ms-icon-70x70.png +0 -0
  66. data/assets/imprint.md +19 -0
  67. data/assets/index.md +14 -0
  68. data/bin/octopod +273 -0
  69. data/lib/jekyll-octopod.rb +11 -0
  70. data/lib/jekyll/date_de.rb +54 -0
  71. data/lib/jekyll/flattr_filters.rb +107 -0
  72. data/lib/jekyll/octopod_filters.rb +336 -0
  73. data/lib/jekyll/paged_feed_page.rb +22 -0
  74. data/lib/jekyll/paged_feed_page_generator.rb +20 -0
  75. data/lib/jekyll/podcast_player_page.rb +24 -0
  76. data/lib/jekyll/podcast_player_page_generator.rb +14 -0
  77. data/lib/jekyll/podigee_player_tag.rb +44 -0
  78. data/lib/jekyll/static_file.rb +20 -0
  79. data/lib/jekyll/update_config.rb +14 -0
  80. data/lib/octopod/version.rb +11 -0
  81. metadata +580 -0
@@ -0,0 +1,48 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+ {%- if site.download_url == "" or site.download_url == nil -%}
5
+ {%- assign download_url = site.url | append: '/episodes' -%}
6
+ {%- else -%}
7
+ {%- assign download_url = site.download_url -%}
8
+ {%- endif -%}
9
+
10
+ {"version": "https://jsonfeed.org/version/1",
11
+ "title": "{{ site.title | xml_escape }}",
12
+ "home_page_url": "{{ "/" | absolute_url }}",
13
+ "feed_url": "{{ "/feed.json" | absolute_url }}",
14
+ "description": {{ site.description | jsonify }},
15
+ "user_comment": {{ site.description | jsonify }},
16
+ "icon": "{{ "/apple-touch-icon-precomposed.png" | absolute_url }}",
17
+ "favicon": "{{ "/favicon.ico" | absolute_url }}",
18
+ "expired": false,
19
+ "author": {
20
+ "name": {{ site.author | jsonify }},
21
+ "url": {{ site.author_url | jsonify }}
22
+ },
23
+ "items": [
24
+ {%- for post in site.posts limit:36 -%}
25
+ {% assign url = download_url | append: '/' | append: post.audio[page.format] %}
26
+ {"id": "{{ post.url | absolute_url | sha1 }}",
27
+ "title": {{ post.title | jsonify }},
28
+ "summary": "",
29
+ "content_text": {{ post.content | strip_html | strip_newlines | jsonify }},
30
+ "content_html": {{ post.content | strip_newlines | jsonify }},
31
+ "url": "{{ post.url | absolute_url }}",
32
+ {%- if post.tags.size > 0 -%}"tags": {{ post.tags | jsonify }}, {%- endif -%}
33
+ {% if post.audio.size > 1 %}
34
+ "attachments": [
35
+ {"url": "{{ url }}",
36
+ "mime_type": "audio/mpeg",
37
+ "size_in_bytes": "{{ post.audio | audio:mp3 | file_size }}"
38
+ }
39
+ ],{% endif %}
40
+ "date_published": "{{ post.date | date_to_xmlschema }}",
41
+ "date_modified": "{{ post.date | date_to_xmlschema }}",
42
+ "author": {
43
+ "name": "{{ post.author }}"
44
+ }
45
+ }{% if forloop.last == false %},{% endif %}
46
+ {%- endfor -%}
47
+ ]
48
+ }
@@ -0,0 +1,15 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <section class="active">
5
+ {% if page.title %}
6
+ <div class="page-header">
7
+ <h1>
8
+ {{ page.title }}
9
+ {% if page.subtitle %}<small>{{ page.subtitle }}</small>{% endif %}
10
+ </h1>
11
+ </div>
12
+ {% endif %}
13
+
14
+ {{ content }}
15
+ </section>
@@ -0,0 +1,36 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+
5
+ <!DOCTYPE html>
6
+ <html lang="{{ site.language }}" prefix="og: http://ogp.me/ns#">
7
+
8
+ <head>
9
+ <meta charset="utf-8">
10
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
11
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
12
+ <title>{{ site.title }} - {{ page.title }}</title>
13
+
14
+ <meta property="og:type" content="website"/>
15
+ <meta property="og:site_name" content="{{ site.title }}"/>
16
+ <meta property="og:title" content="{{ page.title }} - {{ page.subtitle }}"/>
17
+ <meta property="og:url" content="{{ site.url }}{{ page.url }}"/>
18
+ <meta property="og:description" content="{{ site.description }}"/>
19
+ <meta property="og:image" content="{{ site.url }}/img/logo-360x360.png"/>
20
+
21
+ {% if site.download_url == "" or site.download_url == nil %}
22
+ {% assign download_url = site.url | append: '/episodes' %}
23
+ {% else %}
24
+ {% assign download_url = site.download_url %}
25
+ {% endif %}
26
+ {% for feed in site['episode_feed_formats'] %}
27
+ <meta property="og:audio" content="{{ download_url }}/{{ page['audio'][feed] }}"/>
28
+ <meta property="og:audio:type" content="audio/{{ feed }}"/>
29
+ {% endfor %}
30
+ </head>
31
+
32
+ <body>
33
+ {% podigee_player %}
34
+ </body>
35
+
36
+ </html>
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: with_twitter_card
3
+ ---
4
+ {% for post in site.posts %}
5
+ {% if post.url == page.url %}
6
+ {% include post.html %}
7
+ {% else %}
8
+ {% include post_line.html %}
9
+ {% endif %}
10
+ {% endfor %}
@@ -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>
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: Episode 0
3
+ subtitle: Getting Started Is Never Easy
4
+ datum: March 22nd 2016
5
+ layout: post
6
+ author: Arne and Stefan
7
+ explicit: 'no'
8
+ duration: "0:03:13"
9
+ audio:
10
+ mp3: episode0.mp3
11
+ ogg: episode0.ogg
12
+ m4a: episode0.m4a
13
+ chapters:
14
+ - '00:00:00.000 Intro.'
15
+ - '00:00:01.000 ... Shoubidoubidoo ...'
16
+ - '00:00:02.000 Outro.'
17
+ ---
18
+
19
+ {% podigee_player page %}
20
+
21
+ ## Show Notes and Links
22
+
23
+ * Well this is the place for the Show Notes.
24
+ * Send Feedback either in the [Github Repo](https://github.com/haslinger/jekyll-octopod) or at the Twitter account [@AuaUffCode](http://twitter.com/@AuaUffCode).
@@ -0,0 +1,68 @@
1
+ // Improve visibility of subtitles and similar text by increasing contrast
2
+ h1 small, h2 small, h3 small {
3
+ color: #77778C;
4
+ }
5
+
6
+ btn small, .btn small {
7
+ color: #2A2A2A;
8
+ }
9
+
10
+ // Making the date smaller improves the episode header when it includes the subtitle
11
+ .episode_date {
12
+ font-size: 45%;
13
+ }
14
+
15
+ // Theme for the Swiss-Sided Dice podcast, red and white based on the Swiss flag - commented out for now, until a better solution can be found
16
+
17
+ /*
18
+ // Main navbar background
19
+ .navbar-default {
20
+ background-color: #E11A27;
21
+ }
22
+
23
+ // Hovering over navbar links, keep the text white, but add darker background
24
+ .navbar-default .navbar-nav > .active > a,
25
+ .navbar-default .navbar-nav > .active > a:hover,
26
+ .navbar-default .navbar-nav > .active > a:focus,
27
+ .navbar-default .navbar-nav > li > a {
28
+ color: #FFF;
29
+ background-color: #E11A27;
30
+ }
31
+
32
+ // The "brand" / podcast title doesn't change on hover, but does keep the text white
33
+ .navbar-default .navbar-brand, .navbar-default .navbar-brand:hover {
34
+ color: #FFF;
35
+ }
36
+
37
+ // This is for the menu button on narrow screens
38
+ .navbar-default .navbar-toggle {
39
+ background-color: #E11A27;
40
+ border-color: #FFF;
41
+ }
42
+
43
+ .navbar-default .navbar-toggle .icon-bar {
44
+ background-color: #FFF;
45
+ }
46
+
47
+ // Darker background, keep rest white
48
+ .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus,
49
+ .navbar-default .navbar-nav > li > a:hover {
50
+ background-color: #A5131D;
51
+ border-color: #FFF;
52
+ color: #FFF;
53
+ }
54
+
55
+ // Links and buttons in the website are a dark red for best contrast, but get lightened on hover for feedback
56
+ a {
57
+ color: #CF000F;
58
+ }
59
+ a:hover {
60
+ color: #EF3743;
61
+ }
62
+ .btn-primary {
63
+ background-color: #CF000F;
64
+ }
65
+ .btn-primary:hover, .btn-primary:focus {
66
+ background-color: #EF3743;
67
+ }
68
+ */
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: feed
3
+ format: m4a
4
+ ---
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: feed
3
+ format: mp3
4
+ ---
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: feed
3
+ format: ogg
4
+ ---
5
+ {{ content }}
Binary file
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: jsonfeed
3
+ format: m4a
4
+ ---
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: jsonfeed
3
+ format: mp3
4
+ ---
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: jsonfeed
3
+ format: ogg
4
+ ---
5
+ {{ content }}
@@ -0,0 +1,30 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+ <?xml version="1.0" encoding="utf-8"?>
5
+ <feed xmlns="http://www.w3.org/2005/Atom">
6
+
7
+ <title>{{ site.title }}</title>
8
+ <link href="{{ site.url }}/general_feed.xml" rel="self"/>
9
+ <link href="{{ site.url }}"/>
10
+ <updated>{{ site.time | date_to_xmlschema }}</updated>
11
+ <id>{{ site.url }}/</id>
12
+ <author>
13
+ <name>{{ site.author }}</name>
14
+ <email>{{ site.email }}</email>
15
+ </author>
16
+
17
+ {% for post in site.posts %}
18
+ <entry>
19
+ <title>{{ post.title }}</title>
20
+ <link href="{{ site.url }}{{ post.url }}"/>
21
+ <updated>{{ post.date | date_to_xmlschema }}</updated>
22
+ <id>{{ site.url }}{{ post.id }}</id>
23
+ <content type="html">{{ post.content | xml_escape }}</content>
24
+ {% for file in post.audio %}
25
+ <link rel="enclosure" type="{{ file.first | mime_type }}" length="{{ file.last | file_size }}" href="{{ site.url }}/episodes/{{ file.last }}"/>
26
+ {% endfor %}
27
+ {{ site | flattr_atom:post }}
28
+ </entry>
29
+ {% endfor %}
30
+ </feed>
Binary file
Binary file
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>