| @@ -330,14 +330,23 @@ | ||
| 330 | 330 | id: 'home', |
| 331 | 331 | patterns: style.patterns, |
| 332 | 332 | slug: 'home', |
| 333 | 333 | }; |
| 334 | - const blogPage = { | |
| 335 | - name: pageNames.blog.title, | |
| 336 | - id: 'blog', | |
| 337 | - patterns: [], | |
| 338 | - slug: 'blog', | |
| 339 | - }; | |
| 334 | + // Home's blog section leaves posts unreachable without a posts page. | |
| 335 | + const needsBlog = | |
| 336 | + hasBlogGoal || | |
| 337 | + homePage.patterns?.some((pattern) => | |
| 338 | + pattern.patternTypes?.includes('blog-section'), | |
| 339 | + ); | |
| 340 | + const blogPage = | |
| 341 | + needsBlog && !pages.some(({ slug }) => slug === 'blog') | |
| 342 | + ? { | |
| 343 | + name: pageNames.blog.title, | |
| 344 | + id: 'blog', | |
| 345 | + patterns: [], | |
| 346 | + slug: 'blog', | |
| 347 | + } | |
| 348 | + : null; | |
| 340 | 349 | |
| 341 | 350 | await waitFor200Response(); |
| 342 | 351 | |
| 343 | 352 | inform(__('Adding page content', 'extendify-local')); |
| @@ -371,13 +380,9 @@ | ||
| 371 | 380 | const pagesToUse = hasPageWithTitleTemplate |
| 372 | 381 | ? pagesWithoutPageTitlePattern |
| 373 | 382 | : pages; |
| 374 | 383 | |
| 375 | - const pagesToCreate = [ | |
| 376 | - ...pagesToUse, | |
| 377 | - homePage, | |
| 378 | - hasBlogGoal ? blogPage : null, | |
| 379 | - ].filter(Boolean); | |
| 384 | + const pagesToCreate = [...pagesToUse, homePage, blogPage].filter(Boolean); | |
| 380 | 385 | |
| 381 | 386 | const pagesWithReplacedPatterns = []; |
| 382 | 387 | // Run these one page at a time so we don't end up with duplicate dependency issues |
| 383 | 388 | for (const page of pagesToCreate) { |
| @@ -415,13 +420,9 @@ | ||
| 415 | 420 | stickyNav: |
| 416 | 421 | siteStructure === 'single-page' && siteObjective !== 'landing-page', |
| 417 | 422 | }); |
| 418 | 423 | |
| 419 | - const hasBlogPattern = homePage?.patterns?.some((pattern) => | |
| 420 | - pattern.patternTypes.includes('blog-section'), | |
| 421 | - ); | |
| 422 | - | |
| 423 | - if (hasBlogGoal || hasBlogPattern) { | |
| 424 | + if (needsBlog) { | |
| 424 | 425 | informDesc(__('Creating blog sample data', 'extendify-local')); |
| 425 | 426 | await createBlogSampleData(siteStrings, siteImages); |
| 426 | 427 | } |
| 427 | 428 | |
| @@ -449,13 +450,11 @@ | ||
| 449 | 450 | setPagesToAnimate([]); |
| 450 | 451 | await waitFor200Response(); |
| 451 | 452 | informDesc(__('Setting up site layout', 'extendify-local')); |
| 452 | 453 | |
| 453 | - const navPagesMultiPageSite = [ | |
| 454 | - ...pages, | |
| 455 | - hasBlogGoal ? blogPage : null, | |
| 456 | - homePage, | |
| 457 | - ].filter(Boolean); | |
| 454 | + const navPagesMultiPageSite = [...pages, blogPage, homePage].filter( | |
| 455 | + Boolean, | |
| 456 | + ); | |
| 458 | 457 | |
| 459 | 458 | const pluginPages = []; |
| 460 | 459 | |
| 461 | 460 | // Fetch active plugins after installing plugins |