Archiv der Kategorie: FrameScript
FrameScript 6 Beta
In einem Beitrag auf framescript-users stellt Frank Elmore eine neue Beta-Fassung des nächsten Releases von FrameScript vor:
Hello Scripters,
There is a new beta for FrameScript 6 on the ElmSoft web site (http://www.ElmSoftOnline.com). One big change for this beta and for the upcoming release is that there is now only one install file. The FrameScript clients for all the supported FrameMaker versions are included. This means that if you have more than one version of FrameMaker on your computer, you will not need to install separate versions of FrameScript for each one. It will be installed in all of them or you may select to which FrameMaker installations you wish to have FrameScript installed. Also, and possibly more important, when you upgrade your FrameMaker, the FrameScript for it will already be there! Frank Elmore
Project leader for FrameScript
Auf der angegebenen Webseite findet sich auch der Download einer WhatsNew.pdf, die unter anderem folgende Punkte auflistet:
- The ability to create new object types, via the OE/Evm development system.
- Perl compatible regular expressions (find, subpatterns, replace text)
- Read and write zip files
- Temporary file manager
- Tagged input and output
- Tagged document object
- Html/XHtml/Xml output streams
- The FrameScript menu now keeps a list of the most recent scripts
- ElmStudio Script Editor can be used with OE programs
- Browse for folder dialog
- EForms can use Panels
- EForm Panels can have automatic layouts
- EEdit control has NumChars property
- ListBox control has NumChars and NumLines property
Neues Release p251 für FrameMaker 10/11
Ab sofort gibt es aktualisierte Versionen von FrameScript/ElmScript für FrameMaker 10 und 11, die neue Versionsnummer ist 5.2R1p251.
Die Änderung betrifft unter anderem die mit FrameMaker 10 neu eingeführte Eigenschaft BkColor (Hintergrundfarbe). Ein Update sollten Sie nur machen, wenn Sie mit der aktuellen Version ein Problem haben.
Unterstützung für FrameMaker 11
Ziemlich genau 18 Monate nach der Freigabe für FrameMaker 10 wurden die Installer der aktuellen Version 5.2 von FrameScript/ElmScript für FrameMaker 11 freigegeben. Erneut eine gute Nachricht für Besitzer einer aktuellen 5.x-Lizenz: Es handelt sich um ein kostenloses Update. Siehe Download.
Nachtrag p248 für FrameMaker 10
Aufgrund einer späten Änderung der FDK-Dateien für FrameMaker 10 erschienen die Log-Meldungen im Zusammenhang mit strukturierten Dateien bei der Verwendung von deutschem FrameMaker in japanisch – für die meisten von uns nicht hilfreich 😉
Die Version p248 wurde neu kompiliert unter Berücksichtigung der jüngsten FDK-Dateien und nun erscheinen diese Meldungen wieder englisch.
Zusätzlich werden zwei neue Eigenschaften beim Kommando Save
unterstützt: RefFileNotFound
und DitaGenerateFlatBook
(ebenfalls nur für FrameMaker 10).
Element-Inhalt markieren
Im Forum frameusers-de kam die Frage auf nach einem Tastaturkürzel, mit dessen Hilfe man nur den Inhalt eines Elements markieren könnte.
Markus Wiedenmaier präsentierte daraufhin eine Lösung mit ExtendScript für FrameMaker 10, seinen Code habe ich nach FrameScript übertragen, die wichtigsten Zeilen folgen. Die aktuelle Version kann hier geladen werden:
Das Skript muss installiert werden und erstellt zur Zeit zwei Menüpunkte am Ende des Menüs „Element“, die Tastenkürzel sind Esc h e t
(highlight element text) bzw. Esc h e c
(highlight element content).
Event Initialize
If (Session.ProductIsStructured)
Local lvMenu lvCmd;
Get Object Type(Menu) Name('ElementMenu') NewVar(lvMenu);
New Command Name('SWAT_CMD_SELECTELEMENTTEXT')
Label('Select text node') Shortcut('\!het')
NewVar(lvCmd) EventProc(SelectText)
AddTo(lvMenu) EnabledWhen(EnableNeedsDocpOnly);
Set lvCmd.KeyboardShortcutLabel = 'Esc h e t';
New Command Name('SWAT_CMD_SELECTELEMENTCONTENT')
Label('Select element content') Shortcut('\!hec')
NewVar(lvCmd) EventProc(SelectContent)
AddTo(lvMenu) EnabledWhen(EnableNeedsDocpOnly);
Set lvCmd.KeyboardShortcutLabel = 'Esc h e c';
EndIf
EndEvent
Event SelectText
Local lvDoc(Session.ActiveDoc);
Local lvSel(lvDoc.ElementSelection);
Set lvSel.Begin.Offset = 0;
Set lvSel.End.Offset = ObjEndOffset;
Local lvTextRange;
// EUtl.Convert{} requires version 5
Set lvTextRange = EUtl.Convert{lvSel, 'TextRange'};
Set lvDoc.TextSelection = lvTextRange;
EndEvent
Event SelectContent
Local lvDoc(Session.ActiveDoc);
Local lvSel(lvDoc.ElementSelection);
Local lvCurrentElement;
If (lvSel.Begin.Child
and lvSel.Begin.Child.ElementDef
and lvSel.Begin.Offset = 0)
Set lvCurrentElement = lvSel.Begin.Child;
Else
Set lvCurrentElement = lvSel.Begin.Parent;
EndIf
Local lvTextRange;
Set lvTextRange = lvCurrentElement.TextRange;
Set lvTextRange.Begin.Offset = lvTextRange.Begin.Offset + 1;
Set lvDoc.TextSelection = lvTextRange;
EndEvent