From: Joey Hess <joey@kodama.kitenet.net>
Date: Wed, 2 Jul 2008 20:14:18 +0000 (-0400)
Subject: toggle: Add javascript to top of page, not to end. This avoids flicker since closed... 
X-Git-Tag: 2.52~14^2~2
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/edfbd7e1aa8f9f2cb789f45c0668a0d987e0b368

toggle: Add javascript to top of page, not to end. This avoids flicker since closed toggles will not be displayed as the page is loading.
---

diff --git a/IkiWiki/Plugin/toggle.pm b/IkiWiki/Plugin/toggle.pm
index f969d7686..284eb8249 100644
--- a/IkiWiki/Plugin/toggle.pm
+++ b/IkiWiki/Plugin/toggle.pm
@@ -108,9 +108,9 @@ sub format (@) { #{{{
 
 	if ($params{content}=~s!(<div class="toggleable(?:-open)?" id="[^"]+">)</div>!$1!g) {
 		$params{content}=~s/<div class="toggleableend">//g;
-		if (! ($params{content}=~s!^<\/body>!$javascript</body>!m)) {
+		if (! ($params{content}=~s!^<body>!<body>$javascript!m)) {
 			# no </body> tag, probably in preview mode
-			$params{content}.=$javascript;
+			$params{content}=$javascript.$params{content};
 		}
 	}
 	return $params{content};
diff --git a/debian/changelog b/debian/changelog
index 314415788..e6ffa17de 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,8 @@ ikiwiki (2.52) UNRELEASED; urgency=low
     uploads by default. (An anti-DOS measure.)
   * toggle: Add support for toggles that are open by default.
   * toggle: Fix to work in preview mode.
+  * toggle: Add javascript to top of page, not to end. This avoids flicker
+    since closed toggles will not be displayed as the page is loading.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 30 Jun 2008 19:56:28 -0400
 
diff --git a/templates/editpage.tmpl b/templates/editpage.tmpl
index 42d61c188..f8eda1b47 100644
--- a/templates/editpage.tmpl
+++ b/templates/editpage.tmpl
@@ -1,3 +1,4 @@
+<TMPL_VAR JAVASCRIPT>
 <TMPL_IF NAME="PAGE_CONFLICT">
 <p>
 <b>Your changes conflict with other changes made to the page.</b>
@@ -85,5 +86,3 @@ Optional comment about this change:<br />
 <TMPL_VAR PAGE_PREVIEW>
 </div>
 </TMPL_IF>
-
-<TMPL_VAR JAVASCRIPT>