240 likes | 323 Views
Standardize Formatting Across Documents and DTDs with Modular FOSIs. Suzanne Napoleon FOSIexpert, LLC www.FOSIexpert.com. Event hashtag is #PTCUSER10. Join the conversation!. The Challenge: Standardize Formatting.
E N D
Standardize Formatting Across Documents and DTDs with Modular FOSIs Suzanne NapoleonFOSIexpert, LLC www.FOSIexpert.com
Event hashtag is #PTCUSER10 Join the conversation!
The Challenge: Standardize Formatting • Organizations mandate standardized formatting in order to safeguard corporate identity branding • However, documents, DTDs, and formatting specs change over time • When there are multiple FOSIs, the same edits must be made to all FOSIs affected by the changes • This approach is time-consuming and error-prone
The Solution: Modular FOSIs Common formatting is coded in FOSI modules Individual FOSIs reference the appropriate modules When a module is edited, all FOSIs that reference that module are changed This approach makes it much easier to maintain standardized formatting over time
FOSI #1 FOSI #2 FOSI-specific mix-and-match modules
FOSI #1 FOSI #2 FOSI-specific Change a module to change the FOSIs mix-and-match modules
The Technical Details A FOSI is an SGML document that adheres to the OutSpec DTD SGML file entities can be used in a FOSI A FOSI module is an SGML file entity
The Process Review each FOSI and create charsubsets, pseudo-elements, and/or text entities, as appropriate, for any common code within a FOSI Compare all FOSIs to determine which share common formatting
The Process, continued Develop a naming convention for FOSIs and modules that makes their purpose obvious Use .ent extension for modules to facilitate searching the file system Examples: basic-charsubsets.ent A4-pagesets.ent list-counters.ent
The Process, continued Code the “desc”s directly in the .fos files: rsrcdesc secdesc pagedesc styldesc ftndesc
The Process, continued Code FOSI-specific formatting directly in each .fos file For example: Code warning.txt=“Warning” in Book-English.fos Code warning.txt=“Warnung” in Book-German.fos
The Process, continued Make as many file entities as needed for the following FOSI components and name them appropriately: hyphrule docdesc charfill charsubset counter envdesc stringdecl e-i-c floatloc footnote pageset ftnatt sectoken
Create File Entity create_file_entity(cfe)creates a file entity with the selected content, prompts for the name of the entity and the file name or Public IC, and inserts the entity into the document
Declare File Entity declare_file_entity(dfe) prompts for the name of the entity and the file name or the Public ID for the entity to be created
Entities in .fos Files <!ENTITY std-charfills SYSTEM "std-charfills.ent"> <!ENTITY std-counters SYSTEM "std-counters.ent"> <!ENTITY std-stringdecls SYSTEM "std-stringdecls.ent"> <!ENTITY std-pagesets SYSTEM "std-pagesets.ent"> <!ENTITY std-charsubsets SYSTEM "std-charsubsets.ent"> <!ENTITY seriesA-charsubsets SYSTEM "seriesA-charsubsets.ent"> <!ENTITY seriesA-docdesc SYSTEM "seriesA-docdesc.ent"> <!ENTITY std-eics SYSTEM "std-eics.ent"> <!ENTITY seriesA-eics SYSTEM "seriesA-eics.ent"> <!ENTITY std-footnote SYSTEM "std-footnote.ent"> <!ENTITY std-ftnatts SYSTEM "std-ftnatts.ent">
Entities in the Tagged FOSI Editor Insert references to the appropriate modules into each .fos file
The Process, continued Compile each FOSI to incorporate changes Changes are not reflected in the FOSIs until they are compiled
The Process, continued Document the modules referenced by each FOSI Be sure to update this documentation whenever you: Modify a module Add or delete references to a module
Tips Alphabetize counters, strings, e-i-c’s, charsubsets, etc., before creating FOSI modules Alphabetize counters, strings, etc., in modules Compile frequently while developing modules Detect context errors sooner rather than later Format test documents regularly and look for unintended formatting changes
Tips, continued Keep the documentation up to date: Modular FOSIs are only as good as their documentation