summaryrefslogtreecommitdiffstats
path: root/blog/_plugins/tracklist.rb
diff options
context:
space:
mode:
Diffstat (limited to 'blog/_plugins/tracklist.rb')
-rw-r--r--blog/_plugins/tracklist.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/blog/_plugins/tracklist.rb b/blog/_plugins/tracklist.rb
new file mode 100644
index 0000000..afbc469
--- /dev/null
+++ b/blog/_plugins/tracklist.rb
@@ -0,0 +1,54 @@
+# Tags for helping with track lists
+#
+module Jekyll
+ class BeginTrackListTag < Liquid::Tag
+ def initialize(tag, text, tokens)
+ super
+ end
+
+ def render(context)
+ %q{<div class="track-list"><h2>Track list:</h2>}
+ end
+ end
+
+ class EndTrackListTag < Liquid::Tag
+ def initialize(tag, text, tokens)
+ super
+ end
+
+ def render(context)
+ %q{</div>}
+ end
+ end
+
+ class TrackTag < Liquid::Tag
+ def initialize(tag, text, tokens)
+ super
+ @num, @artist, @title, @url = text.split('|')
+ end
+
+ def render(context)
+ %Q{<article class="track"><header>
+ <span class="track-num">#{@num}</span> -
+ <span class="track-artist"><a href="#{@url}">#{@artist}</a></span> -
+ <span class="track-title">#{@title}</span></header>
+ <section class="track-info">
+ }
+ end
+ end
+
+ class EndTrackTag < Liquid::Tag
+ def initialize(tag, text, tokens)
+ super
+ end
+
+ def render(context)
+ %Q{</section></article>}
+ end
+ end
+end
+
+Liquid::Template.register_tag('begin_track_list', Jekyll::BeginTrackListTag)
+Liquid::Template.register_tag('end_track_list', Jekyll::EndTrackListTag)
+Liquid::Template.register_tag('track', Jekyll::TrackTag)
+Liquid::Template.register_tag('end_track', Jekyll::EndTrackTag)