downrunner

home / news / 2020-10-11

This is a big release, let’s dive in!

Advanced Math

Downrunner now supports MathJS as a module. Just like Jupyter, you can type advanced math expressions into a console field and get back results! Currently, this is all done in the browser, so heavy duty computation may have to wait for our server based functionality, but give it a try on our home page example.

One of the most frustrating things about Markdown is the inability to tweak the layout of links and images without resorting to HTML tags. Downrunner overcomes this by suuporting the use of HTML comments surrounding relaxed JSON to express attribute values. If you click on Google below it will lauch a new browser window.

Google

There is more detail here.

Gannt Charts

Sometimes it seems like everything is a project … so we added Gantt charts.

Module Inference

We have eliminated <downrunner> tags in favor of special HTML comments places after the backtick sections and simply made the language next to the backticks be the module specifier.

We are really excited about this one because it makes writing Downrunner Markdown even easier.

Before final rendering, the module definition is used to re-map the langauge back to the style in which it should be rendered. This is based on the type of input the module expects.

```latex
e^{i \pi} = -1
```

<–{}–>

```chart
{
	type: PieChart,
	columns:[Topping,Slices],
	rows:[
      [Mushrooms, 3],
      [Onions, 1],
      [Olives, 1],
      [Zucchini, 1],
      [Pepperoni, 2]
    ],
	options: {
		title: 'How Much Pizza I Ate Last Night',
		height: 300
	}
}
```

<–{}–>

All our examples have been updated, so just head to the home page and take a look at them.

These changes not only make it easier for you to use Downrunner, they dramatically simplify our engine and make it possible for users with JavaScript skills to add new modules or override existing ones. More on that next week.

Security

We have increased security. Console based expressions are evaluated in an isolated web worker context and the results are purified to eliminate executable code from being returned. Scripts targetting display elements are isolated in separate document contexts that are unable to access window.parent, window.top, globalThis and DOM sibling/parent navigation. When they attempt to change the display element, the updates are also purified.

And More ….

Our BETA program has been expanded to include self hosted markdown files. You no longer have to be a GitHub user.

Downrunner markup now supports an optional attribute editoroptional. If it is present, then a button is shown to open and close the editor. Most of the examples in the documentation have been updated to use this feature. There is also a sourceoptional attribute that does the same thing for showing source.

There have been improvements to OrgChart, you can now use a shorthand notation for providing data to large organization charts. See the updated example. Most charts will support this approach going forward.

The Chart module also has multiple means to simplify providing data. See the updated documentation.