New Styles window.
The old Styles window was amongst the first portions of HTML³ to be written, and so was the most out of date. It has now been re-written to have four sections all with separate colouring and alignment controls, where applicable. Somehow more options have been included in a smaller space than the previous window! New stuff includes background colours on paragraphs; <span> which makes changes without adding any linefeeds; and a highlighter marker thingy.
This Styles Update also impacts on a lot of the colour editing stuff - colour grabbing, sending, saving etc. ArtWorks and Hex colour saves have had slight naming modifications while I was in there too.
Table cell colour saved same as table row - fixed.
Headers: XHTML mode always outputs correct DOCTYPE for XHTML 1.0 transitional (including DTD URL); HTML outputs HTML3.2 DOCTYPE only if language info option is ticked. The doctype$ variable is no longer used, so hack the program, not the text files ;)
More colour list files included as standard, including new netsafe and pantone files.
Complete re-write of tables window - mainly so tables, row and cells can have their own individual backgrounds and alignments rather than having one section for everything, plus there are other slight changes such as cell padding and spacing being switch on and offable, rather than just assuming =1 equals off. I also think the window is slightly neater, seeing as all that extra stuff is in and the window is now actually smaller!
Changes to: template file obviously, plus following procedures: save defaults; load defaults; click on table window; menu decode; create table; create cell; create row (new procedure); redraw table window; table defaults; colour editor (menus); file dragging (input). People looking for bugs shouldn't just concentrate on these few though ;)
Uses temp file rather than direct variable output because having all those options switched on, especially image backgrounds, could make the output LARGE.
New colour history function
On the colour editing window there's now a history button which, when clicked on, brings up a "menu" of the last 16 colours used. On exit this list is saved as a standard RISC OS palette and loaded again next time you load the program. A menu-like window has been used so that you get an actual preview of the colour, not just some text, although in most important respects it works like a standard RISC OS menu (auto-close if you move the mouse pointer off it, on opening it moves up if bottom of window goes off-screen, stays on top if adjust-clicked).
Updated colour grabber and colour list functions
As with the colour history window, the colour grabber menu and list of predefined colours menu have now been replaced with menu-like windows so that the program can show small examples of the colour next to the name. This takes a lot of the guess work out of colour picking!
Slight "feature" fix: if you push the colour to a different area than the one you started editing (using the "push to" menu), and adjust-click on OK, the window editor now switches to editing this new area. It might have done that anyway, it just didn't update the window to reflect this change. If you push to text stream then there's no icon to edit, and so the window has to close no matter what mouse button you use - if you want a lot of the colour definitions as plain text, use the Save hex colour list option instead.
Some new predefined colour lists to go with the new funkier list window.
Extremely trivial change to maths on colour editor - now steps of 20% should always equal steps of &33 and vice-versa when typing values by hand.
Image ALT attribute s/_/ /g: when dragging a file to the image window, the Alt. text is based on the file name. Underscores are now converted to spaces, so connecting_the_classroom.gif becomes Connecting the classroom
New tricks in Docs:
Rollover docs page - use a couple of style sheet commands to change the background of a table cell, giving a text-only variant rollover.
Captioned and linked images can now have automagic "Click to enlarge image" linked piece of text added to the caption (includes all link options, including JS safe mode)
Bug fix: when dragging directories to the iconbar/options window, the code to set the current working directory was somehow broken. Fixed.
Dragging archives to the iconbar icon doesn't reset the current working directory.
Bug fix: dragging files from the root directory could cause an infinite loop (because it couldn't check for the directory properly due to some maths oddity). Fixed.
Default font face now set in stylesheet as well as <basefont...> tag.
Hard spaces in filenames now mapped to real spaces.
File upload option added to Forms:text box
Switched to snazzy new look for documentation
New image creation page in docs (separate from information about the Image window)
When Links window is linked to Images, OK'ing the Links window with the left mouse button will close both windows.
Increased file scans from 77 items to 200 (as there's already 60 body colour definitions in my Colours directory :) - obviously you'll need RISC OS 4 or some file system hack to use that many files.
Changing colour definitions seemed to cause more "Can't pump data back into itself..." errors; should have fixed that now.
Plugin menu width incorrect under RISC OS 3.1; switched to using standard menu procedure (and updated procedure to avoid clashes with certain characters being used as control codes)
Ant URL files with .url extensions didn't get read (as their filetype was overridden and they don't contain the same info as proper .url files)
After a brief and dubious flirtation with using full redraw code for the loading banner, the old banner is back but slightly changed to look better in reverse-palette desktops (which means nothing if you haven't used my desktop themes program :). Skinning may follow, even if it's only auto-skinning the banner.
Detects and uses CryptRandom module for random features (SFX etc.). If you have this module, or you're running anything that uses it (such as SSHProxy), you'll now be using what is supposed to be a much more "random" random number generator.
Characters window updated; to make room for new closing buttons (</dt> etc.) and starting the new revamp, drop-down lists are used in preference to radio icons for choosing list types. Adjust-clicking on opening buttons (ul, ol, li, dd, dt, dl) will output plain open and close versions of those tags.
Header and Footer windows moved on to menu bars along with all the other window buttons.
Uses PipeFS for the temporary file, not the hard drive. Super turbo mode!
Better XHTML support (<hr /> etc.)
New header option - "No margins". Takes out slight padding around sides of web pages so table layouts etc. go right to the edge.
New Server Side Include format: ASP now joins Apache SSI and PHP.
Bug fix on captioned images (introduced when adding WML support).
WML and XHTML modes added:
Started converting output to be compliant with both these modes (hopefully it's finished but...)
Text case is locked to lowercase for these modes (as the specs say they won't work in any other case)
Allowed WML files (&F8E) to be used in the same way as HTML files when dragged to iconbar, link window etc.
WBMP (&F8F) added to graphics files (mobile phone image - for use with WML mode). Converter should be in Plugins directory.
Changed email links to 'phone links in WML mode - address section and some footers will output phone-ready "call" links instead of email links. Phone numbers added to User details.
SHTML (&144) for SSI and PHP (&18A) for PHP3 added to HTML filetypes
Can switch between SSI or PHP mode output from SSI window now (go to choices window; sidebar icon changes to reflect mode)
Drag-and-drop a file can change mode
for instance, if you're in SSI mode and you drop a PHP file onto the iconbar, not only will the root directory be set to the directory this file is in, it'll also switch PHP mode on
If you drop a WML file onto the iconbar, directory change, mode change and case change are all implemented.
Audible warnings updated; two-tone if both mode switch and directory switch happen at the same time.
Tries to close the temp file on startup, so if program crashes it can start up and begin outputting stuff without barfing at a "file already open" error (hopefully only needed for debugging new stuff...)
Add Perl print statements (tricky encoding; some linefeeds and speechmarks have to be output as "real" not encoded versions, used "|" character). You can now output whole chunks of code directly into a Perl CGI without need for modification.
In WML the dollar sign can be used for variable names in attributes, and must be encoded to $(varname); outside of attributes you have to encode it to a double dollar, $$, which HTML³ will do automatically.
In PERL, you can use dollar signs for variables too, and so to print a dollar sign you need "\$".
Updated description of dragged-and-dropped hypertext file; if you drag a file to HTML³ for linking (or images etc.) the program uses the main part of the file's name to create a simple textual description, so for instance a file called "contact.html" will have the textual desciption "Contact", so in a link you'd have Contact.
However, if you organise your site into directories (as you should!) you'll get lots of descriptions called just "Index". The program has now been updated so dragging a hypertext file called "index" (index.html, INDEX.SHTML, index.wml, index.txt, index) results in the name of the directory being tacked onto the front, such as "Site index" if it's in a directory called "site".
Raised iconbar icon to "proper" level.
Many docs changes to reflect WML changes. New section on tokens page to take into account more encoding needed for Perl and WML modes.
Tweak to JPEG handling - pinched an image of Bletchley Park off the BBC news site; HTML³ couldn't find the width and height, so it left the file open. Fixed program so it should close the file, and copes with the slight difference in format.
SVG image support. SVG is a type of vector image defined using XML tags. If the
There wasn't one. I figured all the changes that went into what eventually became 3.50 made it major enough to warrant being called 3½. Also, I did all the WML and Perl stuff, then it sat there for a while waiting for something to happen, so I ended up hacking SVG support, JPEG fixes etc. into it, which means I probably would have released a 3.50 by now anyway
By request, shockwave flash support added. The Images section now outputs an embedded object instead of the usual image code if it detects a SWF file (last file dragged to image window/iconbar/side bar, or file ends in .swf). Auto correcting extensions updated to cope (adds .swf to files of type &188).
Some updating of documentation (spelling mistakes mostly).
Changed background sound console sizes after playing with sounds in Internet Expolorer 5.
Added ability to change what keypress, along with the F keys, opens HTML³'s window - usually it's either Alt key, but after buying a snazzy blue see-through keyboard with black keys I wanted to make use of the nasty Windoze keys :)
Changed maths on percentile colour text entry (always seemed to be your number - 1); changed after playing with desktop themes manager.
Removed the saving of the Options window options from the shutdown sequence - kept finding the program switched to Perl output even though I hadn't saved that option!
Added Internet Explorer 4+ fixed background option to headers
Fix for User Macros in the Address window worked - but broke all the other buttons on that window, including help!
Problem switching to external data apps fixed.
Colour handling completely re-written:
Redraw code used to display colours more accurately; dithering is used so that desktops of less than 16.7 million colours will give a much better depiction of the colour.
New colour window created: a consistent interface to colour changing for all areas where colour is used.
Read and hand-edit colours in hex, decimal and percentage RGB values
Large display of colour
View (displayed in hex and colour) of the nearest Net safe version of the colour; one click to use this colour instead.
Lighten and darken
Sending and grabbing of colours from other windows and icons
Send raw #RRGGBB to text editor without any HTML commands.
Plus the usual - use of the RISC OS colour picker (which now handles much smoother so you can view the characteristics of many colour icons without having to click OK all the time), and selection of colours from lists of names.
Body colours display changed (in the header window) to use real anti-aliased fonts instead of a sprite; choice of three fonts.
Fixed bug(s) where clicking on bits of windows to open resource directories - for instance clicking on the FX window to open the palettes directory - didn't seem to bother. Apparently I was calling Filer_OpenDir incorrectly, and the error was being suppressed.
Full drag-and-drop of palette and ArtWorks colour files (although the old way of just giving a name so it gets saved inside !HTML³ is retained).
Linking to images improved - the link is no longer wrapped around the entire output of the images window, which is much more important now that images can have captions (especially if the caption forces the image into a table structure!)
Slight tweaks to captioning (e.g. if a table is used, the caption is centred in the table; centred images with captions have less whitespace underneath them)
Changes to Docs - new features have been documented so the docs should be fully up to date, and images put in a separate directory (because I've used so many to tart up some of the older sections ).
tables can be border="0"
table borders in quotes (like all other attributes I hope)
clicking on user macros in the Address section when the macro isn't defined won't hang the program (honest, I put in two extra checks and verified it works this time).
Added the saving of window positions on exit - now when you reload your windows should be exactly as you left them! And as the data is saved to the current options directory, you can have different window settings for each website! Plus of course a "Recover windows" menu option just in case...
Tables section partially re-written; uses drop-down menus for alignment, added background image and a way of stopping text flowing around aligned tables. Defaults are now saved between sessions.
Caption option in the image window - takes the Alt text and creates a caption, using tables if the image has text flowing around it.
Kludge to stop menus disappearing behind the side bar(/horizontal menu bar) - when you bring up the main or plug-in menu, the part of the program that brings the side bar to the top of the window stack goes to sleep for five seconds.
Changed a few windows to fit into 640x480 screens, to have bars across to break up some of the more confusing layouts, and most windows now have Help buttons.
Updated some of the documentation to have more illustrations
SensibleTime module made the SSI window display "Just now" for two of the date formats - if this is detected the program reverts to hardcoded values instead.
Probably too obscure, but it can now output in "Perl" format - it escapes some of the characters so that I can output to any Perl programs I'm writing, rather than just being of use for static HTML files.
Played with the default settings so that new users don't have (for instance) their file extensions diddled with.
Added bars on Header window to break the confusing layout up. Still fits on a 640x480 desktop though - just!
Added PNG support - you can now use these anywhere you can use the other image file formats (GIF, JPEG, Sprite and BMP).
<Full Release 3.40>
Documentation finished at last! I'm free, free I tell you!
Minor bug fixes to the Forms window - text areas had the same width and height, and password text boxes appear to have been non-functional ever since the forms section was first added. Bah.
Changed menu creation routine(s) - longer items should now be visible on a vanilla RISC OS 3.1 machine (using proper counting, not "hope it's no longer than X" method); way long items now use character 140 () and 34 characters of the name, not three dots and 32 characters; blank items show up as "[ blank ]" - i.e. changed them all, which at least makes them standardised for once); Address window email menus now have user and profile email addresses showing at top of list (even if the email database is empty).
The default list of colours is now "Simple" not "NetCols" as "NetCols" is way big and slow on my A310
TABLE ALIGNMENT HAS CHANGED! Instead of: <div align="right"><table>...</table></div> HTML³ now uses: <table align="right">...</table>
This enables text to flow around tables, so you can put captions
underneath images and have the main text flow around the whole
thing. You can use a
after the table definition if you don't want this action. Of
course, if anyone wants me to support the old method properly
I'll have a re-think (I'm due to update the Tables section after
the first full release anyway)
Fixed a bug where attempting to send an amount of data whose
length was zero (like, empty SSI stuff) would break the ability
to send other data until the program was quit and restarted. It
was actually the null data trap that caused the problem!
Ability to use BMPs as images in all the same places you can use
GIFs and JPEGs (and Sprites). I needed to find the size
of a lot of BMPs at work, and used a modified version of the GIF
size checker from HTML³, so I returned the favour and put
the code back in HTML³
PC users are using BMPs these days - they don't work on Acorn
but then, Sprites don't work on PCs
Sprite file size reading - after several attempts, I've finally
mastered the reading of a sprite's height and width without
having to load the entire sprite into memory. This was
complicated by the strange method used to describe the width
(number of words wide, which has to be multiplied by different
numbers according to pixel size and colour depth (i.e. the
screen mode it was created in), plus any extra pixels stored
in a second number). The routine should now work for all the
usual screen modes (0-28 inclusive, apart from the non-graphical
modes), plus a few additions (35, 36, 66, 67), and also new
format 32K and 16M colour files.
Seems like a graphical update - after figuring out what forms
actually do so I could document them, I've upgraded the image
handling on the forms window to support drag-and-drop and
the width and height attributes. Also gave Demon mail script
the correct name (I hope).
Bug fix to Footer window where having only some of
the options switched on in Full Footer mode would
cause the program to give up halfway through trying to create
the data. Also means RISC OS, Acorn and Microdigital link
sensing are all included, I had thought earlier that getting
rid of the Acorn sensing part of the routine would fix it.
Won't type into its own windows
Re-wrote the function to work out the path between two files -
after using this function in another program for mass producing
SSI headers (and so used lots of links and graphics all over the
place) I found that if two directories started with the same
letters it could strip these off, and also it might return paths
that try to move up too far before dropping back down into the
directory it started from.
Saves temporary files into whatever options directory you're
using (it's own or one of your
external data apps), due to the scrap directory having a 77
files in a directory limit (if it's full, HTML³ stops working).
It uses the Options directory because it means you can still run
the main program from a read-only filing system if you're using
an external data app.
Docs and hotkeys updated to reflect loss of frames button.
Docs updated generally - extra tips and graphics added to
Links and Address
pages, new Server page to compliment SSI
explaining how to find out what server your site is hosted on,
Two URL pseudo-protocols added to the startup sequence:
HTML3Doc: and HTML3:. These can open either the
documentation for, or the actual window of, a particular part of
HTML³, even if the main program isn't yet running.
Mainly for adding click here to open the
header window type stuff in the documentation (Fresco only?).
May also be of use to people wanting to write their own plug-ins,
so it could be extended to form the basis of the API?
Fixed bug that stopped some Internet Explorer bookmark/shortcut
files interacting with the Links window
as they should (because I forgot about PC line endings in IE
files - doh!)
[ALT][F11] opens Plugins menu under cursor now.
Changed abscenter to absmiddle in image
Header window: clicking on background menu with no images
in the database won't generate an error now.
Non-Acorn RISC OS hardware added to the Designed using...
section of the Footer window; choosing Designed using A Smoked
Kipper will no longer insult Rich Foster.
Slight changes to default settings - won't redirect to my site
(not intentional, honest!), sets header colours properly, sets
Effects colours to rainbow set instead of greyscale.
SSI. Coded, tested, documented and uploaded 11th June 1999
Link checked docs; made external links (apart from examples) show
up in red (only works for Fresco though. And PC browsers of
Changed layout of Header window - partly because it was messy,
and partly because I wanted to add some new features and there
New header feature: base target, which allows you to
specify the default frame target for each link on your page
(e.g you don't have to have _top on all those links
pages now). With menu select option.
New header feature: brightness controls. Darken or lighten
body colours at the click of a button.
Extended features: Link history updated to include user and
profile URL; link history available from refresh section of
header window. Background image can be selected from a
previously used image (probably not very useful, but for
Changed the way comments are added after characters - uses proper
<!-- comment --> format now.
More documentation - headers, links, choices all done, and other
stuff neatened. Just forms and tables to go!
Yet more relative file fixes - drop an image on the side bar and
it takes notice of the relative file tickbox.
Bug fix so changing user save path doesn't add a full stop to the
writable icon, making the program crash when trying to save user
Correction to one of the unordered list bullet types (it's
disk not dot)