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