Hi!

I am currently exploring a new way to generate my web pages. Currently I
use the HTML preprocessor hsc on my Amiga 4000. This is about having to
maintain a Makefile and its not as flexible as I want and I do want to
make a new start.

I followed REBOL for quite some time now and it came to my mind that REBOL
and some scripts that I write could do the job. I saw the scripts that
build the REBOL webpages. They are already quite impressive, but IMHO not
flexible enough. I want to reach the following goals:

- index and content directory creation should be automatic.
- no manual makefile, it should simply scan a directory for approbiate
files recursively, build a site map and the webpage and optimally also
manage to upload it to the net.
- it should be independent to HTML. I want to use a dialect-HTML.r script
to provide the translation to HTML. Thus I could easily replace it by
dialect-XML.r or whatever when the web format changes.
- it should be quite layout-independent. I only want to specifiy one out
of 2-3 possible layouts for each page maybe with one single rebol function
- it should transparently support multi-language sites (here two
languages)

Well thats much, but I won't put away my old solution just for nothing
;-).

In my current approach it could work like this. I write a "make.r" which
does all the hard coordination work.

It includes possible dialects and other databases and informations, and
then scans the directory for hypertext rebol files. These are normal rebol
scripts, maybe with a different filename ending to be recognized easily.
They contain all index and meta tag information in their REBOL headers.

Thus the 1st pass of the make script is to load all those REBOL headers,
organize them in a nice tree, and collect them together in one big REBOL
data structure. After this pass it could else be written out as
"sitemap-database.r" or something like that for later reference, but it
should stay in memory during creation of the webpage.

This should contains web page titles, short titles, linking information,
relative URL and stuff.... to link a internal page I would just like to
enter "link "thispage"" where thispage is a magic name for the page in
question that is independent from its location in the directory tree.

This is the information gathering pass.

After this there should be the build pass. In this make.r should simply
executre all the rebol hypertext script files one after another. One rebol
script does only define a variable named "page" or so and put the desired
page contents into it. One example (one roughly typed, may contain errors):

REBOL [
    Title:      "Top level index page"
    Pagetitle:  "The sun pages"
    Date:       21-9-1999
    File:       %index.r
    Author:     "Martin Steigerwald"
    Description: "My mighty webpage"
    Keywords:   ["Amiga" "The sun pages"]
    Link-Title: "The sun pages - main index"
    blablabla
]

page: [
newpage[Layout: "table1"
Style: "sun-style"]
p[deutsch: ["Hallo, Leute, Willkommen auf meiner Webseite. Schaut euch
auch diese" link [where: "magicpagename" linktext: "Webseite"] "an!"]
english: ["Hello, People, welcome on my webpage. Also look on this"
link [where: "magicpagename" linktext: "webpage"] "!" ]
contents[Style: "fancy"]
endpage[Created: "22.10.1999"]
]

(Whereas p[] marks a paragraph)

This one should be enough to create a index page for example (I would even
like when make.r creates such a index.r file automatically in directories
where it doesn't exists;-).

The newpage function just starts a new page, it returns the HTML header,
fills in the HTML meta tags, generates the layout and necessary
indexes (such as link lists on the left or something like this). All what
should follow then is pure content.

And I do not want to see one single HTML tag in it. These should be
generated by dialect-HTML.r functions like "link" using build-tag. The
layout should be generated by some other script maybe "layout.r" or
"page.r" and it should use dialect-HTML.r to be somewhat HTML independent.

After the word "page" is filled up with the page contents, the scripts
returns to make.r and make.r can write the page contents to a HTML file.

This approach gives me some easy page creation... creating a new page is
creating a new rebol hypertext file and typing make.r. Make.r should
recognize that file and add it to the site map and the approbiate index on
the webpage. This is what I call totally dynamic page creation... It
should however be possible to disable pages by preceeding a "-" to the
filename or something like that ;-)

And this approach gives me total flexibility as I can do simple pages and
also very complex automatic ones that use REBOL databases and I can
virtually *program* a webpage contents if everything else is not flexible
enough.

So tell me, could this be possible with REBOL, I think yes, but I am not
quite sure. Or am I thinking complete nonsense here?

I especially like to know how load all REBOL headers into a single
datastructure and browse through it. I can load the headers with the
"load" command, but how do I organize them in a single data structure?

And how can I easily make REBOL functions which behave somewhat like HTML
tags when it comes to parameter passing?

I do not like to say newpage ["table1" "sun-style"] but newpage[Layout:
"table1" Style: "new-style"] to be able to add parameters later on as I
desire (just like web tags or the tag system of AmigaOS 2.04+ ;-).


Any helpful comments appreciated ;-). Anyone wanting to be a co-developer
for this stuff?

Or have you REBOL guys already invented something thats is by far more
powerful for hypertext creation that I didnt see yet? (Maybe a top-secret
REBOL web browser;-)?]


-- 
Martin 'Helios' Steigerwald  - http://helios.home.pages.de
PGP: http://home.pages.de/~helios/autor/wie-erreichen.html

Reply via email to