Well, I decided to start my DocStructure project, although I probably 
won't get full steam on the project until this summer.  I'm posting this 
to avoid duplicate effort.

Some information about the project:

 * Language: Python (Yeah, I live C/C++ too, but Python has some unique features that make it ideal for this kind of project)
 * Libraries: pygtk (so far), a python interface for gtk.

Basicly this is the implementation of the idea I had for a IDDE (integrated document development environment) for DocBook.  For those who are interested, here's the ligist I'm going with for design...

I. GUI Structure

Each document will be represented in a single window.  These windows will provide a notebook with the tabs: "Document" "Outline" "Content" and possibly "Glossery" "Index"

"Document" will contain meta information about the document.

"Outline" will provide a visual outline of the document, showing its books, articles, chapters, sections and so on.  This will allow the user to structure her document, and edit its outline.

"Content" is where the actual document will be edited directly in DocBook format.

"Glossery" and "Index" could provide a editing of these.

The menubar would contain the normal document-related items, text editing items, as well as menus that provide a reference to docbook elements, directly inserting them, and possibly prompting for values in the tags (although that's unlikely).

II. Data Structure

I'm still thinking about this.  I have three possible ideas:

 * The document structure would be contained in nested dictionary lists (known to C programmers as "associated lists"), so that a book would have its title and information in the key of the dictionary and the dictionary data would contain nested sections as other dictionaries and so forth.

 * Have a class for each of the structural elements (sect1, articles, ect).  Lists inside the objects would nest other objects for structural elements lower in the hiearchy.

 * Plain, good ol' string variable for the whole document! :)

I'm leaning toward #2 or #3.  Any thoughts?

III. Things I want to include

A. Templates
B. Wizard-like coaches to create documents, tables, ect

IV. Things I want to include but am probably too lazy

A. WYSIWYG-like editing (no true WYSIWYG can be done in this type of system)
B. Something that would automatically generate API reference from C, C++, and Python source files
C. World Domination :)

Any thoughts?

- -- 

 H3C-N--C=N      | Kenneth R. Kinder, aka Bouncing     "code=caffiene*hours"
      \==/       |
    O=<__>N-C3H  |
  H3C-N \\O      |                   Ken & Ted's Software

Version: 2.6.3i
Charset: noconv


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]