This allows web sites to add some specific html headers to the pages generated by gitweb. The new variable $site_htmlheader can be set to an html snippet that will be inserted at the end of the <head> section of each page generated by gitweb. Signed-off-by: Lénaïc Huard <lenaic@xxxxxxxxxxxxxxxx> --- Le lundi 17 octobre 2011, Jakub Narebski a écrit : > On Mon, 17 Oct 2011, Lénaïc Huard wrote: > > Jakub Narebski <jnareb@xxxxxxxxx> writes: > > > Lénaïc Huard <lenaic@xxxxxxxxxxxxxxxx> writes: > > > > This allows web sites to add some specific html headers to the pages > > > > generated by gitweb. > > > > > > What do you need this for? > > > > I want to decorate the gitweb pages with the “Google Analytics” tracking > > code. In order to do so, today, Google is recommending to add a <script> > > tag just before the closing </head> tag. > > > > https://www.google.com/support/analyticshelp/bin/answer.py?answer=1008080 > > &hl=en > > Hmmm... the modern recommendation from both Google and Yahoo is to put > script tags at the end of HTML, just before closing </body>, which you > can do nowadays with $site_footer / GITWEB_SITE_FOOTER. > > But I guess that analytics script needs to be loaded earlier. In fact, I used to insert the Google Analytics tracking code before </body>, but I recently noticed that Google is now recommending to put the html snippet at the end of the <head> section. Here is the recommendation from Google: https://code.google.com/apis/analytics/docs/tracking/asyncTracking.html >From what I understood, the goal of putting the script tags just before </body> was to avoid to increase the page load time in case of latency of the remote server serving the js script. The GA tracking code is now loading the js asynchronously. So, it doesn’t block the page load anymore. So, the load can be started asap. > > > > The new variable $site_htmlheader can be set to a filename the > > > > content of which will be inserted at the end of the <head> section > > > > of each page generated by gitweb. > > > > > > Hmmm... I wonder if a file with html header fragment (which is quite > > > specific subset of HTML) is a best solution. > > > > That’s true. The piece of code to be inserted in <head> is maybe small > > enough so that we don’t need a file. Maybe $site_htmlheader could > > contain directly the html snippet to be inserted in the pages? > > I think it might be a better solution. I changed this in the patch attached in this mail. Now the variable should contain directly the html code to be inserted. > > > > gitweb/INSTALL | 3 +++ > > > > > > Nb. there is patch in flight adding gitweb.conf(5) and gitweb(1) > > > manpages... > > > > Ok. So, I’ll update them once a decision will be taken concerning this > > $site_htmlheader. > > You might have to wait a bit till patches containing gitweb.conf(5) > manpage are merged in, and rebase your patch to add information about > new config variable not to gitweb/INSTALL, but to > Documentation/gitweb.conf.txt I added the documentation to Documentation/gitweb.conf.txt. But, as I noticed that gitweb/INSTALL still exists and still documents the old variables, I left the doc of the new one. Documentation/gitweb.conf.txt | 5 +++++ gitweb/INSTALL | 2 ++ gitweb/Makefile | 2 ++ gitweb/gitweb.perl | 7 +++++++ t/gitweb-lib.sh | 1 + 5 files changed, 17 insertions(+), 0 deletions(-) diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt index 4ca3e27..5e69c2d 100644 --- a/Documentation/gitweb.conf.txt +++ b/Documentation/gitweb.conf.txt @@ -364,6 +364,11 @@ $site_name:: + Can be set using the `GITWEB_SITENAME` at build time. Unset by default. +$site_htmlheader:: + HTML snippet to be included in the <head> section of each page. + Can be set using `GITWEB_SITE_HTMLHEADER` at build time. No default + value. + $site_header:: Name of a file with HTML to be included at the top of each page. Relative to the directory containing the 'gitweb.cgi' script. diff --git a/gitweb/INSTALL b/gitweb/INSTALL index d134ffe..a6a9f06 100644 --- a/gitweb/INSTALL +++ b/gitweb/INSTALL @@ -130,6 +130,8 @@ You can specify the following configuration variables when building GIT: Points to an .html file which is included on the gitweb project overview page ('projects_list' view), if it exists. Relative to gitweb.cgi script. [Default: indextext.html] + * GITWEB_SITE_HTMLHEADER + html snippet to include in the <head> section of each page. [No default] * GITWEB_SITE_HEADER Filename of html text to include at top of each page. Relative to gitweb.cgi script. [No default] diff --git a/gitweb/Makefile b/gitweb/Makefile index 1c85b5f..ecfb311 100644 --- a/gitweb/Makefile +++ b/gitweb/Makefile @@ -34,6 +34,7 @@ GITWEB_CSS = static/gitweb.css GITWEB_LOGO = static/git-logo.png GITWEB_FAVICON = static/git-favicon.png GITWEB_JS = static/gitweb.js +GITWEB_SITE_HTMLHEADER = GITWEB_SITE_HEADER = GITWEB_SITE_FOOTER = HIGHLIGHT_BIN = highlight @@ -144,6 +145,7 @@ GITWEB_REPLACE = \ -e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \ -e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \ -e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \ + -e 's|++GITWEB_SITE_HTMLHEADER++|$(GITWEB_SITE_HTMLHEADER)|g' \ -e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \ -e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \ -e 's|++HIGHLIGHT_BIN++|$(HIGHLIGHT_BIN)|g' diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 85d64b2..10b118b 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -85,6 +85,8 @@ our $home_link_str = "++GITWEB_HOME_LINK_STR++"; our $site_name = "++GITWEB_SITENAME++" || ($ENV{'SERVER_NAME'} || "Untitled") . " Git"; +# html snippet to include in the <head> section of each page +our $site_htmlheader = "++GITWEB_SITE_HTMLHEADER++"; # filename of html text to include at top of each page our $site_header = "++GITWEB_SITE_HEADER++"; # html text to include at home page @@ -3879,6 +3881,11 @@ EOF print "<base href=\"".esc_url($base_url)."\" />\n"; } print_header_links($status); + + if (defined $site_htmlheader) { + print to_utf8($site_htmlheader); + } + print "</head>\n" . "<body>\n"; diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh index 292753f..cfe5d74 100644 --- a/t/gitweb-lib.sh +++ b/t/gitweb-lib.sh @@ -16,6 +16,7 @@ our \$projectroot = "$safe_pwd"; our \$project_maxdepth = 8; our \$home_link_str = 'projects'; our \$site_name = '[localhost]'; +our \$site_htmlheader = ''; our \$site_header = ''; our \$site_footer = ''; our \$home_text = 'indextext.html'; -- 1.7.7 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html