Changes for page XWiki Migrations

Last modified by Agnease on 2026/05/25 16:46

From version 9.1
edited by Agnease
on 2026/05/25 12:59
Change comment: There is no comment for this version
To version 10.1
edited by Agnease
on 2026/05/25 16:40
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,7 +1,6 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 3  {{html clean="false"}}
4 -
5 5   ## PAGE HEADER
6 6   <section class="hero hero-centered" aria-labelledby="hero-title">
7 7   <div class="container hero-inner">
... ... @@ -9,14 +9,11 @@
9 9   <i class="fa fa-exchange" aria-hidden="true"></i>
10 10   XWiki migration services
11 11   </div>
12 -
13 13   <h1 id="hero-title">Migrate knowledge into XWiki with structure and continuity</h1>
14 -
15 15   <p class="lead">
16 16   Move content from Confluence, SharePoint, MediaWiki, file-based documentation or legacy systems into XWiki
17 17   while preserving hierarchy, attachments, links, permissions and long-term maintainability.
18 18   </p>
19 -
20 20   <div class="hero-actions">
21 21   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>
22 22   <a class="btn btn-secondary" href="#migration-process">See the migration approach</a>
... ... @@ -23,7 +23,6 @@
23 23   </div>
24 24   </div>
25 25   </section>
26 -
27 27   ## WHY MIGRATION NEEDS CARE
28 28   #set ($migrationReasonItems = [{
29 29   'title': 'Preserve structure',
... ... @@ -53,17 +53,14 @@
53 53   'Content cleanup recommendations'
54 54   ]
55 55   }])
56 -
57 57   <section aria-labelledby="why-migration-title">
58 58   <div class="container">
59 59   <h2 id="why-migration-title">A migration is more than moving pages</h2>
60 -
61 61   <p class="section-intro">
62 62   Documentation platforms usually contain years of accumulated knowledge, links, attachments, permissions,
63 63   templates and habits. A successful migration should preserve what matters while improving how the knowledge
64 64   is organized and maintained in XWiki.
65 65   </p>
66 -
67 67   <div class="pathways">
68 68   #foreach ($entry in $migrationReasonItems)
69 69   <article class="pathway-card">
... ... @@ -73,9 +73,7 @@
73 73   </div>
74 74   <h3>$entry.title</h3>
75 75   </div>
76 -
77 77   <p>$entry.content</p>
78 -
79 79   <ul>
80 80   #foreach ($item in $entry.items)
81 81   <li>$item</li>
... ... @@ -86,7 +86,6 @@
86 86   </div>
87 87   </div>
88 88   </section>
89 -
90 90   ## MIGRATION SOURCES
91 91   #set ($migrationSourceItems = [{
92 92   'title': 'Confluence to XWiki',
... ... @@ -113,16 +113,13 @@
113 113   'icon': 'random',
114 114   'content': 'Consolidation of content from multiple sources into a more coherent XWiki knowledge platform.'
115 115   }])
116 -
117 117   <section class="services" aria-labelledby="migration-sources-title">
118 118   <div class="container">
119 119   <h2 id="migration-sources-title">Common migration sources</h2>
120 -
121 121   <p class="section-intro">
122 122   Each source system has different export formats, content models and limitations. The migration approach
123 123   depends on the quality of the source data, the expected XWiki structure and the amount of transformation needed.
124 124   </p>
125 -
126 126   <div class="services-grid">
127 127   #foreach ($entry in $migrationSourceItems)
128 128   <article class="service">
... ... @@ -129,7 +129,6 @@
129 129   <div class="service-icon" aria-hidden="true">
130 130   <i class="fa fa-$entry.icon"></i>
131 131   </div>
132 -
133 133   <div class="service-body">
134 134   <h4>$entry.title</h4>
135 135   <p>$entry.content</p>
... ... @@ -139,7 +139,6 @@
139 139   </div>
140 140   </div>
141 141   </section>
142 -
143 143   ## MIGRATION PROCESS
144 144   #set ($migrationProcessItems = [{
145 145   'title': 'Assess the source content',
... ... @@ -157,25 +157,21 @@
157 157   'title': 'Execute and validate the migration',
158 158   'content': 'Run the migration, review key content areas, verify attachments and links, and document remaining follow-up work.'
159 159   }])
160 -
161 161   <section id="migration-process" class="split-section" aria-labelledby="process-title">
162 162   <div class="container">
163 163   <div class="split-grid">
164 164   <div class="split-copy">
165 165   <h2 id="process-title">A practical migration approach</h2>
166 -
167 167   <p>
168 168   A good migration starts with understanding how the source content is used today and how it should work
169 169   in XWiki after the move. The objective is not only to transfer data, but to create a usable knowledge
170 170   platform that people can navigate, search and maintain.
171 171   </p>
172 -
173 173   <p>
174 174   Migrations are best handled iteratively: assess the source, run a sample migration, validate the result,
175 175   adjust the transformation rules and then proceed with a controlled migration plan.
176 176   </p>
177 177   </div>
178 -
179 179   <ol class="process-list">
180 180   #foreach ($entry in $migrationProcessItems)
181 181   <li>
... ... @@ -187,7 +187,6 @@
187 187   </div>
188 188   </div>
189 189   </section>
190 -
191 191   ## WHAT CAN BE INCLUDED
192 192   #set ($migrationIncludedItems = [{
193 193   'title': 'Content conversion',
... ... @@ -206,16 +206,13 @@
206 206   'icon': 'tags',
207 207   'content': 'Tags, categories, templates, XWiki classes or structured data to improve long-term maintainability.'
208 208   }])
209 -
210 210   <section aria-labelledby="included-title">
211 211   <div class="container">
212 212   <h2 id="included-title">What can be included</h2>
213 -
214 214   <p class="section-intro">
215 215   The exact migration scope depends on the source system and the quality of the exported content. A migration
216 216   engagement can include both technical conversion and practical information architecture work.
217 217   </p>
218 -
219 219   <div class="widgets">
220 220   #foreach ($entry in $migrationIncludedItems)
221 221   <article class="widget">
... ... @@ -223,7 +223,6 @@
223 223   <i class="fa fa-$entry.icon"></i>
224 224   <h4>$entry.title</h4>
225 225   </div>
226 -
227 227   <p>$entry.content</p>
228 228   </article>
229 229   #end
... ... @@ -230,7 +230,6 @@
230 230   </div>
231 231   </div>
232 232   </section>
233 -
234 234   ## IMPORTANT CONSIDERATIONS
235 235   #set ($migrationConsiderationItems = [{
236 236   'title': 'Macros and special content',
... ... @@ -257,16 +257,13 @@
257 257   'icon': 'clock-o',
258 258   'content': 'Timing, source freeze, final migration, redirects and communication should be planned before go-live.'
259 259   }])
260 -
261 261   <section class="services" aria-labelledby="considerations-title">
262 262   <div class="container">
263 263   <h2 id="considerations-title">Important migration considerations</h2>
264 -
265 265   <p class="section-intro">
266 266   Not every element from the source system maps perfectly to XWiki. The migration plan should distinguish
267 267   between what can be converted automatically, what needs manual cleanup and what should be redesigned.
268 268   </p>
269 -
270 270   <div class="services-grid">
271 271   #foreach ($entry in $migrationConsiderationItems)
272 272   <article class="service">
... ... @@ -273,7 +273,6 @@
273 273   <div class="service-icon" aria-hidden="true">
274 274   <i class="fa fa-$entry.icon"></i>
275 275   </div>
276 -
277 277   <div class="service-body">
278 278   <h4>$entry.title</h4>
279 279   <p>$entry.content</p>
... ... @@ -283,7 +283,6 @@
283 283   </div>
284 284   </div>
285 285   </section>
286 -
287 287   ## RELATED SERVICES
288 288   #set ($relatedMigrationServiceItems = [{
289 289   'title': 'XWiki Development & Integrations',
... ... @@ -296,15 +296,12 @@
296 296   'content': 'Ongoing technical care for production environments after the migration is completed.',
297 297   'linkLabel': 'View support services'
298 298   }])
299 -
300 300   <section class="resource-strip" aria-labelledby="related-title">
301 301   <div class="container">
302 302   <h2 id="related-title">Related XWiki services</h2>
303 -
304 304   <p class="section-intro">
305 305   Migration work often connects with custom development, support and upgrade planning.
306 306   </p>
307 -
308 308   <div class="resource-grid">
309 309   #foreach ($entry in $relatedMigrationServiceItems)
310 310   <article class="resource-card">
... ... @@ -316,22 +316,47 @@
316 316   </div>
317 317   </div>
318 318   </section>
319 -
285 + ## RELATED SERVICES
286 + #set ($relatedUpgradeServiceItems = [{
287 + 'title': 'XWiki Support & Maintenance',
288 + 'url': 'services.xwiki-maintenance-support',
289 + 'content': 'Ongoing technical care for production XWiki environments, including troubleshooting, maintenance planning and upgrade readiness.',
290 + 'linkLabel': 'View support services'
291 + },{
292 + 'title': 'XWiki Security Review',
293 + 'url': 'services.xwiki-security-review',
294 + 'content': 'Security-aware review of XWiki versions, extensions, permissions, authentication and upgrade exposure.',
295 + 'linkLabel': 'View security review'
296 + }])
297 + <section class="resource-strip" aria-labelledby="related-title">
298 + <div class="container">
299 + <h2 id="related-title">Related XWiki services</h2>
300 + <p class="section-intro">
301 + Upgrade work often connects with long-term maintenance, security review and production platform stability.
302 + </p>
303 + <div class="resource-grid">
304 + #foreach ($entry in $relatedUpgradeServiceItems)
305 + <article class="resource-card">
306 + <h4>$entry.title</h4>
307 + <p>$entry.content</p>
308 + <a href="$xwiki.getURL($entry.url)">$entry.linkLabel</a>
309 + </article>
310 + #end
311 + </div>
312 + </div>
313 + </section>
320 320   ## CTA
321 321   <section class="cta-section" aria-labelledby="cta-title">
322 322   <div class="container">
323 323   <div class="cta-panel">
324 324   <h2 id="cta-title">Planning a migration to XWiki?</h2>
325 -
326 326   <p>
327 327   Send a short description of the source system, approximate content volume, export options and the type of
328 328   XWiki structure you want to achieve. A sample export or representative content area is often enough to start.
329 329   </p>
330 -
331 331   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>
332 332   </div>
333 333   </div>
334 334   </section>
335 -
336 336  {{/html}}
337 337  {{/velocity}}