GSoC 2008 Steve Bartz
Project Proposal
Abstract
XML provides a way of structuring a document. Scribus provides a way to make fantastic-looking documents. So it's natural to want to combine the power of both tools.
XML is a standard that goes far beyond the scope of desktop publishing. The Internet demonstrates the power of XML to divide documents, and it shows natural this setup can be. XHTML contains the structure of the document and CSS contains the information about how the document should be displayed. With Scribus, this division is also natural. Styles are applied to sections of a document according to the content.
Vision
The goal is to bring XML editing control to the Story Editor. XML will not only add new power to Scribus and Story Editor, it will change the way text is edited and controlled within text frames.
Story Editor in its current iteration is hard to use. Formatting is supposed to be applied in Story Editor, but most users are unable to see the changes they are making in Story Editor without reverting to the page view.
My vision for the XML editor is a toggle. Users can switch to XML editor mode and make use of XML's ability to organize and structure documents. XML's strict structuring makes very good sense for most uses in Scribus. Users have a handful of styles for each document that they want to apply to certain parts of the document according to its place within a document.
Deliverables
- New Story Editor code
- XML Editor for text frame
- Story Editor modes (XML, plain text, etc.)
Spinoffs
Python Interface Tie-in
According to Scribus developer Craig Ringer, "The ability to expose the internal XML for text objects might also be rather interesting for the Python interface."
Document XML Editor
Text objects are the majority components of Scribus documents. With the ability to edit the XML, it would not take much more to have the ability to edit the XML of the document.
XML/CSS
An XML editor moves Scribus one step closer to division of content and style. We can style the same content with a completely different styles. Say we have a marketing campaign with a slogan, an explanation and maybe a picture. We can create many different materials just by altering the stylesheet.
Content Management System
Many Scribus documents are big projects that are worked on by more than one person with different skills. Photographers need to edit photos. Illustrators need to edit graphics. Editors need to edit text. With an XML editor, Scribus is one step closer to having functionality similar to Adobe's InCopy, but in a much more open way.
Implementation
After talking with the Scribus Community in the IRC channel, we have decided that the code of Story Editor needs to scrapped and rewritten. This is the perfect opportunity to introduce new functionality and provide the framework for addition powerful upgrades to Story Editor.
Resources
Inkscape's XML editor
Details
Potential Issues
Timeline
- April 14: Accepted student proposals announced.
- May 26: Students begin coding.
- July 14: Mid-term due.
- August 11: Pencils down.
- August 18: Firm pencils down.
- September 1: Final due.
Project
- April 14 - May 1
Bring my C++ proficiency up to required level.
- May 1 - May 7
Understand how current Story Editor works.
- May 7 - May 26
Talk to community and develop firm plan for the new Story Editor.
Questionnaire
- Name / University / current enrollment information.
- Steve Bartz, Stanford University, currently a student at Phillips Academy in Andover, Massachusetts but admitted and enrolled early at Stanford
- Biographical sketch.
- I grew up in Kailua, Oahu, Hawaii. I went to Punahou School for Middle School. I moved to Phillips Academy, a boarding school in Andover, MA. While at Andover, I began writing humor articles for The Phillipian, the weekly 16-page school newspaper printed on broadsheet. As I started to get more involved with the newspaper, I discovered that what I really enjoyed about the newspaper was doing layout. I quickly became the resident Adobe Creative Suite (InDesign, Illustrator, Photoshop) expert. Since then I have passed my responsibilities and knowledge to my successor. I still enjoy DTP as a hobby. In December, I was admitted to Stanford University early. I plan to begin attending in Fall 2008. I think Stanford fits my interests as I have always been a very tech-orientated guy. I've dabbled in Linux since I was 12 and grew up on a computer.
- Did you ever code in C, C++ or Python? Please provide examples of code.
- I first learned Python for computational purposes as part of SSP in Soccoro, NM. The program I wrote then found the orbit of an asteroid based on three observations and produced a 3D visualization. I don't have much experience in C or C++, but I know Java quite well from an AP Computer Science course. After a few hours of skimming, C++ looks very similar to Java. I have taught myself bash, PHP, JavaScript, CSS and HTML, so I don't imagine it will be much of a problem for me to pick up a new language or two, especially ubiquitous ones that are nearly universal.
- Do you use Scribus? Please provide examples if you do.
- I use Scribus, but I have done most of my DTP using InDesign because my office did. The biggest project I ever put together was a 60-page end-of-year edition. After working so much with Adobe products, I can identify some obvious flaws. Among many others, major flaws were slow loading times, useful options hidden in dialogs and big file formats. I have always been a FOSS fan, so I knew there had to be a worthy competitor to a popular closed-source piece of software. This is when I discovered Scribus. Scribus still feels foreign to me because I have two years of formative experience in InDesign, but I know that Scribus can do nearly everything and in some ways more than InDesign can.
- Do you make other use of Scribus than for laying out articles? Please describe and show examples.
- Answer
- Were you involved in Scribus development in the past? What were your contributions?
- I have not been previously involved in Scribus development. However, after spending a week in the IRC channel, Scribus is definitely a project that I am interested in, wanted to be involved with and can assist in many ways.
- Were you involved in other OpenSource development projects in the past? If yes, please tell us project, when and in what role were you involved.
- No, I have never been involved in open-source development. For years I have been a user and an admirer. Now I think I'm in a position to give back.
- Why have you chosen your development idea and what do you expect from your implementation?
- I have chosen to work on the rewrite of Story Editor and incorporation of an XML Editor because XML+CSS was such a beautiful thing to me when I discovered it. I had already spent weeks working on huge publications. Whenever I started to lose track of styles or formatting, I knew there had to be a better way to do what I wanted to do. On my free time, I came across CSS, and it's power to style an entire document swept me off my feet. As a developer, I want to make features work how users think they should work. The major difference between Scribus and closed-source projects like InDesign and Quark is that Scribus has the ability to adapt quickly. Closed-source projects are always focused on legacy and as a result, force the users to learn how the program works and conquer its quirks. Scribus has the ability to become the ultimate DTP software because it can change. If something doesn't work like it should, a fix is just one release away. DTP software should be a natural extension of the artist.
- Are you confident that you will be able to dedicate time and effort necessary for the successful completion of your GSoC 2008 project?
- Absolutely. I will force myself to adhere to a strict schedule which I have outlined below. I have no other commitments this summer.
- Are you you ready and willing to sustain a good level of communication with your mentor and the Scribus Team overall and be open and forthcoming about the progress of your project including coding and personal problems related to your GSoC project?
- I don't have to be willing to communicate with the Scribus Team. I want to communicate with them. They are a fun and understanding group of people. When it comes to questions I have for the Team, I know where to draw the line between pestering and curiousity. Also, I know where to find documentation.