Work Examples

Work Examples presents accomplishments in architecting, engineering, and implementations of both DITA and S1000D Information Architectures; single-sourcing and multi-channel publishing into varius outputs including Eclipse Infocenter, LiveContent IETP, WebHelp, PDF, and EPUB; and an Apache Ant Build Script for use with the DITA Open Toolkit (DITA-OT) to automated the transformation and single-sourcing for multi-channel publishing of XML DITA files. This Web site www.sgappdev.com in itself and as presented in Responsive Web Design is an additional portfolio of work.
Share:

Work Accomplishments

DITA

The following DITA Implementation Presentation demonstrates XML DITA topic-based structured authoring, single sourcing, content reuse, automation, and multi-channel publishing to deliver interactive content and media across any device. The accomplishments and examples listed here are from a DITA implementation project, which is documented in the DITA Implementation Presentation.

DITA Implementation Presentation

DITA Implementation Presentation

DITA Implementation Accomplishments

  • Architected, engineered, and implemented XML DITA topic-based structured authoring; designed architecture and content for reuse, implemented Metadata and Taxonomy structures, created and delivered DITA and XMetaL training and best practices; authored DITA topics / maps, migrated content into DITA topics, API references, and release notes; created and embedded within the DITA topics e-Learning / Video Tutorials; DITA Open Tool Kit DITA-OT, DITA for Publishers, and XMetaL transformations customized and branded (XSLT, XSL-FO, CSS style sheets) to publish various formats including Eclipse Infocenter, WebHelp, PDF, and EPUB.
  • Architected, engineered, and implemented multiple Eclipse Information Centers to serve as the company's central information portal for the publishing of and direct linking to content within the information centers and to content on other platforms and information systems by creating solutions that bridged multiple platforms and operating systems (Linux, OS X, and Windows).
  • Customizations and specializations (XSLT, XSL-FO, CSS) created and deployed for both DITA-OT and XMetaL. Transform customizations included programmatically selecting specific map and topic element content during publishing and positioning the content onto the cover and into running headers and footers. Created custom Ant build scripts for unattended publishing of DITA content in various formats.

DITA Examples

All four of the following examples are from the same source content, which demonstrates the DITA Implementation Accomplishments including DITA Open Tool Kit, XSLT, XSL-FO, and CSS customizations, as listed in the DITA Implementation Presentation.

Eclipse Infocenter

Eclipse Infocenter

WebHelp

WebHelpr

PDF

PDF

EPUB

EPUB

S1000D

S1000D Implementation Accomplishments

The following example demonstrates customizations performed to SDL LIveContent including:

  • Customized, developed, reversed engineered, and hand coded the SDL LiveContent front end UI and transforms through the use of REST web services, API, XML, XSLT, XSL-FO, Ant scripts, Perl, JavaScript, JQuery and JQuery UI, HTML5, CSS, and custom programing to create UI messaging, error handling, enhanced tear off media types, skin selection, step marking, custom content display windows and the creation of additional navigational menus and aids.
  • Customized, developed, reversed engineered, and hand coded HTML, XSLT, XSL-FO, JavaScript, and CSS style sheets for custom dynamic content delivery including adding support for new elements and attributes to support the S1000D standard and crossing tying support across style sheets.
  • Created custom transforms (hand coded XSLT and Ant build scripts) to convert, using the DITA-OT environment, to extract specific content from S1000D Data Modules to create Information Architecture documents and reports including: Information Maps, Applicability, Publication Configuration, and for the creation of uniqe custom data modules.

S1000D Examples

LiveContent IETP - Desktop

LiveContent - Desktop

LiveContent IETP - Tablet

LiveContent - Tablet

LiveContent IETP - PDF

LiveContent - PDF

Apache Ant Build Script

The following Apache Ant build script, demonstrates how the DITA publishing process can be configured to automate the process to transform DITA XML files, using the DITA Open Toolkit (DITA-OT) and DITA for Publishers plugin, into; Eclipse Infocenter, PDF, and EPUB formats. The script sets property strings, transforms the DITA files, modifies the transformed files, and then publishes the content onto a server. Available on: GitHub repository sdgpalm2 / dita-build-eclipse-pdf-epub.

Toggle Display Mode
	
	<!-- Code Example Created By - Scott Galaba -->
	
	<?xml version="1.0" encoding="UTF-8" ?>
	<project name="Test-documentation" default="all" basedir=".">
	<!-- set the path location to the DITA-OT -->
	<property name="dita.dir" location="c:/DITA-OT1.7.5"/>
	<!-- set the path location to the ditamap file -->
	<property name="ditamap.dir" location="c:/TestDoc/Source DITA/"/>
	<!-- set the path location to the ditaval file -->
	<property name="ditaval.dir" location="c:/TestDoc/Source DITA/ditaval/"/>
	<!-- set the path location to the css and footer files -->
	<property name="ditacss.dir" location="c:/TestDoc/Source DITA/Styles/"/>
	<!-- set the path location to the icons used with notes -->
	<property name="ditaicons.dir" location="c:/TestDoc/Source DITA/Images/Icons/"/>
	<!-- set the path location for the generated eclipse output -->
	<property name="ditaoutput.dir" location="c:/DITAOT/out/eclipse/"/>
	<!-- set the path location for the generated pdf output -->
	<property name="ditaoutputpdf.dir" location="c:/DITAOT/out/pdfs/"/>
	<!-- set the path to the Eclipse Inforcenter Plugin Location -->
	<property name="ditainfocenter.dir" location="c:/InfocenterTestDoc/eclipse/plugins/"/>
	
	<!-- DITA Customization to use -->
	<property name="ditacustomization" value="c:/DITA-OT1.7.5/plugins/org.dita.pdf2/Customization"/>
	
	<!-- DITA Map file to use -->
	<property name="ditamapfile" value="BigFiDongle.ditamap"/>
	<!-- DITA Val file to use -->
	<property name="ditavalfile" value="BigFiDongle.ditaval"/>
	<!-- DITA Val file to use for PDF -->
	<property name="ditavalfilepdf" value="BigFiDonglepdf.ditaval"/>
	<!-- DITA footer file to use -->
	<property name="ditafooterfile" value="custom-ftr.html"/>
	<!-- DITA css file to use -->
	<property name="ditacssfile" value="TestDoc_commonltr.css"/>
	<!-- Specific Eclipse Infocenter Plugin Directory Name to use for the above stated ditamap file -->
	<property name="plugindirname" value="BigFi"/>
	<!-- pdf file name -->
	<property name="ditapdffilename" value="BigFiDongle.pdf"/>
	<!-- epub file name -->
	<property name="ditaepubfilename" value="BigFiDongle"/>
	<!-- DITA Val file to use for epub -->
	<property name="ditavalfileepub" value="BigFiDongleepub.ditaval"/>
	<!-- epub css file to use -->
	<property name="ditacssfileepub" value="TestDocEpub_commonltr.css"/>
	<!-- set the path location for the generated epub output -->
	<property name="ditaoutputepub.dir" location="c:/DITAOT/out/epub/"/>
	<!-- set the path and file for epub cover graphic -->
	<property name="epubcovergrahpicfile" location="c:/TestDoc/Source DITA/Images/Dongles/BigFi_cover_front_760.jpg"/>
	
	<!-- Clean out the eclipse and epub build directory before starting a new build -->
	<delete dir="${ditaoutput.dir}\${plugindirname}"/>
	<delete dir="${ditaoutputepub.dir}\${plugindirname}"/>
	<!-- Clear out the Infocenter directory before starting a new build -->
	<delete dir="${ditainfocenter.dir}\${plugindirname}"/>
	
	<!-- set build script to both an eclipsehelp, pdf, and epub outputs -->
	<target name="all" description="build eclipse, pdf, and epub" depends="eclipse,pdf,epub"/>
	
	<!-- good eclipse build script -->
	<target name="eclipse" description="build Eclipse">
		<ant antfile="${dita.dir}\build.xml">
			<!-- set the build type to eclipsehelp -->
			<property name="transtype" value="eclipsehelp"/>
			<!-- set the ditamap file to use -->
			<property name="args.input" value="${ditamap.dir}\${ditamapfile}"/>
			<!-- set the conditional text settings file to use -->
			<property name="dita.input.valfile" value="${ditaval.dir}\${ditavalfile}"/>
			<!-- set the footer file to use -->
			<property name="args.ftr" value="${ditacss.dir}\${ditafooterfile}"/>
			<!-- set the css file and path statements -->
			<property name="args.css" value="${ditacssfile}"/>
			<property name="args.cssroot" value="${ditacss.dir}"/>
			<!-- set create index file to yes -->
			<property name="args.indexshow" value="YES"/>
			<!-- set the symbolic name (aka plugin id) of the plugin to be produced, overrides the @id value in the ditamap -->
			<!-- set output directory location -->
			<property name="output.dir" value="${ditaoutput.dir}\${plugindirname}"/>
			<!-- clear out temp location -->
			<property name="clean.temp" value="yes"/>
		</ant>
		<!-- force copy of css file due to bug in dita-OT -->
		<copy file="${ditacss.dir}\TestDoc_commonltr.css" todir="${ditaoutput.dir}\${plugindirname}" overwrite="true"/>
		<!-- force copy of background icon note images -->
		<copy file="${ditaicons.dir}\caution_20.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<copy file="${ditaicons.dir}\danger_20.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<copy file="${ditaicons.dir}\important_20.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<copy file="${ditaicons.dir}\note_20.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<copy file="${ditaicons.dir}\tip_20.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<copy file="${ditaicons.dir}\tw_icon.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<copy file="${ditaicons.dir}\warning_20.jpg" todir="${ditaoutput.dir}\${plugindirname}\Images\Icons" overwrite="true"/>
		<!-- Copy eclipsehelp output files (the "plugin") to the Eclipse Inforcenter plugins folder -->
		<copy todir="${ditainfocenter.dir}\${plugindirname}">
		<fileset dir="${ditaoutput.dir}\${plugindirname}"/>
  		</copy> 
	</target>
	
	<!-- Good pdf build scripot -->
	<target name="pdf" description="build PDF">
        <ant antfile="${dita.dir}\build.xml">
        	<!-- set the build type to pdf2 -->
        	<property name="transtype" value="pdf2"/>
        	<!-- the ditamap file to use -->
        	<property name="args.input" value="${ditamap.dir}\${ditamapfile}"/>
        	<!-- the conditional text setting file to use -->
        	<property name="dita.input.valfile" value="${ditaval.dir}\${ditavalfilepdf}"/>
        	<!-- Customization to use -->
        	<property name="customization.dir" value="${ditacustomization}"/>
        	<!-- display task lables in topics -->
        	<property name="args.gen.task.lbl" value="no"/>
        	<!-- set related links to nofamily -->
        	<property name="args.rellinks" value="nofamily"/>
        	<!-- output directory location -->
        	<property name="output.dir" value="${ditaoutputpdf.dir}"/>
    	</ant>
    	<!-- Copy pdf output file to the Eclipse Inforcenter plugins pdf folder -->
    	<copy file="${ditaoutputpdf.dir}\${ditapdffilename}" todir="${ditainfocenter.dir}\${plugindirname}\pdfs" overwrite="true"/>
	</target>
	
	<!-- good epub build script -->
	<target name="epub" description="build epub">
		<ant antfile="${dita.dir}\build.xml">
			<!-- set the build type to eclipsehelp -->
			<property name="transtype" value="epub"/>
			<!-- set the ditamap file to use -->
			<property name="args.input" value="${ditamap.dir}\${ditamapfile}"/>
			<!-- set the conditional text settings file to use -->
			<property name="dita.input.valfile" value="${ditaval.dir}\${ditavalfileepub}"/>
			<!-- set the footer file to use -->
			<property name="args.ftr" value="${ditacss.dir}\${ditafooterfile}"/>
			<!-- set the css file and path statements -->
			<property name="args.css" value="${ditacssfileepub}"/>
			<property name="args.cssroot" value="${ditacss.dir}"/>
			<!-- set create index file to yes -->
			<property name="args.indexshow" value="YES"/>
			<!-- set output directory location -->
			<property name="output.dir" value="${ditaoutputepub.dir}\${plugindirname}"/>
			<!-- set cover artwork -->
			<property name="cover.graphic.file" value="${epubcovergrahpicfile}"/>
			<!-- set TestDoc url -->
			<property name="epub.pubid.uri.stub" value="http://www.TestDoc.com/"/>
			<!-- clear out temp location -->
			<property name="clean.temp" value="yes"/>
		</ant>
		<!-- Add apple ibooks option file to epub -->
		<move file="${ditaoutputepub.dir}\${plugindirname}\${ditaepubfilename}.epub" tofile="${ditaoutputepub.dir}\${plugindirname}\${ditaepubfilename}.zip"/>
		<unzip src="${ditaoutputepub.dir}\${plugindirname}\${ditaepubfilename}.zip" dest="${ditaoutputepub.dir}\${plugindirname}\${plugindirname}\"/>
		<copy file="${ditacss.dir}\com.apple.ibooks.display-options.xml" todir="${ditaoutputepub.dir}\${plugindirname}\${plugindirname}\META-INF\" overwrite="true"/>
		<zip destfile="${ditaoutputepub.dir}\${plugindirname}\${plugindirname}\${ditaepubfilename}.epub" basedir="${ditaoutputepub.dir}\${plugindirname}\${plugindirname}\" excludes="dont*.*"/>
		<!-- Copy epub output file to the Eclipse Inforcenter plugins epub folder -->
		<copy file="${ditaoutputepub.dir}\${plugindirname}\${plugindirname}\${ditaepubfilename}.epub" todir="${ditainfocenter.dir}\${plugindirname}\epub" overwrite="true"/>
	</target>

	</project>
		


Tips and Donations to Support Development

New to Cryptocurrency?
Getting Started in Crypto, Crypto Tips, and Crypto Links.

With appreciation and gratitude, thank you!
BitecoinBTC LitecoinLTC EthereumETH DigiByteDGB DASH TokenDASH Bitcoin CashBCH BAT Basic Attention TokenBAT

Or send to sgappdev.crypto using a blockchain domain address aware wallet,
like the Coinbase Mobile Wallet application.

Get a blockchain domain address from Unstoppable Domains
and receive $10 off your first purchase of $40 or more!

Download the Brave Web BrowserBrave Browser a privacy-centered browser,
with built-in support for the BAT Basic Attention TokenBAT, online and hardware wallets,
and earn BAT Basic Attention TokenBAT while browsing, and receive TIPS as a content creator.

Ready to buy your first Cryptos or Bitcoin?
Sign up at CoinbaseE ExchangeCoinbase and get $10 in free Bitcoin.
Sign up at Gemini ExchangeGemini and get $10 in free Bitcoin.

Eclipse Infocenter
WebHelp
PDF
EPUB

To view this publication an EPUB viewer is required.

LiveContent - Tablet
LiveContent - Tablet

With appreciation and gratitude, thank you!

Bitecoin Bitcoin BTC Address:

BTC QR Code

With appreciation and gratitude, thank you!

Litecoin Litecoin LTC Address:

LTC QR Code

With appreciation and gratitude, thank you!

Ethereum Ethereum ETH Address:

ETH QR Code

With appreciation and gratitude, thank you!

DigiByte DigiByte DGB Address:

DGB QR Code

With appreciation and gratitude, thank you!

Dash Dash DASH Address:

DASH QR Code

With appreciation and gratitude, thank you!

Basic Attention Token Basic Attention Token BAT Address:

BAT QR Code

With appreciation and gratitude, thank you!

sgappdev.crypto
For blockchain domain address aware wallets.
BTC, LTC, ETH, DGB, DASH, BCH, BAT

sgappdev.crypto QR Code

With appreciation and gratitude, thank you!

Bitcoin Cash Bitcoin Cash BCH Address:

BCH QR Code