Skip to content

Releases: mimic-sussex/sema

v0.5.0-beta

01 Jun 09:47
0dbf53d
Compare
Choose a tag to compare
v0.5.0-beta Pre-release
Pre-release

tutorials-as-a-service, panel and dynamic navigation
Tutorial table of contents is in /tutorial/tutorial.json (published http://localhost:8080/tutorial/tutorial.json) and describes a simple hierarchical filesystem
/tutorial/[chapter]/[section]/ ( e.g. /tutorial/01-basics/01-introduction/) where each leaf directory has two files /tutorial/[chapter]/[section]/index.md (the tutorial markdown content to load on the side bar) and /tutorial/[chapter]/[section]/layout.json (the dynamic dashboard content comprising editors, widgets and their content). To create a new tutorial, one has to simply add to the ToC file and add directory to chapters or sections.

language-as-a-service
each language is listed and published in http://localhost:8080/languages/languages.json, and available as directory <language_name> on the /assets/languages/ directory. Each language directory is has two files, "grammar.ne​" and "code.sem"​ to express the language grammar and default code expressively. Upon application load all content is fetched and populates the app dynamically (e.g. select).

playground sidebar control
sidebar control are dynamically populated with the language service. when the user selects a language on 'live code editor' selector he is locking-in that language for the whole playground (i.e. grammar editor, debugging widgets, etc)

new widgets and playground controls
DSPCodeOutput widget updates on every live-code evaluation, extracted common stores to support the for language-design workflow.
Reset button to wipe out dashboard
Post-it panel in the forge...

dynamic messaging subscriptions between Tutorial and Playground
messaging and items store notifications are subscribed and unsubscribe on each navigation (on route onMount and onDestroy and needs to be done for any new future messaging topics). this was needed to prevent the accumulation of subscriptions and memory leaks among other problems.

global audio playback control
replaces and develops our splash screen functionality for both the Tutorial and Playground areas, Every time the application loads, clicking on the button loads audio samples and initialises audio engine. This is also controlled with cmd-. / cmd-enter Provides 4 modes of feedback no-sound, muted, high- and low-volume.

store setup
3 main stores now. Playground and Tutorial areas have their own stores, logically divided into playground.js and tutorial.js at /stores. The language design workflow stores, which are re-used by both areas and reside in /stores/common.js, and support the downloading of content from/to editors, compiling grammar, generating parser and parsing code,