Skip to main content
This site and Lume package is currently under development and may not be stable.

OI Lume Viz

At Open Innovations, we've started using the Lume Static Site Generator to build data microsites for people. This gives us the benefits of a static HTML site, with associated manageability, efficiency, and maintainability benefits, whilst giving us a framework for extending.

To support some of the more complex visualisations we undertake, we've encapsulated a number of our charting libraries in this. With each visualisation type we aim to:

  • keep bandwidth use down
  • only use limited front-end Javascript to add some interactivity (and limit what is loaded to what is needed)
  • keep visualisations as accessible as possible

Using the library

To use this in your Lume project, include the following in your Lume _config.js or _config.ts file. WARNING! This is strictly a pre-release version, and interfaces are very likely to change.

You can include your config directly in your Lume _config.js or _config.ts file:

import oiLumeViz from "https://deno.land/x/oi_lume_viz@v0.15.12/mod.ts";

site.use(oiLumeViz({
  assetPath: 'assets/oi',
  componentNamespace: 'oi',
}));

Or move the OI Lume Viz config into an external file using:

import oiLumeViz from "https://deno.land/x/oi_lume_viz@v0.15.12/mod.ts";

import oiVizConfig from "./oi-viz-config.ts";
site.use(oiLumeViz(oiVizConfig));

Then, in oi-viz-config.ts you'd include your config e.g.:

export default {
	"assetPath": '/assets',
	"componentNamespace": 'oi',
	"colour": {
		"names": {
			"gold": "#F7AB3D",
			"orange": "#E55912",
			"turquoise": "#69C2C9",
			"cherry": "#E52E36",
			"chartreuse": "#C7B200",
			"plum": "#7D2248",
			"grey": "#B2B2B2",
			"blue": "#005776",
			"raisin": "#874245",
			"rose": "#FF808B",
			"forest": "#4A783C",
			"richblack": "#000000",
		},
		"scales": {
			"example": "#ff0000 0%, #0000ff 100%",
		}
	}
}

You can provide the following options:

  • assetPath path to locate the Javascript assets that are loaded (default: /assets)
  • componentNamespace namespace where the charts are accessible e.g. comp.oi.dashboard() (default: oi)
  • colour - site-wide colours by name, series, and scale
  • font - site-wide fonts
  • map - site-wide map tile layers.

Visualisation types

We have a variety of visualisation types available:

Testing

Run a test with the following command. Replace the file path with the tests you want to run. If you provide a directory path and Deno will find any test files in the directory and it's sub-directories.

deno test --unstable --allow-read --no-check components/chart/bar.test.ts

To make Deno continually run these tests, add the --watch flag. This will then run each time the input files change.

deno test --unstable --allow-read --no-check --watch components/chart/bar.test.ts