Änderungen von Dokument Expand
Zuletzt geändert von Thorsten Seifert am 2026/03/05 08:39
Von Version 4.1
bearbeitet von xwikiadmin
am 2025/01/07 11:39
am 2025/01/07 11:39
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.25.4]
Auf Version 11.1
bearbeitet von Thorsten Seifert
am 2026/03/05 08:39
am 2026/03/05 08:39
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.30.1]
Zusammenfassung
-
Seiteneigenschaften (2 geändert, 0 hinzugefügt, 0 gelöscht)
-
Objekte (3 geändert, 1 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. xwikiadmin1 +XWiki.seifertt - Inhalt
-
... ... @@ -11,5 +11,5 @@ 11 11 = Example Usage = 12 12 13 13 {{expand expanded="false"}} 14 -Hello 👀14 +Hello 15 15 {{/expand}}
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -10,7 +10,7 @@ 10 10 11 11 .confluence-expand-macro .panel-title{ 12 12 padding: @panel-heading-padding; 13 - display: block;13 + display: flex; 14 14 } 15 15 16 16 .confluence-expand-macro .panel-body { ... ... @@ -23,6 +23,10 @@ 23 23 24 24 .confluence-expand-macro summary:hover { 25 25 cursor: pointer; 26 +} 27 + 28 +.panel-title:hover .title-text { 29 + cursor: pointer; 26 26 text-decoration: underline; 27 27 } 28 28
- XWiki.WikiMacroClass[0]
-
- Makrobeschreibung
-
... ... @@ -1,5 +1,0 @@ 1 -Add the Expand macro to your page to provide content in an expandable / collapsible section. 2 - 3 -This is one of Confluence's most popular macros. It's great for: visually reducing the amount of information on a page, breaking process information down into clickable steps, hiding background or obsolete information, while still keeping it on the page for future reference. 4 - 5 -The macro is collapsed by default, people need to click each one to expand it. There's no way to expand all macros on a page at once, however all Expand macros are automatically expanded when you print or export the page to PDF. - Makro-Code
-
... ... @@ -1,30 +1,84 @@ 1 1 {{velocity output="false"}} 2 -#macro (exec uteMacro)3 - #se t($discard=$xwiki.ssx.use('Confluence.Macros.Expand'))4 - #set ($opened = $xcontext.action == 'edit' || $xcontext.action == 'export' || $wikimacro.parameters.expanded)2 +#macro (exportMode $escapedTitle) 3 + ## Use a different structure when exporting to make sure that the pagedjs can properly parse the content. 4 + 5 5 {{html clean="false" wiki="true"}} 6 - <d etailsclass="confluence-expand-macro panel panel-default"#if ($opened)open#end>7 - < summary>6 + <div class = "panel panel-default confluence-expand-macro"> 7 + <div class> 8 8 <span class="panel-title"> 9 - <span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span> 10 - #set ($title = $wikimacro.parameters.title) 11 - #if ("$!title" == "") 12 - #set ($title = $services.promacroexpand.getAutoTitle($wikimacro.content, $xwiki.currentContentSyntaxId)) 13 - #if ("$!title" == "") 14 - #set ($title = $services.localization.render("rendering.macro.expand.defaultexpandtitle")) 15 - #end 16 - #end 17 - $services.rendering.escape($escapetool.xml($title), $xwiki.currentContentSyntaxId) 18 - </span> 19 - </summary> 9 + <span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span> 10 + <span class="title-text"> 11 + $escapedTitle 12 + </span> 13 + </span> 14 + </div> 20 20 <div class="panel-body"> 21 21 22 22 {{wikimacrocontent /}} 23 23 24 24 </div> 25 - </d etails>20 + </div> 26 26 {{/html}} 22 + 27 27 #end 24 + 25 +#macro (executeMacro) 26 + 27 + #set ($discard = $xwiki.ssx.use('Confluence.Macros.Expand')) 28 + #set ($discard = $xwiki.jsx.use('Confluence.Macros.Expand')) 29 + #set ($title = $wikimacro.parameters.title) 30 + #if ("$!title" == "") 31 + #set ($title = $services.promacroexpand.getAutoTitle($wikimacro.content, $xwiki.currentContentSyntaxId)) 32 + #end 33 + #if ("$!title" == "") 34 + #set ($title = $services.localization.render("rendering.macro.expand.defaultexpandtitle")) 35 + #end 36 + #set ($escapedTitle = $services.rendering.escape($escapetool.xml($title), $xwiki.currentContentSyntaxId)) 37 + #if ($xcontext.action == 'export') 38 + #exportMode($escapedTitle) 39 + #else 40 + ## To avoid an issue regarding {{wikimacroparameter}} and {{wikimacrocontent}} that fail to render when in 41 + ## edit mode while inside a HTML macro, we need to manually write the HTML by using XWiki syntax. This way, 42 + ## while the macro will always be expanded when in edit mode, the user will be able to modify the text inline. 43 + #set ($targetSyntaxId = $wikimacro.context.transformationContext.targetSyntax.type.id) 44 + #if ($targetSyntaxId == 'annotatedhtml' || $targetSyntaxId == 'annotatedxhtml' || $request.outputSyntax == 'annotatedhtml') 45 + (% class="confluence-expand-macro panel panel-default" %) 46 + ((( 47 + ((( 48 + (% class="panel-title" %) 49 + ((( 50 + (% class="glyphicon glyphicon-menu-down" aria-hidden="true" %) 51 + ((())) 52 + {{wikimacroparameter name='title' /}} 53 + ))) 54 + ))) 55 + (% class="panel-body" %) 56 + ((( 57 + {{wikimacrocontent /}} 58 + ))) 59 + ))) 60 + #else 61 + #set ($opened = $xcontext.action == 'edit'|| $wikimacro.parameters.expanded) 62 + {{html clean="false" wiki="true"}} 63 + <details class="confluence-expand-macro panel panel-default" #if ($opened)open#end> 64 + <summary> 65 + <span class="panel-title"> 66 + <span class="glyphicon glyphicon-menu-right" aria-hidden="true"></span> 67 + <span class="title-text"> 68 + $escapedTitle 69 + </span> 70 + </span> 71 + </summary> 72 + <div class="panel-body"> 73 + 74 + {{wikimacrocontent /}} 75 + 76 + </div> 77 + </details> 78 + {{/html}} 79 + #end 80 + #end 81 +#end 28 28 {{/velocity}} 29 29 30 30 {{velocity}} - Verfügbarkeit von Makroinhalten
-
... ... @@ -1,1 +1,1 @@ 1 - Optional1 +Mandatory
- XWiki.WikiMacroParameterClass[0]
-
- Parameter-Vorgabe
-
... ... @@ -1,0 +1,1 @@ 1 +Click here to expand... - Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -Defines the text that appears next to the expand/collapse icon.
- XWiki.JavaScriptExtension[0]
-
- Pufferstrategie
-
... ... @@ -1,0 +1,1 @@ 1 +long - Code
-
... ... @@ -1,0 +1,29 @@ 1 +// The current versions of Safari don't bundle the latest version of WebKit, and because of this it lacks 2 +// a feature from the HTML standard where the details tag automatically expands when the URL fragment 3 +// targets an element inside it. Here is the WebKit bug report: https://bugs.webkit.org/show_bug.cgi?id=228843, 4 +// and we should follow it so we know when the fix reaches Safari. I also opened 5 +// https://github.com/xwikisas/xwiki-pro-macros/issues/682 on our side to keep track of the issue and avoid forgetting it. 6 +require(['jquery'], function ($) { 7 + var isSafari = navigator.vendor && navigator.vendor.includes('Apple'); 8 + 9 + function handleFragment() { 10 + let hash = window.location.hash; 11 + if (!hash) return; 12 + 13 + let target = $(hash); 14 + if (target.length === 0) return; 15 + 16 + target.parents("details").each(function () { 17 + this.open = true; 18 + }); 19 + 20 + target[0].scrollIntoView({ behavior: "auto", block: "start" }); 21 + } 22 + if (isSafari) { 23 + console.log("Applying Safari fragment workaround"); 24 + // On initial load 25 + $(document).ready(handleFragment); 26 + // On fragment updates 27 + $(window).on("hashchange", handleFragment); 28 + } 29 +}); - Inhalt parsen
-
... ... @@ -1,0 +1,1 @@ 1 +Nein - Benutze diese Erweiterung
-
... ... @@ -1,0 +1,1 @@ 1 +currentPage