Standardize Formatting Across Documents and DTDs with Modular FOSIs Suzanne Napoleon FOSIexpert, LLC...
-
Upload
rachael-gordon -
Category
Documents
-
view
221 -
download
2
Transcript of Standardize Formatting Across Documents and DTDs with Modular FOSIs Suzanne Napoleon FOSIexpert, LLC...
Standardize Formatting Across Documents and DTDs with Modular FOSIsSuzanne NapoleonFOSIexpert, LLC
www.FOSIexpert.com
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
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
1. Review each FOSI and create charsubsets, pseudo-elements, and/or text entities, as appropriate, for any common code within a FOSI
2. Compare all FOSIs to determine which share common formatting
The Process, continued
3. Develop a naming convention for FOSIs and modules that makes their purpose obvious
4. Use .ent extension for modules to facilitate searching the file system
Examples:
– basic-charsubsets.ent
– A4-pagesets.ent
– list-counters.ent
The Process, continued
5. Code the “desc”s directly in the .fos files:
– rsrcdesc
– secdesc
– pagedesc
– styldesc
– ftndesc
The Process, continued
6. 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
7. 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
8. Compile each FOSI to incorporate changes
– Changes are not reflected in the FOSIs until they are compiled
The Process, continued
9. 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