Bug 839120

Summary: Assemble the book in the browser
Product: [Other] Topic Tool Reporter: Joshua Wulf <jwulf>
Component: FUDCon Docs HackAssignee: Joshua Wulf <jwulf>
Status: CLOSED DEFERRED QA Contact: Joshua Wulf <jwulf>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: lcarlon, topic-tool-list
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-07 14:52:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 839100    
Bug Blocks:    

Description Joshua Wulf 2012-07-11 02:52:16 UTC
Instead of building the book with publican as static HTML, instead:

1. Build a skeleton using publican
2. Send the skeleton to the client
3. Assemble the book in the browser by pulling the xml directly from skynet and rendering it in place using client-side XSLT

Next:

1. When the editor is invoked, open the editor as a child window
2. When the editor's save action is invoked, inform the parent, and pull the xml for that topic from skynet again

What this will achieve: a wikipedia-like experience of live book editing in the browser.

Next:

1. Hook either the node.js server or the browser itself to skynet's topic event queue. If you can subscribe to a queue and specify which topics you're interested in, then the browser could register for the topics in the spec and the spec itself. BZ #839100 

What this will achieve: the ability for the book to reload its structure or the xml of a particular topic whenever any of those change from a source other than the current user's browser

Next:

1. Dynamically assemble the TOC in the browser from the content, rather than relying on publican's skeleton. Investigate this approach: http://www.alistapart.com/articles/building-books-with-css3/

What this will achieve: full dynamic assembly in the browser, at which point we're in for some serious magic.

Comment 1 Joshua Wulf 2013-04-22 09:00:53 UTC
Nearly there. We can use the publican-generated skeleton to "live patch" the html of the book at the moment.

With off-line editing, solving the skeleton generation is the next piece.