Skip to content

Commit

Permalink
Scaffold ask to create template
Browse files Browse the repository at this point in the history
  • Loading branch information
Léo Generet committed Sep 27, 2023
1 parent d22bd58 commit 32a8f3c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 2 deletions.
33 changes: 31 additions & 2 deletions cli/tasks/scaffold-wp/builders/page.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,24 @@ const _askPageName = () => {
])
}

const _askIfTemplate = () => {
return Inquirer.prompt([
{
type: "confirm",
message: "Create a template for this page ?",
name: "createTemplate",
},
])
}

/**
* WP Page Builder
* @param pagePath,
* @param pageName,
* @private
*/
const _pageBuilder = async ({ pagePath, pageName }) => {
const _pageBuilder = async ({ pagePath, pageName, createTemplate }) => {
// choose between page and page type
const camelCasePageName = changeCase.camelCase(pageName),
pascalCasePageName = changeCase.pascalCase(pageName)
Expand All @@ -39,38 +49,57 @@ const _pageBuilder = async ({ pagePath, pageName }) => {
destinationFilePath: `${pagePath}/setup.php`,
replaceExpressions: { camelCasePageName, pascalCasePageName },
})

if(createTemplate) {
// template setup
await createFile({
templateFilePath: `${config.wpTemplatesPath}/pages/page-template.php.template`,
destinationFilePath: `${config.wpTheme}/template-${pascalCasePageName}.php`,
replaceExpressions: { camelCasePageName, pascalCasePageName },
})
}
}

const buildPage = () => {
return new Promise(async (resolve) => {
let pageFolder = `${config.wpTheme}/pages`
let rootFolder = `${config.wpTheme}`

// Get page name
let pageName = ""
let createTemplate;

await _askPageName().then((answer) => {
pageName = changeCase.paramCase(answer.pageName)
})

await _askIfTemplate().then((answer) => {
createTemplate = answer.createTemplate
})

let upperPageName = changeCase.pascalCase(pageName)

// Base path of the page (no extension at the end here)
let pagePath = `${pageFolder}/${upperPageName}`
logs.note(`Page ${upperPageName} will be created here: ${pagePath}`)

if (createTemplate) logs.note(`Template will be created here: ${rootFolder}`)

/**
* Build page
*/
try {
await _pageBuilder({
pagePath,
pageName,
createTemplate
})
} catch (e) {
logs.error(e)
}

// final log
logs.done("Page created.")
createTemplate ? logs.done("Page and template created.") : logs.done("Page created.")
resolve()
})
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php

/**
* Template Name: %%pascalCasePageName%% page
*/

die(0);

0 comments on commit 32a8f3c

Please sign in to comment.