🟢 | Command line for docmachine
Find a file
Glenn Y. Rolland 58f4cd72ee
Some checks failed
continuous-integration/drone/push Build is failing
refactor(build): enhance image caching mechanism
Improves the image caching mechanism to increase efficiency and
reliability. Without this change, the system could frequently pull
images unnecessarily, leading to increased load times and potential
failures due to cache inconsistencies.

- Introduced a new method to determine cache file path and directory.
- Added validation for cache files to ensure integrity before use.
- Implemented logic to handle cache hits and misses, reducing
  unnecessary image pulls.
- Enhanced error handling for cache-related operations to prevent silent
  failures.
- Separated concerns by moving cache-related operations into private
  methods for clarity.

Signed-off-by: Glenn Y. Rolland <glenux@glenux.net>
2025-11-19 15:54:15 +01:00
.adr feat(adr): add Core Technical Stack decision document 2025-11-19 12:32:50 +01:00
.method feat(adr): add Core Technical Stack decision document 2025-11-19 12:32:50 +01:00
.tasks feat(cli): Implement global subprocess signal manager and make Docker/Podman commands interrupt-safe 2025-11-19 13:38:04 +01:00
data feat(write): Add basic support for prompts management 2023-04-27 20:49:32 +02:00
docs data: Prepare better samples 2023-04-18 10:49:43 +02:00
old feat: initial import 2023-01-18 16:29:34 +01:00
spec feat(cli): Implement global subprocess signal manager and make Docker/Podman commands interrupt-safe 2025-11-19 13:38:04 +01:00
src refactor(build): enhance image caching mechanism 2025-11-19 15:54:15 +01:00
templates refactor(build): update dependencies and refactor CLI structure 2025-11-19 12:32:22 +01:00
.drone.yml Update .drone.yml 2025-03-27 15:37:04 +01:00
.gitignore chore: Update .gitignore to include .aider* and .env files 2025-03-27 15:37:04 +01:00
CRUSH.md feat(adr): add Core Technical Stack decision document 2025-11-19 12:32:50 +01:00
LICENSE chore: add LICENSE file 2024-05-31 16:53:11 +02:00
Makefile feat: add more targets to makefile (ex: install) 2024-02-15 18:56:31 +01:00
README.md docs: add missing information to README 2025-03-27 15:37:04 +01:00
shard.lock refactor(build): update dependencies and refactor CLI structure 2025-11-19 12:32:22 +01:00
shard.yml refactor(build): update dependencies and refactor CLI structure 2025-11-19 12:32:22 +01:00
TASKS.md feat(cli): Implement global subprocess signal manager and make Docker/Podman commands interrupt-safe 2025-11-19 13:38:04 +01:00

DocMachine Cli

DocMachine Cli is a tool designed to simplify the process of creating technical documentation and presentations.

Motivation

This project aims to address the following challenges:

  • Automation: Automate the generation of high-quality technical content, including documentation and presentation slides.
  • Consistency: Ensure a consistent and polished look and feel across all content pieces.
  • Efficiency: Reduce the time and effort required to produce content by leveraging AI tools.

Features

DocMachine offers a range of features to streamline the content creation process:

  • Scaffolding: Generate a well-structured project directory with all the necessary files.
  • Building: Compile and publish your content as HTML and PDF documents using Dockerized build processes.

We are actively developing the following features for future releases:

  • Planning: Leverage LLMs (Large Language Models) to generate content outlines tailored to your specific needs and requirements.
  • Writing: Utilize LLMs to draft content for each section and subsection, saving you valuable time and effort.

Prerequisites

You'll need a recent version of Crystal (>= 1.11.0) to use this project.

You'll also need to install a few dependencies:

  • libreadline-dev
  • libncurses-dev

Getting Started

Follow these steps to start using DocMachine Cli:

Installation

git clone https://code.apps.glenux.net/glenux/docmachine-cli.git docmachine-cli
cd docmachine-cli
make build
make install

Create a New Project

docmachine scaffold my-documentation-project

This command will create a new directory named my-documentation-project with the following structure:

my-documentation-project
├── _build
├── docs
│   └── images  # link to ../images
├── slides
│   └── images  # link to ../images
└── images

Start Writing Content

  • Documentation: Place your Markdown files inside the docs directory.
  • Presentations: Place your Markdown files (using Marp syntax) inside the slides directory.
  • Images: Store your images in the respective images directories.

Live-reload during writing

docmachine build -a watch

This command will start a Docker container and build your documentation and presentations:

  • Documentation: Built using MkDocs and served on http://localhost:5100.
  • Presentations: Built using Marp and served on http://localhost:5200.

Building content for publishing or presentation

docmachine build -a build-slides-pdf
docmachine build -a build-docs-pdf
docmachine build -a build-docs-html

This command will generate the HTML and PDF versions of your content.

Contributing

We welcome contributions to DocMachine! To contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them.
  4. Submit a pull request.

License

DocMachine Cli is licensed under the GPL-3.0-or-later license. See the LICENSE file for details.