:")&&-1!==d.indexOf(": ")){var e=d.split(/:\s?|\s+/,5).slice(1,5),f=e.map(function(a){return parseInt(a,10)-1});b.push(new q(f[0],f[1],f[2],f[3]))}}return b}"function"!=typeof String.prototype.startsWith&&(String.prototype.startsWith=function(a){return this.slice(0,a.length)===a});var a=/(?:\r\n|\r|\n)/g,b=document.getElementById("active-code"),c=document.getElementById("editor"),d=document.getElementById("static-code"),e=document.getElementById("run-code"),f=document.getElementById("result"),g=document.getElementById("playlink"),h="#E2EEF6",i="#F6E2E2",j="#FFFBCB",k="The server encountered an error while running the program.",l=[],m=0,n=1,o=2;d.style.display="none",b.style.display="block";var p=ace.edit("editor"),q=ace.require("ace/range").Range;p.setTheme("ace/theme/chrome"),p.getSession().setMode("ace/mode/rust"),p.setShowPrintMargin(!1),p.renderer.setShowGutter(!1),p.setHighlightActiveLine(!1),r(),e.addEventListener("click",function(){f.style.display="block",f.innerHTML="Running...",l.map(function(a){p.getSession().removeMarker(a)});var b=p.getValue();t(b,u)}),p.on("focus",function(){p.setHighlightActiveLine(!0)}),p.on("blur",function(){p.setHighlightActiveLine(!1)})}();
diff --git a/_includes/example.rs b/_includes/example.rs
new file mode 100644
index 000000000..436f24f5a
--- /dev/null
+++ b/_includes/example.rs
@@ -0,0 +1,22 @@
+// This code is editable and runnable!
+fn main() {
+ // A simple integer calculator:
+ // `+` or `-` means add or subtract by 1
+ // `*` or `/` means multiply or divide by 2
+
+ let program = "+ + * - /";
+ let mut accumulator = 0i;
+
+ for token in program.chars() {
+ match token {
+ '+' => accumulator += 1,
+ '-' => accumulator -= 1,
+ '*' => accumulator *= 2,
+ '/' => accumulator /= 2,
+ _ => { /* ignore everything else */ }
+ }
+ }
+
+ println!("The program \"{}\" calculates the value {}",
+ program, accumulator);
+}
diff --git a/_includes/example.rs.html b/_includes/example.rs.html
new file mode 100644
index 000000000..56744e995
--- /dev/null
+++ b/_includes/example.rs.html
@@ -0,0 +1,23 @@
+// This code is editable and runnable!
+fn main() {
+
+
+let program = "+ + * - /";
+let mut accumulator = 0i;
+
+for token in program.chars() {
+match token {
+ '+' => accumulator += 1,
+ '-' => accumulator -= 1,
+ '*' => accumulator *= 2,
+ '/' => accumulator /= 2,
+ _ => { }
+}
+}
+
+println!("The program \"{}\" calculates the value {}",
+ program, accumulator);
+}
+
diff --git a/_includes/include.js b/_includes/include.js
new file mode 100644
index 000000000..4f1cf2f7f
--- /dev/null
+++ b/_includes/include.js
@@ -0,0 +1,38 @@
+include = function() {
+
+ // save references to save a few bytes
+ var args = arguments;
+ var doc = document;
+
+ var toLoad = args.length; // load this many scripts
+ var lastArgument = args[toLoad - 1];
+ var hasCallback = lastArgument.call; // is the last arg a callback?
+ if (hasCallback) {
+ toLoad --;
+ }
+
+ function onScriptLoaded() {
+ var readyState = this.readyState; // we test for "complete" or "loaded" if on IE
+ if (!readyState || /ded|te/.test(readyState)) {
+ toLoad --;
+ if (!toLoad && hasCallback) {
+ lastArgument();
+ }
+ }
+ }
+
+ var script;
+ for (var i = 0; i < toLoad; i ++) {
+
+ script = doc.createElement('script');
+ script.src = arguments[i];
+ script.async = true;
+ script.onload = script.onerror = script.onreadystatechange = onScriptLoaded;
+ (
+ doc.head ||
+ doc.getElementsByTagName('head')[0]
+ ).appendChild(script);
+
+ }
+
+};
diff --git a/_includes/include.min.js b/_includes/include.min.js
new file mode 100644
index 000000000..036fe8e42
--- /dev/null
+++ b/_includes/include.min.js
@@ -0,0 +1 @@
+include=function(){function f(){var a=this.readyState;(!a||/ded|te/.test(a))&&(c--,!c&&e&&d())}var a=arguments,b=document,c=a.length,d=a[c-1],e=d.call;e&&c--;for(var g,h=0;c>h;h++)g=b.createElement("script"),g.src=arguments[h],g.async=!0,g.onload=g.onerror=g.onreadystatechange=f,(b.head||b.getElementsByTagName("head")[0]).appendChild(g)};
diff --git a/_includes/set_platform.js b/_includes/set_platform.js
new file mode 100644
index 000000000..de3255906
--- /dev/null
+++ b/_includes/set_platform.js
@@ -0,0 +1,49 @@
+function detect_platform() {
+ "use strict";
+ var os = "unknown";
+
+ if (os == "unknown") {
+ if (navigator.platform == "Linux x86_64") {os = "x86_64-unknown-linux-gnu";}
+ if (navigator.platform == "Linux i686") {os = "i686-unknown-linux-gnu";}
+ }
+
+ // I wish I knew by know, but I don't. Try harder.
+ if (os == "unknown") {
+ if (navigator.appVersion.indexOf("Win")!=-1) {os = "x86_64-pc-windows-gnu";}
+ if (navigator.appVersion.indexOf("Mac")!=-1) {os = "x86_64-apple-darwin";}
+ if (navigator.appVersion.indexOf("Linux")!=-1) {os = "x86_64-unknown-linux-gnu";}
+ }
+
+ return os;
+}
+
+(function () {
+ "use strict";
+ var platform = detect_platform();
+
+ var rec_package_name = "nightly";
+ var rec_version_type = "source";
+ var rec_download_file = "rust-nightly.tar.gz";
+
+ if (platform == "x86_64-unknown-linux-gnu") {
+ rec_version_type = "Linux binary";
+ rec_download_file = "rust-" + rec_package_name + "-x86_64-unknown-linux-gnu.tar.gz";
+ } else if (platform == "i686-unknown-linux-gnu") {
+ rec_version_type = "Linux binary";
+ rec_download_file = "rust-" + rec_package_name + "-i686-unknown-linux-gnu.tar.gz";
+ } else if (platform == "x86_64-apple-darwin") {
+ rec_version_type = "Mac installer";
+ rec_download_file = "rust-" + rec_package_name + "-x86_64-apple-darwin.pkg";
+ } else if (platform == "x86_64-pc-windows-gnu") {
+ rec_version_type = "Windows installer";
+ rec_download_file = "rust-" + rec_package_name + "-x86_64-pc-windows-gnu.exe";
+ }
+
+ var rec_package_desc = rec_package_name + " (" + rec_version_type + ")";
+ var rec_vers_div = document.getElementById("install-version");
+ rec_vers_div.innerHTML = rec_package_desc;
+
+ var rec_dl_addy = "https://static.rust-lang.org/dist/" + rec_download_file;
+ var rec_inst_link = document.getElementById("inst-link");
+ rec_inst_link.setAttribute("href", rec_dl_addy);
+}());
diff --git a/_includes/set_platform.min.js b/_includes/set_platform.min.js
new file mode 100644
index 000000000..8924ab2f2
--- /dev/null
+++ b/_includes/set_platform.min.js
@@ -0,0 +1 @@
+function detect_platform(){"use strict";var a="unknown";return"unknown"==a&&("Linux x86_64"==navigator.platform&&(a="x86_64-unknown-linux-gnu"),"Linux i686"==navigator.platform&&(a="i686-unknown-linux-gnu")),"unknown"==a&&(-1!=navigator.appVersion.indexOf("Win")&&(a="x86_64-pc-windows-gnu"),-1!=navigator.appVersion.indexOf("Mac")&&(a="x86_64-apple-darwin"),-1!=navigator.appVersion.indexOf("Linux")&&(a="x86_64-unknown-linux-gnu")),a}!function(){"use strict";var a=detect_platform(),b="nightly",c="source",d="rust-nightly.tar.gz";"x86_64-unknown-linux-gnu"==a?(c="Linux binary",d="rust-"+b+"-x86_64-unknown-linux-gnu.tar.gz"):"i686-unknown-linux-gnu"==a?(c="Linux binary",d="rust-"+b+"-i686-unknown-linux-gnu.tar.gz"):"x86_64-apple-darwin"==a?(c="Mac installer",d="rust-"+b+"-x86_64-apple-darwin.pkg"):"x86_64-pc-windows-gnu"==a&&(c="Windows installer",d="rust-"+b+"-x86_64-pc-windows-gnu.exe");var e=b+" ("+c+")",f=document.getElementById("install-version");f.innerHTML=e;var g="https://static.rust-lang.org/dist/"+d,h=document.getElementById("inst-link");h.setAttribute("href",g)}();
diff --git a/_layouts/default.html b/_layouts/default.html
index 8a1a9080a..fcd0acd18 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -11,13 +11,17 @@
-
+
+
+