/* Harold H. Ipolyi © 11 June 1994 -> 2001 =====README===== Short: WWW browser HTML's from Scion Genealogy dbs's Uploader: ipolyi@ev1.net (Harold H. Ipolyi) Author: Harold H. Ipolyi Type: util/rexx LastRev: 2 Jun 2001 latest: index window is now single column for easier perusing deltas: Added "index" button, changed "¶" and "®" links to buttons since version "15 Dec 1999": FRAMES
_____________________________________________________________________________ URL: http://ddw-rh.dyndns.org/~ipolyi/scion.html _____________________________________________________________________________ _____________________________________________________________________________ to INSTALL: just drag Scion2html.rexx & its ICON into REXX: _____________________________________________________________________________ to RUN: first: load a Scion data base then: double click Scion2html.rexx icon or: in an AmigaShell: rx REXX:Scion2html.rexx or: Scion "Settings" menu item: "Set Function Keys..." set one of the Function Keys to: rx REXX:Scion2html.rexx or: I use the following AWeb execution commands:
To remake the HTML Genealogy: Load and, convert into HTML's; then connect and upload to on-line provider.
_____________________________________________________________________________ _____________________________________________________________________________ Scion Genealogist © Rob Akins (biz/dbase/Scion.lha) is comprehensive, easy to use, and provides Arexx ports for extracting data. _____________________________________________________________________________ Scion2html.rexx can repeatedly and painlessly recreate HTML files from entries in Scion data bases for cross-platform viewing via Mosaic, etc. Scion2html.rexx can also create AmigaGuide style ".guide" hypertexts _____________________________________________________________________________ GfxCon © Dirk Farin (gfx/conv/gfxcon.lha) is used to make Thumbnails from Scion data base pictures as links to Picture Albums _____________________________________________________________________________ _____________________________________________________________________________ Prerequisites: Scion V 4.07+ © Rob Akins ARexx (of course :) rexxsupport.library ( WB disk:libs ) rexxarplib.library ( aminet:util/rexx ) HTML/WWW browser (AMosaic, Mosaic, ... ) also: (to incorporate and display in-line pictures) GfxCon V1.7+ © Dirk Farin ( must be in: Sys:Tools) Amiga OS 3.0+ for displaying picture datatypes _____________________________________________________________________________ NOTE: The directory suffix for the AmigaGuide files has changed from A to AG Internal links prevent simple renaming of [....]A to [....]AG _____________________________________________________________________________ NOTE: To allow HTML customization of ( ¶ ) info files, i.e. P{IRN}.DBNAME and F{IRN}.DBNAME files, Scion2html.rexx will now remove certain HTML tags,
, when writing guide & text files. _____________________________________________________________________________ PN{IRN}.DBNAME files are used to generate the ( ¶ ) info files. PICTURES from [P|F]P{IRN}.DBNAME are links to Picture Albums ( ® ) (please see PP & FP Notes later) _____________________________________________________________________________ Tested: |¯¯¯¯¯¯¯¯¯¯¯¯¯| on Amiga3000 Kickstart v.37.175 Workbench v.38.35 | assume | & Amiga3000 Kickstart v.40.68 Workbench v.40.42 | TradeMarks | w/ Scion Version 3.06 & Mosaic1.2NoNet | & | w/ Scion Version 3.13 & Mosaic1.3betaAmitcp | CopyRights | w/ Scion Version 4.07 & Mosaic2.0Prerelease | as | w/ Scion Version 5.07 & AWeb Version 3.1 | appropriate | HTML file compatibility tested on: |_____________| HotJava, Netscape (Sun), Netscape (Mac) _________________________ | | | Bugs: (eeeek!) | ________________________|_________________________|_________________________ | | | Scion2html.rexx only recognizes the first Scion ARexx port name: "SCIONGEN"| | If additional copies of Scion are running concurrently, they are ignored. | |____________________________________________________________________________| | | | If a new Thumbnail format is selected, the user must manually edit | | the Picture Album files to reflect the new Thumbnail suffixes. | | _____________________________________________________ | | / The reasoning behind this restriction is: \ | | /¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\ | | / The Picture Album files may have been User modified \ | | ( and must therefore be protected against auto-regeneration ) | | ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | |____________________________________________________________________________| =====README===== =====History===== Release History: 11 Jun 1994 · ScionToMosaic.rexx for ScionGenealogist V 3.06 19 Jun 1994 · MakeDir(HTMLdir) fixed; extra comments processed. 25 Jun 1994 · Fixed descenders; Women in List italicised · updated for ScionGenealogist V 3.13 3 Sep 1994 · Replaces occurrences of "" by NAMES from DB · e.g. Replaces <101> by Iam Onehundredone, Jr. · Added Family Info file processing; Ancestor trees · Added descendant charts · Women italicised; men boldface everywhere · Added creation of a textual file "GenealogyOf..." 1 Mar 1995 · cleaned up bugs in creation of textual files 6 Jun 1995 · renamed ScionToMosaic to Scion2html · (somehow it kept winding up in "music" on AmiNet) · date format in "ancestors" section normalized · images used as links to picture albums (see · PP & FP Notes) and links to pictures · GfxCon >V1.5 used for picture copying and reducing · recoded for DOS/Windows restricted 8.3 file names 26 Jun 1995 · A little comments cleanup after the last changes · skip remaking of files when unnecessary · another new wrinkle for one of the users: · special file name prefixes ( GenPrefix ) 1 Jul 1995 · added graphics to Ancestors charts · allow family picture album sans family info file · Thumbnail size now user settable ( at line 3 ) 5 Jul 1995 · (more info) » ( ¶ ) · (family info) » ( ¶ ) · (Picture Album) » ( ® ) · (¶) (®) glyphs added to Ancestor, Descendant charts · Thumbnail format {GIF|JPEG} now user settable · ( suffix still .gif in all cases ) 1 Aug 1995 · updated for release with ScionGenealogist V 4.07 · set correct stack size (21000) for GfxCon · JPEG now the default Thumbnail format · (smaller files, no © problems, looks better) · changing of configuration added · configuration now saved in S:Scion2html.Config 12 Aug 1995 · fix some bugs that creeped in with updated to Scion4.07 · handling of more of the new ScionV4.07 data fields · using CheckForReplacement to create all anchors · changed appearance of family & descendant charts · configuration is displayed at startup 24 Sep 1995 · ".guide" style hypertext generation added · Guide picture VIEWER set to MultiView for OS => 3.0 · person information now in person.[array] · initial settings now in flags.[array] · verbose flag for extra progress reporting details · bold flag for: male «boldface» & female «italic» · removed undocumented buggy feature of replacing ocurrences · of [ScionIRN] (now only replaces ocurrences of ) · fixed a GenPrefix init bug (couldn't reset back to null) 1 Jan 1996 · changed "&" in front of MARRIAGE DATES to "x" · Scion2html.Config moved from S: to ENVARC: · Scion2html.Config now only stored when changed · directory of ".guide" style files changed to [.....]AG · runtime option - exclude details on living persons · ( please use ? for death date when date not known ) · added textured background ( for IBrowse ) · no longer forcing all ( ¶ ) info files to · added code to filter· HTML tags from guide & text info files. · using INDEX for Guide files (instead of "List of People" ) · "?" then "t" creates "genealogytemplate.html" · "?" then "r" view readme information · "?" then "h" review the Release History · "?" then "d" to change settings of default parameters 3 Mar 1996 · fix null IRN bug 14 Aug 1996 · fix libs test 30 Jan 1997 · "List of Persons." changed to "Personae" · default "Personae" in tables; link to "Personae sans tables" · don't want tables? then: · delete file GENEAFIL.htm and then · rename file GENEAFIN.htm to file GENEAFIL.htm 30 Mar 1997 · Logic to prevent output for empty data base nodes 20 Apr 1997 · bug fix: GENEAFIL.htm reference to GENEAFIn.htm was incorrect 1 Jun 1997 · added link to my home page @ http://ipolyi@micron.net/~ipolyi · fixed some html nits · removed the Samms Genealogy - it is now (with others) at: · URL: http://www.micron.net/~ipolyi/fic/FicGenealogies.html · added "hints" section to menu items · removed genealogytemplate - it is now at: · URL: http://www.micron.net/~ipolyi/scion.html 27 Jun 1998 · added an index.html to prevent direct viewing of []G directory · removed non-tables version of Personae page · pictures album extra images now in sub-diretory: img · To satisfy a large demand (me & one other:) I have: · added an INDEX - featuring pulldown firstnames 11 Jul 1998 · began Ver 5+ handling ( guarded by test for Version > 5 ) · added Address & Telephone handling for preparer, pers, & fam · added Attachments handling for pictures and notes · NOTE: Attachments are given priority · robots blocking - should have done this earlier! · went back to preset of ( ¶ ) info files with
· added sound (Æ) files to .guide(s) · added an INDEX for .guide(s) 26 Jul 1998 · bug - moved Scion2html.Config to ENVARC: ( Scion change ) 5 Sep 1998 · added email tag processing for · "Extras" menu item "set address/phone... " · "Settings" menu item "Preparer..." · ( see HELP for "Address Requester" "telephone" ) 17 Oct 1998 · increased apparent loading speed of "INDEX" pages · also cross-listing women in "INDEX" under their married names 1 Nov 1998 · replacing null surnames and given names with "_._" · ( guard against early process termination ) · surnames are now headings for INDEX page pulldown lists · updated the ANCHORs hints 29 Nov 1998 · Picture Album hints redone into a separate page · fixed Family Picture Album link bug ( thanx to Dave Crawford ) · added META tags ( by request ) · back to " ///\" to show mating ( someone had problem with "&" · fixed a picture xfer problem that crept in with Dave C. changes · new: add Pictures to existing Picture Album(s) · aminet structure change 11 Mar 1999 · requested cleanup & Guide changes 31 Oct 1999 · BURIALDATE has not previously been processed - corrected 15 Dec 1999 · frames 9 Jan 2000 · updated adresses to www.webpak.net/~ipolyi · made some "GetLastName: PROCEDURE" changes 27 Jan 2000 · "KEYWORDS" META tag change 22 Aug 2000 · fix of a "add Pictures to existing Picture Album(s)" bug 19 Oct 2000 · index window is now single column for easier perusing · Added "index" button, changed "¶" and "®" links to buttons 2 Jun 2001 · Web address and email changes to: · http://ddw-rh.dyndns.org/~ipolyi/scion.html · ipolyi@ev1.net · =====History===== =====Future?===== · not sure yet what to do with sounds for HTML ... · ( when an OPEN standard for all platforms comes along? ) · controllabe depth of the ancestor and descendant charts · ( time and storage saving measure ) · ( Ultimates, i.e. top or botton of line are exempt ) · =====Future?===== * 'rx Scion2html.rexx Normal' automagically [re]creates a .htm file for * each person in your ScionGenealogist data base; following the TEMPLATE: * http://ddw-rh.dyndns.org/~ipolyi/scion.html * In an HTML file (maybe HOME PAGE) put an anchor pointing to GenealogyFile: * ( see the hint at the end of a NORMAL run or specify ANCHOR ) _____________________________________________________________________________ * NOTE: Attachments are given priority over P{N|P|S}{IRN}.DBNAME files. * The PN{IRN}.DBNAME files are used to generate the " ¶ " files. * Whenever the PN{IRN}.DBNAME is changed or replaced, the corresponding * " ¶ " file will be updated if 'rx Scion2html.rexx {IRN}' is re-run. * PP & FP Notes: (personal & family pictures; picture albums " ® ") * ScionGenealogist names pictures as; * PP{IRN}.DBNAME (personal) and FP{mFGRN}.DBNAME (family) * {P|F}P{IRN|mFGRN}.DBNAME now used as pictures & links. * GfxCon is used to copy/reduce jpegs from {P|F}P{IRN|mFGRN}.DBNAME * reductions are anchors pointing to HTML's for pictures albums * in pictures albums are anchors pointing to pictures * picture albums will not be overwritten; they may be updated with * additional pictures; links to other pictures, etc. * Whenever picture {P|F}P{IRN|mFGRN}.DBNAME is changed or replaced, * the corresponding images will be updated * {P|F}P{IRN|mFGRN}.DBNAME may be any legal GfxCon input picture FORMAT: * (ILBM,RGB8,PCX,BMP,RLE8,TIFF,Targa,LBM,RGBN,IMG,RLE4,GIF,JPEG,RGB-Raw) */ stonegif = "47494638376140004000F70000F3F3F3 EEEEEEE9E9E9E3E3E3DCEDEDDDDDDDDCCBCBD8D8D8D2D2D2CBDCDCCCCCCCCBBA BAC6C6C6C1C1C1BACBCBBBBBBBB6B6B6AABABA52525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525252525252525252 52525252525252525252525252525252525252525252525252525252522C0000 0000400040000008FF00152860201041810308183478F0A00183870F050A6480 40C10383080E14CCC8E080C6040A1C1608595141C285140B1C2C90D0A4C70303 062800A9D1E548060E122268D04081030507180C78E9D1E04804081204553060 A4C98A1E0B34553950A24189211F10B4EAD166839D070E9AECE85001CBB06111 0C2028D5694D841A150E7C88546981AD081CAC44DAB162D2033D332235AB31E9 D90881752654C8B3A144C60C12AC35C97260CBA34D4B1254AB37E448AD7E9F22 F5D8712953820306875D58152AD8A13A59AA64709760D096028F56A45DF96BC6 B8BFC3DE44F8C025CEDF093ADEF5E830F941DB0829060D0BB42452B507042470 8870A743B59433CEFFBCEBA0FBE6AB668186347BD66CC98145254A3DA095BA46 DF0252833799182EDD83090DE5164B3A691414450FDD755D027ED996D07306F5 2457427009C0526A3521A5125F027D85D050FFE5D65D4C1A1190125000228098 54B82D05DC4F2D5DF7D260BFAD651060DD79A45476452DA6505F83CD64517E10 2150DC8D26813491784CF2755086417DD55F61722508128273952495427E21D5 13505B7924C06E41E5A45A77049265526B0EF584104B5A1126104C4FD2E55F01 5F0195134C045194540204CA961554522520800004C4A41E80083D3556471656 B55197B4AD7923546385F46594A73DD6D15C031178DB01C9B917DA427E91F693 824FC2D4957C7E5EFF57D046DD75289D4F8EA607D4504021F4954A2C81949972 1A6586D56914C1775F7561293967450E2C7060466735F5DD4EE5C9FA185C4511 58D0410C9A2AC0440D70FB5058326D85A274A9652953A98DF225175C0C3EC453 5911EDC49697E57A34808707961B9A4E437D57D940007764A7851CF956508F4B E628D00076C92B138DF6F917EF6E1CD9465153938DE614B5570A36E39AC33AF0 556A1D31D8148CBC0909D476EC498791475A95BA5969D7A995D4538561376B57 F676E8927A6C65CA51C48309E527C248C215647BDA56745059CFAEB9E6C7ADA5 955E652DB7F99B5A266ABBE99C9F32D8284B7DBDD493821909ACF07A7BB2BDA1 421B86C650A5FCA1FF4D9D7B78B13D71AA16951859D7147DB955662B9146D0D9 6A4A86D450A432F6C0C60D50DCD0553E7B4BD8AF4526C98063579DA8E157DB1D 2440587D42405B46A9B517D4918D56D7216966252BDFE630797929554C617853 9FA335E8D2573F3D508085091EE4C0C7818D74974B15C16663710DEC69A472B9 FF97394902957757036C1B3419AF85E1E9E67D176118179834256040D3756E6E D6BF2391FF407932355715888291114F6E84A78C008066C9329EB22C3393DD28 88620D10005DD674A0AFF1CA219BC1954DF8941404488B576AA9D77070341DD2 0CE027262C0E9AAA22957671292A493100698A472BD3D4AE3B180193510043A6 50350024BF21DF73FFE612279379473AF9A90B936A23A4C0AC4942D88990812E 8627C254667510C85C8C3664A64F69E84789BB4850002580F5050964FF8AD058 46F31649C58500E342914A9EA71E1CF66C2CB3E999DC0C43232305E937BD2A0E 447C539AE985072865DCCCC9CEB297B95451345F49495EC4139D18916F50634A 511F25752F89FC2432A5C19D607843A072B9C4010620DF6ED2C31C3C31285149 89930AA717A68EE88724505157AD32651615E64E23DE6210B5660281B12D8659 2D79C953C45220FD94267B3B7AE00FB5584781C9CA3F6E54CF2177F21EA9294B 2C1709607C48A63CE5192501F519C0E5A0A4B0B3F84A4358F1081D2D530038FE 884262C9D0D61CB2FF169938C54FFD7C0B284B93ACF59D2B23C9A14D7608D028 817DAB41AFEB16531066234532E52E29720995D83200D71DE02722011B4318F2 9DFBB50658A64CE3E856C3B9BCBCCF6345D90E100350388C2ECF5A035C934A84 B324F554644CA3E34F1C3F331303FC2B5B15F9D2C8AAB3B24C6E653323438004 0D521C053168A755F91003C6F44783FCC88D47B14D7BD6344B060E2C5450F9E8 5328C6CD91C0A43CEB9108EBE27AABD8A488223BAA49B2A4C691E718C84F6101 4D4C02034516F58A5967C989464362A0AC3E559930440001DCF429E324F00010 C851D07AD617A07DE96D84499C785878581DD1C660D4A3E4AE2C929CB8994A89 A2528A6D783537B6FF6CA55CB1A28F6E1C25955CE15327D69C53BB1E34B1A361 C44178292165AA239454AD6E37597CDA86E4A44CCA298C49CBB5AC4ABE949E61 52AA3C5D81094340DAA3A2C0552B3C41EE43CC94A579868A395CAA0C7A74C214 9894344F259128774473A30CC568276ACBC8B8D46A35B1E0C4908D5A1C14BF2A 12DAC23356F5ECD2755ED7960D31D33533A99D60962326D4E50F264C09007DB2 F74CBF48C690C701904269251009F2507EFA0A527227F3CB980C607591D9E1D1 4AA5000824A929A61A1D46464B9F1999D2282A7C935A26B43F1FEF248B0CC98D D63CD6DFF77C8CA134AA8AEE72F33681DAC9475F1140001E50CCFBA5C9327C11 8CA55E5200F9FDC8B3C94AB49D92A813AEA529082101C05366A332BA9D298C36 FA31CA6CC895C0A74897BB280ACDC80063972ABE6A80121451A22F65AF6471E9 62E279DE68165B176B522B2F06D032601AD2366A7545718F9B93D484832774F9 4635E80193CDAA223F076451421E0E96BD30181CEA1C04D335C3D170D6659952 13065DBDBB9F8586D214BDBA298FF1D1F44F6655009581053018140D55144325 504147C92A890912575257D5AC855B01D8999E7AFD90521984260101003B"X /* Hex file above was generated as follows: (1) From CLI, typed "type > RAM:temp Stone.gif opt h" (2) From a text editor (preferably one with "vertical" block marking), removed all the extraneous stuff from resulting "RAM:temp" (3) Using text editor, imported the resulting hex file above (note enclosing quotes and extra "X" at the end). */ /* add libraries */ libs = 'rexxsupport.library rexxarplib.library' DO i = 1 TO Words(libs) lib = Word(libs,i) if ~Show('Lib',lib) then do if EXISTS('LIBS:'lib) then call addlib lib, 0, -30 else do say ' ' say 'ERROR: cannot find' lib 'in LIBS:' say ' ' if lib = 'rexxsupport.library' then do say ' please copy rexxsupport.library from WorkBench disk:libs' end else do say ' please get rexxarplib.library from aminet:util/rexx' end say ' ' AskExit() end end end i /* some Intitializations = default */ flags.Thumbnail = 350 /* Thumbnail maximum dimensions */ flags.Thmbfmt = "JPEG" /* Thumbnail format { GIF | JPEG } */ flags.MakeHTML = 0 /* 0 to make HTML */ flags.MakeText = 0 /* 1 to make printable ASCII text file */ flags.MakeGuide = 0 /* 1 to make ".guide" hypertext files */ flags.verbose = 0 /* 1 for verbose progress reports */ flags.bold = 0 /* 0 male «boldface» & female «italic» */ flags.living = 0 /* > 0 show: .Living... */ flags.GenPrefix = "" /* needs only be set for specific circumstances ( if this makes no sense, you don't need it :) */ sayASCII = ' plain ASCII printable files' sayguide = ' ".guide" hypertext files' sayHTML = ' ".htm" hypertext files for WWW Net surfers' bolditalic = ' using [1mboldface » men[22m and [3mitalic » women[23m' progress = ' progress reports' if EXISTS('rexx:Scion2html.rexx') then rexxdir = "rexx:" else rexxdir = "" OldScion2html = Open('Scion2html','S:Scion2html.Config','r') if OldScion2html then do Close('Scion2html') say '... moving S:Scion2html.Config ---> ENVARC:Scion/Scion2html.Config' address command 'C:copy S:Scion2html.Config ENVARC:Scion/Scion2html.Config' address command 'C:delete S:Scion2html.Config' say ' ' end if EXISTS('ENVARC:Scion/Scion2html.Config') then do say '... moving ENVARC:Scion/Scion2html.Config ---> ENVARC:Scion2html.Config' address command 'C:copy ENVARC:Scion/Scion2html.Config ENVARC:Scion2html.Config' address command 'C:delete ENVARC:Scion/Scion2html.Config' say ' ' end GoodScion2html = Open('Scion2html','ENVARC:Scion2html.Config','r') ChangedScion2html = ~GoodScion2html if GoodScion2html then do Mdir = readln('Scion2html') flags.Thumbnail = readln('Scion2html') flags.Thmbfmt = readln('Scion2html') coumpound = readln('Scion2html') /* say 'coumpound = 'coumpound do bitnum = 0 to 7 by 1 say 'bit 'bitnum' = 'bittst(coumpound,bitnum) end tstbittest = 0 say 'tstbittest = 'tstbittest do bitnum = 0 to 7 by 1 say 'bit 'bitnum' = 'bittst(tstbittest,bitnum) end tstbittest = 7 say 'tstbittest = 'tstbittest do bitnum = 0 to 7 by 1 say 'bit 'bitnum' = 'bittst(tstbittest,bitnum) end */ flags.MakeHTML = bittst(coumpound,3) flags.MakeGuide = bittst(coumpound,2) /* flags.verbose */ flags.bold = bittst(coumpound,1) flags.MakeText = bittst(coumpound,0) flags.GenPrefix = readln('Scion2html') Close('Scion2html') say ' [4m [24m' say ' [7m Scion2html.Config [27m [1msettings[22m:' say ' output destination: 'Mdir end else do say ' [4m [24m' say ' [7m default [27m [1msettings[22m:' say ' output destination: (will be set later)' end say ' Thumbnail: 'flags.Thmbfmt' max 'flags.Thumbnail'x'flags.Thumbnail if flags.GenPrefix ~= '' then say ' GeneralPrefix = 'flags.GenPrefix else say ' GeneralPrefix = {default} [special circumstance only]' if flags.MakeGuide then say ' make'sayguide else say ' NOT making'sayguide if flags.MakeText then say ' make'sayASCII else say ' NOT making'sayASCII if ~flags.bold then say ' 'bolditalic else say ' NOT'bolditalic if flags.verbose then say ' verbose'progress else say ' minimal'progress' (during "normal" runs)' say ' ' if flags.GenPrefix = "" then flags.GenPrefix = "GENEAFI" say '[4m [24m' say '[7m Note: Scion2html.rexx cannot run while Scion is in HELP mode. [27m' SAY ' ' Address "SCIONGEN" /* Point at Scion Genealogist port */ options RESULTS if Show(p,'SCIONGEN') then do 'GETPROGVERSION' flags.VERSION = RESULT 'GETDBNAME' /* Issue GET DB NAME command to Scion Genealogist */ flags.DBNAME = RESULT if flags.VERSION > 5 then do 'GETBRKCHAR' flags.BRKCHAR = RESULT 'GETLASTIRN' end else 'GETTOTALIRN' LASTIRN = RESULT if LASTIRN = 0 then do SAY '[7m ' SAY ' Scion Genealogist is currently displaying an EMPTY data base! ' SAY ' [27m' SAY ' ' AskExit() end end else do SAY '[7m ' SAY ' Scion Genealogist is NOT currently displaying a data base: ' SAY ' ' SAY ' Please start Scion; load desired data base; then try again... ' SAY ' [27m' SAY ' ' AskExit() end PARSE ARG flags.target flags.target = Upper(strip(flags.target,,'"')) /* just in case, remove errant quotes */ origThumbnail = flags.Thumbnail origThumbformat = flags.Thmbfmt blanks = ' ' flags.DoPictures = CheckGfxCon() DO WHILE flags.target = '' | flags.target = '?' | flags.target = '/' | substr(flags.target,1,1) = 'H' | substr(flags.target,1,1) = 'P' SAY ' ' if flags.target = 'H' | flags.target = 'HINTS' then do SAY ' Some hints:' SAY ' ' SAY ' -----------------------------------------------------------------' SAY ' | if Death Date is unknown, please use ? |' SAY ' | this will allow the runtime option of |' SAY ' | "exclude details on living persons" |' SAY ' | to operate properly. |' SAY ' -----------------------------------------------------------------' SAY ' ' SAY ' -----------------------------------------------------------------' SAY ' | · "Death Place" & "Burial Place" may be used as |' SAY ' | · additional COMMENT fields, IF: |' SAY ' | "Death Date" & "Burial Date" are blank, respectively |' SAY ' -----------------------------------------------------------------' SAY ' ' SAY ' -----------------------------------------------------------------' SAY ' | · Conventions that I followed in my ScionGenealogist data base: |' SAY ' | · surnames kept pure ( no honorifics, Jr''s, III''s ) |' SAY ' | · given names have any and all honorifics AFTER a COMMA |' SAY ' | · for example: surname FirstNames, honorifics |' SAY ' | BAUER-GAUSS Joseph, Dr. |' SAY ' | DAGLEY Richard Kelley, Jr. |' SAY ' | Clayton John, aka TARZAN of the Apes |' SAY ' -----------------------------------------------------------------' SAY ' ' SAY ' -----------------------------------------------------------------' SAY ' | · <#> in comments fields or ( ¶ ) info files are replaced |' SAY ' | by NAMES from the Scion DB ( with appropriate link ) |' SAY ' | for example: <101> is replaced by: |' SAY ' | Iam Onehundredone, Jr. |' SAY ' -----------------------------------------------------------------' SAY ' ' SAY ' -----------------------------------------------------------------' SAY ' | For a name change ( NOT maidenname > marriedname ), try this: |' SAY ' | surname field: New |' SAY ' | given name field: Birth Name > Changed To, Ph. D. |' SAY ' | which lists as: Birth Name > Changed To New, Ph. D. |' SAY ' | |' SAY ' | meaning: "Birth Name" is now known as "Changed To New, Ph. D." |' SAY ' -----------------------------------------------------------------' SAY ' | surname field: TARZAN |' SAY ' | given name field: John Clayton > aka, of the Apes |' SAY ' | which lists as: John Clayton > aka TARZAN, of the Apes |' SAY ' -----------------------------------------------------------------' SAY ' «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»' SAY ' »«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«' SAY ' «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»' SAY ' »« »«' SAY ' «» GetLastName: PROCEDURE at end of script capitalizes Last Names »«' SAY ' «» ------------------------------------------------------------- «»' SAY ' »« | it can also be used to handle "non-conforming" Last Names | »«' SAY ' «» | e.g. "MAC ISAAC" --> "MacISAAC" | «»' SAY ' »« | "VON NUEMANN" --> "VonNuemann" | »«' SAY ' «» ------------------------------------------------------------- «»' SAY ' »« BUT: you must add the additional tests yourself (it''s easy!) »«' SAY ' «» REMEMBER to transfer your additions to future updates «»' SAY ' »« »«' SAY ' «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»' SAY ' »«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«' SAY ' «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»' end flags.IRN = 0 if flags.DoPictures & ( substr(flags.target,1,1) = 'P' ) then do HTMLdir = Mdir||flags.DBNAME'G' say ' ________________________________________________________' do until substr(flags.IRN,1,1) = 'Q' say ' ' say 'enter a Person IRN {[1m 1 .. 'LASTIRN' [22m} or QUIT' say ' ' flags.IRN = flags.IRN + 1 svflags.IRN = flags.IRN if flags.IRN > LASTIRN then flags.IRN = 1 'GETFIRSTNAME' flags.IRN FIRSTNAME = RESULT 'GETLASTNAME' flags.IRN LASTNAME = RESULT call WriteCh(stdout,FIRSTNAME' 'LASTNAME' ['flags.IRN'] ') PULL flags.IRN if flags.IRN = '' then flags.IRN = svflags.IRN if substr(flags.IRN,1,1) = 'Q' then PauseExit() if ( 0 > flags.IRN ) | ( flags.IRN > LASTIRN ) then do say ' ' say ' out of bounds, please remain within given range' say ' ' flags.IRN = 0 end else do 'GETFIRSTNAME' flags.IRN FIRSTNAME = RESULT 'GETLASTNAME' flags.IRN LASTNAME = RESULT say ' ' say 'Processing:' say FIRSTNAME' 'LASTNAME' ['flags.IRN']' flags.album = '?' do until ( upper(substr(flags.album,1,1)) = 'P' ) | ( upper(substr(flags.album,1,1)) = 'F' ) say ' ' call WriteCh(stdout,' Album selection: Person or Family ['flags.album'] ') PULL flags.album /* say 'flags.album ' flags.album */ if upper(substr(flags.album,1,1)) = 'P' then do if Exists(HTMLdir'/P'flags.IRN'A.htm') then addtoAlbum('P',flags.IRN) else say HTMLdir'/P'flags.IRN'A.htm does not yet exist; cannot process.' end else if upper(substr(flags.album,1,1)) = 'F' then do if flags.VERSION < 5 then say 'Please upgrade to Scion V5.x for this function...' else do 'GETNUMMARRY' flags.IRN NUMMARRY = RESULT /* say 'NUMMARRY 'NUMMARRY */ setNUMMARRY = NUMMARRY if NUMMARRY > 1 then do say 'enter a Family # {[1m 1 .. 'NUMMARRY' [22m}' PULL setNUMMARRY end if ( setNUMMARRY > 0 ) & ( setNUMMARRY < NUMMARRY + 1 ) then do /* say 'GETMARRIAGE 'flags.IRN' 'setNU */ 'GETMARRIAGE' flags.IRN setNUMMARRY-1 flags.FIRN = RESULT /* say 'RESULT 'flags.FIRN */ say ' ' if Exists(HTMLdir'/F'flags.FIRN'A.htm') then addtoAlbum('F',flags.FIRN) else say HTMLdir'/F'flags.FIRN'A.htm does not yet exist; cannot process.' end else say 'No Family' end end leave end end end end if flags.target = '?' | flags.target = '/' then do SAY ' please send comments, questions to: [1mipolyi@ev1.net[22m' SAY ' or:' SAY ' [1mScion2html.rexx[22m © [1mHarold H. Ipolyi ' SAY ' Boise, ID 83716-3298[22m' SAY ' ____________________________________________________________' SAY ' / \' SAY ' / to [re]create HTML hypertext from ScionGenealogist data base \' SAY ' \ also, optionally, AmigaGuide style hypertexts or plain ASCII /' SAY ' \____________________________________________________________/' SAY ' ' SAY ' [4m [24m' SAY ' [1mSub-MENU[22m: »»» pressing [7mRETURN[27m accepts [[3mvalue[23m]' SAY ' [4m [24m' SAY ' [7mdefaults[27m change settings of default parameters' SAY ' [4m [24m' SAY ' [7mreadme[27m view Scion2html.rexx readme information' SAY ' [4m [24m' SAY ' [7mhistory[27m review the Release History of Scion2html.rexx' SAY ' [4m [24m' SAY ' [7mfuture[27m review the Future plans for Scion2html.rexx' SAY ' [4m [24m' SAY ' [7mcancel[27m ' SAY ' ' call WriteCh(stdout,' [cancel] ') PULL answer if answer = 'DEFAULTS' | answer = 'D' then do SAY ' [4m [24m' SAY ' defaults: may be changed; [7mRETURN[27m accepts [[3mvalue[23m]' SAY ' [4m'substr(blanks,1,length(flags.DBNAME)+3)'[24m' svMdir = Mdir call WriteCh(stdout,' HTMLs will be placed in directory [7m 'flags.DBNAME'G [27m within ['Mdir'] ') PULL Mdir if Mdir = '' then Mdir = svMdir ChangedScion2html = ChangedScion2html | ( Mdir ~= svMdir ) SAY ' ' svGeneralPrefix = flags.GenPrefix call WriteCh(stdout,' General Prefix ') if flags.GenPrefix ~= 'GENEAFI' then call WriteCh(stdout,'(. to reset) ') call WriteCh(stdout,' = [') if flags.GenPrefix ~= 'GENEAFI' then call WriteCh(stdout,flags.GenPrefix) call WriteCh(stdout,'] ') PARSE PULL flags.GenPrefix if flags.GenPrefix = '' then flags.GenPrefix = svGeneralPrefix else if flags.GenPrefix = '.' then flags.GenPrefix = 'GENEAFI' ChangedScion2html = ChangedScion2html | ( flags.GenPrefix ~= svGeneralPrefix ) SAY ' ' if ~flags.MakeGuide then WriteCh(stdout,' NOT m') else WriteCh(stdout,' M') WriteCh(stdout,'aking'sayguide'; ') call WriteCh(stdout,' acceptable? [yes] ') PULL answer if answer ~= '' then do if substr(answer,1,1) = 'N' then do flags.MakeGuide = ~flags.MakeGuide ChangedScion2html = 1 end end SAY ' ' if ~flags.MakeText then WriteCh(stdout,' NOT m') else WriteCh(stdout,' M') WriteCh(stdout,'aking'sayASCII'; ') call WriteCh(stdout,' acceptable? [yes] ') PULL answer if answer ~= '' then do if substr(answer,1,1) = 'N' then do flags.MakeText = ~flags.MakeText ChangedScion2html = 1 end end SAY ' ' if flags.bold then WriteCh(stdout,' NOT') WriteCh(stdout,bolditalic'; ') call WriteCh(stdout,' acceptable? [yes] ') PULL answer if answer ~= '' then do if substr(answer,1,1) = 'N' then do flags.bold = ~flags.bold ChangedScion2html = 1 end end SAY ' ' if ~flags.verbose then WriteCh(stdout,' minimal') else WriteCh(stdout,' verbose') WriteCh(stdout,progress'; ') call WriteCh(stdout,' acceptable? [yes] ') PULL answer if answer ~= '' then do if substr(answer,1,1) = 'N' then flags.verbose = ~flags.verbose end if flags.DoPictures then do SAY ' ' SAY '+-----------------------------------------------------------------+' SAY '| NOTE: changing Thumbnail max dim or Thumbnail format will force |' SAY '| regeneration of all Thumbnail pictures. Just so you know! |' SAY '+-----------------------------------------------------------------+' SAY '| If Thumbnail format is changed, Picture Albums must then |' SAY '| be manually edited to reflect the new Thumbnail suffixes. |' SAY '+-----------------------------------------------------------------+' SAY ' ' svThumbnail = flags.Thumbnail call WriteCh(stdout,' Thumbnail max dim = ['flags.Thumbnail'] ') PULL flags.Thumbnail if ~IsNumeric(flags.Thumbnail) then flags.Thumbnail = svThumbnail ChangedScion2html = ChangedScion2html | ( flags.Thumbnail ~= svThumbnail ) if flags.Thumbnail < 50 then flags.Thumbnail = 50 SAY ' ' svThumbformat = flags.Thmbfmt call WriteCh(stdout,' Thumbnail format = ['flags.Thmbfmt'] ') PULL flags.Thmbfmt if flags.Thmbfmt ~= 'GIF' & flags.Thmbfmt ~= 'JPEG' then flags.Thmbfmt = '' if flags.Thmbfmt = '' then flags.Thmbfmt = svThumbformat ChangedScion2html = ChangedScion2html | ( flags.Thmbfmt ~= svThumbformat ) end SAY ' ' end else if answer = 'HISTORY' | answer = 'H' then do if Open('Scion',rexxdir'Scion2html.rexx','r') then do readme = 0 notbreak = 1 readmestring = '=====History=====' say readmestring DO While ~EOF('Scion') & notbreak line = ReadLn('Scion') if readme then do if line = readmestring then notbreak = 0 if notbreak then say line end if line = readmestring then readme = ~readme end say readmestring close('Scion') end end else if answer = 'FUTURE' | answer = 'F' then do if Open('Scion',rexxdir'Scion2html.rexx','r') then do readme = 0 notbreak = 1 readmestring = '=====Future?=====' say readmestring DO While ~EOF('Scion') & notbreak line = ReadLn('Scion') if readme then do if line = readmestring then notbreak = 0 if notbreak then say line end if line = readmestring then readme = ~readme end say readmestring close('Scion') end end else if answer = 'README' | answer = 'R' then do if Open('Scion',rexxdir'Scion2html.rexx','r') then do if Open('Scionreadme','RAM:Scion2html.readme','w') then do readme = 0 notbreak = 1 readmestring = '=====README=====' DO While ~EOF('Scion') & notbreak line = ReadLn('Scion') if readme then do if line = readmestring then do close('Scionreadme') say ' created: RAM:Scion2html.readme' notbreak = 0 end if notbreak then do WriteLn('Scionreadme',line) say line end end if line = readmestring then readme = ~readme end end close('Scion') end end end SAY ' [4m [24m _______________________________________' SAY ' [7m [27m | [4m [24m |' SAY ' [7m MENU [27m | »»» pressing [7mRETURN[27m accepts [[3mvalue[23m] |' SAY ' [7m [27m |_______________________________________|' SAY ' ' SAY ' [4m [24m' SAY ' [7m Quit [27m ' SAY ' [4m [24m' SAY ' [7m ? [27m [1mabout[22m [3mScion2html.rexx[23m; also can [1mchange the settings shown above[22m.' SAY ' [4m [24m [4m'substr(blanks,1,length(flags.DBNAME)+2)'[24m' SAY ' [7m Normal [27m [re]make HTMLs for all persons in [7m 'flags.DBNAME' [27m data base {'LASTIRN'}' SAY ' [4m [24m' SAY ' [7m # [27m [re]make HTMLs for a specific person: {[1m 1 .. 'LASTIRN' [22m}' SAY ' [4m [24m' SAY ' [7m Anchors [27m URL hints: [4m'flags.DBNAME' Genealogy[24m' SAY ' [4m [24m [4m [24m' SAY ' [7m Hints [27m useful tips [7m please read [27m' SAY ' [4m [24m [4m [24m' SAY ' [7m Picture [27m add extra pictures to existing Picture Album [7m NEW ! [27m' SAY ' ' SAY ' ' flags.target = 'Normal' call WriteCh(stdout,' ['flags.target'] ') PULL flags.target if length(flags.target) > 1 & substr(flags.target,1,1) = ' ' then flags.target = substr(flags.target,2,length(flags.target)) if length(flags.target) > 7 then flags.target = substr(flags.target,1,7) if flags.target = '' then flags.target = 'Normal' if substr(flags.target,1,1) = '#' then do flags.target = '' SAY ' ' /* :) :) :) :) :) */ SAY ' NOT #! An actual [1mnumber[22m, like, you know :), from the set [7m{ 1 .. 'LASTIRN' }[27m' end if flags.target = 'INFO' | flags.target = 'ABOUT' | flags.target = 'HELP' then flags.target = '?' if IsNumeric(flags.target) then do if flags.target > LASTIRN | flags.target < 1 then do SAY ' ' SAY ' Lousy shooting:' SAY ' [1m'flags.target'[22m is outside range of [7m{ 1 .. 'LASTIRN' }[27m of persons in data base [7m 'flags.DBNAME' [27m' SAY ' Clean your display, rinse your lenses, and try again!' flags.target = '' end end flags.target = Upper(strip(flags.target,,'"')) /* just in case, remove errant quotes */ end if ~Validtarget(flags.target) then PauseExit() if substr(flags.target,1,1) = 'A' then flags.target = 'ANCHORS' if substr(flags.target,1,1) = 'H' then flags.target = 'HINTS' if substr(flags.target,1,1) = 'N' then flags.target = 'NORMAL' if substr(flags.target,1,1) = 'P' then flags.target = 'PICTURE' if substr(flags.target,1,1) = 'Q' then flags.target = 'QUIT' /* SAY flags.target */ if flags.VERSION < 4.07 then do SAY ' ' say 'ERROR: Requires Scion VERSION = 4.07 (or greater)' AskExit() end else do if exists("sys:utilities/multiview") then flags.VIEWER = "sys:utilities/multiview" /* Guide picture viewer */ else do if flags.VERSION < 4.09 then flags.VIEWER = "display" else do 'GETVIEWER' flags.VIEWER = RESULT end end /* say 'Guide picture viewer = 'flags.VIEWER */ if flags.VERSION > 5 then do 'GETSNDPLAYER' flags.PLAYER = RESULT /* say 'Guide sound player = 'flags.PLAYER */ end end /* Get path to database so can locate any note files in same location */ 'GETDBPATH' /* new in Scion V 4.07 */ DBPATH = RESULT DBPATH = CheckPathName(DBPATH) /* SAY ' ' Say ' Testing: is data base assignment of 'DBPATH||flags.DBNAME' visible?' SAY ' ' */ PRAGMA('w','n') if ~Exists(DBPATH||flags.DBNAME) then do SAY 'ERROR: Scion data base 'flags.DBNAME' not found in: 'DBPATH AskExit() end if ~GoodScion2html then do Mdir = '' /* where to put the directories? */ if Exists(flags.DBNAME'G') then do /* check current path */ Mdir = PRAGMA('d') /* we're already there */ end else do TXTdir = "RAM:" /* RAM: if nothing else */ if Exists('Work:') then TXTdir = "Work:" /* assume Work: */ SAY ' ' /* ask, with default prompted */ if flags.target ~= 'ANCHORS' then call WriteCh(stdout,'Generate ') call WriteCh(stdout,'Directory 'flags.DBNAME'G for HTML pages ') if flags.target = 'ANCHORS' then call WriteCh(stdout,'is ') call WriteCh(stdout,'in: ['TXTdir'] ') PULL Mdir if Mdir = '' then Mdir = TXTdir /* default was accepted */ end end Mdir = CheckPathName(Mdir) PRAGMA('w','w') if ~flags.MakeHTML then HTMLdir = Mdir||flags.DBNAME'G' if EXISTS(HTMLdir'/METATAGS') then do Open('METATAGS',HTMLdir'/METATAGS','r') flags.Meta1 = ReadLn('METATAGS') flags.Meta2 = ReadLn('METATAGS') flags.Meta3 = ReadLn('METATAGS') Close('METATAGS') end else flags.Meta1 = " " TXTdir = '' if flags.MakeText then TXTdir = Mdir||flags.DBNAME'T' if flags.MakeGuide then AGdir = Mdir||flags.DBNAME'AG' flags.RemakeThumb = ( origThumbnail ~= flags.Thumbnail ) | ( origThumbformat ~= flags.Thmbfmt ) /* say 'flags.RemakeThumb ' flags.RemakeThumb */ if ChangedScion2html then do Open('Scion2html','ENVARC:Scion2html.Config','w') call WriteLn('Scion2html',Mdir) call WriteLn('Scion2html',flags.Thumbnail) call WriteLn('Scion2html',flags.Thmbfmt) coumpound = 0 if flags.MakeText then coumpound = bitset(coumpound,0) if flags.bold then coumpound = bitset(coumpound,1) if flags.MakeGuide then coumpound = bitset(coumpound,2) if flags.MakeHTML then coumpound = bitset(coumpound,3) /* say 'coumpound as written = 'coumpound */ call WriteLn('Scion2html',coumpound) /* call WriteLn('Scion2html',flags.MakeText + ( 2 * flags.bold ) + ( 4 * flags.MakeGuide ) + ( 8 * flags.MakeHTML ) ) */ if flags.GenPrefix ~= 'GENEAFI' then call WriteLn('Scion2html',flags.GenPrefix) Close('Scion2html') end if flags.target = 'QUIT' then PauseExit() if ~flags.bold then do flags.htmlb = '' flags.htmlub = '' flags.htmli = '' flags.htmlui = '' end else do flags.htmlb = '' flags.htmlub = '' flags.htmli = '' flags.htmlui = '' end if flags.target ~= "ANCHORS" then do if ~flags.MakeHTML then do if ~Makedir(HTMLdir) then do SAY ' ' SAY 'ERROR: unable to create directory: 'HTMLdir AskExit() end if ~exists(HTMLdir'/st0ne.gif') then do OPEN('giffile',HTMLdir'/st0ne.gif','W') WriteCh('giffile', stonegif) CLOSE('giffile') end if ~exists(HTMLdir'/img') then do if ~Makedir(HTMLdir'/img') then do SAY ' ' SAY 'ERROR: unable to create directory: 'HTMLdir'/img' AskExit() end end end if TXTdir ~= '' then do if ~Makedir(TXTdir) then do SAY ' ' SAY 'ERROR: unable to create directory: 'TXTdir AskExit() end end if flags.MakeGuide then do if ~Makedir(AGdir) then do SAY ' ' SAY 'ERROR: unable to create directory: 'AGdir AskExit() end end end starttime = Time('e') do i = 1 to LASTIRN person.gotten.i = 0 /* no persons have yet been gotten from "flags.DBNAME" */ end if IsNumeric(flags.target) then do GetPerComp(flags.target) /* GetPerComp gets basic info into person. array */ pnumb = flags.target /* call WriteCh(stdout,'HTMLs for: 'person.GETFULLNAME.pnumb'? ['yes'] ') PULL answer if answer = '' then answer = 'YES' if substr(answer,1,1) ~= 'Y' then AskExit() */ call WriteCh(stdout,' HTMLs') if flags.MakeGuide then call WriteCh(stdout,' & guides') if flags.MakeText then call WriteCh(stdout,' & ASCIItextfile') call WriteLn(stdout,' for: 'person.GETFULLNAME.pnumb' {'pnumb'}') starttime = Time('e') if flags.target <= LASTIRN then do if TXTdir ~= '' then Open('GenealogyText',TXTdir'/G'flags.target,'w') flags.living = askliving() flags.depth = askdepth() flags.verbose = 1 'EXISTPERSON' flags.target if RESULT = 'YES' then CALL MakeOne(flags.target) else say '{'flags.target'} is a null IRN.' if TXTdir ~= '' then Close('GenealogyText') end end else do Delete(HTMLdir'/PAlbum.htm') Delete(HTMLdir'/FAlbum.htm') flags.target = Upper(flags.target) if flags.target ~= "ANCHORS" then do flags.target = 'NORMAL' flags.living = askliving() flags.depth = askdepth() Say ' ' call WriteCh(stdout,' HTMLs') if flags.MakeGuide then call WriteCh(stdout,' & guides') if flags.MakeText then call WriteCh(stdout,' & ASCIItextfile') call WriteLn(stdout,' for all ' LASTIRN ' persons in database ' flags.DBNAME) /* GENEAFIL.htm is a Scion data base IRN order list of all persons in HTML format: person * birthdate + deathdate (()) father & mother */ Say ' ' Say 'file name: 'HTMLdir'/'flags.GenPrefix'L.htm for: Personae' Say ' ' Open('indexFile',HTMLdir'/index.html','w') WriteLn('indexFile','') WriteMeta('indexFile') WriteLn('indexFile',''flags.DBNAME' Genealogy ') WriteLn('indexFile','') WriteLn('indexFile','