Wiki source code of XWiki Migrations

Version 9.1 by Agnease on 2026/05/25 12:59

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