Author: sebb
Date: Sat Dec 16 15:47:41 2023
New Revision: 1914716

URL: http://svn.apache.org/viewvc?rev=1914716&view=rev
Log:
Documentation

This time update the xdocs copy, not docs!

Modified:
    attic/site/xdocs/scripts/attic_filter.lua

Modified: attic/site/xdocs/scripts/attic_filter.lua
URL: 
http://svn.apache.org/viewvc/attic/site/xdocs/scripts/attic_filter.lua?rev=1914716&r1=1914715&r2=1914716&view=diff
==============================================================================
--- attic/site/xdocs/scripts/attic_filter.lua (original)
+++ attic/site/xdocs/scripts/attic_filter.lua Sat Dec 16 15:47:41 2023
@@ -6,7 +6,26 @@
   /var/www/attic.apache.org/flagged/%{HTTP_HOST}
 
   See the tlp vhost definitions in 
https://github.com/apache/infrastructure-p6/blob/production/data/roles/tlpserver.yaml
-  
+
+  The mod_lua API is described here:
+  https://httpd.apache.org/docs/current/mod/mod_lua.html#modifying_buckets
+
+  How it works:
+    For simplicity, we add the banner to the start of the page.
+
+    This is not really valid HTML, but seems to work in most cases, and avoids 
having to find a better
+    place to insert it. It does not work for some hosts, especially those that 
have a static menu bar
+    with scrolling content. In such cases, the code looks for a specific tag 
(which should only occur once
+    in any of the site pages, otherwise two banners may be added) and adds the 
banner either before or after it.
+
+    The best location for this is found by trial and error:
+    - download a copy of a page
+    - move the banner from the start of the page (where it is added by 
default) and try it in various
+    other parts of the page.
+    - try the same in some other pages that have a different layout.
+    - repeat until a suitable location is found and find a tag or other string 
that uniquely identifies it
+    - add the host-specific processing to the filter along the lines of the 
existing host exceptions
+
   Note: This filter was introduced in April 2018, so not all projects in the 
Attic use this filter. 
   Previously the project websites themselves were changed.
 ]]--
@@ -15,11 +34,11 @@ function output_filter(r)
     -- We only filter text/html types
     if not r.content_type:match("text/html") then return end
 
-    -- add header:
     -- get TLP part of hostname
     local host = r.hostname:match("^([^.]+)")
 
-    local divstyle = 
'font-size:x-large;padding:15px;color:white;background:red;z-index: 99;' ;
+    -- create the customised banner
+    local divstyle = 
'font-size:x-large;padding:15px;color:white;background:red;z-index:99;' ;
     local astyle = 'color:white;text-decoration:underline' ;
     local div = ([[
       <div style='%s'>
@@ -28,6 +47,7 @@ function output_filter(r)
         Attic page</a>.
       </div>]]):format(divstyle, astyle, host)
 
+    -- add header:
     -- special processing needed for some hosts
     if host == 'predictionio' or host == 'eagle' or host == 'metamodel' or 
host == 'mxnet'
     then
@@ -35,8 +55,9 @@ function output_filter(r)
     else
         coroutine.yield(div)
     end
+
     -- spit out the actual page
-    while bucket do
+    while bucket ~= nil do
         -- special processing needed for hosts as above
         if host == 'predictionio'
         then    
@@ -59,4 +80,6 @@ function output_filter(r)
         end
     end
 
+    -- no need to add anything at the end of the content
+
 end


Reply via email to