<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>All WebWorks Blogs &#187; Details</title>
	<atom:link href="http://blogs.webworks.com/blog/category/details/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.webworks.com</link>
	<description>Digital Publishing to the Metaverse...</description>
	<lastBuildDate>Thu, 19 Jan 2012 21:41:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ePublisher Plug-ins</title>
		<link>http://blogs.webworks.com/allums/2007/12/27/epublisher-plug-ins/</link>
		<comments>http://blogs.webworks.com/allums/2007/12/27/epublisher-plug-ins/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 21:59:12 +0000</pubDate>
		<dc:creator>allums</dc:creator>
				<category><![CDATA[Details]]></category>

		<guid isPermaLink="false">2.23</guid>
		<description><![CDATA[Extensibility is the hallmark of Quadralay&#8217;s publishing products.  Invariably, if we didn&#8217;t ship a given feature with the product, someone, somewhere found a way to add it to the mix.  Whether on Publisher 2003 or ePublisher, customers found a way to be happy and successful.
Until upgrade time.

The Publisher 2003 line took the approach [...]]]></description>
			<content:encoded><![CDATA[<p>Extensibility is the hallmark of Quadralay&#8217;s publishing products.  Invariably, if we didn&#8217;t ship a given feature with the product, someone, somewhere found a way to add it to the mix.  Whether on Publisher 2003 or <a href="http://www.webworks.com/Introduction/">ePublisher</a>, customers found a way to be happy and successful.</p>
<p>Until upgrade time.<br />
<span id="more-6"></span><br />
The Publisher 2003 line took the approach of never (well, almost never) removing or changing functionality.  Users could take a Publisher 3.5 project, open it up in Publisher 8.6, and obtain consistent results.</p>
<p><strong><em>No new features, but hey, everything still works.</em></strong></p>
<p>For <a href="http://www.webworks.com/Introduction/">ePublisher</a>, we took a different approach and really focused on creating an easy upgrade path for casual users.  This approach is great for anyone who limited their changes to the <a href="http://www.webworks.com/Introduction/">ePublisher</a> UI, <a href="http://wiki.webworks.com/DevCenter/Documentation/PageTemplates">page templates</a>, and CSS files.  However, when users customize XSL code, we run into the issue of incompatible code.</p>
<p>To address this, we introduced <a href="http://www.webworks.com/Technical_Assistance/Tutorials/ePublisher/StationeryWorkflow/">ePublisher Stationery</a> in the <a href="http://www.webworks.com/Introduction/">ePublisher 9.2</a> release.  <a href="http://www.webworks.com/Technical_Assistance/Tutorials/ePublisher/StationeryWorkflow/">ePublisher Stationery</a> allows users to mimic Publisher 2003&#8217;s trick:</p>
<p><strong><em>No new features, but hey, everything still works.</em></strong></p>
<p>When users do need to resolve incompatible code issues, <a href="http://www.webworks.com/Technical_Assistance/Tech_Notes/Common/EX_ePub_Project_Format_Overrides.shtml">ePublisher&#8217;s override mechanism</a> clearly separates Quadralay code from user code.  This approach enables <a href="http://www.webworks.com/Products/ePublisher_Output_Formats/">formats</a> and targets to exhibit different behaviors as necessary.  It also works well for non-XSL files.</p>
<p>Until you want to share your cool feature.</p>
<p>I ran into this problem while working on a customer request from <a href="http://www.webworks.com/Community/RoundUp_Conference/Schedule/">RoundUp</a> for <a href="http://wiki.webworks.com/DevCenter/Projects/Reports/Printable_Reports">printable reports</a>.  I didn&#8217;t need to modify any existing XSL, just add to it.  So, I created my new XSL stage, overrode the &#8220;format.wwfmt&#8221; file, and <strong>Bang!</strong>, I&#8217;m done.  But how could I deploy this to a customer who might be using <a href="http://www.webworks.com/Technical_Assistance/Online_Manuals/ePublisher_Output_Formats/WebWorksHelp.4.1.shtml">WebWorks Help</a> or another using <a href="http://www.webworks.com/Technical_Assistance/Online_Manuals/ePublisher_Output_Formats/HTML_Help.2.1.shtml">Microsoft HTML Help</a>?  Changing the &#8220;format.wwfmt&#8221; file basically defines a brand new format.  What do I do if I create yet another new feature that requires a similar change?</p>
<p>Looking around at various plug-in architectures gave me a few clues.  <a href="http://www.eclipse.org/">Eclipse</a> has one way to do it, but it seems to be really focused on UI interactions, drag-drop behaviors, etc.  Mozilla&#8217;s <a href="http://www.mozilla.com/en-US/firefox/">FireFox</a> browser has a nice interface to plug-ins.  Just add the feature and go.  I like that!  Finally, the <a href="http://dita-ot.sourceforge.net/">DITA Open Toolkit</a> defines a plug-in architecture.  The <a href="http://dita-ot.sourceforge.net/">DITA-OT</a> approach requires a user action to enable your plug-in (<em>ant integrate</em>).  Then the <a href="http://dita-ot.sourceforge.net/">DITA-OT</a> build script rewrites XSL files with user extensions added, etc.  The problem is that you can only extend where <a href="http://dita-ot.sourceforge.net/">DITA-OT</a> gives you an <a href="http://dita-ot.sourceforge.net/SourceForgeFiles/doc/plugin/createplugin.html">extension point</a>.  There are proposals to enhance the capabilities of DITA-OT plug-ins ala this one, <a href="http://dita-ot.wiki.sourceforge.net/Making+plugins+more+useful">Making plugins more useful</a>.</p>
<p>So what about ePublisher?</p>
<p>In ePublisher, the reposibilities that <a href="http://ant.apache.org/">Ant</a> handles for <a href="http://dita-ot.sourceforge.net/">DITA-OT</a> are split between the format definition file, &#8220;format.wwfmt&#8221;, and XSL extensions.  &#8220;format.wwfmt&#8221; expresses dependency information only.  It defines relationships only.  No processing.  That&#8217;s a bit easier than working with arbitrary <a href="http://ant.apache.org/">Ant</a> build files.  Good!  So then what ePublisher needs is a way to build the &#8220;format.wwfmt&#8221; file on the fly.  <a href="http://www.webworks.com/Introduction/">ePublisher</a> can then integrate modules before initiating the publishing process.  The first step towards ePublisher plug-ins is to define the module layout and see if we can script the &#8220;format.wwfmt&#8221; compile step.</p>
<p><a href="http://www.webworks.com/weblog/jwiles/">Jesse</a> and I talked about this before Christmas.  I&#8217;m wondering what <a href="http://www.webworks.com/weblog/jwiles/">he</a> might cook up over the holidays.</p>
<p>P.S. I see the Apache folks are working on something similiar for <a href="http://ant.apache.org/">Ant</a> called <a href="http://ant.apache.org/ivy/features.html">Ivy</a>.  Looks like I have more research to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.webworks.com/allums/2007/12/27/epublisher-plug-ins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

