Published
Edited
Oct 6, 2019
Insert cell
Insert cell
runcode = md`## How to write code in cell
An Observable notebook consists of cells. **Each cell is a snippet of JavaScript**. You can see (and edit!) the code for any cell by clicking the menu ${menuSvg} in the left margin.`
Insert cell
2 * 3 * 7
Insert cell
{
let sum = 0;
for (let i = 0; i <= 100; ++i) {
sum += i;
}
return sum;
}
Insert cell
cellReference = md `## Cell reference`
Insert cell
Insert cell
color = "cornflowerblue"
Insert cell
`My favorite color is ${color}.`
Insert cell
Insert cell
Insert cell
Insert cell
html`<span style="background:yellow;">
My favorite language is <i>HTML</i>.
</span>`
Insert cell
Insert cell
Insert cell
md`My favorite language is *Markdown*.`
Insert cell
Insert cell
Insert cell
html`My favorite color is <i style="background:${color};">${color}</i>.`
Insert cell
Insert cell
status = new Promise(resolve => {
setTimeout(() => {
resolve({resolved: new Date});
}, 2000);
})
Insert cell
Insert cell
status
Insert cell
Insert cell
d3 = require("d3-fetch@1")
Insert cell
Insert cell
Insert cell
countries = (await d3.tsv("https://cdn.jsdelivr.net/npm/world-atlas@1/world/110m.tsv"))
.sort((a, b) => b.pop_est - a.pop_est) // Sort by descending estimated population.
.slice(0, 10) // Take the top ten.
Insert cell
cellGenerators = md `## Cell as generators`
Insert cell
Insert cell
i = {
let i = 0;
while (true) {
yield ++i;
}
}
Insert cell
`The current value of i is ${i}.`
Insert cell
promiseGen = md `## How promise and generator work together`
Insert cell
Insert cell
date = {
while (true) {
yield new Promise(resolve => {
setTimeout(() => resolve(new Date), 1000);
});
}
}
Insert cell
sliderComb = md `## Combine promise, generator, dom together`
Insert cell
Insert cell
slider = html`<input type=range>`
Insert cell
Generators
Insert cell
sliderValue = Generators.input(slider)
Insert cell
Insert cell
viewof value = html`<input type=range>`
Insert cell
value
Insert cell
importCellGraph = md `## How to import cell (a graph) from another notebook`
Insert cell
Insert cell
import {viewof selection as cars} from "@d3/brushable-scatterplot"
Insert cell
viewof cars
Insert cell
cars
Insert cell
import {toggle, pin, video, key, signinNote, seriesNavigation, menuSvg} from "@embracelife/tutorial-utilities"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more