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