SlideShare une entreprise Scribd logo
1  sur  32
© 2010 JustSystems Inc.© 2010 JustSystems Inc.
in 37 minutes
Episode 15
XMetaL Macros
for Non-Programmers
Brought to you by XMetaL Technical Services
Tom Magliery, XML Technology Specialist
© 2010 JustSystems Inc.
• Announcements
• Introduction and your first macro
• How to run a macro (5 ways)
• Customizing the toolbar
• User and event macros
• Application and document macros
• Notes for DITA users
• Temptations
• Summary
• Resources
• Q&A
Agenda
This slide makes me hungry for Skyline Chili. Bonus points if you know why.
© 2010 JustSystems Inc.
• Two new articles by our colleague Su-Laine:
– Information Today (how businesses can learn about
collaboration from Wikipedia):
http://www.infotoday.com/it/nov10/index.shtml
– CIDM Best Practices newsletter (localization in DITA):
http://www.infomanagementcenter.com/index.php?page=1419
• Best wishes to Dave from marketing as he
moves on today. The paddling feet below our
webinars’ waterline will never be the same.
Announcements
© 2010 JustSystems Inc.
• XMetaL macro:
– A blob of script code that can be executed by XMetaL
– A way to extend the functionality of XMetaL
• MCR files aka macro files:
– XMetaL customization files that contain XMetaL
macros
Introduction to XMetaL macros
Sure, “blob” is a technical term.
© 2010 JustSystems Inc.
Your first macro: “Hello, world”
DEMO_HelloWorld.mcr
An MCR file is actually an XML file.
Since script code often contains some of
the five reserved XML characters: < > &
' ", it is wrapped in a CDATA section,
which tells XML parsers not to treat
these characters as markup.
Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
© 2010 JustSystems Inc.
Your first macro: “Hello, world”
DEMO_HelloWorld.mcr
This is the name that XMetaL will use in the
Macros toolbar, dialog, and other places.
Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
© 2010 JustSystems Inc.
Your first macro: “Hello, world”
DEMO_HelloWorld.mcr
This tells XMetaL what scripting language
this macro uses.
Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
© 2010 JustSystems Inc.
Your first macro: “Hello, world”
DEMO_HelloWorld.mcr
This is the script code to be executed
whenever this macro is run.
Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
© 2010 JustSystems Inc.
1. Create an MCR file with a macro
DEMO_HelloWorld.mcr
2. Put the MCR file in the “Startup” folder
C:Program FilesXMetaL 6.0AuthorStartUp
3. Restart XMetaL
4. Run the macro
– How?
Adding your macro to XMetaL
© 2010 JustSystems Inc.
• Option 1: Run from the Macros dialog
How to run your macro
© 2010 JustSystems Inc.
• Option 2: Run from the Macros toolbar
– Select a macro, then click the “Run” button
How to run your macro
New personal best: Most annoying thing I’ve ever put on a PowerPoint slide.
Run
1
2
© 2010 JustSystems Inc.
• Option 3: Use a shortcut key
– TIP: You can edit MCR files in XMetaL (also in any
text editor). Then you need to refresh/reload the
macros for macro changes to take effect.
How to run your macro
DEMO_HelloWorld.mcr
© 2010 JustSystems Inc.
• Option 4: Add a custom menu or toolbar item
– But first, let’s see a more useful macro
How to run your macro
© 2010 JustSystems Inc.
Macro #2: Word Count
DEMO_WordCount.mcr
I can tell you how this script code works later, if we have time. It’s not perfect.
© 2010 JustSystems Inc.
• You can put more
than one macro in
a single MCR file
• It looks something
like this
TIP: Multiple macros per file
ManyMacrosInOneFile.mcr
For ease-of-demo reasons, I’m not doing that today.
© 2010 JustSystems Inc.
• Now back to Option 4: Add a custom menu or
toolbar item
How to run your macro
Start with a
right-click in
the toolbars
1
Select “Customize...”
2
© 2010 JustSystems Inc.
• Now back to Option 4: Add a custom menu or
toolbar item
How to run your macro
Click “New...”
3
Name your toolbar4
© 2010 JustSystems Inc.
• Now back to Option 4: Add a custom menu or
toolbar item
How to run your macro
Select the
Buttons tab
5
Select
“Application
Macros”
6
Select your
macro
7
Choose an
icon for your
macro8
© 2010 JustSystems Inc.
• Now back to Option 4: Add a custom menu or
toolbar item
How to run your macro
Drag the
icon to the
toolbar9
© 2010 JustSystems Inc.
• Important notes:
– When adding toolbar buttons for application macros,
close all documents first
– Customizing the toolbars (or menus) manually is fine
for “simple” situations, but for more complex
customization it is better to manipulate them with
script (more script!)
• Advanced topics:
– Saving/sharing your toolbar settings
– Where XMetaL “hides” TBR files
• Toolbar cache & per-user folder
– Customizing menus/toolbars with script
Customizing toolbars
© 2010 JustSystems Inc.
• Option 5: Add to the context (right-click) menu
– But first, we need to learn about event macros
How to run your macro
© 2010 JustSystems Inc.
• Our examples so far are user macros
– XMetaL runs one whenever you request it
• XMetaL also supports event macros
– XMetaL runs them automatically when system events
occur
– The magic is in the name of the macro
– “On_” prefix indicates that it is an event macro
– XMetaL recognizes certain event names
– You can have multiple event macros with the same
name – in most cases they will all be run. (With user
macros, only one will run.)
User vs. event macros
© 2010 JustSystems Inc.
– Whenever we open any document, this macro will
display some information about that file
Macro #3: When a document is opened
DEMO_OnDocOpenComplete.mcr
© 2010 JustSystems Inc.
– Use this to hide event macros from the Macros
toolbar and dialog
TIP: Hiding a macro
DEMO_OnDocOpenComplete.mcr
© 2010 JustSystems Inc.
• Now back to Option 5*: Add it to the context
(right-click) menu
– Note: This is a simplified example; maybe not “best
practice” but it will work for the demo
– “Best practice” is another advanced topic
How to run your macro
*Finally!!
DEMO_ContextMenu.mcr
© 2010 JustSystems Inc.
• Our examples so far are application macros
– Loaded at application startup
– Available no matter what type of document you are
working in (DITA, DocBook, ...)
– Also must be coded to handle any document type
• Can’t have script that relies on specific element names
• XMetaL also supports document macros
– MCR file is named “YourDTDName.mcr” and (usually)
lives with other YourDTDName files (CSS, CTM, etc.)
– Loaded the first time a document is opened
– Available only if the active document is that type
Application vs. document macros
DTD name or schema name, of course.
© 2010 JustSystems Inc.
– TIP: You can run macros from other macros. (Need to
be sure they have been loaded first.)
Example: Add macros to Journalist
partial code, paste this into journalist.mcr
© 2010 JustSystems Inc.
• Most of the DITA features in XMetaL are macros –
mostly document macros
– E.g. adding a conref is a macro that launches the (custom-
built) dialogs that let you browse for the target, then inserts
the conref attribute
• Script is far more complex than today’s examples
• Adding simple application macros to XMetaL will
usually work with DITA
– All of today’s samples work fine
• Adding document macros for DITA to XMetaL is “not
allowed”
– There are a few exceptions: special “hooks”
– This is an advanced topic for sure!
Some notes for DITA users
© 2010 JustSystems Inc.
• Adding custom dialogs and wizards
• Transforming legacy content
• Importing data from databases
• Processing/analyzing content
• Working with ActiveX objects
• Handling drag-and-drop from other apps
• Improving authors’ user experience
• Automatically navigating through documents
• Generating content, e.g., TOC or index
• Capturing and pre-processing user input
• Hiding parts of the XMetaL UI
• Providing shortcuts for repetitive operations
• Adding custom UI to the Resource Manager
Temptations
© 2010 JustSystems Inc.
• Macros ...
– are blobs of executable script code
– can be user-invoked (many ways) or event-based
– can be application-wide or document-type-specific
– can run other macros
– can do lots of different things
• XMetaL APIs – your subconscious has seen six:
– Application.Alert(), Application.AppendMacro(),
Application.Run(), ActiveDocument.FullName,
ActiveDocument.Xml, Application.MessageBox()
• There are over 1200 properties and methods!
Summary: what have we learned?
© 2010 JustSystems Inc.
• Customization Guide:
– General guide to customizing XMetaL
– Some topics assume you are using XMetaL
Developer (Visual Studio)
• We’ve been “hand-editing” today, which is fine
• Programmer’s Guide:
– Complete reference guide to the XMetaL API
• Both are available here (PDF and WebHelp):
http://na.justsystems.com/content-support-user-guides
XMetaL developer resources
© 2010 JustSystems Inc.
• XMetaL Community Forums
– http://forums.xmetal.com/
• JustSystems Partner Center
– http://justpartnercenter.com/
• Ask us for help (customer support)
– supportxmetal@justsystems.com
• Ask us for help (partner tech support)
– partnersupport-na@justsystems.com
Resources

Contenu connexe

Tendances

Googlechrome ppt
Googlechrome pptGooglechrome ppt
Googlechrome ppt
abshah37
 
Introduction To Google Chrome Os
Introduction To Google Chrome OsIntroduction To Google Chrome Os
Introduction To Google Chrome Os
Saurabh Jinturkar
 

Tendances (20)

Stuxnet flame
Stuxnet flameStuxnet flame
Stuxnet flame
 
Mule with rabbitmq
Mule with rabbitmqMule with rabbitmq
Mule with rabbitmq
 
Windows 2000 Presentation
Windows 2000 PresentationWindows 2000 Presentation
Windows 2000 Presentation
 
Load balancing
Load balancingLoad balancing
Load balancing
 
Sigurnost na internetu
Sigurnost na internetuSigurnost na internetu
Sigurnost na internetu
 
Lamp technology
Lamp technologyLamp technology
Lamp technology
 
Cloud Ecosystem
Cloud EcosystemCloud Ecosystem
Cloud Ecosystem
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)
 
Presentation windows operating system
Presentation  windows operating systemPresentation  windows operating system
Presentation windows operating system
 
Windows 2019
Windows 2019Windows 2019
Windows 2019
 
Mac OS Presentation
Mac OS PresentationMac OS Presentation
Mac OS Presentation
 
SOA And Cloud Computing
SOA And Cloud ComputingSOA And Cloud Computing
SOA And Cloud Computing
 
basic concept of Cloud computing and its architecture
basic concept of Cloud computing  and its architecturebasic concept of Cloud computing  and its architecture
basic concept of Cloud computing and its architecture
 
Windows 11 what are some big features, upgrades & changes
Windows 11 what are some big features, upgrades & changesWindows 11 what are some big features, upgrades & changes
Windows 11 what are some big features, upgrades & changes
 
Mobile operating system
Mobile operating systemMobile operating system
Mobile operating system
 
Googlechrome ppt
Googlechrome pptGooglechrome ppt
Googlechrome ppt
 
Introduction To Google Chrome Os
Introduction To Google Chrome OsIntroduction To Google Chrome Os
Introduction To Google Chrome Os
 
Logmein presentación
Logmein presentaciónLogmein presentación
Logmein presentación
 
Virtualization security
Virtualization securityVirtualization security
Virtualization security
 

Similaire à XMetaL Macros for Non-Programmers

860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem
860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem
860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem
trilithicweb
 
Operating System Structure Of A Single Large Executable...
Operating System Structure Of A Single Large Executable...Operating System Structure Of A Single Large Executable...
Operating System Structure Of A Single Large Executable...
Jennifer Lopez
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
ITCamp
 
Micro station v8 manual
Micro station v8 manualMicro station v8 manual
Micro station v8 manual
yuri30
 
MTM Test Management System
MTM Test Management SystemMTM Test Management System
MTM Test Management System
Minu Mishra
 

Similaire à XMetaL Macros for Non-Programmers (20)

IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and TricksIBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
IBM Cognos 10 Framework Manager Metadata Modeling: Tips and Tricks
 
XPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreXPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and More
 
Your notes DNA
Your notes DNAYour notes DNA
Your notes DNA
 
VT University Live Session 3
VT University Live Session 3VT University Live Session 3
VT University Live Session 3
 
May 2014-webinar
May 2014-webinarMay 2014-webinar
May 2014-webinar
 
It's Not Infernal: Dante's Nine Circles of XPages Heaven
It's Not Infernal: Dante's Nine Circles of XPages HeavenIt's Not Infernal: Dante's Nine Circles of XPages Heaven
It's Not Infernal: Dante's Nine Circles of XPages Heaven
 
Cadth 2015 breakfast 2 excel hta tools presentation final
Cadth 2015 breakfast 2 excel hta tools presentation   finalCadth 2015 breakfast 2 excel hta tools presentation   final
Cadth 2015 breakfast 2 excel hta tools presentation final
 
860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem
860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem
860 dspi how_to_create_a_d3_autotest_macro_using_d2_modem
 
Text mining tutorial
Text mining tutorialText mining tutorial
Text mining tutorial
 
Operating System Structure Of A Single Large Executable...
Operating System Structure Of A Single Large Executable...Operating System Structure Of A Single Large Executable...
Operating System Structure Of A Single Large Executable...
 
Twelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPagesTwelve Tasks Made Easier with IBM Domino XPages
Twelve Tasks Made Easier with IBM Domino XPages
 
Fundamental Design Patterns.pptx
Fundamental Design Patterns.pptxFundamental Design Patterns.pptx
Fundamental Design Patterns.pptx
 
Wireless Wednesdays: Part 4
Wireless Wednesdays: Part 4Wireless Wednesdays: Part 4
Wireless Wednesdays: Part 4
 
Wireless Wednesdays: Part 2
Wireless Wednesdays: Part 2Wireless Wednesdays: Part 2
Wireless Wednesdays: Part 2
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 
Innoslate 101 webinar steve (1) (1)
Innoslate 101 webinar steve (1) (1)Innoslate 101 webinar steve (1) (1)
Innoslate 101 webinar steve (1) (1)
 
InnerSoft STATS - Introduction
InnerSoft STATS - IntroductionInnerSoft STATS - Introduction
InnerSoft STATS - Introduction
 
Micro station v8 manual
Micro station v8 manualMicro station v8 manual
Micro station v8 manual
 
MTM Test Management System
MTM Test Management SystemMTM Test Management System
MTM Test Management System
 

Plus de XMetaL

Fine-tuning the DITA customization
Fine-tuning the DITA customizationFine-tuning the DITA customization
Fine-tuning the DITA customization
XMetaL
 
Displaying additional image types in XMetaL
Displaying additional image types in XMetaLDisplaying additional image types in XMetaL
Displaying additional image types in XMetaL
XMetaL
 
DITA Open Toolkit Deployment with XMetaL Author Enterprise 6
DITA Open Toolkit Deployment with XMetaL Author Enterprise 6DITA Open Toolkit Deployment with XMetaL Author Enterprise 6
DITA Open Toolkit Deployment with XMetaL Author Enterprise 6
XMetaL
 
XMetaL Dialog Odds & Ends
XMetaL Dialog Odds & EndsXMetaL Dialog Odds & Ends
XMetaL Dialog Odds & Ends
XMetaL
 

Plus de XMetaL (10)

65 New Highlights of XMetaL Author Enterprise 7.0
65 New Highlights of XMetaL Author Enterprise 7.065 New Highlights of XMetaL Author Enterprise 7.0
65 New Highlights of XMetaL Author Enterprise 7.0
 
Fine-tuning the DITA customization
Fine-tuning the DITA customizationFine-tuning the DITA customization
Fine-tuning the DITA customization
 
Displaying additional image types in XMetaL
Displaying additional image types in XMetaLDisplaying additional image types in XMetaL
Displaying additional image types in XMetaL
 
Dropping content isn't a drag!
Dropping content isn't a drag!Dropping content isn't a drag!
Dropping content isn't a drag!
 
Quick and Easy Usability in XMetaL Author
Quick and Easy Usability in XMetaL AuthorQuick and Easy Usability in XMetaL Author
Quick and Easy Usability in XMetaL Author
 
Putting DITA Localization into Practice
Putting DITA Localization into PracticePutting DITA Localization into Practice
Putting DITA Localization into Practice
 
DITA Open Toolkit Deployment with XMetaL Author Enterprise 6
DITA Open Toolkit Deployment with XMetaL Author Enterprise 6DITA Open Toolkit Deployment with XMetaL Author Enterprise 6
DITA Open Toolkit Deployment with XMetaL Author Enterprise 6
 
Taking Advantage of XMetaL’s XInclude Support
Taking Advantage of XMetaL’s XInclude SupportTaking Advantage of XMetaL’s XInclude Support
Taking Advantage of XMetaL’s XInclude Support
 
XMetaL Dialog Odds & Ends
XMetaL Dialog Odds & EndsXMetaL Dialog Odds & Ends
XMetaL Dialog Odds & Ends
 
XMetaL and DITA in the Marketing Department: Tastes Great, Less Filling
XMetaL and DITA in the Marketing Department: Tastes Great, Less FillingXMetaL and DITA in the Marketing Department: Tastes Great, Less Filling
XMetaL and DITA in the Marketing Department: Tastes Great, Less Filling
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

XMetaL Macros for Non-Programmers

  • 1. © 2010 JustSystems Inc.© 2010 JustSystems Inc. in 37 minutes Episode 15 XMetaL Macros for Non-Programmers Brought to you by XMetaL Technical Services Tom Magliery, XML Technology Specialist
  • 2. © 2010 JustSystems Inc. • Announcements • Introduction and your first macro • How to run a macro (5 ways) • Customizing the toolbar • User and event macros • Application and document macros • Notes for DITA users • Temptations • Summary • Resources • Q&A Agenda This slide makes me hungry for Skyline Chili. Bonus points if you know why.
  • 3. © 2010 JustSystems Inc. • Two new articles by our colleague Su-Laine: – Information Today (how businesses can learn about collaboration from Wikipedia): http://www.infotoday.com/it/nov10/index.shtml – CIDM Best Practices newsletter (localization in DITA): http://www.infomanagementcenter.com/index.php?page=1419 • Best wishes to Dave from marketing as he moves on today. The paddling feet below our webinars’ waterline will never be the same. Announcements
  • 4. © 2010 JustSystems Inc. • XMetaL macro: – A blob of script code that can be executed by XMetaL – A way to extend the functionality of XMetaL • MCR files aka macro files: – XMetaL customization files that contain XMetaL macros Introduction to XMetaL macros Sure, “blob” is a technical term.
  • 5. © 2010 JustSystems Inc. Your first macro: “Hello, world” DEMO_HelloWorld.mcr An MCR file is actually an XML file. Since script code often contains some of the five reserved XML characters: < > & ' ", it is wrapped in a CDATA section, which tells XML parsers not to treat these characters as markup. Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
  • 6. © 2010 JustSystems Inc. Your first macro: “Hello, world” DEMO_HelloWorld.mcr This is the name that XMetaL will use in the Macros toolbar, dialog, and other places. Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
  • 7. © 2010 JustSystems Inc. Your first macro: “Hello, world” DEMO_HelloWorld.mcr This tells XMetaL what scripting language this macro uses. Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
  • 8. © 2010 JustSystems Inc. Your first macro: “Hello, world” DEMO_HelloWorld.mcr This is the script code to be executed whenever this macro is run. Source code already on Slide 3? You said “non-programmers”! Yes. Trust me ...
  • 9. © 2010 JustSystems Inc. 1. Create an MCR file with a macro DEMO_HelloWorld.mcr 2. Put the MCR file in the “Startup” folder C:Program FilesXMetaL 6.0AuthorStartUp 3. Restart XMetaL 4. Run the macro – How? Adding your macro to XMetaL
  • 10. © 2010 JustSystems Inc. • Option 1: Run from the Macros dialog How to run your macro
  • 11. © 2010 JustSystems Inc. • Option 2: Run from the Macros toolbar – Select a macro, then click the “Run” button How to run your macro New personal best: Most annoying thing I’ve ever put on a PowerPoint slide. Run 1 2
  • 12. © 2010 JustSystems Inc. • Option 3: Use a shortcut key – TIP: You can edit MCR files in XMetaL (also in any text editor). Then you need to refresh/reload the macros for macro changes to take effect. How to run your macro DEMO_HelloWorld.mcr
  • 13. © 2010 JustSystems Inc. • Option 4: Add a custom menu or toolbar item – But first, let’s see a more useful macro How to run your macro
  • 14. © 2010 JustSystems Inc. Macro #2: Word Count DEMO_WordCount.mcr I can tell you how this script code works later, if we have time. It’s not perfect.
  • 15. © 2010 JustSystems Inc. • You can put more than one macro in a single MCR file • It looks something like this TIP: Multiple macros per file ManyMacrosInOneFile.mcr For ease-of-demo reasons, I’m not doing that today.
  • 16. © 2010 JustSystems Inc. • Now back to Option 4: Add a custom menu or toolbar item How to run your macro Start with a right-click in the toolbars 1 Select “Customize...” 2
  • 17. © 2010 JustSystems Inc. • Now back to Option 4: Add a custom menu or toolbar item How to run your macro Click “New...” 3 Name your toolbar4
  • 18. © 2010 JustSystems Inc. • Now back to Option 4: Add a custom menu or toolbar item How to run your macro Select the Buttons tab 5 Select “Application Macros” 6 Select your macro 7 Choose an icon for your macro8
  • 19. © 2010 JustSystems Inc. • Now back to Option 4: Add a custom menu or toolbar item How to run your macro Drag the icon to the toolbar9
  • 20. © 2010 JustSystems Inc. • Important notes: – When adding toolbar buttons for application macros, close all documents first – Customizing the toolbars (or menus) manually is fine for “simple” situations, but for more complex customization it is better to manipulate them with script (more script!) • Advanced topics: – Saving/sharing your toolbar settings – Where XMetaL “hides” TBR files • Toolbar cache & per-user folder – Customizing menus/toolbars with script Customizing toolbars
  • 21. © 2010 JustSystems Inc. • Option 5: Add to the context (right-click) menu – But first, we need to learn about event macros How to run your macro
  • 22. © 2010 JustSystems Inc. • Our examples so far are user macros – XMetaL runs one whenever you request it • XMetaL also supports event macros – XMetaL runs them automatically when system events occur – The magic is in the name of the macro – “On_” prefix indicates that it is an event macro – XMetaL recognizes certain event names – You can have multiple event macros with the same name – in most cases they will all be run. (With user macros, only one will run.) User vs. event macros
  • 23. © 2010 JustSystems Inc. – Whenever we open any document, this macro will display some information about that file Macro #3: When a document is opened DEMO_OnDocOpenComplete.mcr
  • 24. © 2010 JustSystems Inc. – Use this to hide event macros from the Macros toolbar and dialog TIP: Hiding a macro DEMO_OnDocOpenComplete.mcr
  • 25. © 2010 JustSystems Inc. • Now back to Option 5*: Add it to the context (right-click) menu – Note: This is a simplified example; maybe not “best practice” but it will work for the demo – “Best practice” is another advanced topic How to run your macro *Finally!! DEMO_ContextMenu.mcr
  • 26. © 2010 JustSystems Inc. • Our examples so far are application macros – Loaded at application startup – Available no matter what type of document you are working in (DITA, DocBook, ...) – Also must be coded to handle any document type • Can’t have script that relies on specific element names • XMetaL also supports document macros – MCR file is named “YourDTDName.mcr” and (usually) lives with other YourDTDName files (CSS, CTM, etc.) – Loaded the first time a document is opened – Available only if the active document is that type Application vs. document macros DTD name or schema name, of course.
  • 27. © 2010 JustSystems Inc. – TIP: You can run macros from other macros. (Need to be sure they have been loaded first.) Example: Add macros to Journalist partial code, paste this into journalist.mcr
  • 28. © 2010 JustSystems Inc. • Most of the DITA features in XMetaL are macros – mostly document macros – E.g. adding a conref is a macro that launches the (custom- built) dialogs that let you browse for the target, then inserts the conref attribute • Script is far more complex than today’s examples • Adding simple application macros to XMetaL will usually work with DITA – All of today’s samples work fine • Adding document macros for DITA to XMetaL is “not allowed” – There are a few exceptions: special “hooks” – This is an advanced topic for sure! Some notes for DITA users
  • 29. © 2010 JustSystems Inc. • Adding custom dialogs and wizards • Transforming legacy content • Importing data from databases • Processing/analyzing content • Working with ActiveX objects • Handling drag-and-drop from other apps • Improving authors’ user experience • Automatically navigating through documents • Generating content, e.g., TOC or index • Capturing and pre-processing user input • Hiding parts of the XMetaL UI • Providing shortcuts for repetitive operations • Adding custom UI to the Resource Manager Temptations
  • 30. © 2010 JustSystems Inc. • Macros ... – are blobs of executable script code – can be user-invoked (many ways) or event-based – can be application-wide or document-type-specific – can run other macros – can do lots of different things • XMetaL APIs – your subconscious has seen six: – Application.Alert(), Application.AppendMacro(), Application.Run(), ActiveDocument.FullName, ActiveDocument.Xml, Application.MessageBox() • There are over 1200 properties and methods! Summary: what have we learned?
  • 31. © 2010 JustSystems Inc. • Customization Guide: – General guide to customizing XMetaL – Some topics assume you are using XMetaL Developer (Visual Studio) • We’ve been “hand-editing” today, which is fine • Programmer’s Guide: – Complete reference guide to the XMetaL API • Both are available here (PDF and WebHelp): http://na.justsystems.com/content-support-user-guides XMetaL developer resources
  • 32. © 2010 JustSystems Inc. • XMetaL Community Forums – http://forums.xmetal.com/ • JustSystems Partner Center – http://justpartnercenter.com/ • Ask us for help (customer support) – supportxmetal@justsystems.com • Ask us for help (partner tech support) – partnersupport-na@justsystems.com Resources