Skip to content

Latest commit

 

History

History
53 lines (41 loc) · 4.78 KB

Home.md

File metadata and controls

53 lines (41 loc) · 4.78 KB

Welcome to Smartdown

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.

Smartdown extends the simple expressivity of the Markdown language commonly used on blogs, messaging systems, technical forums, and on GitHub. The Smartdown engine is a Javascript library that interprets the content in these Smartdown source files and enacts the desired behavior and presentation.

Explore

Use the navigation buttons below to explore different aspects of Smartdown. You can always go Back to Home.

Media Data/Science Toys Advanced
Readme Graphviz MadLibs Typescript
Markdown D3 Cuneiform Javascript
Math Data Mobius Gists
Images Plotly Temperature Extensions
Multicards Maps Vector Field Brython
Video Stdlib Tree YouTube
GIF/Audio Processes Conic ES6
Decorations ThreeJS VectorTree Mandelbrot
Cells P5JS Dungeon LDF
Disclosables Mermaid Dungeon3D OpenJSCAD
SVG jsPsych Music Inlines
Disclosables++ Sankey WordCloud Kiosk
Swatch Astronomy (WIP) Crossword
Tweets GraphvizClickable JSXGraph Filament

Basic Features

  • GitHub-flavored Markdown to make it easy to write simple and complex prose and documentation.
  • MathJax including Latex and AsciiMath syntax, chemical notation via mhchem
  • Code fragment syntax highlighting via highlight.js.
  • Media embedding support including Images, Tweets, SVG, Video, GIF.

Advanced Features

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, making it suitable for data science exploration and presentation.

Unique features of Smartdown include:

  • 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.
  • A simple, but expressive reactive process model that integrates Smartdown cells with Smartdown playables.
  • The ability to structure a Smartdown document as a set of cards which can be hyperlinked to provide guided navigation.
  • 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:
    • P5JS supports drawing-based visualizations, games, sound and much more.
    • D3.js, D3fc, Plotly.js, and threejs support data visualizations including plots, charts, maps, and much more.
    • Leaflet.js enables easy embedding of geo-based data and maps.
    • Graphviz via viz.js is a long-lived standard format for technical and scientific diagrams.
    • Custom Javascript Playables simplify integration and enhance expressivity of the document.
    • (coming soon) Go playables provide a typed language and a rich set of concurrency and communication capabilities.