matthewmaier / platyvue

easily create and share open source hardware documentation
2 stars 1 forks source link

Document Rendering #3

Closed jmwright closed 9 years ago

jmwright commented 9 years ago

Sorry if you've already answered this.

If I wanted to generate a PDF assembly manual from my Platypus document, I would write a renderer that pulled out the relevant records, downloaded any linked images, etc, and then combined them into the PDF, correct? If so, how does my document renderer figure out which records are relevant? Do you just assume all steps and changes are relevant? Could use manuals be generated too, or will Platypus only work for generating assembly manuals?

matthewmaier commented 9 years ago

That's spot on. At the moment I have what I think will work as an approach, but I'm not sure. We'll probably have to get farther along and see what works in practice.

What I'm picturing is that the Platypus file will actually contain no information on how to filter or render the information inside of it. Platyvue will have its algorithms and then there will be a preferences file that gets created for each user and each unique .plat file they view in Platyvue. Any queries or filters or rendering preferences or whatever will be stored in the preferences file.

That way users don't have to have their own individual copy of the .plat file if they just want to read the information inside of it. They'll just need their own preferences file if they don't want the .plat file to load up in its default view every time.

As for Platypus itself, one of the important keywords is going to be something to the effect of "alternative." That way you can record more than one way to reach the same state. Another would be something like "sequence" so that you can reorder steps if you don't like how they serialized automatically. You would make a choice in Platyvue for output purposes (like calculating the BOM or rendering step-by-step instructions). If you've got a preferences file the choice will be saved so that next time you open the .plat file you don't have to make the selection again.

That being said, I think there will be a lot of potential for clever algorithms that take advantage of how the Platypus data is all tagged and related. Just a couple that I can think of at the moment would be automatically choosing paths based on known user resources (like if Platyvue knows they've got a hand drill but not a drill press) and serializing steps semantically so that their order makes more sense (like laying out the big work pieces before the small pieces).

On Fri, Apr 17, 2015 at 8:41 PM, Jeremy Wright notifications@github.com wrote:

Sorry if you've already answered this.

If I wanted to generate a PDF assembly manual from my Platypus document, I would write a renderer that pulled out the relevant records, downloaded any linked images, etc, and then combined them into the PDF, correct? If so, how does my document renderer figure out which records are relevant? Do you just assume all steps and changes are relevant? Could use manuals be generated too, or will Platypus only work for generating assembly manuals?

— Reply to this email directly or view it on GitHub https://github.com/matthewmaier/platyvue/issues/3.