Metadata-Version: 2.1
Name: faqtory
Version: 1.1.2
Summary: Auto FAQ builder
License: MIT
Author: Will McGugan
Author-email: willmcgugan@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: click (>=8.1.3,<9.0.0)
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
Requires-Dist: pydantic (>=1.10.2,<2.0.0)
Requires-Dist: python-frontmatter (>=1.0.0,<2.0.0)
Requires-Dist: pyyaml (>=6.0,<7.0)
Requires-Dist: rich (>=12.6.0,<13.0.0)
Requires-Dist: thefuzz[speedup] (>=0.19.0,<0.20.0)
Description-Content-Type: text/markdown

# FAQtory

FAQtory is a tool to auto-generate a [FAQ.md](./FAQ.md) (Frequently Asked Questions) document for your project.

Additionally, a "suggest" feature uses fuzzy matching to reply to GitHub issues with suggestions from your FAQ.

## Getting started

Install `faqtory` from PyPI. I'm going to assume you know how to do this bit.

Run the following from the directory you wish to store the FAQ document. 

```bash
faqtory init
```

This will create the following files and directories:

- `faq.yml` A configuration file which you can edit.
- `./.faq/` A directory which will contain templates.
- `./questions/` A directory containing question documents.

## Adding questions

To add questions create a file with the extension `.question.md` in the questions directory (`./questions/` if you are using the defaults).

Question documents are Markdown with front-matter. Here's an example:

```yml
---
title: "What does FAQ stand for?"
alt_titles:
  - "What is the meaning of FAQ?"
  - "What does FAQ mean?"
---

FAQ stands for *Frequently Asked Questions*
```

The filename is unimportant, but a `title` is mandatory. You can also optionally add alternative titles under `alt_titles` which will be used with the `faqtory suggest` feature (but not displayed).

## Building

Run the following command to build the FAQ:

```bash
faqtory build
```

With the default settings this will generate an [FAQ.md](./FAQ.md) file.


## Suggest

The "suggest" subcommand can compile a list of FAQ entries that match a supplied issue title. Here's an example:

```bash
faqtory suggest "who is the author of FAQtory?"
```

This will generate a list of matching entries from the FAQ, and write Markdown to stdout. You can modify the output with the "suggest.md" template, which you will find in your ".faq/" directory (if you haven't configured it elsewhere),

This feature is designed to be used with a GitHub action to post an automated response. To enable this feature, copy [new_issue.yml](https://github.com/willmcgugan/faqtory/blob/main/.github/workflows/new_issue.yml) to a similarly named directory in your repository.


## Disclaimer

This was a hastily put together tool by a maintainer that was tired of responding to the same old issues. I can't devote much time to this project, but I will happily accept PRs!

