WebSite Management

This is my wish-list about what a web site management app has to do :

1. It has to allow the designer to create web pages easily and shape the way they look. 

2. It has to allow the writer to write without being derailed by the technology.

3. The web pages, as they're being designed, have to lookand work, EXACTLY as the reader would see them. 

4. It must allow the designer to work with images with drag and drop simplicity. 

5. And the web pages, once created, must be easy to send to the "live" web server (with just one click). 

6. When changes are made, the system must know which ones have changed and send only the changes to the server.

7. The system must help the designer know which resources (images, zipped files, sound files, other web pages) are used by which web page.

8. The system must let the designer know which resources are no longer linked to any web page.

9. The system must let the designer know which resources are missing (lost or not accessible).

10. And finally, everything must work quickly or at least with reasonable speed, especially the uploading of the web pages to the web server, especially in coffee-shops with slow Internet connections.

WebPage Design

The left side is where you control the structure of the contents. You get a visual representation of the DOM (document object model) which you can rearrange through drag and drop. The right side is where you edit the Style Sheet(s). The bottom pane is the editable source HTML code. You can use all three panels to control the apprearance of the web page.


I now have a page of templates you can use to learn about Cascading Style Sheets through using RAIN.

Release History      

1.0 13th October 2022. RAIN 1.0 released. 

1.1.1 1st November 2022. Bug fixes. 

2.0 21st February 2024. Moved to 4-panel layout, with the source HTML as the fourth panel.

2.1 25th February 2024. Refactored the code to use Cocoa Bindings, so that there is only one source of the truth for the four panels of the webpage - the HTML source code.

2.2 1st March 2024. Even the hierarchical Outline View of the nodes is now controlled by Cocoa Binding. The text size of the Outline View can now be adjusted like the other text views. This release includes bug fixes so the drag and drop of HTML element nodes are now more accurately reflected in the WebView, the source view of the HTML and CSS codes, and on the Outline View itself.

2.3 3rd March 2024. The app will now recover more gracefully in the presence of an externally hosted stylesheet that is not accessible because of WebKit’s CORS restrictions. It will offer to convert this stylesheet to an internal stylesheet that is stored with the web page. The user can later also choose to convert this stylesheet back to an external stylesheet but, this time, that is stored locally on the file system. 

2.4 5th March 2024. RAIN doesn’t require PHP to be on your system to pretty-print CSS.

2.4.1 6th March 2024. Bug fixes - you can click on the DOM Nodes Outline View column to select an element, and the WebView will highlight its selection. This also works the other way round - click on a WebView element and the Outline View will show you its position in the DOM Node hierarchy. 

2.4.2 8th March 2024. The context menu that appears when you Control-Click on an element in the Outline View now shows you the available Classes or IDs, in exactly the same hierarchical order as the way the stylesheets are ordered in the HTML. You can change the stylesheets order, and thus the CSS precedence rules, simply by dragging and reordering the stylesheet names in the Outline View.

2.5 11th March 2024. Drag and drop of the elements in the Outline View is very difficult to get right because there are so many permutations (including Option-Drag for copy). But this is also the apps potentially most productive feature. Ill use version 2.5.x exhaustively until I get every crash debugged. 

2.5.1 17th March 2024. Improved stylesheet handling - converting between builtin <style> and linked .css files is now smoother. Contains bug fixes.  

2.5.2 24th March 2024. There was a bug with turning on Rsync for faster client-to-web-server uploads and downloads. This is now fixed. 

2.5.3 31st March 2024. I can now display the contents of external style sheets hosted on external domains. So theres no need to do the check that allows the user to convert externally hosted stylesheets to internal ones, though the option remains to convert later if the user so wishes. But external stylesheets remain not editable.

2.5.4 3rd June 2024. The PHP that is bundled with RAIN to pretty-print CSS code has been upgraded to version 8.3.4, requiring some adjustments to the css-tidy scripts.