Changes for page XWiki Migrations

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

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

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,7 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 3  {{html clean="false"}}
4 +
4 4   ## PAGE HEADER
5 5   <section class="hero hero-centered" aria-labelledby="hero-title">
6 6   <div class="container hero-inner">
... ... @@ -8,11 +8,14 @@
8 8   <i class="fa fa-exchange" aria-hidden="true"></i>
9 9   XWiki migration services
10 10   </div>
12 +
11 11   <h1 id="hero-title">Migrate knowledge into XWiki with structure and continuity</h1>
14 +
12 12   <p class="lead">
13 13   Move content from Confluence, SharePoint, MediaWiki, file-based documentation or legacy systems into XWiki
14 14   while preserving hierarchy, attachments, links, permissions and long-term maintainability.
15 15   </p>
19 +
16 16   <div class="hero-actions">
17 17   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>
18 18   <a class="btn btn-secondary" href="#migration-process">See the migration approach</a>
... ... @@ -19,15 +19,16 @@
19 19   </div>
20 20   </div>
21 21   </section>
26 +
22 22   ## WHY MIGRATION NEEDS CARE
23 23   #set ($migrationReasonItems = [{
24 24   'title': 'Preserve structure',
25 25   'icon': 'sitemap',
26 - 'content': 'Keep spaces, hierarchies, navigation and page relationships understandable after the move.',
31 + 'content': 'Keep spaces, hierarchies, navigation, page relationships and entry points understandable after the move.',
27 27   'items': [
28 28   'Space and page hierarchy mapping',
29 29   'Navigation and landing page planning',
30 - 'Related content and category structure'
35 + 'Search and findability considerations'
31 31   ]
32 32   },{
33 33   'title': 'Protect continuity',
... ... @@ -41,21 +41,24 @@
41 41   },{
42 42   'title': 'Improve maintainability',
43 43   'icon': 'database',
44 - 'content': 'Use the migration as an opportunity to clean up content, introduce metadata and prepare better structures.',
49 + 'content': 'Use the migration as an opportunity to clean up content, introduce metadata and redesign what should not be copied as-is.',
45 45   'items': [
46 46   'Templates and structured data',
47 47   'Metadata and tagging strategy',
48 - 'Content cleanup recommendations'
53 + 'Manual cleanup recommendations'
49 49   ]
50 50   }])
56 +
51 51   <section aria-labelledby="why-migration-title">
52 52   <div class="container">
53 53   <h2 id="why-migration-title">A migration is more than moving pages</h2>
60 +
54 54   <p class="section-intro">
55 55   Documentation platforms usually contain years of accumulated knowledge, links, attachments, permissions,
56 - templates and habits. A successful migration should preserve what matters while improving how the knowledge
57 - is organized and maintained in XWiki.
63 + templates, macros and habits. A successful migration should preserve what matters, reduce broken navigation
64 + and improve how the knowledge is organized and maintained in XWiki.
58 58   </p>
66 +
59 59   <div class="pathways">
60 60   #foreach ($entry in $migrationReasonItems)
61 61   <article class="pathway-card">
... ... @@ -65,7 +65,9 @@
65 65   </div>
66 66   <h3>$entry.title</h3>
67 67   </div>
76 +
68 68   <p>$entry.content</p>
78 +
69 69   <ul>
70 70   #foreach ($item in $entry.items)
71 71   <li>$item</li>
... ... @@ -76,6 +76,7 @@
76 76   </div>
77 77   </div>
78 78   </section>
89 +
79 79   ## MIGRATION SOURCES
80 80   #set ($migrationSourceItems = [{
81 81   'title': 'Confluence to XWiki',
... ... @@ -102,13 +102,17 @@
102 102   'icon': 'random',
103 103   'content': 'Consolidation of content from multiple sources into a more coherent XWiki knowledge platform.'
104 104   }])
116 +
105 105   <section class="services" aria-labelledby="migration-sources-title">
106 106   <div class="container">
107 107   <h2 id="migration-sources-title">Common migration sources</h2>
120 +
108 108   <p class="section-intro">
109 - Each source system has different export formats, content models and limitations. The migration approach
110 - depends on the quality of the source data, the expected XWiki structure and the amount of transformation needed.
122 + Each source system has different export formats, content models, permissions and limitations.
123 + The migration approach depends on the quality of the source data, the expected XWiki structure
124 + and the amount of conversion, cleanup or redesign needed.
111 111   </p>
126 +
112 112   <div class="services-grid">
113 113   #foreach ($entry in $migrationSourceItems)
114 114   <article class="service">
... ... @@ -115,6 +115,7 @@
115 115   <div class="service-icon" aria-hidden="true">
116 116   <i class="fa fa-$entry.icon"></i>
117 117   </div>
133 +
118 118   <div class="service-body">
119 119   <h4>$entry.title</h4>
120 120   <p>$entry.content</p>
... ... @@ -124,6 +124,7 @@
124 124   </div>
125 125   </div>
126 126   </section>
143 +
127 127   ## MIGRATION PROCESS
128 128   #set ($migrationProcessItems = [{
129 129   'title': 'Assess the source content',
... ... @@ -133,29 +133,33 @@
133 133   'content': 'Decide spaces, page hierarchy, templates, metadata, permissions, naming rules and navigation strategy.'
134 134   },{
135 135   'title': 'Run a sample migration',
136 - 'content': 'Migrate a representative subset of content to identify conversion issues and validate the approach.'
153 + 'content': 'Migrate a representative subset of content to identify formatting, macro, link, attachment and structure issues.'
137 137   },{
138 138   'title': 'Refine conversion and cleanup rules',
139 139   'content': 'Adjust mappings, formatting, link handling, attachments, macros, categories and content cleanup decisions.'
140 140   },{
141 141   'title': 'Execute and validate the migration',
142 - 'content': 'Run the migration, review key content areas, verify attachments and links, and document remaining follow-up work.'
159 + 'content': 'Run the migration, review key content areas, verify attachments, links, redirects and navigation, and document remaining follow-up work.'
143 143   }])
161 +
144 144   <section id="migration-process" class="split-section" aria-labelledby="process-title">
145 145   <div class="container">
146 146   <div class="split-grid">
147 147   <div class="split-copy">
148 148   <h2 id="process-title">A practical migration approach</h2>
167 +
149 149   <p>
150 150   A good migration starts with understanding how the source content is used today and how it should work
151 151   in XWiki after the move. The objective is not only to transfer data, but to create a usable knowledge
152 152   platform that people can navigate, search and maintain.
153 153   </p>
173 +
154 154   <p>
155 - Migrations are best handled iteratively: assess the source, run a sample migration, validate the result,
156 - adjust the transformation rules and then proceed with a controlled migration plan.
175 + Migrations are best handled iteratively: assess the source, run a sample migration, validate links,
176 + attachments, formatting and important spaces, adjust the conversion rules and then proceed with a controlled migration plan.
157 157   </p>
158 158   </div>
179 +
159 159   <ol class="process-list">
160 160   #foreach ($entry in $migrationProcessItems)
161 161   <li>
... ... @@ -167,6 +167,7 @@
167 167   </div>
168 168   </div>
169 169   </section>
191 +
170 170   ## WHAT CAN BE INCLUDED
171 171   #set ($migrationIncludedItems = [{
172 172   'title': 'Content conversion',
... ... @@ -181,17 +181,21 @@
181 181   'icon': 'lock',
182 182   'content': 'Review and mapping of access rights where the source system contains meaningful permission rules.'
183 183   },{
184 - 'title': 'Metadata strategy',
185 - 'icon': 'tags',
186 - 'content': 'Tags, categories, templates, XWiki classes or structured data to improve long-term maintainability.'
206 + 'title': 'Cleanup and validation',
207 + 'icon': 'check-square-o',
208 + 'content': 'Post-migration review of important spaces, broken links, attachments, formatting issues and content needing manual cleanup.'
187 187   }])
210 +
188 188   <section aria-labelledby="included-title">
189 189   <div class="container">
190 190   <h2 id="included-title">What can be included</h2>
214 +
191 191   <p class="section-intro">
192 - The exact migration scope depends on the source system and the quality of the exported content. A migration
193 - engagement can include both technical conversion and practical information architecture work.
216 + The exact migration scope depends on the source system and the quality of the exported content.
217 + A migration engagement can include technical conversion, information architecture, permission review,
218 + cleanup recommendations and post-migration validation.
194 194   </p>
220 +
195 195   <div class="widgets">
196 196   #foreach ($entry in $migrationIncludedItems)
197 197   <article class="widget">
... ... @@ -199,6 +199,7 @@
199 199   <i class="fa fa-$entry.icon"></i>
200 200   <h4>$entry.title</h4>
201 201   </div>
228 +
202 202   <p>$entry.content</p>
203 203   </article>
204 204   #end
... ... @@ -205,54 +205,7 @@
205 205   </div>
206 206   </div>
207 207   </section>
208 - ## IMPORTANT CONSIDERATIONS
209 - #set ($migrationConsiderationItems = [{
210 - 'title': 'Macros and special content',
211 - 'icon': 'code',
212 - 'content': 'Source-specific macros, embeds, widgets or dynamic content may require conversion, replacement or redesign.'
213 - },{
214 - 'title': 'Links and redirects',
215 - 'icon': 'link',
216 - 'content': 'Internal links, external references, old URLs and bookmarks should be reviewed to reduce broken navigation.'
217 - },{
218 - 'title': 'Search and findability',
219 - 'icon': 'search',
220 - 'content': 'Content organization, titles, metadata and navigation affect how easily users find migrated knowledge.'
221 - },{
222 - 'title': 'User adoption',
223 - 'icon': 'user',
224 - 'content': 'A technically successful migration still needs clear navigation, familiar entry points and user guidance.'
225 - },{
226 - 'title': 'Validation effort',
227 - 'icon': 'check-square-o',
228 - 'content': 'Important spaces and high-value content should be reviewed after migration to catch conversion issues.'
229 - },{
230 - 'title': 'Cutover planning',
231 - 'icon': 'clock-o',
232 - 'content': 'Timing, source freeze, final migration, redirects and communication should be planned before go-live.'
233 - }])
234 - <section class="services" aria-labelledby="considerations-title">
235 - <div class="container">
236 - <h2 id="considerations-title">Important migration considerations</h2>
237 - <p class="section-intro">
238 - Not every element from the source system maps perfectly to XWiki. The migration plan should distinguish
239 - between what can be converted automatically, what needs manual cleanup and what should be redesigned.
240 - </p>
241 - <div class="services-grid">
242 - #foreach ($entry in $migrationConsiderationItems)
243 - <article class="service">
244 - <div class="service-icon" aria-hidden="true">
245 - <i class="fa fa-$entry.icon"></i>
246 - </div>
247 - <div class="service-body">
248 - <h4>$entry.title</h4>
249 - <p>$entry.content</p>
250 - </div>
251 - </article>
252 - #end
253 - </div>
254 - </div>
255 - </section>
235 +
256 256   ## RELATED SERVICES
257 257   #set ($relatedMigrationServiceItems = [{
258 258   'title': 'XWiki Development & Integrations',
... ... @@ -265,12 +265,15 @@
265 265   'content': 'Ongoing technical care for production environments after the migration is completed.',
266 266   'linkLabel': 'View support services'
267 267   }])
248 +
268 268   <section class="resource-strip" aria-labelledby="related-title">
269 269   <div class="container">
270 270   <h2 id="related-title">Related XWiki services</h2>
252 +
271 271   <p class="section-intro">
272 - Migration work often connects with custom development, support and upgrade planning.
254 + Migration work often connects with custom development, support and long-term platform maintenance.
273 273   </p>
256 +
274 274   <div class="resource-grid">
275 275   #foreach ($entry in $relatedMigrationServiceItems)
276 276   <article class="resource-card">
... ... @@ -282,47 +282,22 @@
282 282   </div>
283 283   </div>
284 284   </section>
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>
268 +
314 314   ## CTA
315 315   <section class="cta-section" aria-labelledby="cta-title">
316 316   <div class="container">
317 317   <div class="cta-panel">
318 318   <h2 id="cta-title">Planning a migration to XWiki?</h2>
274 +
319 319   <p>
320 - Send a short description of the source system, approximate content volume, export options and the type of
321 - XWiki structure you want to achieve. A sample export or representative content area is often enough to start.
276 + Send a short description of the source system, approximate content volume, export options, expected timing
277 + and the type of XWiki structure you want to achieve. A sample export or representative content area is often enough to start.
322 322   </p>
279 +
323 323   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>
324 324   </div>
325 325   </div>
326 326   </section>
284 +
327 327  {{/html}}
328 328  {{/velocity}}