Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(211)

Unified Diff: src/site/_plugins/code_sample.rb

Issue 11066080: Initial version of Dart web components article (Closed) Base URL: git@github.com:sigmundch/dartlang.org.git@master
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/site/_plugins/code_sample.rb
diff --git a/src/site/_plugins/code_sample.rb b/src/site/_plugins/code_sample.rb
new file mode 100644
index 0000000000000000000000000000000000000000..099483634df3de86fe94b96436f25bb547387e8a
--- /dev/null
+++ b/src/site/_plugins/code_sample.rb
@@ -0,0 +1,48 @@
+
Jennifer Messerly 2012/10/10 02:37:20 copyright header? (p.s. sorry I forgot to review
Siggi Cherem (dart-lang) 2012/10/10 17:20:55 Done.
+module Jekyll
+
+ # This plugin renders a table with code and a running example side by side.
+ class CodeSampleTag < Liquid::Block
+
+ def initialize(tag_name, params, tokens)
+ super
+ @percent = params.strip
+ end
+
+ def render(context)
+ link = ""
+ if @src_url != nil
Jennifer Messerly 2012/10/10 02:37:20 I think in Ruby, you'd typically write: if @src_u
Siggi Cherem (dart-lang) 2012/10/10 17:20:55 Done.
+ link = "(<a href='#{@src_url}'>see complete source</a>)"
+ end
+
+ ("\n\n<table sytle='border:0px'><thead>" +
Jennifer Messerly 2012/10/10 02:37:20 nit: you don't need the +, Ruby will concat adjace
Siggi Cherem (dart-lang) 2012/10/10 17:20:55 mmm.. this didn't work for me, the render method r
Jennifer Messerly 2012/10/10 17:48:03 doh, I guess you need to escape the end of line wi
+ "<tr><td><strong>Sample source code #{link}</strong>" +
+ "</td><td>" +
+ "</td><td><strong>Sample running</strong></td></tr>" +
+ "</thead><tbody><tr>" +
+ "<td style='width:#{@percent}%;vertical-align:top;'>" + super.strip +
+ "</td><td style='width:100%;'>" +
+ "</td><td style='vertical-align:top;'>" +
+ "<iframe style='border:none;height:#{@height};width:#{@width};'" +
+ " src='#{@url}'></iframe>" +
+ "</td></tr></tbody></table>\n\n")
+ end
+
+ def unknown_tag(tag, params, tokens)
+ case tag
+ when 'sample'
+ sample_params = params.split(' ')
Jennifer Messerly 2012/10/10 02:37:20 common to write this as: @width, @height, @url =
Siggi Cherem (dart-lang) 2012/10/10 17:20:55 cool. I'd really like to have this in dart...
+ @width = sample_params[0]
+ @height = sample_params[1]
+ @url = sample_params[2]
+ when 'url'
+ @src_url = params
+ else
+ super
+ end
+ end
+
+ end
+end
+
+Liquid::Template.register_tag('codesample', Jekyll::CodeSampleTag)

Powered by Google App Engine
This is Rietveld 408576698