This commit is contained in:
SG
2025-06-08 20:18:18 +03:00
parent 09621b73c3
commit 3348df26e5
3 changed files with 23 additions and 14 deletions

View File

@@ -6,6 +6,13 @@ argparser = argparse.ArgumentParser(
description = Config.APP_DESCRIPTION,
epilog = f"See {Config.APP_SRC_URL} for more info.")
argparser.add_argument('--init', action='store_true', help = 'Initialize new site')
argparser.add_argument('--content', '--edit', type = str, help = 'Create new content')
argparser.add_argument('--build', action='store_true', help = 'Build the site')
subparsers = argparser.add_subparsers(dest='command', required=True)
#argparser.add_argument('--init', action='store_true', help = 'Initialize new site')
#argparser.add_argument('--content', '--edit', type = str, help = 'Create new content')
subparsers.add_parser('init', help = 'Initialize new site.')
subparsers.add_parser('build', help = "Build the site from existing content.")
new_content = subparsers.add_parser('create', aliases = ['new'], help = "Create a new content file.")
new_content.add_argument('filename', type=str, help = "Name of the content file to create.")
edit_content = subparsers.add_parser('edit', help = "Edit a content file.")
edit_content.add_argument('filename', type=str, help = "Name of the content file to edit.")

View File

@@ -6,8 +6,7 @@ from config import Config
from logger import logger
def create_content(filename):
filename += '.md'
filename = Path(f"{Config.CONTENT_DIR}/{filename}")
filename = Path(f"{Config.CONTENT_DIR}/{filename}.md")
if not filename.exists():
fh = DefaultFrontmatterHeader(filename.stem)
logger.debug(f"Creating new content {filename}")
@@ -17,6 +16,10 @@ def create_content(filename):
def edit_content(filename):
logger.debug(f"Editing content {filename}")
editor = os.environ.get('EDITOR', 'vim')
# Create the content file if not exists
if not Path(f"{Config.CONTENT_DIR}/{filename}.md").exists():
create_content(filename)
filename = Path(f"{Config.CONTENT_DIR}/{filename}.md")
subprocess.call([editor, filename])
def init_site():

View File

@@ -25,7 +25,7 @@ header_image = Config.HEADER_IMAGE or '/static/header.jpg'
def build_site():
def build_site_old():
logger.info(f"Building the '{Config.MAIN_PAGE_TITLE}' site.")
# Recreate the output dir if needed
@@ -73,14 +73,13 @@ def build_site():
def main():
args = argparser.parse_args()
if args.content:
content = args.content or args.edit
create_content(content)
edit_content(content)
if args.build:
match args.command:
case "build":
build_site()
if args.init:
case "init":
init_site()
case "new" | "create" | "edit":
edit_content(args.filename)
if __name__ == '__main__':
main()