:: ******************************************************** :: * Title: workflow.bat v1.0 2019-07-31 * :: * Description: MS Word .docx to * :: * z/OSMF Workflow .xml conversion script * :: * Copyright: 2019 Phoenix Software International * :: * Website: https://www.phoenixsoftware.com * :: * Authors: Amy Gilbert, Ed Jaffe, Laura Scarbrough * :: * License: Released under the MIT license * :: ******************************************************** :: :: SOFTWARE REQUIRED (add path to environment variables): :: * Madcap Flare (https://www.madcapsoftware.com/products/flare/) :: * MS Word (https://products.office.com/en-us/home) :: * sed.exe (http://gnuwin32.sourceforge.net/packages/sed.htm) :: * fart.exe (http://fart-it.sourceforge.net/) :: ADD ENVIRONMENT VARIABLES DOC_DRIVE AND DOC_PATH :: :: First parameter (%1) is incremental letter (a,b,c,etc.) :: option if multiple files created on same day :: ::CONTENTS ::----------------- :: 1. CHANGE TO DOCUMENTATION DRIVE AND PATH :: 2. COPY WORD DOCS TO FLARE DOCS DIRECTORY :: 3. RUN WORD MACRO MOMEJESIC :: 4. CLEAN OUT DIRECTORIES FROM PREVIOUS BUILD :: 5. BUILD XML FILES :: 6. RENAME FILES :: 7. FORMATTING SEARCH AND REPLACE COMMANDS :: 8. XML WORKFLOW SCHEMA SEARCH AND REPLACE COMMANDS :: 9. ENCODE IMAGES TO BASE64 :: 10. COMBINE INTO ONE FILE ::Script should reside in directory named with version,release, and modification number (e.g., 570) @echo off call ejesver.bat :: Display warning message mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'WARNING: DID CHAPTER NUMBERS OR NAMES CHANGE? Search for **SUBJECT TO CHANGE** in workflow.bat for sections that need to be edited!', 10, 'Title!', 64 );close()" @echo on ::get year,month and day from %date% set yyyy=%date:~10,4% set mm=%date:~4,2% set dd=%date:~7,2% :: ******************************************************************** :: 1. CHANGE TO DOCUMENTATION DRIVE AND PATH :: ******************************************************************** %DOC_DRIVE% cd \%DOC_PATH% :: ******************************************************************** :: 2. COPY WORD DOCS TO FLARE DOCS DIRECTORY :: ******************************************************************** copy /Y "%USERPROFILE%\ejesWorkingDirectory\install.docx" ejes\docs :: ******************************************************************** :: 3. RUN WORD MACRO MOMWORKFLOW :: SOFTWARE REQUIRED: MS WORD :: ******************************************************************** winword /q /mMOMworkflow :: ******************************************************************** :: 4. CLEAN OUT DIRECTORIES FROM PREVIOUS BUILD :: ******************************************************************** rd /s /q "ejes\workflow\Content\Documents" del /q "%USERPROFILE%\workflow\*Chapter*.xml" del /q "%USERPROFILE%\workflow\images\*.*" :: ******************************************************************** :: 5. BUILD XML FILES :: SOFTWARE REQUIRED: MadCap Flare :: ******************************************************************** md %USERPROFILE%\workflow madbuild -project "ejes\workflow\workflow.flprj" -target "workflow" :: ******************************************************************** :: 6. RENAME FILES :: ******************************************************************** ::********SUBJECT TO CHANGE*********** %SYSTEMDRIVE% cd %USERPROFILE%\workflow del /q Readers_Comment_Form.xml ren E_JES_Installation_Overview.xml %ejesvvrr%_Chapter_01.xml ren Download_and_Process_the_Compressed.xml %ejesvvrr%_Chapter_02.xml ren Perform_Tasks_for_Traditional.xml %ejesvvrr%_Chapter_03.xml ren Perform_Tasks_for_CSM_Installation.xml %ejesvvrr%_Chapter_04.xml ren Perform_Tasks_for_ZMF_Installation.xml %ejesvvrr%_Chapter_05.xml ren Receive_and_Apply_the_Customization.xml %ejesvvrr%_Chapter_06.xml ren Dynamically_Define_E_JES_Modules.xml %ejesvvrr%_Chapter_07.xml ren Update_System_IPL_Time_Definitions.xml %ejesvvrr%_Chapter_08.xml ren Change_Default_Product_Behaviors.xml %ejesvvrr%_Chapter_9.xml ren Perform_TSO_and_ISPF_Modifications.xml %ejesvvrr%_Chapter_10.xml ren Customize_Multisystem_Operations.xml %ejesvvrr%_Chapter_11.xml ren Miscellaneous_Installation.xml %ejesvvrr%_Chapter_12.xml ren Define_Security_for_E_JES.xml %ejesvvrr%_Chapter_13.xml ren Make_Product_Documentation.xml %ejesvvrr%_Chapter_14.xml ren E_JES_Web_Deployment.xml %ejesvvrr%_Chapter_15.xml ren Phoenix_TP_Monitor_Installation.xml %ejesvvrr%_Chapter_16.xml ren CICS_Installation.xml %ejesvvrr%_Chapter_17.xml ren Servicing_E_JES.xml %ejesvvrr%_Chapter_18.xml ren Managing_System_Environment.xml %ejesvvrr%_Chapter_19.xml ren Migration_Considerations.xml %ejesvvrr%_Chapter_20.xml ren Disaster_Recovery_Considerations.xml %ejesvvrr%_Chapter_21.xml ren Configuring_E_JES_to_Support.xml %ejesvvrr%_Chapter_22.xml :: ******************************************************************** :: 7. FORMATTING SEARCH AND REPLACE COMMANDS :: SOFTWARE REQUIRED: fart.exe and GnuWin32 sed.exe :: ******************************************************************** :: add target_blank to external links fart -rci "%ejesvvrr%_Chapter_*.xml" "a href=\"http" "a target=\"_blank\" href=\"http" md sed_temp cd sed_temp :: replace bold and/or italic spans with and elements sed -i -E "s/([^<]*)<\/span>/\1<\/i>/g" ..\*Chapter*.xml sed -i -E "s/([^<]*)<\/span>/\1<\/b>/g" ..\*Chapter*.xml sed -i -E "s/([^<]*)<\/span>/\1<\/i><\/b>/g" ..\*Chapter*.xml ::fix footnote reference mark sed -i -E "s/]*>([0-9]+)<\/span>/\1<\/sup>/g" ..\*Chapter*.xml ::add placeholders for classes (to be replaced later) sed -i -E "s/class=\"BookBullet2\" value=\"1\"/BookBullet2/g" ..\*Chapter*.xml sed -i -E "s/class=\"Caption\"/Caption/g" ..\*Chapter*.xml sed -i -E "s/class=\"CaptionFigure\"/Caption/g" ..\*Chapter*.xml sed -i -E "s/class=\"glshdg\"/glshdg/g" ..\*Chapter*.xml sed -i -E "s/class=\"ListBulletTbl\" value=\"1\"/ListBulletTbl/g" ..\*Chapter*.xml sed -i -E "s/class=\"NormalBoldItal\"/NormalBoldItal/g" ..\*Chapter*.xml sed -i -E "s/class=\"NormalIndent\"/NormalIndent/g" ..\*Chapter*.xml sed -i -E "s/class=\"Railroad\"/Railroad/g" ..\*Chapter*.xml sed -i -E "s/class=\"CodeListingBold\"/CodeListingBold/g" ..\*Chapter*.xml sed -i -E "s/class=\"ScreenLarge\"/ScreenLarge/g" ..\*Chapter*.xml sed -i -E "s/class=\"TblText\"/TblText/g" ..\*Chapter*.xml sed -i -E "s/class=\"TblNoteHeader\"/TblNoteHeader/g" ..\*Chapter*.xml sed -i -E "s/class=\"TblNoteText\"/TblNoteText/g" ..\*Chapter*.xml ::add placeholders for background shading sed -i -E "s/td style=.*background-color: #([0-9A-F]{6})[^>]*?/td \1/g" ..\*Chapter*.xml ::add placeholder for indented table sed -i -E "s/table style=.*margin-left: ([0-9]*pt)[^>]*?/table \1/g" ..\*Chapter*.xml :: remove all css styles and classes sed -i -E "s/ol style=[^>]*\" start/ol start/g" ..\*Chapter*.xml sed -i -E "s/ style=[^>]*\"//g" ..\*Chapter*.xml sed -i -E "s/ class=[^>]*\"//g" ..\*Chapter*.xml :: clean up consecutive duplicate and elements sed -i -E "s/<\/i>(\s*)/\1/g" ..\*Chapter*.xml sed -i -E "s/<\/b>(\s*)/\1/g" ..\*Chapter*.xml :: fix footnote text sed -i -E ":a;N;$!ba;s/\s*
\n\s*

([0-9]+)<\/span>\n\s*

([^<]*)<\/p>\n\s*<\/p>\n\s*<\/div>/\n

\1<\/sup>\2<\/p>/g" ..\*Chapter*.xml :: remove all spans sed -i -E "s/([^<]*)<\/span>/\1/g" ..\*Chapter*.xml :: remove empty paragraphs sed -i -E ":a;N;$!ba;s/\s*]*>(\&\#160;)+\s*<\/p>\n/\n/g" ..\*Chapter*.xml sed -i -E "s/]*>( )+\s*<\/p>//g" ..\*Chapter*.xml ::replace   with single space in code sed -i -E "s/ / /g" ..\*Chapter*.xml ::remove extra