diff --git a/package.json b/package.json index 45ea8eb7..1b480cc3 100644 --- a/package.json +++ b/package.json @@ -1254,6 +1254,11 @@ "type": "string", "default": "", "description": "An optional post script that can be used after new content creation." + }, + "defaultFileName": { + "type": "string", + "default": "index", + "description": "Default file name to use when creating new content." } }, "additionalProperties": false, diff --git a/src/helpers/ArticleHelper.ts b/src/helpers/ArticleHelper.ts index 258b285b..457b2a88 100644 --- a/src/helpers/ArticleHelper.ts +++ b/src/helpers/ArticleHelper.ts @@ -359,7 +359,7 @@ export class ArticleHelper { return; } else { await mkdirAsync(newFolder); - newFilePath = join(newFolder, `index.${fileExtension || contentType.fileType || fileType}`); + newFilePath = join(newFolder, `${contentType.defaultFileName ?? `index`}.${fileExtension || contentType.fileType || fileType}`); } } else { let newFileName = `${sanitizedName}.${fileExtension || contentType?.fileType || fileType}`; diff --git a/src/models/PanelSettings.ts b/src/models/PanelSettings.ts index b438fcff..9d318f26 100644 --- a/src/models/PanelSettings.ts +++ b/src/models/PanelSettings.ts @@ -47,6 +47,7 @@ export interface ContentType { fileType?: "md" | "mdx" | string; previewPath?: string | null; pageBundle?: boolean; + defaultFileName?: string; template?: string; postScript?: string; } diff --git a/src/panelWebView/components/FileItem.tsx b/src/panelWebView/components/FileItem.tsx index 1908dab1..b1007f18 100644 --- a/src/panelWebView/components/FileItem.tsx +++ b/src/panelWebView/components/FileItem.tsx @@ -18,8 +18,16 @@ const FileItem: React.FunctionComponent = ({ name, folderName, p Messenger.send(CommandToCode.openInEditor, path); }; + /* + File names which would not give any info about the content. + by themselves, e.g.: index | +page | etc… + Ideally we should have access to the `defaultFileName` + property of the contentType here to check. + */ + const vagueFileNamesList = ['index', '+page'] + const itemName = useMemo(() => { - if (folderName && name.includes("index.")) { + if (folderName && vagueFileNamesList.some(vagueFileName => name.includes(vagueFileName + '.'))) { return folderName; }