Untitled #20

Sun, Jan 26, 2003

More details:

Each day's worth of entries will be stored in an XML file.  Schema TBD right now.

There will be a configure option for the root of the working directory of the site.  This will default to {My Documents}JoeBlogger.  Call this {Root}.  Things will look like this:

{Root}
    Config
    Site1
        Data
            EveryPage
                Bloglist.xml
                FavoriteSong.xml
                ...
            2003
                01
                    23.xml
                    26.xml
                    ...
        Templates
            RSS.xsl
            Homepage.xsl
            Day.xsl
            ...
        OtherStuff
            foo.jpg
            otherpage.htm           
        Archive
            2003
                01
                    23.html
                    26.html
        index.htm
        rss.xml
    Site2
        ...

Everything under the site dir will be uploaded.  This means that the Data, templates and anything else anyone puts in this folder will be uploaded.

The Archive, index.htm file and rss.xml file will all be generated automatically.  Every time the page generator runs, it will generate a source XML data document.  This will include the relevant days along with the all of the xml files in the EveryPage directory.  This will then be fed through the appropriate XSL sheet to generate the page. Note that this will always be an in memory XmlDocument and will probably never be persisted, except for debugging purposes.  Here is what a source doc might look like:

<JoeBloggerData>
    <EveryPage>
        <File name="Bloglist.xml">
            ... verbatim paste of bloglist.xml here
        </File>
        ... same for every file in the EveryPage dir
    </EveryDay>
    <Days>
        <Day date="Sun, 26 Jan 2003">
            ... verbatim paste of 2003/01/26.xml here
        </Day>
        ... every day relevant to this page.
    </Days>
</JoeBloggerData>

Generating a page is now the simple matter of writting an XSL stylesheet that takes this source document and produces the correct output doc.