dropcaster 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gemnasium.yml +1 -0
- data/.gitignore +10 -0
- data/.ruby-version +1 -0
- data/.travis.yml +8 -5
- data/CONTRIBUTING.md +18 -0
- data/Dockerfile +4 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +167 -53
- data/LICENSE.txt +1 -1
- data/README.markdown +27 -37
- data/Rakefile +40 -0
- data/{TODO → TODO.markdown} +0 -0
- data/VISION.markdown +52 -18
- data/Vagrantfile +8 -0
- data/bin/dropcaster +1 -1
- data/dropcaster.gemspec +14 -10
- data/lib/dropcaster/contributors.rb +12 -0
- data/lib/dropcaster/version.rb +1 -1
- data/lib/dropcaster.rb +1 -0
- data/templates/channel.rss.erb +2 -1
- data/website/.gitignore +2 -0
- data/website/README.markdown +8 -0
- data/website/_config.yml +14 -0
- data/website/_front_matter/contributing.yaml +5 -0
- data/website/_front_matter/index.yaml +3 -0
- data/website/_front_matter/vision.yaml +5 -0
- data/website/_includes/footer.html +55 -0
- data/website/_includes/head.html +11 -0
- data/website/_includes/header.html +27 -0
- data/website/_layouts/default.html +20 -0
- data/website/_layouts/page.html +14 -0
- data/website/_layouts/post.html +15 -0
- data/website/_sass/_base.scss +204 -0
- data/website/_sass/_layout.scss +236 -0
- data/website/_sass/_syntax-highlighting.scss +67 -0
- data/website/css/main.scss +49 -0
- data/website/deploy.sh +23 -0
- data/website/feed.xml +30 -0
- metadata +59 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cec2090bfceabaa5d496d436d01de7a461d15994
|
4
|
+
data.tar.gz: cc1f573ef698faaba67619841dff8752deafcdfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 999aeb641c2033cdc059f6d936a26c0288ca91b0f7d41baad96f4eb7b57b566aa675ec858691871d4c33963a077771fe1a429b33f1ece628b672c7a3f7ae706f
|
7
|
+
data.tar.gz: 53e3918c3ae4246007170e28387f85ff13695b8d7c2cc3c8f4078f08ebd7cb0de0a48b92bd8b230dee947172525c0f98020cd8b2e07324ffa809fb55d8fe9f1e
|
data/.gemnasium.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
project_slug: nerab/dropcaster
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.4.1
|
data/.travis.yml
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
language: ruby
|
2
|
-
#bundler_args: --without development
|
3
2
|
rvm:
|
4
|
-
|
5
|
-
|
6
|
-
-
|
7
|
-
|
3
|
+
- 2.4.1
|
4
|
+
script:
|
5
|
+
- bundle exec rake web:generate
|
6
|
+
after_success:
|
7
|
+
- test $TRAVIS_PULL_REQUEST == "false" && test $TRAVIS_BRANCH == "master" && bash website/deploy.sh
|
8
|
+
env:
|
9
|
+
global:
|
10
|
+
secure: Y4o/l7Z+8iJk0I5HEh2a9yKiIE1jfB/ChKqWfJTSXXoxTVwA5oLl4+OTR/2V8fvZKSufPr4fLdvwji0ysicDLdwlMYCCBPEZg0wGyGC6qZFHEkNB1BLXHh2Bu3srBjblw8hk12Q72MY6wHtl6ZZZ3qVTwaPVcCWSJMLJGRO9fWA=
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Contributing to Dropcaster
|
2
|
+
|
3
|
+
Dropcaster is hosted at [Github](http://github.com/nerab/dropcaster). We highly welcome bug reports, documentation as well as code updates and any other contributions.
|
4
|
+
|
5
|
+
Please follow these guidelines if you want to start working on Dropcaster:
|
6
|
+
|
7
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
8
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
9
|
+
* Fork the project
|
10
|
+
* Start a feature/bugfix branch
|
11
|
+
* Commit and push until you are happy with your contribution
|
12
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
13
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
14
|
+
|
15
|
+
Dropcaster follows the [Pull Request Hack](http://felixge.de/2013/03/11/the-pull-request-hack.html) - you might end up getting commit access to Dropcaster ;-)
|
16
|
+
|
17
|
+
Thanks to the following awesome people for contributing to Dropcaster:
|
18
|
+
|
data/Dockerfile
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dropcaster (0.0.
|
4
|
+
dropcaster (0.0.7)
|
5
5
|
activesupport
|
6
6
|
bundler
|
7
7
|
ruby-mp3info
|
@@ -9,24 +9,63 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
|
12
|
+
RedCloth (4.2.9)
|
13
|
+
RedCloth (4.2.9-x86-mingw32)
|
14
|
+
activesupport (5.1.1)
|
15
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
16
|
i18n (~> 0.7)
|
14
|
-
json (~> 1.7, >= 1.7.7)
|
15
17
|
minitest (~> 5.1)
|
16
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
17
18
|
tzinfo (~> 1.1)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
addressable (2.3.8)
|
20
|
+
ast (2.3.0)
|
21
|
+
blankslate (2.1.2.4)
|
22
|
+
byebug (9.0.6)
|
23
|
+
classifier-reborn (2.1.0)
|
24
|
+
fast-stemmer (~> 1.0)
|
25
|
+
coderay (1.1.1)
|
26
|
+
coffee-script (2.4.1)
|
27
|
+
coffee-script-source
|
28
|
+
execjs
|
29
|
+
coffee-script-source (1.12.2)
|
30
|
+
colorator (0.1)
|
31
|
+
concurrent-ruby (1.0.5)
|
32
|
+
ethon (0.10.1)
|
33
|
+
ffi (>= 1.3.0)
|
34
|
+
execjs (2.7.0)
|
35
|
+
faraday (0.9.2)
|
36
|
+
multipart-post (>= 1.2, < 3)
|
37
|
+
fast-stemmer (1.0.2)
|
38
|
+
ffi (1.9.18)
|
39
|
+
ffi (1.9.18-x86-mingw32)
|
26
40
|
formatador (0.2.5)
|
27
|
-
|
41
|
+
gemoji (2.1.0)
|
42
|
+
github-pages (39)
|
43
|
+
RedCloth (= 4.2.9)
|
44
|
+
github-pages-health-check (~> 0.2)
|
45
|
+
jekyll (= 2.4.0)
|
46
|
+
jekyll-coffeescript (= 1.0.1)
|
47
|
+
jekyll-feed (= 0.3.1)
|
48
|
+
jekyll-mentions (= 0.2.1)
|
49
|
+
jekyll-redirect-from (= 0.8.0)
|
50
|
+
jekyll-sass-converter (= 1.3.0)
|
51
|
+
jekyll-sitemap (= 0.8.1)
|
52
|
+
jemoji (= 0.5.0)
|
53
|
+
kramdown (= 1.5.0)
|
54
|
+
liquid (= 2.6.2)
|
55
|
+
maruku (= 0.7.0)
|
56
|
+
mercenary (~> 0.3)
|
57
|
+
pygments.rb (= 0.6.3)
|
58
|
+
rdiscount (= 2.1.7)
|
59
|
+
redcarpet (= 3.3.2)
|
60
|
+
terminal-table (~> 1.4)
|
61
|
+
github-pages-health-check (0.6.1)
|
62
|
+
addressable (~> 2.3)
|
63
|
+
net-dns (~> 0.8)
|
64
|
+
public_suffix (~> 1.4)
|
65
|
+
typhoeus (~> 0.7)
|
66
|
+
guard (2.14.1)
|
28
67
|
formatador (>= 0.2.4)
|
29
|
-
listen (
|
68
|
+
listen (>= 2.7, < 4.0)
|
30
69
|
lumberjack (~> 1.0)
|
31
70
|
nenv (~> 0.1)
|
32
71
|
notiffany (~> 0.0)
|
@@ -38,56 +77,126 @@ GEM
|
|
38
77
|
guard (~> 2.2)
|
39
78
|
guard-compat (~> 1.1)
|
40
79
|
guard-compat (1.2.1)
|
41
|
-
guard-minitest (2.4.
|
80
|
+
guard-minitest (2.4.6)
|
42
81
|
guard-compat (~> 1.2)
|
43
82
|
minitest (>= 3.0)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
83
|
+
html-pipeline (1.9.0)
|
84
|
+
activesupport (>= 2)
|
85
|
+
nokogiri (~> 1.4)
|
86
|
+
i18n (0.8.1)
|
87
|
+
jekyll (2.4.0)
|
88
|
+
classifier-reborn (~> 2.0)
|
89
|
+
colorator (~> 0.1)
|
90
|
+
jekyll-coffeescript (~> 1.0)
|
91
|
+
jekyll-gist (~> 1.0)
|
92
|
+
jekyll-paginate (~> 1.0)
|
93
|
+
jekyll-sass-converter (~> 1.0)
|
94
|
+
jekyll-watch (~> 1.1)
|
95
|
+
kramdown (~> 1.3)
|
96
|
+
liquid (~> 2.6.1)
|
97
|
+
mercenary (~> 0.3.3)
|
98
|
+
pygments.rb (~> 0.6.0)
|
99
|
+
redcarpet (~> 3.1)
|
100
|
+
safe_yaml (~> 1.0)
|
101
|
+
toml (~> 0.1.0)
|
102
|
+
jekyll-coffeescript (1.0.1)
|
103
|
+
coffee-script (~> 2.2)
|
104
|
+
jekyll-feed (0.3.1)
|
105
|
+
jekyll-gist (1.3.5)
|
106
|
+
jekyll-mentions (0.2.1)
|
107
|
+
html-pipeline (~> 1.9.0)
|
108
|
+
jekyll (~> 2.0)
|
109
|
+
jekyll-paginate (1.1.0)
|
110
|
+
jekyll-redirect-from (0.8.0)
|
111
|
+
jekyll (>= 2.0)
|
112
|
+
jekyll-sass-converter (1.3.0)
|
113
|
+
sass (~> 3.2)
|
114
|
+
jekyll-sitemap (0.8.1)
|
115
|
+
jekyll-watch (1.5.0)
|
116
|
+
listen (~> 3.0, < 3.1)
|
117
|
+
jemoji (0.5.0)
|
118
|
+
gemoji (~> 2.0)
|
119
|
+
html-pipeline (~> 1.9)
|
120
|
+
jekyll (>= 2.0)
|
121
|
+
kramdown (1.5.0)
|
122
|
+
libnotify (0.9.3)
|
49
123
|
ffi (>= 1.0.11)
|
50
|
-
libxml-ruby (
|
51
|
-
|
52
|
-
|
53
|
-
rb-fsevent (>= 0.9.
|
54
|
-
rb-inotify (>= 0.9)
|
55
|
-
lumberjack (1.0.
|
124
|
+
libxml-ruby (3.0.0)
|
125
|
+
liquid (2.6.2)
|
126
|
+
listen (3.0.8)
|
127
|
+
rb-fsevent (~> 0.9, >= 0.9.4)
|
128
|
+
rb-inotify (~> 0.9, >= 0.9.7)
|
129
|
+
lumberjack (1.0.12)
|
130
|
+
maruku (0.7.0)
|
131
|
+
mercenary (0.3.6)
|
56
132
|
method_source (0.8.2)
|
57
|
-
|
58
|
-
|
59
|
-
|
133
|
+
mini_portile2 (2.1.0)
|
134
|
+
minitest (5.10.2)
|
135
|
+
multipart-post (2.0.0)
|
136
|
+
nenv (0.3.0)
|
137
|
+
net-dns (0.8.0)
|
138
|
+
nokogiri (1.7.2)
|
139
|
+
mini_portile2 (~> 2.1.0)
|
140
|
+
nokogiri (1.7.2-x86-mingw32)
|
141
|
+
mini_portile2 (~> 2.1.0)
|
142
|
+
notiffany (0.1.1)
|
60
143
|
nenv (~> 0.1)
|
61
144
|
shellany (~> 0.0)
|
62
|
-
|
145
|
+
octokit (3.8.0)
|
146
|
+
sawyer (~> 0.6.0, >= 0.5.3)
|
147
|
+
parser (2.4.0.0)
|
148
|
+
ast (~> 2.2)
|
149
|
+
parslet (1.5.0)
|
150
|
+
blankslate (~> 2.0)
|
151
|
+
posix-spawn (0.3.13)
|
152
|
+
powerpack (0.1.1)
|
153
|
+
pry (0.10.4)
|
63
154
|
coderay (~> 1.1.0)
|
64
155
|
method_source (~> 0.8.1)
|
65
156
|
slop (~> 3.4)
|
66
|
-
pry (
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
rb-
|
78
|
-
rb-inotify (0.9.5)
|
157
|
+
pry-byebug (3.4.2)
|
158
|
+
byebug (~> 9.0)
|
159
|
+
pry (~> 0.10)
|
160
|
+
public_suffix (1.5.3)
|
161
|
+
pygments.rb (0.6.3)
|
162
|
+
posix-spawn (~> 0.3.6)
|
163
|
+
yajl-ruby (~> 1.2.0)
|
164
|
+
rainbow (2.2.2)
|
165
|
+
rake
|
166
|
+
rake (12.0.0)
|
167
|
+
rb-fsevent (0.9.8)
|
168
|
+
rb-inotify (0.9.8)
|
79
169
|
ffi (>= 0.5.0)
|
80
|
-
rb-readline (0.5.
|
81
|
-
|
170
|
+
rb-readline (0.5.4)
|
171
|
+
rdiscount (2.1.7)
|
172
|
+
redcarpet (3.3.2)
|
173
|
+
rubocop (0.48.1)
|
174
|
+
parser (>= 2.3.3.1, < 3.0)
|
175
|
+
powerpack (~> 0.1)
|
176
|
+
rainbow (>= 1.99.1, < 3.0)
|
177
|
+
ruby-progressbar (~> 1.7)
|
178
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
179
|
+
ruby-mp3info (0.8.10)
|
180
|
+
ruby-progressbar (1.8.1)
|
181
|
+
safe_yaml (1.0.4)
|
182
|
+
sass (3.4.24)
|
183
|
+
sawyer (0.6.0)
|
184
|
+
addressable (~> 2.3.5)
|
185
|
+
faraday (~> 0.8, < 0.10)
|
82
186
|
shellany (0.0.1)
|
83
187
|
slop (3.6.0)
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
188
|
+
terminal-table (1.8.0)
|
189
|
+
unicode-display_width (~> 1.1, >= 1.1.1)
|
190
|
+
thor (0.19.4)
|
191
|
+
thread_safe (0.3.6)
|
192
|
+
toml (0.1.2)
|
193
|
+
parslet (~> 1.5.0)
|
194
|
+
typhoeus (0.8.0)
|
195
|
+
ethon (>= 0.8.0)
|
196
|
+
tzinfo (1.2.3)
|
89
197
|
thread_safe (~> 0.1)
|
90
|
-
|
198
|
+
unicode-display_width (1.2.1)
|
199
|
+
yajl-ruby (1.2.2)
|
91
200
|
|
92
201
|
PLATFORMS
|
93
202
|
ruby
|
@@ -95,15 +204,20 @@ PLATFORMS
|
|
95
204
|
|
96
205
|
DEPENDENCIES
|
97
206
|
dropcaster!
|
207
|
+
github-pages
|
98
208
|
guard-bundler
|
99
209
|
guard-minitest
|
100
210
|
libnotify
|
101
211
|
libxml-ruby
|
102
212
|
minitest
|
213
|
+
octokit
|
103
214
|
pry
|
104
|
-
pry-
|
105
|
-
pry-stack_explorer
|
215
|
+
pry-byebug
|
106
216
|
rake
|
107
217
|
rb-fsevent
|
108
218
|
rb-inotify
|
109
219
|
rb-readline
|
220
|
+
rubocop
|
221
|
+
|
222
|
+
BUNDLED WITH
|
223
|
+
1.14.6
|
data/LICENSE.txt
CHANGED
data/README.markdown
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/nerab/dropcaster.png?branch=master)](https://travis-ci.org/nerab/dropcaster)
|
4
4
|
|
5
|
-
_This project is developed with the [readme-driven development](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html) method. This file describes the functionality that is actually implemented, whereas the [
|
5
|
+
_This project is developed with the [readme-driven development](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html) method. This file describes the functionality that is actually implemented, whereas the [vision](VISION.markdown) reflects where the tool should go._
|
6
6
|
|
7
|
-
[Dropcaster](http://
|
7
|
+
[Dropcaster](http://nerab.github.io/dropcaster/) is a podcast feed generator for the command line. It is most simple to use with Dropbox, but works equally well with any other (static file) web hoster.
|
8
8
|
|
9
9
|
Author: Nicolas E. Rabenau <nerab@gmx.at>
|
10
10
|
|
11
|
-
# What is the problem Dropcaster is trying to solve?
|
11
|
+
# What is the problem that Dropcaster is trying to solve?
|
12
12
|
|
13
13
|
You have a number of podcast episodes that you would like to publish as a feed. Nothing else - no fancy website, no stats, nothing but the pure podcast.
|
14
14
|
|
@@ -28,13 +28,13 @@ Once installed, you can use the `dropcaster` command to generate a new podcast f
|
|
28
28
|
|
29
29
|
Once Dropcaster is installed, the only two other things you will need are a channel definition and one or more mp3 files to publish.
|
30
30
|
|
31
|
-
Let's start with the channel definition. It is a simple [YAML](http://yaml.org/) file that holds the general information about your podcast channel. According to the [RSS 2.0 spec](http://
|
31
|
+
Let's start with the channel definition. It is a simple [YAML](http://yaml.org/) file that holds the general information about your podcast channel. According to the [RSS 2.0 spec](http://blogs.law.harvard.edu/tech/rss#requiredChannelElements), the only mandatory information that your channel absolutely needs are a title, a description and a link to a web site where the channel belongs to.
|
32
32
|
|
33
33
|
The simplest channel file looks like this:
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
:title: 'All About Everything'
|
36
|
+
:description: 'A show about everything'
|
37
|
+
:url: 'http://www.example.com/podcasts/everything/index.html'
|
38
38
|
|
39
39
|
Store this file as channel.yml in the same directory where the mp3 files of your podcast reside. The channel definition is expected to be present in the same directory as your mp3 files, but this can be overridden using a command line switch. You can find a [more elaborate example](http://github.com/nerab/dropcaster/blob/master/doc/sample-channel.yml) for the channel definition in the doc folder of the Dropcaster gem. You can find it by running `gem open dropcaster`.
|
40
40
|
|
@@ -45,21 +45,21 @@ With all required pieces in place, we could generate the podcast feed. Just befo
|
|
45
45
|
$ cd ~/Dropbox/Public
|
46
46
|
$ dropcaster
|
47
47
|
|
48
|
-
(The above lines assume that you are using Dropbox, and that there is at least one mp3 file in
|
48
|
+
(The above lines assume that you are using Dropbox, and that there is at least one mp3 file in `~/Dropbox/Public`).
|
49
49
|
|
50
50
|
Dropcaster will print the feed to standard-out, without writing it to disk. When you are happy with the results, call Dropcaster again, but redirect the output to a file, this time:
|
51
51
|
|
52
52
|
$ dropcaster > index.rss
|
53
53
|
|
54
|
-
If all went well, you will now have a valid podcast feed in your Dropbox, listing all mp3 files as podcast episodes. Please see the section [Publish Your Feed] for details on how to find the public URL of your feed.
|
54
|
+
If all went well, you will now have a valid podcast feed in your Dropbox, listing all mp3 files as podcast episodes. Please see the section [Publish Your Feed](#publish-your-feed) for details on how to find the public URL of your feed.
|
55
55
|
|
56
56
|
# Use Cases
|
57
57
|
|
58
58
|
## Publish a New Episode
|
59
59
|
|
60
|
-
1. Drop the mp3 file into the Dropbox Public folder (e.g.
|
60
|
+
1. Drop the mp3 file into the Dropbox Public folder (e.g. `~/Dropbox/Public`), and then run the following command in the directory where the mp3 files reside:
|
61
61
|
|
62
|
-
|
62
|
+
$ dropcaster > index.rss
|
63
63
|
|
64
64
|
1. Dropbox will sync the updated index.rss file to its web server and any podcast client will download the new episode as soon as it has loaded the updated index.rss.
|
65
65
|
|
@@ -67,19 +67,19 @@ If all went well, you will now have a valid podcast feed in your Dropbox, listin
|
|
67
67
|
|
68
68
|
Remove the mp3 you want to delete from the Dropbox Public folder, and then run the following command in the directory where the remaining mp3 files reside:
|
69
69
|
|
70
|
-
|
70
|
+
$ dropcaster > index.rss
|
71
71
|
|
72
72
|
## Replace an Episode With an Updated File
|
73
73
|
|
74
74
|
In the Dropbox Public folder, replace the mp3 you want to update with a new version, and then run the following command in the directory where the mp3 files reside:
|
75
75
|
|
76
|
-
|
76
|
+
$ dropcaster > index.rss
|
77
77
|
|
78
78
|
## Publish Your Feed
|
79
79
|
|
80
80
|
1. Re-generate the feed to make sure the it is up to date (see above):
|
81
81
|
|
82
|
-
|
82
|
+
$ dropcaster > index.rss
|
83
83
|
|
84
84
|
1. In your Dropbox Public folder, right-click the index.rss and select "Dropbox / Copy public link". This copies the public, HTTP-addressable link to your podcast into the clipboard.
|
85
85
|
1. Publish this link and tell people to subscribe to it.
|
@@ -94,19 +94,19 @@ For example, in order to generate a feed that only publishes MP3 files where the
|
|
94
94
|
|
95
95
|
## Publish More than One Feed
|
96
96
|
|
97
|
-
|
98
|
-
|
97
|
+
$ dropcaster project1 > project1.rss
|
98
|
+
$ dropcaster project2 > project2.rss
|
99
99
|
|
100
100
|
or
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
102
|
+
$ cd project1
|
103
|
+
$ dropcaster > index.rss
|
104
|
+
$ cd ../project2
|
105
|
+
$ dropcaster > index.rss
|
106
106
|
|
107
107
|
## Include Episodes From Two Subdirectories Into a Single Feed
|
108
108
|
|
109
|
-
|
109
|
+
$ dropcaster project1 project2 > index.rss
|
110
110
|
|
111
111
|
# Advanced features
|
112
112
|
|
@@ -118,7 +118,7 @@ However, it is still possible to override Dropcaster's behavior in many ways. Yo
|
|
118
118
|
|
119
119
|
In order to find out about all the options, simply run
|
120
120
|
|
121
|
-
|
121
|
+
$ dropcaster --help
|
122
122
|
|
123
123
|
## Using custom channel templates
|
124
124
|
|
@@ -130,11 +130,11 @@ It is also possible to customize the channel by supplying an alternative channel
|
|
130
130
|
|
131
131
|
Besides generating an RSS feed, dropcaster can also generate HTML that can be used as a home page for your podcast. The template directory contains a sample template that can be used to get started:
|
132
132
|
|
133
|
-
|
133
|
+
$ dropcaster --channel-template templates/channel.html.erb
|
134
134
|
|
135
135
|
As discussed above, the output of this command can be written to a file, too:
|
136
136
|
|
137
|
-
|
137
|
+
$ dropcaster --channel-template templates/channel.html.erb > ~/Dropbox/Public/allabouteverything.html
|
138
138
|
|
139
139
|
Dropcaster works exactly the same, whether it generates an RSS feed or a HTML page. Therefore, all options discussed before also apply when generating HTML.
|
140
140
|
|
@@ -150,8 +150,6 @@ The whole concept of Dropcaster works perfectly fine without Dropbox. Just run t
|
|
150
150
|
|
151
151
|
Dropcaster uses a rather simple approach to uniquely identify the episodes. It simply generates a SHA1 hash of the mp3 file. If it changes, for whatever reason (even if only a tag was changed), the episode will get a new UUID, and any podcatcher will fetch the episode again (which is what you want, in most cases).
|
152
152
|
|
153
|
-
Modifying the sidecar file does not change the UUID, because it only affects the feed and not the episode itself.
|
154
|
-
|
155
153
|
## I Don't Like the Output Format that Dropcaster produces
|
156
154
|
|
157
155
|
Dropcaster uses an ERB template to generate the XML feed. The template was written so that it is easy to understand, but not necessarily in a way that would make the output rather nice-looking. That should not be an issue, as long as the XML is correct.
|
@@ -164,18 +162,10 @@ For writing the output to a file, just redirect the ouput of the above command:
|
|
164
162
|
|
165
163
|
dropcaster | xmllint --format - > index.rss
|
166
164
|
|
167
|
-
#
|
168
|
-
|
169
|
-
Dropcaster is hosted at [Github](http://github.com/nerab/dropcaster):
|
165
|
+
# Web site
|
170
166
|
|
171
|
-
|
172
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
173
|
-
* Fork the project
|
174
|
-
* Start a feature/bugfix branch
|
175
|
-
* Commit and push until you are happy with your contribution
|
176
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
177
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
167
|
+
Dropcaster uses Steve Klabnik's [approach](https://github.com/steveklabnik/automatically_update_github_pages_with_travis_example) for publishing the site with [Travis CI](http://travis-ci.org/).
|
178
168
|
|
179
169
|
# Copyright
|
180
170
|
|
181
|
-
Copyright (c) 2011-
|
171
|
+
Copyright (c) 2011-2015 Nicolas E. Rabenau. See [LICENSE.txt](https://raw.github.com/nerab/dropcaster/master/LICENSE.txt) for further details.
|
data/Rakefile
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'rake/testtask'
|
5
|
+
require 'rake/clean'
|
6
|
+
require 'dropcaster'
|
5
7
|
|
6
8
|
Rake::TestTask.new(:test) do |test|
|
7
9
|
test.libs << 'test'
|
@@ -9,3 +11,41 @@ Rake::TestTask.new(:test) do |test|
|
|
9
11
|
end
|
10
12
|
|
11
13
|
task :default => :test
|
14
|
+
|
15
|
+
namespace :web do
|
16
|
+
file 'website/index.markdown' do |f|
|
17
|
+
concat 'website/_front_matter/index.yaml', 'README.markdown', f
|
18
|
+
end
|
19
|
+
CLOBBER << 'website/index.markdown'
|
20
|
+
|
21
|
+
file 'website/vision.markdown' do |f|
|
22
|
+
concat 'website/_front_matter/vision.yaml', 'VISION.markdown', f
|
23
|
+
end
|
24
|
+
CLOBBER << 'website/vision.markdown'
|
25
|
+
|
26
|
+
file 'website/contributors.markdown' do |f|
|
27
|
+
File.write('website/contributors.markdown', Dropcaster.contributors)
|
28
|
+
end
|
29
|
+
CLOBBER << 'website/contributors.markdown'
|
30
|
+
|
31
|
+
file 'website/contributing.md' => 'website/contributors.markdown' do |f|
|
32
|
+
concat 'website/_front_matter/contributing.yaml', 'CONTRIBUTING.md', f
|
33
|
+
concat 'website/contributors.markdown', f
|
34
|
+
end
|
35
|
+
CLOBBER << 'website/contributing.md'
|
36
|
+
|
37
|
+
desc "Generate web page"
|
38
|
+
task :generate => ['website/index.markdown', 'website/vision.markdown', 'website/contributing.md'] do
|
39
|
+
cd 'website' do
|
40
|
+
`bundle exec jekyll build`
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def concat(*files)
|
46
|
+
File.open(files.pop.to_s, 'a') do |f|
|
47
|
+
files.each do |src|
|
48
|
+
f << File.read(src)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/{TODO → TODO.markdown}
RENAMED
File without changes
|