Skip to content
This repository
Browse code

Added screencasts page

  • Loading branch information...
commit 4144af33518011b5da3a77bf3ae4af6996b6b0ff 1 parent 30f749a
TJ Holowaychuk authored
1  Makefile
@@ -3,6 +3,7 @@ PREFIX ?= /usr/local
3 3 LIB_PREFIX = ~/.node_libraries
4 4
5 5 DOCS = docs/index.md \
  6 + docs/screencasts.md \
6 7 docs/executable.md \
7 8 docs/contrib.md \
8 9 docs/guide.md \
1,331 docs/api.html
843 additions, 488 deletions not shown
2  docs/applications.1
... ... @@ -1,7 +1,7 @@
1 1 .\" generated with Ronn/v0.7.3
2 2 .\" http://github.com/rtomayko/ronn/tree/0.7.3
3 3 .
4   -.TH "APPLICATIONS" "" "October 2010" "" ""
  4 +.TH "APPLICATIONS" "" "November 2010" "" ""
5 5 .
6 6 .SH "NAME"
7 7 \fBapplications\fR
4 docs/applications.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 80px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -187,7 +187,7 @@
187 187 <ul id="menu">
188 188 <li><a href="index.html">Home</a></li>
189 189 <li><a href="guide.html">Guide</a></li>
190   - <li><a href="contrib.html">Contributing</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
191 191 <li><a href="applications.html">Applications</a></li>
192 192 </ul>
193 193 <div class='mp'>
4 docs/contrib.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 80px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -187,7 +187,7 @@
187 187 <ul id="menu">
188 188 <li><a href="index.html">Home</a></li>
189 189 <li><a href="guide.html">Guide</a></li>
190   - <li><a href="contrib.html">Contributing</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
191 191 <li><a href="applications.html">Applications</a></li>
192 192 </ul>
193 193 <div class='mp'>
2  docs/executable.1
... ... @@ -1,7 +1,7 @@
1 1 .\" generated with Ronn/v0.7.3
2 2 .\" http://github.com/rtomayko/ronn/tree/0.7.3
3 3 .
4   -.TH "EXECUTABLE" "" "October 2010" "" ""
  4 +.TH "EXECUTABLE" "" "November 2010" "" ""
5 5 .
6 6 .SH "NAME"
7 7 \fBexecutable\fR
4 docs/executable.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 80px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -187,7 +187,7 @@
187 187 <ul id="menu">
188 188 <li><a href="index.html">Home</a></li>
189 189 <li><a href="guide.html">Guide</a></li>
190   - <li><a href="contrib.html">Contributing</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
191 191 <li><a href="applications.html">Applications</a></li>
192 192 </ul>
193 193 <div class='mp'>
26 docs/guide.1
... ... @@ -1,7 +1,7 @@
1 1 .\" generated with Ronn/v0.7.3
2 2 .\" http://github.com/rtomayko/ronn/tree/0.7.3
3 3 .
4   -.TH "GUIDE" "" "November 2010" "" ""
  4 +.TH "GUIDE" "" "December 2010" "" ""
5 5 .
6 6 .SH "NAME"
7 7 \fBguide\fR
@@ -32,21 +32,6 @@ $ npm install express
32 32 .
33 33 .IP "" 0
34 34 .
35   -.P
36   -git clone, first update the submodules:
37   -.
38   -.IP "" 4
39   -.
40   -.nf
41   -
42   -$ git submodule update \-\-init
43   -$ make install
44   -$ make install\-support
45   -.
46   -.fi
47   -.
48   -.IP "" 0
49   -.
50 35 .SS "Creating An Application"
51 36 The \fIexpress\.Server\fR now inherits from \fIhttp\.Server\fR, however follows the same idiom by providing \fIexpress\.createServer()\fR as shown below\. This means that you can utilize Express server\'s transparently with other libraries\.
52 37 .
@@ -153,9 +138,6 @@ Express supports the following settings out of the box:
153 138 \fIview options\fR An object specifying global view options
154 139 .
155 140 .IP "\(bu" 4
156   -\fIpartials\fR Root view partials directory defaulting to \fIviews\fR/partials\.
157   -.
158   -.IP "\(bu" 4
159 141 \fIstream threshold\fR Bytesize indicating when a file should be streamed for \fIres\.sendfile()\fR using \fIfs\.ReadStream()\fR and \fIsys\.pump()\fR\.
160 142 .
161 143 .IP "" 0
@@ -922,6 +904,9 @@ When using the partial collection support a few "magic" variables are provided f
922 904 .P
923 905 For documentation on altering the object name view res\.partial() \fIhttp://expressjs\.com/guide\.html#res\-partial\-view\-options\-\fR\.
924 906 .
  907 +.P
  908 +NOTE: partials are not recommended for large collections (150+) because the view system adds to the overhead\. For example do \fInot\fR implement a simple ul list with partial collection support, simply create a partial and iterate within that single partial, as this is far more efficient than rendering 150+ templates\.
  909 +.
925 910 .SS "Template Engines"
926 911 Below are a few template engines commonly used with Express:
927 912 .
@@ -1344,6 +1329,9 @@ The \fBres\.send()\fR method is a high level response utility allowing you to pa
1344 1329 .P
1345 1330 By default the \fIContent\-Type\fR response header is set, however if explicitly assigned through \fBres\.send()\fR or previously with \fBres\.header()\fR or \fBres\.contentType()\fR it will not be set again\.
1346 1331 .
  1332 +.P
  1333 +Note that this method \fIend()\fR the response, so you will want to use node\'s \fIres\.writeHead()\fR / \fIres\.write()\fR for multiple writes or streaming\.
  1334 +.
1347 1335 .SS "res\.redirect(url[, status])"
1348 1336 Redirect to the given \fIurl\fR with a default response \fIstatus\fR of 302\.
1349 1337 .
16 docs/guide.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 80px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -237,7 +237,7 @@
237 237 <ul id="menu">
238 238 <li><a href="index.html">Home</a></li>
239 239 <li><a href="guide.html">Guide</a></li>
240   - <li><a href="contrib.html">Contributing</a></li>
  240 + <li><a href="screencasts.html">Screencasts</a></li>
241 241 <li><a href="applications.html">Applications</a></li>
242 242 </ul>
243 243 <div class='mp'>
@@ -257,13 +257,6 @@ <h3 id="Installation">Installation</h3>
257 257 <pre><code>$ npm install express
258 258 </code></pre>
259 259
260   -<p>git clone, first update the submodules:</p>
261   -
262   -<pre><code>$ git submodule update --init
263   -$ make install
264   -$ make install-support
265   -</code></pre>
266   -
267 260 <h3 id="Creating-An-Application">Creating An Application</h3>
268 261
269 262 <p>The <em>express.Server</em> now inherits from <em>http.Server</em>, however
@@ -339,7 +332,6 @@ <h3 id="Settings">Settings</h3>
339 332 <li><em>views</em> Root views directory defaulting to <strong>CWD/views</strong></li>
340 333 <li><em>view engine</em> Default view engine name for views rendered without extensions</li>
341 334 <li><em>view options</em> An object specifying global view options</li>
342   -<li><em>partials</em> Root view partials directory defaulting to <em>views</em>/partials.</li>
343 335 <li><em>stream threshold</em> Bytesize indicating when a file should be streamed for <em>res.sendfile()</em> using <em>fs.ReadStream()</em> and <em>sys.pump()</em>.</li>
344 336 </ul>
345 337
@@ -813,6 +805,8 @@ <h3 id="View-Partials">View Partials</h3>
813 805
814 806 <p>For documentation on altering the object name view <a href="http://expressjs.com/guide.html#res-partial-view-options-">res.partial()</a>.</p>
815 807
  808 +<p>NOTE: partials are not recommended for large collections (150+) because the view system adds to the overhead. For example do <em>not</em> implement a simple ul list with partial collection support, simply create a partial and iterate within that single partial, as this is far more efficient than rendering 150+ templates.</p>
  809 +
816 810 <h3 id="Template-Engines">Template Engines</h3>
817 811
818 812 <p>Below are a few template engines commonly used with Express:</p>
@@ -1092,6 +1086,8 @@ <h3 id="res-send-body-status-headers-status-status-">res.send(body|status[, head
1092 1086 assigned through <code>res.send()</code> or previously with <code>res.header()</code> or <code>res.contentType()</code>
1093 1087 it will not be set again.</p>
1094 1088
  1089 +<p>Note that this method <em>end()</em> the response, so you will want to use node's <em>res.writeHead()</em> / <em>res.write()</em> for multiple writes or streaming.</p>
  1090 +
1095 1091 <h3 id="res-redirect-url-status-">res.redirect(url[, status])</h3>
1096 1092
1097 1093 <p>Redirect to the given <em>url</em> with a default response <em>status</em> of 302.</p>
2  docs/index.1
... ... @@ -1,7 +1,7 @@
1 1 .\" generated with Ronn/v0.7.3
2 2 .\" http://github.com/rtomayko/ronn/tree/0.7.3
3 3 .
4   -.TH "INDEX" "" "October 2010" "" ""
  4 +.TH "INDEX" "" "December 2010" "" ""
5 5 .
6 6 .SH "NAME"
7 7 \fBindex\fR
4 docs/index.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 80px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -187,7 +187,7 @@
187 187 <ul id="menu">
188 188 <li><a href="index.html">Home</a></li>
189 189 <li><a href="guide.html">Guide</a></li>
190   - <li><a href="contrib.html">Contributing</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
191 191 <li><a href="applications.html">Applications</a></li>
192 192 </ul>
193 193 <div class='mp'>
4 docs/layout/head.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 75px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -187,6 +187,6 @@
187 187 <ul id="menu">
188 188 <li><a href="index.html">Home</a></li>
189 189 <li><a href="guide.html">Guide</a></li>
190   - <li><a href="contrib.html">Contributing</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
191 191 <li><a href="applications.html">Applications</a></li>
192 192 </ul>
4 docs/migrate.html
@@ -133,7 +133,7 @@
133 133 font-size: 11px;
134 134 }
135 135 #menu {
136   - margin-left: 65px;
  136 + margin-left: 80px;
137 137 padding: 0;
138 138 padding-bottom: 30px; }
139 139 #menu li {
@@ -187,7 +187,7 @@
187 187 <ul id="menu">
188 188 <li><a href="index.html">Home</a></li>
189 189 <li><a href="guide.html">Guide</a></li>
190   - <li><a href="contrib.html">Contributing</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
191 191 <li><a href="applications.html">Applications</a></li>
192 192 </ul>
193 193 <div class='mp'>
28 docs/screencasts.1
... ... @@ -0,0 +1,28 @@
  1 +.\" generated with Ronn/v0.7.3
  2 +.\" http://github.com/rtomayko/ronn/tree/0.7.3
  3 +.
  4 +.TH "SCREENCASTS" "" "December 2010" "" ""
  5 +.
  6 +.SH "NAME"
  7 +\fBscreencasts\fR
  8 +.
  9 +.SS "Introduction"
  10 +This introduction screencast covers the basics of Express, and how to get started with your first application\.
  11 +.
  12 +.P
  13 +.
  14 +.SS "View Partials"
  15 +In this screencast we work with partials to display a collection of users using the Jade \fIhttp://jade\-lang\.com\fR template engine, and learn about view path resolution\.
  16 +.
  17 +.P
  18 +.
  19 +.SS "Route Specific Middleware"
  20 +In the screencast below we learn about the benefits of route\-specific middleware\.
  21 +.
  22 +.P
  23 +.
  24 +.SS "Route Placeholder Preconditions"
  25 +Learn about route placeholder (\fI/user/:id\fR) pre\-conditions, allowing validation, and loading of data via the named route placeholder segments\.
  26 +.
  27 +.P
  28 +
226 docs/screencasts.html
... ... @@ -0,0 +1,226 @@
  1 +<html>
  2 + <head>
  3 + <title>Express - node web framework</title>
  4 + <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  5 + <style>
  6 + #tagline {
  7 + margin-left: 75px;
  8 + margin-bottom: 30px;
  9 + color: rgba(255,255,255,0.7); }
  10 + html {
  11 + background: #1c1c1c url(images/bg.tile.jpg); }
  12 +
  13 + body {
  14 + margin: 0;
  15 + padding-bottom: 30px;
  16 + font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
  17 + font-size: 14px;
  18 + line-height: 1.5;
  19 + -webkit-font-smoothing: antialiased;
  20 + background: url(images/bg.jpg) 50% 0 no-repeat;
  21 + color: #8b8b8b; }
  22 +
  23 + * {
  24 + outline: none; }
  25 +
  26 + em {
  27 + color: white; }
  28 +
  29 + a img {
  30 + border: none !important; }
  31 +
  32 + a {
  33 + font-weight: bold;
  34 + text-decoration: none;
  35 + color: white;
  36 + -webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
  37 + -webkit-transition-duration: 0.15s;
  38 + -webkit-transition-timing-function: ease-out; }
  39 + a:hover {
  40 + opacity: 0.8; }
  41 +
  42 + h1, h2, h3, h4 {
  43 + margin: 45px 0 0 0;
  44 + color: white;
  45 + text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
  46 +
  47 + h3 {
  48 + font-size: 18px; }
  49 + h4 {
  50 + margin-left: 10px;
  51 + font-size: 14px;
  52 + }
  53 +
  54 + pre {
  55 + margin: 20px 10px;
  56 + padding: 25px 20px;
  57 + background: rgba(0,0,0,0.5);
  58 + border: 1px solid #323232;
  59 + -webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
  60 + -moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
  61 + -webkit-border-radius: 5px;
  62 + -moz-border-radius: 5px; }
  63 +
  64 + code {
  65 + font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
  66 +
  67 + ul {
  68 + margin: 15px 0;
  69 + padding: 0 0 0 35px; }
  70 + ul li {
  71 + margin: 0;
  72 + padding: 2px 0;
  73 + list-style: square; }
  74 + ul li ul {
  75 + margin: 0;
  76 + padding-left: 12px;
  77 + }
  78 +
  79 + .man-name, #Express { display:none; }
  80 +
  81 + .sect {
  82 + margin-left: 40px; }
  83 + img {
  84 + margin-left: 20px;
  85 + margin-bottom: 15px;
  86 + }
  87 +
  88 + #logo {
  89 + display: block;
  90 + margin-left: 30%;
  91 + margin-bottom: 30px;
  92 + width: 194px;
  93 + height: 51px;
  94 + background: url(images/logo.png) 0 0 no-repeat;
  95 + text-indent: -99999px; }
  96 + #logo:hover {
  97 + opacity: 0.7; }
  98 + #logo:active {
  99 + opacity: 0.3; }
  100 +
  101 + #ribbon {
  102 + position: fixed;
  103 + top: 0;
  104 + right: 0;
  105 + z-index: 2; }
  106 +
  107 + #wrapper {
  108 + width: 100%;
  109 + min-height: 800px;
  110 + background: url(images/top.png) 0 0 repeat-x; }
  111 +
  112 + #container {
  113 + margin: 0 auto;
  114 + padding-top: 80px;
  115 + width: 550px; }
  116 +
  117 + #toc {
  118 + position: fixed;
  119 + top: 0;
  120 + left: 0;
  121 + margin: 0 0 0 15px;
  122 + padding: 15px;
  123 + height: 100%;
  124 + background: rgba(0,0,0,0.2);
  125 + overflow: auto;
  126 + border-right: 1px solid rgba(255,255,255,0.05);
  127 + }
  128 + #toc li {
  129 + padding: 0;
  130 + list-style: none;
  131 + }
  132 + #toc li a {
  133 + font-size: 11px;
  134 + }
  135 + #menu {
  136 + margin-left: 75px;
  137 + padding: 0;
  138 + padding-bottom: 30px; }
  139 + #menu li {
  140 + display: inline;
  141 + list-style: none; }
  142 + #menu li a {
  143 + display: block;
  144 + float: left;
  145 + margin: 0 2px;
  146 + padding: 3px 15px;
  147 + background: rgba(0,0,0,0.2);
  148 + -webkit-border-radius: 8px;
  149 + -moz-border-radius: 8px;
  150 + -webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
  151 + -moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
  152 + -webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
  153 + -webkit-transition-duration: 0.15s;
  154 + -webkit-transition-timing-function: ease-out; }
  155 + #menu li a:hover,
  156 + #menu li a.active {
  157 + background: rgba(0,0,0,0.5); }
  158 + #menu li a:active {
  159 + background: rgba(0,0,0,0.1);
  160 + -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
  161 + -moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
  162 + </style>
  163 + <script>
  164 + $(function(){
  165 + $('.section').hide();
  166 + $('.toggle, a.section-title').toggle(function(){
  167 + $(this).siblings('ul').fadeIn(300);
  168 + return false;
  169 + }, function(){
  170 + $(this).siblings('ul').fadeOut(300);
  171 + return false;
  172 + });
  173 + });
  174 + </script>
  175 + </head>
  176 + <body>
  177 + <a href='http://github.com/visionmedia/express'>
  178 + <img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
  179 + </a>
  180 + <div id="wrapper">
  181 + <div id="container">
  182 + <a href='http://github.com/visionmedia/express' id='logo'>Express</a>
  183 + <p id="tagline">
  184 + High performance, high class web development for
  185 + <a href="http://nodejs.org">Node.js</a>
  186 + </p>
  187 + <ul id="menu">
  188 + <li><a href="index.html">Home</a></li>
  189 + <li><a href="guide.html">Guide</a></li>
  190 + <li><a href="screencasts.html">Screencasts</a></li>
  191 + <li><a href="applications.html">Applications</a></li>
  192 + </ul>
  193 +<div class='mp'>
  194 +<h2 id="Express">Express</h2>
  195 +<p class="man-name">
  196 + <code>screencasts</code>
  197 +</p>
  198 +<h3 id="Introduction">Introduction</h3>
  199 +
  200 +<p>This introduction screencast covers the basics of Express, and how to get started with your first application.</p>
  201 +
  202 +<p><object height="345" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"><param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /><param name="flashvars" value="i=139583" /><param name="allowFullScreen" value="true" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" allowfullscreen="true" src="http://screenr.com/Content/assets/screenr_1116090935.swf" height="345" flashvars="i=139583" width="560"></embed></object></p>
  203 +
  204 +<h3 id="View-Partials">View Partials</h3>
  205 +
  206 +<p>In this screencast we work with partials to display a collection of users using the <a href="http://jade-lang.com">Jade</a> template engine, and learn about view path resolution.</p>
  207 +
  208 +<p><object height="345" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"><param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /><param name="flashvars" value="i=139591" /><param name="allowFullScreen" value="true" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" allowfullscreen="true" src="http://screenr.com/Content/assets/screenr_1116090935.swf" height="345" flashvars="i=139591" width="560"></embed></object></p>
  209 +
  210 +<h3 id="Route-Specific-Middleware">Route Specific Middleware</h3>
  211 +
  212 +<p>In the screencast below we learn about the benefits of route-specific middleware.</p>
  213 +
  214 +<p><object height="345" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"><param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /><param name="flashvars" value="i=140296" /><param name="allowFullScreen" value="true" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" allowfullscreen="true" src="http://screenr.com/Content/assets/screenr_1116090935.swf" height="345" flashvars="i=140296" width="560"></embed></object></p>
  215 +
  216 +<h3 id="Route-Placeholder-Preconditions">Route Placeholder Preconditions</h3>
  217 +
  218 +<p>Learn about route placeholder (<em>/user/:id</em>) pre-conditions, allowing validation, and loading of data via the named route placeholder segments.</p>
  219 +
  220 +<p><object height="345" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"><param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /><param name="flashvars" value="i=140300" /><param name="allowFullScreen" value="true" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" allowfullscreen="true" src="http://screenr.com/Content/assets/screenr_1116090935.swf" height="345" flashvars="i=140300" width="560"></embed></object></p>
  221 +
  222 +</div>
  223 + </div>
  224 + </div>
  225 + </body>
  226 +</html>
24 docs/screencasts.md
Source Rendered
... ... @@ -0,0 +1,24 @@
  1 +
  2 +### Introduction
  3 +
  4 +This introduction screencast covers the basics of Express, and how to get started with your first application.
  5 +
  6 +<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' /><param name='flashvars' value='i=139583' /><param name='allowFullScreen' value='true' /><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=139583' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>
  7 +
  8 +### View Partials
  9 +
  10 +In this screencast we work with partials to display a collection of users using the [Jade](http://jade-lang.com) template engine, and learn about view path resolution.
  11 +
  12 +<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' /><param name='flashvars' value='i=139591' /><param name='allowFullScreen' value='true' /><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=139591' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>
  13 +
  14 +### Route Specific Middleware
  15 +
  16 +In the screencast below we learn about the benefits of route-specific middleware.
  17 +
  18 +<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' /><param name='flashvars' value='i=140296' /><param name='allowFullScreen' value='true' /><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=140296' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>
  19 +
  20 +### Route Placeholder Preconditions
  21 +
  22 +Learn about route placeholder (_/user/:id_) pre-conditions, allowing validation, and loading of data via the named route placeholder segments.
  23 +
  24 +<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' /><param name='flashvars' value='i=140300' /><param name='allowFullScreen' value='true' /><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=140300' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>

0 comments on commit 4144af3

Please sign in to comment.
Something went wrong with that request. Please try again.