Changes for page Public Web Site

Last modified by Agnease on 2026/05/30 16:24

From version 6.29
edited by Agnease
on 2026/05/12 12:18
Change comment: There is no comment for this version
To version 7.11
edited by Agnease
on 2026/05/12 14:48
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -7,7 +7,7 @@
7 7   <div class="container hero-inner">
8 8   <div class="hero-kicker">
9 9   <i class="fa fa-shield" aria-hidden="true"></i>
10 - XWiki consulting, upgrades and long-term support
10 + Your trusted partner for professional XWiki services
11 11   </div>
12 12  
13 13   <h1 id="hero-title">Reliable XWiki engineering for organizations that depend on their knowledge platform</h1>
... ... @@ -70,7 +70,7 @@
70 70   <li>Production rollout validation</li>
71 71   </ul>
72 72   <p class="card-link">
73 - <a href="/services/xwiki-upgrades">View upgrade services</a>
73 + <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
74 74   </p>
75 75   </article>
76 76  
... ... @@ -88,7 +88,7 @@
88 88   <li>Security-aware maintenance</li>
89 89   </ul>
90 90   <p class="card-link">
91 - <a href="/services/xwiki-maintenance-support">View support services</a>
91 + <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
92 92   </p>
93 93   </article>
94 94  
... ... @@ -106,7 +106,7 @@
106 106   <li>SSO, LDAP, APIs and integrations</li>
107 107   </ul>
108 108   <p class="card-link">
109 - <a href="/services/xwiki-development-integrations">View development services</a>
109 + <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
110 110   </p>
111 111   </article>
112 112   </div>
... ... @@ -159,7 +159,7 @@
159 159   <p>
160 160   A business-focused explanation of why regular LTS upgrades reduce security, compatibility and maintenance risk.
161 161   </p>
162 - <a href="/resources/why-upgrade-xwiki">Read the resource</a>
162 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the resource</a>
163 163   </article>
164 164  
165 165   <article class="resource-card">
... ... @@ -167,7 +167,7 @@
167 167   <p>
168 168   How Agnease approaches safe XWiki upgrades for real production environments with customizations and integrations.
169 169   </p>
170 - <a href="/services/xwiki-upgrades">View the service</a>
170 + <a href="$xwiki.getURL('services.xwiki-upgrades')">View the service</a>
171 171   </article>
172 172   </div>
173 173   </div>
... ... @@ -231,5 +231,4 @@
231 231   </dl>
232 232   </div>
233 233  #end
234 -#displayPublicContent
235 235  {{/velocity}}
XWiki.StyleSheetExtension[1]
cache
... ... @@ -1,0 +1,1 @@
1 +long
code
... ... @@ -1,0 +1,129 @@
1 +/* ========== Agnease Public Top Menu ========== */
2 +
3 +@brand: #00937D;
4 +@brand-strong: #007B6A;
5 +@text: #2D3A34;
6 +@muted: #5B6B64;
7 +@line: #E4ECE9;
8 +@brand-bg: #F4FCFA;
9 +
10 +.agnease-services-menu {
11 + .dropdown-toggle {
12 + font-weight: inherit;
13 + font-size: inherit;
14 + }
15 +
16 + &.open > .dropdown-toggle,
17 + .dropdown-toggle:hover,
18 + .dropdown-toggle:focus {
19 + color: @brand;
20 + background: transparent;
21 + }
22 +
23 + .caret {
24 + margin-left: 4px;
25 + }
26 +}
27 +
28 +.agnease-services-dropdown {
29 + min-width: 360px;
30 + padding: 10px;
31 + border: 1px solid @line;
32 + border-radius: 12px;
33 + box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
34 +
35 + > li > a {
36 + display: flex;
37 + align-items: flex-start;
38 + gap: 12px;
39 + padding: 10px 12px;
40 + border-radius: 10px;
41 + color: @text;
42 + white-space: normal;
43 +
44 + &:hover,
45 + &:focus {
46 + color: @brand-strong;
47 + background: @brand-bg;
48 + text-decoration: none;
49 +
50 + .menu-icon {
51 + color: @brand-strong;
52 + background: fade(@brand, 14%);
53 + border-color: fade(@brand, 28%);
54 + }
55 +
56 + strong {
57 + color: @brand-strong;
58 + }
59 +
60 + small {
61 + color: @muted;
62 + }
63 + }
64 + }
65 +
66 + .divider {
67 + margin: 8px 0;
68 + background-color: @line;
69 + }
70 +
71 + .menu-icon {
72 + width: 34px;
73 + height: 34px;
74 + border-radius: 50%;
75 + background: fade(@brand, 8%);
76 + border: 1px solid fade(@brand, 18%);
77 + color: @brand;
78 + display: flex;
79 + align-items: center;
80 + justify-content: center;
81 + flex-shrink: 0;
82 + transition: color .15s ease, background .15s ease, border-color .15s ease;
83 + }
84 +
85 + .menu-text {
86 + display: flex;
87 + flex-direction: column;
88 + line-height: 1.25;
89 +
90 + strong {
91 + color: @brand;
92 + font-size: 14px;
93 + font-weight: 600;
94 + }
95 +
96 + small {
97 + color: @muted;
98 + font-size: 12px;
99 + margin-top: 2px;
100 + font-weight: 400;
101 + }
102 + }
103 +}
104 +
105 +@media (max-width: 767px) {
106 + .agnease-services-dropdown {
107 + min-width: 0;
108 + width: 100%;
109 + padding: 6px;
110 + border-radius: 0;
111 + box-shadow: none;
112 +
113 + > li > a {
114 + padding: 10px;
115 + }
116 + }
117 +}
118 +/* Keep the top-level Services menu visually clean when hovered/open/focused */
119 +.navbar-nav > li.agnease-services-menu > a,
120 +.navbar-nav > li.agnease-services-menu > a:hover,
121 +.navbar-nav > li.agnease-services-menu > a:focus,
122 +.navbar-nav > li.agnease-services-menu.open > a,
123 +.navbar-nav > li.agnease-services-menu.open > a:hover,
124 +.navbar-nav > li.agnease-services-menu.open > a:focus {
125 + background: transparent;
126 + background-color: transparent;
127 + color: @brand-strong;
128 + box-shadow: none;
129 +}
contentType
... ... @@ -1,0 +1,1 @@
1 +LESS
name
... ... @@ -1,0 +1,1 @@
1 +Menu
use
... ... @@ -1,0 +1,1 @@
1 +onDemand
XWiki.StyleSheetExtension[2]
cache
... ... @@ -1,0 +1,1 @@
1 +long
code
... ... @@ -1,0 +1,174 @@
1 +/* ========== Resource / Article Pages ========== */
2 +
3 +.resource-page {
4 + padding-top: 34px;
5 +}
6 +
7 +.resource-header {
8 + padding: 40px 0 30px;
9 + border-top: none;
10 + background:
11 + radial-gradient(42rem 14rem at 50% 0%, @brand-bg 0%, transparent 70%);
12 +
13 + .resource-kicker {
14 + display: inline-flex;
15 + align-items: center;
16 + gap: 8px;
17 + color: @brand;
18 + background: fade(@brand, 8%);
19 + border: 1px solid fade(@brand, 18%);
20 + border-radius: 999px;
21 + padding: 6px 12px;
22 + margin-bottom: 14px;
23 + font-size: 13px;
24 + font-weight: 700;
25 + }
26 +
27 + h1 {
28 + max-width: 820px;
29 + margin: 0 auto 14px;
30 + text-align: center;
31 + line-height: 1.18;
32 + }
33 +
34 + .resource-summary {
35 + max-width: 780px;
36 + margin: 0 auto;
37 + color: @muted;
38 + text-align: center;
39 + font-size: 18px;
40 + line-height: 1.55;
41 + }
42 +}
43 +
44 +.resource-layout {
45 + display: grid;
46 + grid-template-columns: minmax(0, 760px) 280px;
47 + gap: 42px;
48 + max-width: 1080px;
49 + margin: 0 auto;
50 + align-items: start;
51 +}
52 +
53 +.resource-content {
54 + color: @text;
55 + font-size: 16px;
56 + line-height: 1.68;
57 +
58 + h2 {
59 + text-align: left;
60 + margin: 34px 0 12px;
61 + line-height: 1.28;
62 + }
63 +
64 + h3 {
65 + margin: 24px 0 8px;
66 + line-height: 1.3;
67 + }
68 +
69 + p {
70 + margin: 0 0 16px;
71 + }
72 +
73 + ul,
74 + ol {
75 + margin: 0 0 18px;
76 + padding-left: 22px;
77 + }
78 +
79 + li {
80 + margin: 6px 0;
81 + }
82 +
83 + strong {
84 + color: @text;
85 + }
86 +}
87 +
88 +.resource-note {
89 + border-left: 4px solid @brand;
90 + background: @brand-bg;
91 + padding: 16px 18px;
92 + margin: 22px 0;
93 + border-radius: 0 @radius @radius 0;
94 +
95 + p:last-child {
96 + margin-bottom: 0;
97 + }
98 +}
99 +
100 +.resource-checklist {
101 + margin: 18px 0 24px;
102 + padding: 0;
103 + list-style: none;
104 +
105 + li {
106 + position: relative;
107 + padding: 10px 0 10px 34px;
108 + border-bottom: 1px solid @line;
109 +
110 + &:before {
111 + content: "\f00c";
112 + font-family: FontAwesome;
113 + position: absolute;
114 + left: 0;
115 + top: 11px;
116 + color: @brand;
117 + }
118 + }
119 +}
120 +
121 +.resource-sidebar {
122 + position: sticky;
123 + top: 96px;
124 + border: 1px solid @line;
125 + border-radius: @radius;
126 + padding: 18px;
127 + background: #fff;
128 + box-shadow: @shadow-sm;
129 +
130 + h4 {
131 + margin: 0 0 10px;
132 + }
133 +
134 + ul {
135 + margin: 0;
136 + padding-left: 18px;
137 + color: @muted;
138 + }
139 +
140 + li {
141 + margin: 8px 0;
142 + }
143 +
144 + a {
145 + color: @brand;
146 + font-weight: 600;
147 + }
148 +}
149 +
150 +.resource-cta {
151 + margin-top: 36px;
152 + padding: 22px;
153 + border: 1px solid fade(@brand, 20%);
154 + border-radius: @radius;
155 + background: @brand-bg;
156 +
157 + h3 {
158 + margin-top: 0;
159 + }
160 +
161 + p {
162 + color: @muted;
163 + }
164 +}
165 +
166 +@media (max-width: 900px) {
167 + .resource-layout {
168 + grid-template-columns: 1fr;
169 + }
170 +
171 + .resource-sidebar {
172 + position: static;
173 + }
174 +}
contentType
... ... @@ -1,0 +1,1 @@
1 +LESS
name
... ... @@ -1,0 +1,1 @@
1 +resources
use
... ... @@ -1,0 +1,1 @@
1 +onDemand