Fossil needs more control over the header of each HTML page in order to insert information inside of <head>...</head> to load the style-sheet, the scripts, and make whatever other references are necessary. Right now, the <head>...</head> is generated by a repository-specific "header" template, with the help from some TH1 variables like $baseurl, $current_page, $title, $home, $project_name, etc.
Option 1: Continue to have all the <html><head>...</head><body> material be generated from the header template as it is now. Just add some additional variables to allow the new <link> marks required for CSP support to be added. This gives the most flexibility to the site administrator, to make the site work like she wants. But it also makes writing your own header templates more complicated. And when new capabilities come out (such as CSP) it requires existing repositories to edit their header templates in order to insert the new information. Option 2: Have Fossil take over complete control of all content HTML page continue up to and including <body>. The repository "header" template would only generate the material that comes after <body>. For symmetry, the "footer" template would also be changed to stop prior to the final </body> and Fossil will automatically generate the closing </body></html> itself. This approach is the most automatic. The header and footer scripts become easier to manage, and required changes to the <head>...</head> needed for new features (such as CSP) happen automatically without the administrator having to make any changes. It is relatively easy to upgrade legacy header and footer templates. Just delete all text through the <body> in the header template and delete </body> and all that comes afterwards in the footer. Option 3: Fossil automatically generates <html><head>...</head><body> and then appends whatever is in the "header" template, as with option 2. Except, if the header template already contains a <body> tag, then Fossil assumes that the admin knows what she is doing and lets the header template generate everything as it does now. Similarly with the footer, Fossil will automatically generating the closing </body></html> unless it sees that the footer script has already done so. This approach continues to work on legacy repos. It allows repos to upgrade easily just by deleting all header text up to and including the first <body> tag. And it allows knowledgeable admins to set up their own custom <html><head>...</head><body> text if they have some unanticipated need. The downside is that this system is more complex to explain and document. Option 4: Behave as in option 1 or option 2, depending on a setting. The setting defaults to do legacy option 1 support. Then when an admin goes to update the header and footer scripts to the option 2 style, she also changes a setting to cause the <html><head>...</head><body> content to be prepended and the </body></html> content to appended. Summary: The mere exercise of writing all this down as clarified my thinking and caused me to prefer option 3. But I'm still open to hearing other opinions and/or receiving suggestions for other options. Please send your feedback, even if it is just "+1 Option 3". -- D. Richard Hipp d...@sqlite.org _______________________________________________ fossil-dev mailing list fossil-dev@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/fossil-dev