Changes for page XWiki Migrations

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

From version 8.3
edited by Agnease
on 2026/05/22 14:16
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
... ... @@ -3,7 +3,7 @@
3 3  {{html clean="false"}}
4 4  
5 5   ## PAGE HEADER
6 - <section class="hero hero-centered service-hero" aria-labelledby="hero-title">
6 + <section class="hero hero-centered" aria-labelledby="hero-title">
7 7   <div class="container hero-inner">
8 8   <div class="hero-kicker">
9 9   <i class="fa fa-exchange" aria-hidden="true"></i>
... ... @@ -25,6 +25,35 @@
25 25   </section>
26 26  
27 27   ## WHY MIGRATION NEEDS CARE
28 + #set ($migrationReasonItems = [{
29 + 'title': 'Preserve structure',
30 + 'icon': 'sitemap',
31 + 'content': 'Keep spaces, hierarchies, navigation, page relationships and entry points understandable after the move.',
32 + 'items': [
33 + 'Space and page hierarchy mapping',
34 + 'Navigation and landing page planning',
35 + 'Search and findability considerations'
36 + ]
37 + },{
38 + 'title': 'Protect continuity',
39 + 'icon': 'link',
40 + 'content': 'Reduce disruption by handling links, attachments, redirects, permissions and known content dependencies.',
41 + 'items': [
42 + 'Attachment and link preservation',
43 + 'Redirect and URL transition planning',
44 + 'Permission model review'
45 + ]
46 + },{
47 + 'title': 'Improve maintainability',
48 + 'icon': 'database',
49 + 'content': 'Use the migration as an opportunity to clean up content, introduce metadata and redesign what should not be copied as-is.',
50 + 'items': [
51 + 'Templates and structured data',
52 + 'Metadata and tagging strategy',
53 + 'Manual cleanup recommendations'
54 + ]
55 + }])
56 +
28 28   <section aria-labelledby="why-migration-title">
29 29   <div class="container">
30 30   <h2 id="why-migration-title">A migration is more than moving pages</h2>
... ... @@ -31,146 +31,105 @@
31 31  
32 32   <p class="section-intro">
33 33   Documentation platforms usually contain years of accumulated knowledge, links, attachments, permissions,
34 - templates and habits. A successful migration should preserve what matters while improving how the knowledge
35 - 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.
36 36   </p>
37 37  
38 38   <div class="pathways">
39 - <article class="pathway-card">
40 - <div class="pathway-icon">
41 - <i class="fa fa-sitemap" aria-hidden="true"></i>
42 - </div>
43 - <h3>Preserve structure</h3>
44 - <p>
45 - Keep spaces, hierarchies, navigation and page relationships understandable after the move.
46 - </p>
47 - <ul>
48 - <li>Space and page hierarchy mapping</li>
49 - <li>Navigation and landing page planning</li>
50 - <li>Related content and category structure</li>
51 - </ul>
52 - </article>
68 + #foreach ($entry in $migrationReasonItems)
69 + <article class="pathway-card">
70 + <div class="card-heading">
71 + <div class="pathway-icon">
72 + <i class="fa fa-$entry.icon" aria-hidden="true"></i>
73 + </div>
74 + <h3>$entry.title</h3>
75 + </div>
53 53  
54 - <article class="pathway-card">
55 - <div class="pathway-icon">
56 - <i class="fa fa-link" aria-hidden="true"></i>
57 - </div>
58 - <h3>Protect continuity</h3>
59 - <p>
60 - Reduce disruption by handling links, attachments, redirects, permissions and known content dependencies.
61 - </p>
62 - <ul>
63 - <li>Attachment and link preservation</li>
64 - <li>Redirect and URL transition planning</li>
65 - <li>Permission model review</li>
66 - </ul>
67 - </article>
77 + <p>$entry.content</p>
68 68  
69 - <article class="pathway-card">
70 - <div class="pathway-icon">
71 - <i class="fa fa-database" aria-hidden="true"></i>
72 - </div>
73 - <h3>Improve maintainability</h3>
74 - <p>
75 - Use the migration as an opportunity to clean up content, introduce metadata and prepare better structures.
76 - </p>
77 - <ul>
78 - <li>Templates and structured data</li>
79 - <li>Metadata and tagging strategy</li>
80 - <li>Content cleanup recommendations</li>
81 - </ul>
82 - </article>
79 + <ul>
80 + #foreach ($item in $entry.items)
81 + <li>$item</li>
82 + #end
83 + </ul>
84 + </article>
85 + #end
83 83   </div>
84 84   </div>
85 85   </section>
86 86  
87 87   ## MIGRATION SOURCES
91 + #set ($migrationSourceItems = [{
92 + 'title': 'Confluence to XWiki',
93 + 'icon': 'book',
94 + 'content': 'Migration of pages, spaces, attachments, links and content that may include macros or Confluence-specific formatting.'
95 + },{
96 + 'title': 'SharePoint to XWiki',
97 + 'icon': 'windows',
98 + 'content': 'Migration planning for document libraries, wiki-like content, intranet pages and knowledge structures.'
99 + },{
100 + 'title': 'MediaWiki to XWiki',
101 + 'icon': 'globe',
102 + 'content': 'Migration of wiki pages, links, categories, attachments and content that may require syntax or structure conversion.'
103 + },{
104 + 'title': 'Files and folders',
105 + 'icon': 'folder-open',
106 + 'content': 'Migration from file shares, exported documentation, PDFs, Word files or folder-based knowledge repositories.'
107 + },{
108 + 'title': 'Legacy knowledge systems',
109 + 'icon': 'archive',
110 + 'content': 'Extraction and restructuring of content from older internal tools, portals or custom documentation systems.'
111 + },{
112 + 'title': 'Mixed-source migrations',
113 + 'icon': 'random',
114 + 'content': 'Consolidation of content from multiple sources into a more coherent XWiki knowledge platform.'
115 + }])
116 +
88 88   <section class="services" aria-labelledby="migration-sources-title">
89 89   <div class="container">
90 90   <h2 id="migration-sources-title">Common migration sources</h2>
91 91  
92 92   <p class="section-intro">
93 - Each source system has different export formats, content models and limitations. The migration approach
94 - 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.
95 95   </p>
96 96  
97 97   <div class="services-grid">
98 - <article class="service">
99 - <div class="service-icon" aria-hidden="true">
100 - <i class="fa fa-book"></i>
101 - </div>
102 - <div class="service-body">
103 - <h4>Confluence to XWiki</h4>
104 - <p>
105 - Migration of pages, spaces, attachments, links and content that may include macros or Confluence-specific formatting.
106 - </p>
107 - </div>
108 - </article>
128 + #foreach ($entry in $migrationSourceItems)
129 + <article class="service">
130 + <div class="service-icon" aria-hidden="true">
131 + <i class="fa fa-$entry.icon"></i>
132 + </div>
109 109  
110 - <article class="service">
111 - <div class="service-icon" aria-hidden="true">
112 - <i class="fa fa-windows"></i>
113 - </div>
114 - <div class="service-body">
115 - <h4>SharePoint to XWiki</h4>
116 - <p>
117 - Migration planning for document libraries, wiki-like content, intranet pages and knowledge structures.
118 - </p>
119 - </div>
120 - </article>
121 -
122 - <article class="service">
123 - <div class="service-icon" aria-hidden="true">
124 - <i class="fa fa-globe"></i>
125 - </div>
126 - <div class="service-body">
127 - <h4>MediaWiki to XWiki</h4>
128 - <p>
129 - Migration of wiki pages, links, categories, attachments and content that may require syntax or structure conversion.
130 - </p>
131 - </div>
132 - </article>
133 -
134 - <article class="service">
135 - <div class="service-icon" aria-hidden="true">
136 - <i class="fa fa-folder-open"></i>
137 - </div>
138 - <div class="service-body">
139 - <h4>Files and folders</h4>
140 - <p>
141 - Migration from file shares, exported documentation, PDFs, Word files or folder-based knowledge repositories.
142 - </p>
143 - </div>
144 - </article>
145 -
146 - <article class="service">
147 - <div class="service-icon" aria-hidden="true">
148 - <i class="fa fa-archive"></i>
149 - </div>
150 - <div class="service-body">
151 - <h4>Legacy knowledge systems</h4>
152 - <p>
153 - Extraction and restructuring of content from older internal tools, portals or custom documentation systems.
154 - </p>
155 - </div>
156 - </article>
157 -
158 - <article class="service">
159 - <div class="service-icon" aria-hidden="true">
160 - <i class="fa fa-random"></i>
161 - </div>
162 - <div class="service-body">
163 - <h4>Mixed-source migrations</h4>
164 - <p>
165 - Consolidation of content from multiple sources into a more coherent XWiki knowledge platform.
166 - </p>
167 - </div>
168 - </article>
134 + <div class="service-body">
135 + <h4>$entry.title</h4>
136 + <p>$entry.content</p>
137 + </div>
138 + </article>
139 + #end
169 169   </div>
170 170   </div>
171 171   </section>
172 172  
173 173   ## MIGRATION PROCESS
145 + #set ($migrationProcessItems = [{
146 + 'title': 'Assess the source content',
147 + 'content': 'Review structure, volume, attachments, links, permissions, formatting, macros, metadata and export options.'
148 + },{
149 + 'title': 'Define the target XWiki structure',
150 + 'content': 'Decide spaces, page hierarchy, templates, metadata, permissions, naming rules and navigation strategy.'
151 + },{
152 + 'title': 'Run a sample migration',
153 + 'content': 'Migrate a representative subset of content to identify formatting, macro, link, attachment and structure issues.'
154 + },{
155 + 'title': 'Refine conversion and cleanup rules',
156 + 'content': 'Adjust mappings, formatting, link handling, attachments, macros, categories and content cleanup decisions.'
157 + },{
158 + 'title': 'Execute and validate the migration',
159 + 'content': 'Run the migration, review key content areas, verify attachments, links, redirects and navigation, and document remaining follow-up work.'
160 + }])
161 +
174 174   <section id="migration-process" class="split-section" aria-labelledby="process-title">
175 175   <div class="container">
176 176   <div class="split-grid">
... ... @@ -184,32 +184,18 @@
184 184   </p>
185 185  
186 186   <p>
187 - Migrations are best handled iteratively: assess the source, run a sample migration, validate the result,
188 - 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.
189 189   </p>
190 190   </div>
191 191  
192 192   <ol class="process-list">
193 - <li>
194 - <strong>Assess the source content</strong>
195 - Review structure, volume, attachments, links, permissions, formatting, macros, metadata and export options.
196 - </li>
197 - <li>
198 - <strong>Define the target XWiki structure</strong>
199 - Decide spaces, page hierarchy, templates, metadata, permissions, naming rules and navigation strategy.
200 - </li>
201 - <li>
202 - <strong>Run a sample migration</strong>
203 - Migrate a representative subset of content to identify conversion issues and validate the approach.
204 - </li>
205 - <li>
206 - <strong>Refine conversion and cleanup rules</strong>
207 - Adjust mappings, formatting, link handling, attachments, macros, categories and content cleanup decisions.
208 - </li>
209 - <li>
210 - <strong>Execute and validate the migration</strong>
211 - Run the migration, review key content areas, verify attachments and links, and document remaining follow-up work.
212 - </li>
181 + #foreach ($entry in $migrationProcessItems)
182 + <li>
183 + <strong>$entry.title</strong>
184 + $entry.content
185 + </li>
186 + #end
213 213   </ol>
214 214   </div>
215 215   </div>
... ... @@ -216,170 +216,78 @@
216 216   </section>
217 217  
218 218   ## WHAT CAN BE INCLUDED
193 + #set ($migrationIncludedItems = [{
194 + 'title': 'Content conversion',
195 + 'icon': 'file-text-o',
196 + 'content': 'Page content, syntax, formatting, links, images, attachments and other reusable knowledge assets.'
197 + },{
198 + 'title': 'Structure mapping',
199 + 'icon': 'sitemap',
200 + 'content': 'Spaces, page hierarchy, navigation, naming rules, landing pages and organization of knowledge areas.'
201 + },{
202 + 'title': 'Permissions review',
203 + 'icon': 'lock',
204 + 'content': 'Review and mapping of access rights where the source system contains meaningful permission rules.'
205 + },{
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.'
209 + }])
210 +
219 219   <section aria-labelledby="included-title">
220 220   <div class="container">
221 221   <h2 id="included-title">What can be included</h2>
222 222  
223 223   <p class="section-intro">
224 - The exact migration scope depends on the source system and the quality of the exported content. A migration
225 - 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.
226 226   </p>
227 227  
228 228   <div class="widgets">
229 - <article class="widget">
230 - <div class="icon" aria-hidden="true">
231 - <i class="fa fa-file-text-o"></i>
232 - <h4>Content<br />conversion</h4>
233 - </div>
234 - <p>
235 - Page content, syntax, formatting, links, images, attachments and other reusable knowledge assets.
236 - </p>
237 - </article>
222 + #foreach ($entry in $migrationIncludedItems)
223 + <article class="widget">
224 + <div class="icon" aria-hidden="true">
225 + <i class="fa fa-$entry.icon"></i>
226 + <h4>$entry.title</h4>
227 + </div>
238 238  
239 - <article class="widget">
240 - <div class="icon" aria-hidden="true">
241 - <i class="fa fa-sitemap"></i>
242 - <h4>Structure<br />mapping</h4>
243 - </div>
244 - <p>
245 - Spaces, page hierarchy, navigation, naming rules, landing pages and organization of knowledge areas.
246 - </p>
247 - </article>
248 -
249 - <article class="widget">
250 - <div class="icon" aria-hidden="true">
251 - <i class="fa fa-lock"></i>
252 - <h4>Permissions<br />review</h4>
253 - </div>
254 - <p>
255 - Review and mapping of access rights where the source system contains meaningful permission rules.
256 - </p>
257 - </article>
258 -
259 - <article class="widget">
260 - <div class="icon" aria-hidden="true">
261 - <i class="fa fa-tags"></i>
262 - <h4>Metadata<br />strategy</h4>
263 - </div>
264 - <p>
265 - Tags, categories, templates, XWiki classes or structured data to improve long-term maintainability.
266 - </p>
267 - </article>
229 + <p>$entry.content</p>
230 + </article>
231 + #end
268 268   </div>
269 269   </div>
270 270   </section>
271 271  
272 - ## IMPORTANT CONSIDERATIONS
273 - <section class="services" aria-labelledby="considerations-title">
274 - <div class="container">
275 - <h2 id="considerations-title">Important migration considerations</h2>
276 -
277 - <p class="section-intro">
278 - Not every element from the source system maps perfectly to XWiki. The migration plan should distinguish
279 - between what can be converted automatically, what needs manual cleanup and what should be redesigned.
280 - </p>
281 -
282 - <div class="services-grid">
283 - <article class="service">
284 - <div class="service-icon" aria-hidden="true">
285 - <i class="fa fa-code"></i>
286 - </div>
287 - <div class="service-body">
288 - <h4>Macros and special content</h4>
289 - <p>
290 - Source-specific macros, embeds, widgets or dynamic content may require conversion, replacement or redesign.
291 - </p>
292 - </div>
293 - </article>
294 -
295 - <article class="service">
296 - <div class="service-icon" aria-hidden="true">
297 - <i class="fa fa-link"></i>
298 - </div>
299 - <div class="service-body">
300 - <h4>Links and redirects</h4>
301 - <p>
302 - Internal links, external references, old URLs and bookmarks should be reviewed to reduce broken navigation.
303 - </p>
304 - </div>
305 - </article>
306 -
307 - <article class="service">
308 - <div class="service-icon" aria-hidden="true">
309 - <i class="fa fa-search"></i>
310 - </div>
311 - <div class="service-body">
312 - <h4>Search and findability</h4>
313 - <p>
314 - Content organization, titles, metadata and navigation affect how easily users find migrated knowledge.
315 - </p>
316 - </div>
317 - </article>
318 -
319 - <article class="service">
320 - <div class="service-icon" aria-hidden="true">
321 - <i class="fa fa-user"></i>
322 - </div>
323 - <div class="service-body">
324 - <h4>User adoption</h4>
325 - <p>
326 - A technically successful migration still needs clear navigation, familiar entry points and user guidance.
327 - </p>
328 - </div>
329 - </article>
330 -
331 - <article class="service">
332 - <div class="service-icon" aria-hidden="true">
333 - <i class="fa fa-check-square-o"></i>
334 - </div>
335 - <div class="service-body">
336 - <h4>Validation effort</h4>
337 - <p>
338 - Important spaces and high-value content should be reviewed after migration to catch conversion issues.
339 - </p>
340 - </div>
341 - </article>
342 -
343 - <article class="service">
344 - <div class="service-icon" aria-hidden="true">
345 - <i class="fa fa-clock-o"></i>
346 - </div>
347 - <div class="service-body">
348 - <h4>Cutover planning</h4>
349 - <p>
350 - Timing, source freeze, final migration, redirects and communication should be planned before go-live.
351 - </p>
352 - </div>
353 - </article>
354 - </div>
355 - </div>
356 - </section>
357 -
358 358   ## RELATED SERVICES
237 + #set ($relatedMigrationServiceItems = [{
238 + 'title': 'XWiki Development & Integrations',
239 + 'url': 'services.xwiki-development-integrations',
240 + 'content': 'Custom applications, workflows, dashboards, integrations and structured knowledge solutions built on top of XWiki.',
241 + 'linkLabel': 'View development services'
242 + },{
243 + 'title': 'XWiki Support & Maintenance',
244 + 'url': 'services.xwiki-maintenance-support',
245 + 'content': 'Ongoing technical care for production environments after the migration is completed.',
246 + 'linkLabel': 'View support services'
247 + }])
248 +
359 359   <section class="resource-strip" aria-labelledby="related-title">
360 360   <div class="container">
361 361   <h2 id="related-title">Related XWiki services</h2>
362 362  
363 363   <p class="section-intro">
364 - 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.
365 365   </p>
366 366  
367 367   <div class="resource-grid">
368 - <article class="resource-card">
369 - <h4>XWiki Development &amp; Integrations</h4>
370 - <p>
371 - Custom applications, workflows, dashboards, integrations and structured knowledge solutions built on top of XWiki.
372 - </p>
373 - <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
374 - </article>
375 -
376 - <article class="resource-card">
377 - <h4>XWiki Support &amp; Maintenance</h4>
378 - <p>
379 - Ongoing technical care for production environments after the migration is completed.
380 - </p>
381 - <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
382 - </article>
258 + #foreach ($entry in $relatedMigrationServiceItems)
259 + <article class="resource-card">
260 + <h4>$entry.title</h4>
261 + <p>$entry.content</p>
262 + <a href="$xwiki.getURL($entry.url)">$entry.linkLabel</a>
263 + </article>
264 + #end
383 383   </div>
384 384   </div>
385 385   </section>
... ... @@ -391,8 +391,8 @@
391 391   <h2 id="cta-title">Planning a migration to XWiki?</h2>
392 392  
393 393   <p>
394 - Send a short description of the source system, approximate content volume, export options and the type of
395 - 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.
396 396   </p>
397 397  
398 398   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a migration</a>