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> ... ... @@ -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 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 + 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> ... ... @@ -36,55 +36,55 @@ 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> ... ... @@ -95,82 +95,40 @@ 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> 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> 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> 133 + <div class="service-body"> 134 + <h4>$entry.title</h4> 135 + <p>$entry.content</p> 136 + </div> 137 + </article> 138 + #end 169 169 </div> 170 170 </div> 171 171 </section> 172 172 173 173 ## 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 + 174 174 <section id="migration-process" class="split-section" aria-labelledby="process-title"> 175 175 <div class="container"> 176 176 <div class="split-grid"> ... ... @@ -190,26 +190,12 @@ 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> 180 + #foreach ($entry in $migrationProcessItems) 181 + <li> 182 + <strong>$entry.title</strong> 183 + $entry.content 184 + </li> 185 + #end 213 213 </ol> 214 214 </div> 215 215 </div> ... ... @@ -216,6 +216,24 @@ 216 216 </section> 217 217 218 218 ## 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 + 219 219 <section aria-labelledby="included-title"> 220 220 <div class="container"> 221 221 <h2 id="included-title">What can be included</h2> ... ... @@ -226,50 +226,47 @@ 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> 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> 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> 227 + <p>$entry.content</p> 228 + </article> 229 + #end 268 268 </div> 269 269 </div> 270 270 </section> 271 271 272 272 ## 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 + 273 273 <section class="services" aria-labelledby="considerations-title"> 274 274 <div class="container"> 275 275 <h2 id="considerations-title">Important migration considerations</h2> ... ... @@ -280,82 +280,35 @@ 280 280 </p> 281 281 282 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> 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> 294 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> 277 + <div class="service-body"> 278 + <h4>$entry.title</h4> 279 + <p>$entry.content</p> 280 + </div> 281 + </article> 282 + #end 354 354 </div> 355 355 </div> 356 356 </section> 357 357 358 358 ## 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 + 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> ... ... @@ -365,21 +365,13 @@ 365 365 </p> 366 366 367 367 <div class="resource-grid"> 368 - <article class="resource-card"> 369 - <h4>XWiki Development & 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 & 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> 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 383 383 </div> 384 384 </div> 385 385 </section>