1+ <?xml version =" 1.0" encoding =" utf-8" ?>
2+ <xsl : stylesheet version =" 2.0" xmlns : xsl =" http://www.w3.org/1999/XSL/Transform" xmlns : itunes =" http://www.itunes.com/dtds/podcast-1.0.dtd" >
3+ <xsl : output method =" html" version =" 1.0" encoding =" UTF-8" indent =" yes" />
4+ <xsl : template match =" /" >
5+ <html xmlns =" http://www.w3.org/1999/xhtml" >
6+ <head >
7+ <title >
8+ <xsl : value-of select =" /rss/channel/title" /> RSS Feed
9+ </title >
10+ <meta http-equiv =" Content-Type" content =" text/html; charset=utf-8" />
11+ <style type =" text/css" >
12+ body {
13+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
14+ font-size: 14px;
15+ color: #666666;
16+ line-height: 20px
17+ padding: 15px;
18+ }
19+ a, a:link, a:visited {
20+ color: #92C13C;
21+ color: #0000EE;
22+ text-decoration: none;
23+ text-decoration: underline;
24+ }
25+ a:hover {
26+ color: #578600;
27+ color: #0000EE;
28+ text-decoration: none;
29+ }
30+ .alert {
31+ color: #999999;
32+ font-size: 11px;
33+ margin-bottom: 20px;
34+ text-align: center;
35+ }
36+ .container {
37+ max-width: 850px;
38+ margin: 0 auto;
39+ background: #fff;
40+ border-radius: 4px;
41+ padding: 15px;
42+ }
43+ .podcast-container {
44+ background: #FAFAFA;
45+ border: 1px solid #EAEAEA;
46+ border-radius: 5px;
47+ display: flex;
48+ padding: 15px;
49+ }
50+ .podcast-image {
51+ margin-right: 30px;
52+ width: 150px;
53+ }
54+ .podcast-image img {
55+ width: 150px;
56+ height: auto;
57+ border-radius: 5px;
58+ }
59+ .podcast-title {
60+ color: #222222;
61+ font-size: 25px;
62+ line-height: 30px;
63+ margin: 10px 0 0 0;
64+ }
65+ .podcast-description {
66+ line-height: 19px;
67+ margin-top: 10px;
68+ }
69+ .item {
70+ clear: both;
71+ border-bottom: 1px solid #EAEAEA;
72+ padding: 30px 0;
73+ }
74+ .episode-title {
75+ color: #222222;
76+ font-size: 20px;
77+ line-height: 25px;
78+ margin: 0 0 5px 0;
79+ }
80+ .episode-meta {
81+ font-size: 11px;
82+ color: #999999;
83+ margin-bottom: 15px;
84+ text-transform: uppercase;
85+ }
86+ .episode-description {
87+ line-height: 19px;
88+ margin-bottom: 30px;
89+ }
90+ .episode-image img {
91+ width: 100px;
92+ height: auto;
93+ margin: 0 30px 15px 0;
94+ border-radius: 5px;
95+ }
96+ audio {
97+ width: 100%;
98+ border-radius: 5px;
99+ }
100+ audio:focus {
101+ outline: none;
102+ }
103+ </style >
104+ </head >
105+ <body >
106+ <div class =" container" >
107+ <div class =" alert" >
108+ To subscribe to this podcast, copy and paste the URL from the address bar into the podcast app of your choice.
109+ </div >
110+ <div class =" podcast-container" >
111+ <xsl : if test =" /rss/channel/image" >
112+ <div class =" podcast-image" >
113+ <a >
114+ <xsl : attribute name =" href" >
115+ <xsl : value-of select =" /rss/channel/image/link" />
116+ </xsl : attribute >
117+ <img >
118+ <xsl : attribute name =" src" >
119+ <xsl : value-of select =" /rss/channel/image/url" />
120+ </xsl : attribute >
121+ <xsl : attribute name =" title" >
122+ <xsl : value-of select =" /rss/channel/image/title" />
123+ </xsl : attribute >
124+ </img >
125+ </a >
126+ </div >
127+ </xsl : if >
128+ <div >
129+ <h1 class =" podcast-title" >
130+ <xsl : value-of select =" /rss/channel/title" />
131+ </h1 >
132+ <div class =" podcast-description" >
133+ <xsl : value-of select =" /rss/channel/description" disable-output-escaping =" yes" />
134+ </div >
135+ </div >
136+ </div >
137+ <xsl : for-each select =" /rss/channel/item" >
138+ <div class =" item" >
139+ <h2 class =" episode-title" >
140+ <xsl : value-of select =" title" />
141+ </h2 >
142+ <div class =" episode-meta" >
143+ <span >
144+ <xsl : value-of select =" pubDate" />
145+ </span > ◦
146+ <span >
147+ <xsl : value-of select =" format-number(floor(itunes:duration div 60), '0')" /> minutes
148+ </span >
149+ </div >
150+ <xsl : if test =" description" >
151+ <div class =" episode-description" >
152+ <xsl : value-of select =" description" disable-output-escaping =" yes" />
153+ </div >
154+ </xsl : if >
155+ <audio controls =" true" preload =" none" >
156+ <xsl : attribute name =" src" >
157+ <xsl : value-of select =" enclosure/@url" />
158+ </xsl : attribute >
159+ </audio >
160+ </div >
161+ </xsl : for-each >
162+ </div >
163+ </body >
164+ </html >
165+ </xsl : template >
166+ </xsl : stylesheet >
0 commit comments