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

Unified Diff: src/site/index.html

Issue 22528003: update examples on homepage (Closed) Base URL: https://github.com/dart-lang/dartlang.org.git@master
Patch Set: fix comment Created 7 years, 4 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/index.html
diff --git a/src/site/index.html b/src/site/index.html
index 7455e467fe8783777f0bef85f0ca95a21a79cb88..bf793ded3f6aa194e5c31ea0070f39f43e63f93d 100644
--- a/src/site/index.html
+++ b/src/site/index.html
@@ -140,51 +140,180 @@ js:
<section id="code">
<h1> Code </h1>
- <p>
- Experiment with Dart right in your browser:
- <a href="http://try.dartlang.org">try.dartlang.org</a>
+ <p>
+ You can find code examples in Dart Editor,
sethladd 2013/08/08 19:00:32 maybe say "dart editor welcome page" ? How would I
Kathy Walrath 2013/08/08 23:16:59 Done.
+ in the <a href="/samples/">Samples page</a>,
+ and below.
+ You can also experiment with Dart right in your browser:
+ <a href="http://try.dartlang.org" target="_blank">try.dartlang.org</a>
</p>
- <p>
- Here's some code from a Dart web app that uses Web UI.
- To learn about web programming with Dart, try our
- <a href="/docs/tutorials/">Dart tutorials</a>.
- </p>
+<div class="tabbable">
+ <ul class="nav nav-tabs">
+ <li class="active"><a href="#language" data-toggle="tab">Syntax</a></li>
+ <li><a href="#types" data-toggle="tab">Optional types</a></li>
+ <li><a href="#futures" data-toggle="tab">Futures</a></li>
+ <li><a href="#webui" data-toggle="tab">Web UI</a></li>
+ </ul>
+
+ <div class="tab-content">
+ <div class="tab-pane active" id="language">
+ <p>
+ Dart aims to be unsurprising,
+ but it does add a few language features
+ to keep your code succinct yet understandable.
+ Read all about Dart syntax in the
+ <a href="/docs/dart-up-and-running/contents/ch02.html">Dart language tour</a>.
+ </p>
- <div class="row-fluid">
- <div class="span6" id="dart-code">
+ <div class="row-fluid">
+ <div class="span10 offset1">
+{% prettify dart %}
+[[highlight]]import[[/highlight]] 'dart:html'; // Dart supports libraries.
+
+// Define functions either inside or outside of classes.
+startOrEndTest() {
+ // ...
+}
+
+[[highlight]]class[[/highlight]] Rectangle implements Shape { // Declaring a class...
+ final num height, width; // ...with properties.
+ num [[highlight]]get[[/highlight]] area [[highlight]]=>[[/highlight]] height * width; // A property implemented with a getter.
+ // Also: function shorthand syntax (=>).
+ Rectangle([[highlight]]this.height, this.width[[/highlight]]); // Compact constructor syntax.
+}
+
+// Every app has a main() function, where execution starts.
+[[highlight]]main()[[/highlight]] {
+ // The cascade operator (..) saves you from repetitive typing.
+ query("#button")
+ [[highlight]]..[[/highlight]]text = "Run test"
+ [[highlight]]..[[/highlight]]onClick.listen(startOrEndTest);
+}
+{% endprettify %}
+ </div>
+ </div>
+ </div>
+
+ <div class="tab-pane" id="types">
+ <p>
+ Declaring types is optional in Dart.
+ These types don't affect the runtime behavior,
+ but you can use them to clarify APIs
+ and get better help from tools.
sethladd 2013/08/08 19:00:32 Can we add how you get better help? e.g. "e.g. wit
Kathy Walrath 2013/08/08 23:16:59 Done.
+ For details, see
+ <a href="/articles/optional-types/">Optional Types in Dart</a>.
+ </p>
+
+ <div class="row-fluid">
+ <div class="span6" id="without-types">
+{% prettify dart %}
+// Without types.
+recalculate(origin, offset, estimate) {
+ // ...
+}
+{% endprettify %}
+ </div>
+ <div class="span6" id="with-types">
+{% prettify dart %}
+// With types (and an optional parameter).
+[[highlight]]num[[/highlight]] recalculate([[highlight]]Point[[/highlight]] origin,
+ [[highlight]]num[[/highlight]] offset,
+ {[[highlight]]bool[[/highlight]] estimate:false}) {
+ // ...
+}
+{% endprettify %}
+ </div>
+ </div>
+ </div>
+
+ <div class="tab-pane" id="futures">
+ <p>
+ Functions that do potentially expensive work return Futures.
+ To specify what happens when the function's work is done,
+ invoke <code>then()</code> on the Future.
+ To handle errors, invoke <code>catchError()</code>.
+ Learn more by reading
+ <a href="/articles/using-future-based-apis/">Using Future Based APIs</a>.
+ </p>
+
+ <div class="row-fluid">
+ <div class="span10 offset1">
+
+{% prettify dart %}
+import 'dart:io';
+import 'dart:async';
+
+void printDailyNewsDigest() {
+ File file = new File("dailyNewsDigest.txt");
+ [[highlight]]file.readAsString()[[/highlight]] // readAsString() returns a Future.
+ [[highlight]].then[[/highlight]]((content) { // Specifies what to do if the Future completes successfully.
sethladd 2013/08/08 19:00:32 how about .then((content) => print(content)) here?
Kathy Walrath 2013/08/08 23:16:59 Done.
+ print(content); // Executes when the file has been successfully read.
+ })
+ [[highlight]].catchError((error)[[/highlight]] { // Specifies error handling code.
+ print("Sorry, no news today. Here's why:\n");
+ print('$error');
sethladd 2013/08/08 19:00:32 can you move this $error up to the first print? Yo
Kathy Walrath 2013/08/08 23:16:59 Done.
+ });
+}
+{% endprettify %}
+ </div>
+ </div>
+ </div>
+ <div class="tab-pane" id="webui">
+ <p>
+ Here's an example of implementing a web app using the Web UI package.
+ To learn about web programming with Dart, try our
+ <a href="/docs/tutorials/">Dart tutorials</a>.
+ </p>
+
+ <div class="row-fluid">
+ <div class="span6" id="dart-code">
{% prettify dart %}
// Dart code:
import 'package:web_ui/web_ui.dart';
-@observable String myString = '';
+@observable
+Shout [[highlight]]shout[[/highlight]] = new Shout();
-String get shouted => myString.toUpperCase();
+@observable
+class Shout {
+ String [[highlight]]myString[[/highlight]] = '';
+
+ String get [[highlight]]shouted[[/highlight]] => myString.toUpperCase();
-String get palindrome =>
- myString + myString.split('').reversed.join();
+ String get [[highlight]]palindrome[[/highlight]] =>
+ myString + myString.split('').reversed.join();
+}
{% endprettify %}
- </div>
- <div class="span6" id="html-code">
+ </div>
+ <div class="span6" id="html-code">
{% prettify html %}
<!-- HTML code: -->
sethladd 2013/08/08 19:00:32 What about showing a snippet from a real tutorial,
Kathy Walrath 2013/08/08 23:16:59 I don't think there are any real Web UI tutorials
-<input type="text" bind-value="myString"
- placeholder="Type here">
-
-<div> Shouted: {{'{{'}}shouted}} </div>
-<div> Palindromic: {{'{{'}}palindrome}} </div>
+...
+<template id="stringManipulation"
+ instantiate="if [[highlight]]shout[[/highlight]] != null">
sethladd 2013/08/08 19:00:32 s/instantiate/if so, if="{{shout}}" should work (
Kathy Walrath 2013/08/08 23:16:59 I think "if" is a polymer-ism. At least, I couldn'
+ <input type="text"
+ bind-value="shout.[[highlight]]myString[[/highlight]]"
+ placeholder="Type here">
+
+ <div> Shouted: {{'{{'}}shout.[[highlight]]shouted[[/highlight]]}} </div>
+ <div> Palindromic: {{'{{'}}shout.[[highlight]]palindrome[[/highlight]]}} </div>
+</template>
-<script type="application/dart" src="little.dart"></script>
+<script type="application/dart" src="webui.dart"></script>
<script src="packages/browser/dart.js"></script>
sethladd 2013/08/08 19:00:32 we can probably drop these two scripts, yes?
Kathy Walrath 2013/08/08 23:16:59 Done.
+...
{% endprettify %}
{% comment %}
Beginning double curlies are processed by liquid,
so you have to surround them in single quotes,
surrounded by double curlies. Yup.
{% endcomment %}
- </div>
- </div> <!-- code -->
-
+ </div>
+ </div> <!-- code -->
+ </div>
+ </div>
+</div>
</section>

Powered by Google App Engine
This is Rietveld 408576698