A tool for converting git directory structures into navigable documentation sites.
Go to file
2024-05-29 14:12:44 +02:00
.vscode fix(core): update 2022-06-10 14:14:00 +02:00
test fix(core): update 2022-06-10 14:14:00 +02:00
ts fix(core): update 2022-06-10 14:14:00 +02:00
.gitignore fix(core): update 2022-06-10 14:14:00 +02:00
.gitlab-ci.yml fix(core): update 2022-06-10 14:14:00 +02:00
license fix(core): update 2022-06-10 14:14:00 +02:00
npmextra.json update tsconfig 2024-04-14 17:30:56 +02:00
package-lock.json 1.0.2 2022-06-10 14:14:00 +02:00
package.json update description 2024-05-29 14:12:44 +02:00
pnpm-lock.yaml switch to new org scheme 2023-07-11 00:35:09 +02:00
readme.hints.md update tsconfig 2024-04-14 17:30:56 +02:00
readme.md update description 2024-05-29 14:12:44 +02:00
tsconfig.json update npmextra.json: githost 2024-04-01 21:34:42 +02:00

@push.rocks/smartdocumentation

a tool for mapping git directories to documentation sites

Install

To install @push.rocks/smartdocumentation, you need to have Node.js and npm installed on your machine. Once you have those, run the following command in your terminal:

npm install @push.rocks/smartdocumentation --save

This will add @push.rocks/smartdocumentation to your project's dependencies.

Usage

The @push.rocks/smartdocumentation package allows you to map your git directory structures into documentation sites efficiently. It leverages TypeScript and a set of sophisticated tools under the hood such as @push.rocks/smartfile, @push.rocks/smartmarkdown, and @tsclass/tsclass to manage and generate documentation content dynamically.

Setting Up

First, ensure you are using TypeScript and have it configured in your project. You can include @push.rocks/smartdocumentation in your TypeScript file with the following import statement:

import { DocumentationDirectory } from '@push.rocks/smartdocumentation';

Creating a Documentation Directory

To use the functionality provided by this package, you need to create an instance of the DocumentationDirectory. This instance will represent a specific directory containing Markdown files that you intend to use for documentation.

Here's how you can create a DocumentationDirectory instance:

import { DocumentationDirectory } from '@push.rocks/smartdocumentation';

const myDocDir = new DocumentationDirectory({
  pathArg: './path/to/your/documentation',
});

Make sure to replace './path/to/your/documentation' with the actual path to your documentation directory.

Reading the Directory

After creating an instance of DocumentationDirectory, you can read the directory to process the Markdown files within:

await myDocDir.readDirectory();

This method asynchronously processes each Markdown file, extracting information and preparing them for further actions like sending them as a documentation set or rendering.

Processing and Utilizing Documentation

Once the directory is read, you have several options on how to use the processed documentation. For illustration, let's assume you want to print the titles of all articles in your console:

for (const article of myDocDir.articles) {
  console.log(article.title);
}

Sending Documentation to a Destination

While the base package provides you with the tools to read and process documentation, sending this documentation to a specific target or rendering it into a website would require you to implement or use further tools or methods, tailored to your specific needs.

Example Use Case

Imagine you are managing a project documentation stored in Markdown files within a git repository. You want to create a documentation site that reflects the structure and content of these files. With @push.rocks/smartdocumentation, you can automate the collection and processing of these files, preparing them for a static site generator or a custom rendering engine to display them online.

You would start by organizing your Markdown files in a clear directory structure within your project. Then, use @push.rocks/smartdocumentation to create instances of DocumentationDirectory for each directory you intend to document. After processing these directories, you would extract the necessary metadata, content, and structure to feed into your site generator or rendering engine, automating the documentation site's update process as your project evolves.

Conclusion

The @push.rocks/smartdocumentation package provides a powerful base for handling the conversion of structured, Markdown-based documentation into a format ready for online presentation. With a little setup and some custom tooling around your specific output needs, it can significantly streamline the documentation process for projects of any size.

This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the license file within this repository.

Please note: The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.

Trademarks

This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.

Company Information

Task Venture Capital GmbH
Registered at District court Bremen HRB 35230 HB, Germany

For any legal inquiries or if you require further information, please contact us via email at hello@task.vc.

By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.