Quick Status
Code functions correctly
Work in progress: most code functions correctly,
but new code being added.
Demonstration code
yes
Documentation
yes
Test cases
none planned
Static library
none planned
Build requires
C++17 option
Planned design changes
Continue adding new story content
Concept:
A story is a connected thread of information (a sequence of pages) from a web site. A StoryTeller:
loads a list of stories
loads a story when the user selects a link from the list
Sequences through the story with "next" and "prev" buttons.
Displays page specific interpretation text on demand.
The story does all this using only JavaScript, HTML pages, and Cascading Style Sheets, e.g., it
works in the context of a static site, like github pages. That also means that it can be run from
a desktop or laptop machine without being embedded in a page server. The browser simply loads
pages from their location in the file system.
Design:
Each story is represented by a "Table Of Contents" (TOC) page.
Each page of the story is represented, in the TOC,
by a link and a sibling "page-notes" div with text.
Essentially the story TOC page represents a story time-line. When it is loaded by the StoryTeller
its JavaScript analyzes all of its own links and page-notes, and writes that information to localStorage.
The StoryTeller's JavaScript retrieves that information and stores an array of JavaScript
objects for each page. Each object has:
The page's address for loading the page into an iframe.
The page's name for loading into a dropdown Table Of Contents.
The "page-notes" text to display when the user hovers over a control or
toggles a button.
Status:
At the moment, this site has a CppStory_SlideShow.html, which is an early version, with a
somewhat different, less flexible, design.
The new design, described here, will replace the original slide show. That should happen by
the end of August, 2019.
At the moment, the content of this repository is incomplete - just here so that a couple of
collaborators, Mike Corley and Vaibhav Kumar, and I can work with it now.