matthewchivers / dodl

MIT License
0 stars 0 forks source link

Design Document / MVP Goal: `dodl` - A Command-Line Tool for Streamlined Markdown Document Creation #2

Open matthewchivers opened 4 weeks ago

matthewchivers commented 4 weeks ago

Elevator Pitch

Whether you're in a meeting, brainstorming an idea, attending a university lecture, or just journaling your thoughts, capturing important information quickly and organising it effectively can be a challenge. Scribbling on scraps of paper or creating unstructured files on your computer only leads to clutter and confusion later.

That's where dodl comes in. It's a command-line tool that instantly creates well-structured documents using user-defined templates and dynamic directory management. With dodl, you can generate relevant files - be it notes, ideas, or diary entries - automatically stored in the right place, without worrying about organising them manually. Perfect for professionals, students, and hobbyists alike, dodl makes staying organised effortless, no matter what you're working on.

Overview

The main features / goals for dodl:

Instant Document Creation

Generate a document from a predefined template and store it in a dynamically structured directory - all in one command.

Headless Operation

Once the command is executed, dodl runs non-interactively, requiring no further input.

Simple and Intuitive

Commands, configurations, and templating are designed to be straightforward, making it easy for both professionals and hobbyists to get started.

Custom File Types

Define your own file "types," each associated with a specific directory structure and template, allowing for flexible document management.

Workspaces

dodl operates within a workspace, with a .dodl directory at its root, serving as the base for configurations and file organisation.

Layered Configuration

Enjoy a flexible, hierarchical configuration system, with settings applied globally, by user, or within specific workspaces.

Templating

Use placeholders like {{date}} or {{topic}} that dynamically insert relevant content into documents when they’re created.

Plugins

Investigate the possibility of running with a plugin system that can extend functionality (adding new templating placeholders, or document types, etc.)