Helpful Tools
Below are some helpful tools that can aid in customizing output, testing functionality and generally make life easier working with text.
Technical Warning!
If you are nervous about working with code, don't be! There are many ways technical tools such as these can be used that have nothing to do with programming or code. Hopefully these tools will be helpful outside of the ePublisher platform to make you more productive.
Merge/Diff Tools
Merges and Diffs are where two or more files are compared. The differences can then be dealt with by merging (combining the two) or simply apply a change from one file to another. Often times merge/diff tools can also compare directories to see where new files might be and what files within a directory hierarchy are different. This can be helpful when checking changes between the default aspects of ePublisher and any customized formats.
- Araxis Merge - http://araxis.com
- See below (hint, we use it everyday)
- WinMerge – http://winmerge.org
- I think this is probably the best free tool available for specifically doing diffs and merges. It seems to be the most popular tool I have found outside of built in tools found in other editors.
- Beyond Compare - https://www.scootersoftware.com/
- See website.
- Meld - http://meldmerge.org/
- See website.
- ExamDiff - http://www.prestosoft.com/ps.asp?page=edp_examdiff
- I have not tried this diff tool, but it looked ok. If you do try it, feel free to replace this text with a better description.
- Eclipse - http://eclipse.org
- Eclipse also has a very robust diff/merge tool built in. It is difficult to find and use for someone not familiar with a large IDE, but it is a full featured tool that can be very helpful.
XML Editors
One of the most helpful tools to have is a good XML editor. The ePublisher platform is built on XSL and XML. Every configuration file, project file, and stationery file is a simple XML document that can be read and edited via a simple text editor. This is why a good XML editor is a very helpful tool.
Most of the editors below fall into three main categories:
Code Editors
An editor that is created with programming in mind. Usually a code editor will contain support for other languages, source control features and generally be extensible.
- Visual Studio Express (C# Edition) - http://msdn.microsoft.com/vstudio/express/
- Visual Studio is a pretty powerful IDE but is also very expensive. Beyond the cost, it is meant to be a way to develop a wide array of applications using the same tool, which means that at times things can be un-optimal. Visual Studio Express makes Visual Studio a bit more usable by providing a more specific tool. Specifically the C# edition provides a great XML editor and allows debugging of ePublisher XSL through a small change in the ePub config file. VS Express might be more than what you want, but overall it provides an excellent tool, especially if you want to debug the ePub XSLs.
- jEdit - http://jedit.org
- jEdit is a programmers editor that supports many languages. It is written in Java and has a good deal of community support. The downside is that it is a true programmers editor, which means that it will have an abundance of features that may or may not be helpful. It does make for a very good XML editor and supports things like folding to make navigating larger XML/XSL documents easier.
- Eclipse - http://eclipse.org
- Eclipse is a full blown IDE (Integrated Development Environment) that is written in Java. This is very much a developer tool and has a great deal of complexity. With that said, it has a very capable XML editor. If you think you will be doing a good deal of simple programming such as Javascript and XSL, then it is a well documented and supported standard tool that is worth learning.
- oXygen - http://oxygenxml.com
- oXygen is a full blown XML programmer's editor. It has many helpful features that make XML and XSL programming more efficient including code completion and built in XSL transformation. This is a complex tool that is meant for programmers, which means the helpful features might cause some problems. With that in mind, oXygen can handle any and all XML programming situations. (not free)
Simple XML Editors
XML Editors are traditionally simple text text editors that are meant to aid in writing XML. They usually have features such as validation and auto-completion, but traditionally lack more advanced features found in development focused editors such as built in XSLT processing or XPath support. If you are just starting out working with XML from a coding/programming perspective, these are good options to get started with.
- XML Copy Editor - http://xml-copy-editor.sourceforge.net/
- This is a very minimal editor that supports some formatting such as tidying up the XML. It also has some validation tools.
- Cooktop XML Editor - http://www.xmlcooktop.com/
- I haven’t tried this editor and I found that it is not currently developed, but it looked very simple to use.
- Open XML Editor - http://www.philo.de/xmledit/
- A simple XML editor with basic validation tools and supports code highlighting.
- SciTE - http://www.scintilla.org/SciTE.html
- SciTE is a simple and fast editor that has very good source code highlighting. It supports a wealth of languages and generally functions well as a simple editor to handle almost any source type. It has features such as code folding and code completion. It is slightly more advanced and is not XML specific but it is also very simple compared to more powerful development editors such as jEdit. In other words, SciTE makes for a good editor that can you can grow with.
Document Based XML Editors
Document based editors aim to allow writing of XML documents where the focus is not on tags and attributes, but instead the content. Examples might include Structured Frame or XMetal. Here are some examples that are either free or different in they provide a slightly different model that can be helpful in different situations.
- XML Notepad 2007 - http://msdn.microsoft.com/xml/ (download)
- XML Notepad was a simple tree view based XML editor. This version has been updated and built using the .Net platform. The most helpful aspect of XML Notepad is it is a good candidate for more general XML editing that is not necessarily focused on coding. For example the view is split between a tree showing the structure of the document and a view pane showing the contents of the tags.
- XML Marker - http://symbolclick.com/
- XML Marker has a somewhat helpful tree view on the left that can make it easier to the see the structure of an XML/XSL document. The actual editing aspect can feel clunky because it doesn't help with indentation very efficiently, but overall it is a good place to start.
- XMLmind - http://www.xmlmind.com/xmleditor/
- I have not tried this editor but it seems that it is a somewhat full featured XML editor created for editing XML content such as DITA. If you try it out, feel free to comment here.
- DITA Storm - http://www.ditastorm.com/
- This is an online DITA editor that is meant to be used within the content of some other system. It is probably not the most common use case, but it is a good option if you are considering a central documentation server or rolling your own system.
What Does the WebWorks Use?
I am glad you asked! Well, we use a variety of tools internally to help us develop ePublisher and work with customizing our formats and output. We don't recommend you try these tools unless you really are a programmer since they are really meant for programming. Of course, there is nothing stopping you from giving them a whirl.
- Araxis Merge - http://araxis.com
- This is the best merge tool around, hands down. It has report generation and an excellent three way merge capability. It is not free, but it is worth every penny.
- Notepad++ - https://notepad-plus-plus.org/
- Great all around editor with plenty of useful plugins.
- VS Code - https://code.visualstudio.com/
- Great all around HTML/JS/Code editor that is pretty light weight.
- Emacs - http://www.gnu.org/software/emacs/
- I use Emacs and have done so for the past few years. It is robust, customizable, cross platform and exceptionally geeky! It has diffing/merging, version control integration, and supports almost any and all languages. It even has IRC, email, calendaring and more built in. For anyone interested, I use the nxml editing mode for XML/XSL and have customized the colors to look more or less like oXygen's highlighting.
- Eclipse - http://eclipse.org
- I have used Eclipse on and off throughout the years. It is a great main stream editor/IDE for working in almost any language. It has good debugging tools and language support as well as niceties such as subversion/cvs integration. It can be a bit kludgy at times, but if you want a full featured IDE for almost any language, Eclipse is a great option.
- TortoiseSVN/CVS - http://tortoisesvn.tigris.org | http://tortoisecvs.org
- These two tools allow you to interact with subversion and CVS using the normal file explorer. It makes version control simple and efficient for anyone familiar with Explorer. It is a great option for folks who need version control (such as writers!) that don't want or need a huge expenesive content management system.
- Firefox - http://mozilla.com
- Internally, we use Firefox as our primary browser. It has a wealth of valuable extensions that make it extremely helpful. Specficially, I recommend the Web Developer Extension and FireBug. Firefox also has a very handy feature that lets you view selected source by selecting on the area you want to view and right clicking to see the selected source. This is invaluable when trying to nail down problems in long documents and seeing the differences in how IE and Firefox actually render the page.