1 | ## Welcome to Smartdown
|
2 |
|
3 | Smartdown is a *declarative*, *literate* and *reactive* authoring technology for writing technical and non-technical documents that are compelling and easy to share and publish within many existing forums and blogging systems. Smartdown is designed for blogging, technical communication, and teaching. Smartdown simplifies the creation of *Explorable Explanations*, which are prose documents with embedded interactive content such as charts, graphs, and featherweight programs called *playables*.
|
4 |
|
5 | Smartdown extends the simple expressivity of the [Markdown](https://en.wikipedia.org/wiki/Markdown) language commonly used on blogs, messaging systems, technical forums, and on [GitHub](https://help.github.com/articles/basic-writing-and-formatting-syntax/). The Smartdown **engine** is a Javascript library that interprets the content in these Smartdown source files and enacts the desired behavior and presentation.
|
6 |
|
7 | ### Explore
|
8 |
|
9 | Use the navigation buttons below to explore different aspects of Smartdown. You can always go [Back to Home](:@Home).
|
10 |
|
11 | |Basics|Data Science|Fun & Learning|Advanced & Experiments|
|
12 | |:---:|:---:|:---:|:---:|
|
13 | |[Readme](:@README)|[Graphviz](:@Graphviz)|[MadLibs](:@MadLibs)|[Processes](:@Processes)|
|
14 | |[Markdown](:@Markdown)|[D3](:@D3)|[Cuneiform](:@Cuneiform)|[Javascript](:@Javascript)|
|
15 | |[Math](:@Math)|[SVG](:@SVG)|[Mobius](:@Mobius)|[Conic](:@Conic)|
|
16 | |[Images](:@Images)|[Plotly](:@Plotly)|[Temperature](:@Temperature)|[Mandelbrot](:@Mandelbrot)|
|
17 | |[Tweets](:@Tweets)|[Maps](:@Maps)|[Vector Field](:@VectorField)|[LDF](:@LDF)|
|
18 | |[Audio and Video](:@Video)|[Stdlib](:@Stdlib)|[Tree](:@Tree)|[YouTube](:@YouTube)|
|
19 | |[Gists](:@Gists)|[ThreeJS](:@Three)|[VectorTree](:@VectorTree)|
|
20 | |[Cells](:@Cells)|[P5JS](:@P5JS)|[Dungeon](:@Dungeon)|
|
21 | |[Multicards](:@Multicards)|[Mermaid](:@Mermaid)|[Dungeon3D](:@Games)|
|
22 |
|
23 | ---
|
24 |
|
25 | #### Basic Features
|
26 |
|
27 | - [GitHub-flavored Markdown](https://guides.github.com/features/mastering-markdown/) to make it easy to write simple and complex prose and documentation.
|
28 | - [MathJax](https://www.mathjax.org) including Latex and AsciiMath syntax, chemical notation via [`mhchem`](https://mhchem.github.io/MathJax-mhchem/)
|
29 | - Code fragment syntax highlighting via [highlight.js](https://highlightjs.org).
|
30 | - Media embedding support including Images, Tweets, SVG, Video, GIF.
|
31 |
|
32 | #### Advanced Features
|
33 |
|
34 | Smartdown is unique in the way that it integrates text with interactive *cells*, *variables* and *playables*. This enables the development of lightweight interactive documents that have the power and expressivity of a web application, but are more easily authored and published. Although Smartdown was designed for instructional and explanatory purposes, its power and expressivity rivals or surpasses that of [Jupyter Notebooks](http://jupyter.org), making it suitable for *data science* exploration and presentation.
|
35 |
|
36 | Unique features of Smartdown include:
|
37 |
|
38 | - Reactive *cells* similar to those in a spreadsheet, but inlined with Smartdown prose. These cells can be use for input, output, calculation, navigation, and for interacting with internet APIs such as Wikidata.
|
39 | - A simple, but expressive *reactive process model* that integrates Smartdown cells with Smartdown playables.
|
40 | - The ability to structure a Smartdown document as a set of *cards* which can be hyperlinked to provide guided navigation.
|
41 | - A rich and extensible set of *playables*, which are similar to the *embeddables* found in many blogging systems, but can interact with each other and the document itself. The current default set of playables includes:
|
42 | - [P5JS](https://p5js.org) supports drawing-based visualizations, games, sound and much more.
|
43 | - [D3.js](https://d3js.org), [D3fc](https://d3fc.io), [Plotly.js](https://plot.ly/javascript/), and [threejs](https://threejs.org) support data visualizations including plots, charts, maps, and much more.
|
44 | - [Leaflet.js](http://leafletjs.com) enables easy embedding of geo-based data and maps.
|
45 | - [Graphviz via `viz.js`](https://github.com/mdaines/viz.js) is a long-lived standard format for technical and scientific diagrams.
|
46 | - Custom Javascript Playables simplify integration and enhance expressivity of the document.
|
47 | - (coming soon) [Go](https://github.com/gopherjs/gopherjs) playables provide a typed language and a rich set of concurrency and communication capabilities.
|