├── _layouts
├── page.html
├── default.html
└── post.html
├── _posts
└── 2014-07-26-welcome-to-jekyll.markdown
├── index.html
├── _includes
├── head.html
├── header.html
└── footer.html
├── _config.yml
├── README.md
├── feed.xml
├── podcast.xml
└── css
└── main.css
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
9 |
10 |
11 | {{ content }}
12 |
13 |
14 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 |
6 |
7 |
8 | {% include header.html %}
9 |
10 |
11 |
12 | {{ content }}
13 |
14 |
15 |
16 | {% include footer.html %}
17 |
18 |
19 |
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
10 |
11 |
12 | {{ content }}
13 |
14 |
15 |
--------------------------------------------------------------------------------
/_posts/2014-07-26-welcome-to-jekyll.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "这是一个例子"
4 | subtitle: "这是副标题"
5 | date: 2014-07-26 17:30:26
6 | categories: example
7 | file: http://example.com/Podcast/1.mp3
8 | length: 4989537
9 | type: audio/mpeg
10 | explicit: no
11 | image: http://example.com/Podcast/1.jpg
12 | xml:
13 | - 3:59
14 | tag:
15 | - tag1
16 | - tag2
17 |
18 | ---
19 |
20 | ##这里请用Markdown来写内容。
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 |
Posts
8 |
9 |
10 | {% for post in site.posts %}
11 | -
12 | {{ post.date | date: "%b %-d, %Y" }}
13 | {{ post.title }}
14 |
15 | {% endfor %}
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # 网页设置 (请务必仔细修改)
2 | title: 制作播客 (Podcast) - 帮助与实践
3 | language: zh-cn
4 | defaultFileType: audio/mpeg
5 | explicit: no
6 | description: "从文件服务器、RSS Feed生成与存放、域名解析到Hello World、网页制作、发布到iTunes。开源的项目,向您介绍如何制作Podcast。"
7 | baseurl: "/podcast-example"
8 | url: "http://git.ze3kr.com"
9 |
10 | # 个人信息 (请务必仔细修改email和author的值,这会影响你的播客发布到iTunes后的界面显示,请填写能接收邮件的邮箱,以方便接收iTunes发来的邮件)
11 | email: podcast@ze3kr.com
12 | author: yourname
13 | twitter_username: ze3kr
14 | github_username: ZE3kr/podcast-example
15 |
16 | # 屏蔽设置 (在提交iTunes时,请将此值修改为no。如果值为Yes,则播客不会出现在iTunes)
17 | blockitunes: yes
18 |
19 | # 建站设置
20 | markdown: kramdown
21 | permalink: pretty
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: 介绍
4 | permalink: /about/
5 | ---
6 | 此项目**永久免费**,请考虑赞助我以提供更好的带宽和内容。
7 |
8 | Paypal: **_admin@ze3kr.com_**
9 |
10 | 支付宝: **_3math@ze3kr.com_**
11 |
12 | ***
13 |
14 | 制作播客 (Podcast) - 帮助与实践
15 | ===============
16 |
17 | #### 从文件服务器、RSS Feed生成与存放、域名解析到Hello World、网页制作、发布到iTunes
18 |
19 | 这个开源项目项目可以帮助你轻松了解如何制作播客。从最基本的购买域名开始,到使用Jekyll生成RSS Feed,带你了解如何制作播客,并且将其发布到iTunes Store,创建你播客的网页。无论你的播客是视频播客还是音频博客,这里都有详细的解决方案。
20 |
21 | [Fork这个存放处](https://github.com/ZE3kr/podcast-example/fork) - [添加一个Markdown文章并标记音频链接]() - 然后Commit,你的播客就更新了一集。
22 |
23 | ### [所有帮助文档/介绍请访问此存放处的Wiki](https://github.com/ZE3kr/podcast-example/wiki)
24 |
25 | 此项目永久免费,请考虑赞助我以提供更好的带宽和内容。
26 | Paypal: admin@ze3kr.com
27 | 支付宝: 3math@ze3kr.com
28 |
--------------------------------------------------------------------------------
/feed.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: none
3 | ---
4 |
5 |
6 |
7 | {{ site.title | xml_escape }}
8 | {{ site.description | xml_escape }}
9 | {{ site.url }}{{ site.baseurl }}/
10 |
11 | {{ site.time | date_to_rfc822 }}
12 | {{ site.time | date_to_rfc822 }}
13 | Jekyll v{{ jekyll.version }}
14 | {% for post in site.posts limit:10 %}
15 | -
16 | {{ post.title | xml_escape }}
17 | {{ post.content | xml_escape }}
18 | {{ post.date | date_to_rfc822 }}
19 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
20 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
21 | {% for tag in post.tags %}
22 | {{ tag | xml_escape }}
23 | {% endfor %}
24 | {% for cat in post.categories %}
25 | {{ cat | xml_escape }}
26 | {% endfor %}
27 |
28 | {% endfor %}
29 |
30 |
31 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
29 |
--------------------------------------------------------------------------------
/podcast.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: none
3 | ---
4 |
5 |
6 |
7 | {{ site.title | xml_escape }}
8 | {{ site.description | xml_escape }}
9 | {{ site.blockitunes }}
10 | {{ site.url }}{{ site.baseurl }}/
11 |
12 | {{ site.time | date_to_rfc822 }}
13 | {{ site.time | date_to_rfc822 }}
14 | Jekyll v{{ jekyll.version }}
15 |
16 |
17 | {{ site.language }}
18 | Copyright © 2014 公司/个人. All rights reserved. <
19 |
20 | {{ site.title | xml_escape }}
21 | {{ site.author }}
22 | {{ site.description | xml_escape }}
23 |
24 | {{ site.explicit }}
25 |
26 |
27 | {{ site.author }}
28 | {{ site.email }}
29 |
30 | {{ site.email }} ({{ site.author }})
31 | {{ site.email }} ({{ site.author }})
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | {% for post in site.posts limit:50 %}
44 | -
45 | {{ post.title | xml_escape }}
46 |
47 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
48 |
49 |
50 |
51 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
52 |
53 | {% for tag in post.tags %}
54 | {{ tag | xml_escape }}
55 | {% endfor %}
56 |
57 | {% for cat in post.categories %}
58 | {{ cat | xml_escape }}
59 | {% endfor %}
60 |
61 | {{ post.xml }}
62 |
63 | {% if post.file %}
64 |
65 | {% endif %}
66 |
67 | {{ post.date | date_to_rfc822 }}
68 |
69 | {% if post.explicit %}
70 | {{ post.explicit }}
71 | {% endif %}
72 |
73 |
74 |
75 | {% if post.image %}
76 |
77 | {% endif %}
78 |
79 | {% if post.author %}
80 |
81 | {% endif %}
82 |
83 | {% if post.subtitle %}
84 | {{ post.subtitle | xml_escape }}
85 | {% else %}
86 | {{ post.content | xml_escape }}
87 | {% endif %}
88 |
89 |
90 | {% endfor %}
91 |
92 |
93 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
62 |
--------------------------------------------------------------------------------
/css/main.css:
--------------------------------------------------------------------------------
1 | /* Base */
2 | /* ----------------------------------------------------------*/
3 |
4 | * {
5 | margin: 0;
6 | padding: 0;
7 | }
8 |
9 | html, body { height: 100%; }
10 |
11 | body {
12 | font-family: Helvetica, Arial, sans-serif;
13 | font-size: 16px;
14 | line-height: 1.5;
15 | font-weight: 300;
16 | background-color: #fdfdfd;
17 | }
18 |
19 | h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: 400; }
20 |
21 | a { color: #2a7ae2; text-decoration: none; }
22 | a:hover { color: #000; text-decoration: underline; }
23 | a:visited { color: #205caa; }
24 |
25 | /* Utility */
26 |
27 | .wrap:before,
28 | .wrap:after { content:""; display:table; }
29 | .wrap:after { clear: both; }
30 | .wrap {
31 | max-width: 800px;
32 | padding: 0 30px;
33 | margin: 0 auto;
34 | zoom: 1;
35 | }
36 |
37 |
38 | /* Layout Styles */
39 | /* ----------------------------------------------------------*/
40 |
41 | /* Site header */
42 |
43 | .site-header {
44 | border-top: 5px solid #333;
45 | border-bottom: 1px solid #e8e8e8;
46 | min-height: 56px;
47 | background-color: white;
48 | }
49 |
50 | .site-title,
51 | .site-title:hover,
52 | .site-title:visited {
53 | display: block;
54 | color: #333;
55 | font-size: 26px;
56 | letter-spacing: -1px;
57 | float: left;
58 | line-height: 56px;
59 | position: relative;
60 | z-index: 1;
61 | }
62 |
63 | .site-nav {
64 | float: right;
65 | line-height: 56px;
66 | }
67 |
68 | .site-nav .menu-icon { display: none; }
69 |
70 | .site-nav .page-link {
71 | margin-left: 20px;
72 | color: #727272;
73 | letter-spacing: -.5px;
74 | }
75 |
76 | /* Site footer */
77 |
78 | .site-footer {
79 | border-top: 1px solid #e8e8e8;
80 | padding: 30px 0;
81 | }
82 |
83 | .footer-heading {
84 | font-size: 18px;
85 | font-weight: 300;
86 | letter-spacing: -.5px;
87 | margin-bottom: 15px;
88 | }
89 |
90 | .site-footer .column { float: left; margin-bottom: 15px; }
91 |
92 | .footer-col-1 {
93 | width: 270px; /*fallback*/
94 | width: -webkit-calc(35% - 10px);
95 | width: -moz-calc(35% - 10px);
96 | width: -o-calc(35% - 10px);
97 | width: calc(35% - 10px);
98 | margin-right: 10px
99 | }
100 | .footer-col-2 {
101 | width: 175px; /*fallback*/
102 | width: -webkit-calc(23.125% - 10px);
103 | width: -moz-calc(23.125% - 10px);
104 | width: -o-calc(23.125% - 10px);
105 | width: calc(23.125% - 10px);
106 | margin-right: 10px
107 | }
108 | .footer-col-3 {
109 | width: 335px; /*fallback*/
110 | width: -webkit-calc(41.875%);
111 | width: -moz-calc(41.875%);
112 | width: -o-calc(41.875%);
113 | width: calc(41.875%);
114 | }
115 |
116 | .site-footer ul { list-style: none; }
117 |
118 | .site-footer li,
119 | .site-footer p {
120 | font-size: 15px;
121 | letter-spacing: -.3px;
122 | color: #828282;
123 | }
124 |
125 | .github-icon-svg,
126 | .twitter-icon-svg {
127 | display: inline-block;
128 | width: 16px;
129 | height: 16px;
130 | position: relative;
131 | top: 3px;
132 | }
133 |
134 |
135 | /* Page Content styles */
136 | /* ----------------------------------------------------------*/
137 |
138 | .page-content {
139 | padding: 30px 0;
140 | background-color: #fff;
141 | }
142 |
143 |
144 | /* Home styles */
145 | /* ----------------------------------------------------------*/
146 |
147 | .home h1 { margin-bottom: 25px; }
148 |
149 | .posts { list-style-type: none; }
150 |
151 | .posts li { margin-bottom: 30px; }
152 |
153 | .posts .post-link {
154 | font-size: 24px;
155 | letter-spacing: -1px;
156 | line-height: 1;
157 | }
158 |
159 | .posts .post-date {
160 | display: block;
161 | font-size: 15px;
162 | color: #818181;
163 | }
164 |
165 |
166 | /* Post styles */
167 | /* ----------------------------------------------------------*/
168 |
169 | .post-header { margin: 10px 0 30px; }
170 |
171 | .post-header h1 {
172 | font-size: 42px;
173 | letter-spacing: -1.75px;
174 | line-height: 1;
175 | font-weight: 300;
176 | }
177 |
178 | .post-header .meta {
179 | font-size: 15px;
180 | color: #818181;
181 | margin-top: 5px;
182 | }
183 |
184 | .post-content { margin: 0 0 30px; }
185 |
186 | .post-content > * { margin: 20px 0; }
187 |
188 |
189 | .post-content h1,
190 | .post-content h2,
191 | .post-content h3,
192 | .post-content h4,
193 | .post-content h5,
194 | .post-content h6 {
195 | line-height: 1;
196 | font-weight: 300;
197 | margin: 40px 0 20px;
198 | }
199 |
200 | .post-content h2 {
201 | font-size: 32px;
202 | letter-spacing: -1.25px;
203 | }
204 |
205 | .post-content h3 {
206 | font-size: 26px;
207 | letter-spacing: -1px;
208 | }
209 |
210 | .post-content h4 {
211 | font-size: 20px;
212 | letter-spacing: -1px;
213 | }
214 |
215 | .post-content blockquote {
216 | border-left: 4px solid #e8e8e8;
217 | padding-left: 20px;
218 | font-size: 18px;
219 | opacity: .6;
220 | letter-spacing: -1px;
221 | font-style: italic;
222 | margin: 30px 0;
223 | }
224 |
225 | .post-content ul,
226 | .post-content ol { padding-left: 20px; }
227 |
228 | .post pre,
229 | .post code {
230 | border: 1px solid #d5d5e9;
231 | background-color: #eef;
232 | padding: 8px 12px;
233 | -webkit-border-radius: 3px;
234 | -moz-border-radius: 3px;
235 | border-radius: 3px;
236 | font-size: 15px;
237 | overflow:scroll;
238 | }
239 |
240 | .post code { padding: 1px 5px; }
241 |
242 | .post ul,
243 | .post ol { margin-left: 1.35em; }
244 |
245 | .post pre code {
246 | border: 0;
247 | padding-right: 0;
248 | padding-left: 0;
249 | }
250 |
251 | /* terminal */
252 | .post pre.terminal {
253 | border: 1px solid #000;
254 | background-color: #333;
255 | color: #FFF;
256 | -webkit-border-radius: 3px;
257 | -moz-border-radius: 3px;
258 | border-radius: 3px;
259 | }
260 |
261 | .post pre.terminal code { background-color: #333; }
262 |
263 | /* Syntax highlighting styles */
264 | /* ----------------------------------------------------------*/
265 |
266 | .highlight { background: #ffffff; }
267 | .highlight .c { color: #999988; font-style: italic } /* Comment */
268 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
269 | .highlight .k { font-weight: bold } /* Keyword */
270 | .highlight .o { font-weight: bold } /* Operator */
271 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
272 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
273 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
274 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
275 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
276 | .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
277 | .highlight .ge { font-style: italic } /* Generic.Emph */
278 | .highlight .gr { color: #aa0000 } /* Generic.Error */
279 | .highlight .gh { color: #999999 } /* Generic.Heading */
280 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
281 | .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
282 | .highlight .go { color: #888888 } /* Generic.Output */
283 | .highlight .gp { color: #555555 } /* Generic.Prompt */
284 | .highlight .gs { font-weight: bold } /* Generic.Strong */
285 | .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
286 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */
287 | .highlight .kc { font-weight: bold } /* Keyword.Constant */
288 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */
289 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
290 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */
291 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
292 | .highlight .m { color: #009999 } /* Literal.Number */
293 | .highlight .s { color: #d14 } /* Literal.String */
294 | .highlight .na { color: #008080 } /* Name.Attribute */
295 | .highlight .nb { color: #0086B3 } /* Name.Builtin */
296 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
297 | .highlight .no { color: #008080 } /* Name.Constant */
298 | .highlight .ni { color: #800080 } /* Name.Entity */
299 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
300 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
301 | .highlight .nn { color: #555555 } /* Name.Namespace */
302 | .highlight .nt { color: #000080 } /* Name.Tag */
303 | .highlight .nv { color: #008080 } /* Name.Variable */
304 | .highlight .ow { font-weight: bold } /* Operator.Word */
305 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */
306 | .highlight .mf { color: #009999 } /* Literal.Number.Float */
307 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */
308 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */
309 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */
310 | .highlight .sb { color: #d14 } /* Literal.String.Backtick */
311 | .highlight .sc { color: #d14 } /* Literal.String.Char */
312 | .highlight .sd { color: #d14 } /* Literal.String.Doc */
313 | .highlight .s2 { color: #d14 } /* Literal.String.Double */
314 | .highlight .se { color: #d14 } /* Literal.String.Escape */
315 | .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
316 | .highlight .si { color: #d14 } /* Literal.String.Interpol */
317 | .highlight .sx { color: #d14 } /* Literal.String.Other */
318 | .highlight .sr { color: #009926 } /* Literal.String.Regex */
319 | .highlight .s1 { color: #d14 } /* Literal.String.Single */
320 | .highlight .ss { color: #990073 } /* Literal.String.Symbol */
321 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
322 | .highlight .vc { color: #008080 } /* Name.Variable.Class */
323 | .highlight .vg { color: #008080 } /* Name.Variable.Global */
324 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */
325 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
326 |
327 |
328 | /* media queries */
329 | /* ----------------------------------------------------------*/
330 |
331 |
332 | @media screen and (max-width: 750px) {
333 |
334 | .footer-col-1 { width: 50%; }
335 |
336 | .footer-col-2 {
337 | width: 45%; /*fallback*/
338 | width: -webkit-calc(50% - 10px);
339 | width: -moz-calc(50% - 10px);
340 | width: -o-calc(50% - 10px);
341 | width: calc(50% - 10px);
342 | margin-right: 0;
343 | }
344 |
345 | .site-footer .column.footer-col-3 {
346 | width: auto;
347 | float: none;
348 | clear: both;
349 | }
350 |
351 | }
352 |
353 | @media screen and (max-width: 600px) {
354 |
355 | .wrap { padding: 0 12px; }
356 |
357 | .site-nav {
358 | position: fixed;
359 | z-index: 10;
360 | top: 14px; right: 8px;
361 | background-color: white;
362 | -webkit-border-radius: 5px;
363 | -moz-border-radius: 5px;
364 | border-radius: 5px;
365 | border: 1px solid #e8e8e8;
366 | }
367 |
368 | .site-nav .menu-icon {
369 | display: block;
370 | font-size: 24px;
371 | color: #505050;
372 | float: right;
373 | width: 36px;
374 | text-align: center;
375 | line-height: 36px;
376 | }
377 |
378 | .site-nav .menu-icon svg { width: 18px; height: 16px; }
379 |
380 | .site-nav .trigger {
381 | clear: both;
382 | margin-bottom: 5px;
383 | display: none;
384 | }
385 |
386 | .site-nav:hover .trigger { display: block; }
387 |
388 | .site-nav .page-link {
389 | display: block;
390 | text-align: right;
391 | line-height: 1.25;
392 | padding: 5px 10px;
393 | margin: 0;
394 | }
395 |
396 | .post-header h1 { font-size: 36px; }
397 | .post-content h2 { font-size: 28px; }
398 | .post-content h3 { font-size: 22px; }
399 | .post-content h4 { font-size: 18px; }
400 | .post-content blockquote { padding-left: 10px; }
401 | .post-content ul,
402 | .post-content ol { padding-left: 10px; }
403 |
404 | .site-footer .column {
405 | float: none;
406 | clear: both;
407 | width: auto;
408 | margin: 0 0 15px; }
409 |
410 | }
411 |
--------------------------------------------------------------------------------