Metadata-Version: 2.1
Name: markata
Version: 0.8.0.dev2
Summary: Static site generator plugins all the way down.
Project-URL: Homepage, https://markata.dev
Project-URL: Changelog, https://markata.dev/CHANGELOG/
Project-URL: Source, https://github.com/waylonwalker/markata
Project-URL: Issues, https://github.com/waylonwalker/markata/issues
Project-URL: Documentation, https://markata.dev
Author-email: Waylon Walker <waylon@waylonwalker.com>, waylon@markata.dev
License: MIT License
        
        Copyright (c) 2021-present Waylon S. Walker <waylon@waylonwalker.com>
        
        Permission is hereby granted, free of charge, to any person obtaining a copy of
        this software and associated documentation files (the "Software"), to deal in
        the Software without restriction, including without limitation the rights to
        use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
        of the Software, and to permit persons to whom the Software is furnished to do
        so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: static-site
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Documentation
Classifier: Topic :: Software Development
Classifier: Topic :: Text Processing
Classifier: Typing :: Typed
Requires-Python: >=3.6
Requires-Dist: anyconfig
Requires-Dist: beautifulsoup4
Requires-Dist: checksumdir
Requires-Dist: commonmark
Requires-Dist: cookiecutter
Requires-Dist: copier
Requires-Dist: dateparser
Requires-Dist: deepmerge
Requires-Dist: diskcache
Requires-Dist: feedgen
Requires-Dist: jinja2
Requires-Dist: linkify-it-py
Requires-Dist: markdown-it-py[plugins]
Requires-Dist: markdown2[all]
Requires-Dist: more-itertools
Requires-Dist: pathspec
Requires-Dist: pillow
Requires-Dist: pluggy
Requires-Dist: polyfactory
Requires-Dist: pydantic-extra-types>=2.0
Requires-Dist: pydantic-settings
Requires-Dist: pydantic>=2.0
Requires-Dist: pymdown-extensions
Requires-Dist: python-frontmatter
Requires-Dist: python-slugify
Requires-Dist: pytz
Requires-Dist: rich
Requires-Dist: toml
Requires-Dist: typer
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: hatch; extra == 'dev'
Requires-Dist: interrogate; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-mock; extra == 'dev'
Requires-Dist: pytest-tmp-files; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: pyinstrument
Requires-Dist: pyinstrument; extra == 'pyinstrument'
Provides-Extra: tui
Requires-Dist: textual; extra == 'tui'
Requires-Dist: trogon; extra == 'tui'
Description-Content-Type: text/markdown

<h1 align=center>
  <br>
  <a href="https://github.com/WaylonWalker/markata"><img src="https://user-images.githubusercontent.com/22648375/167527193-4e66d537-e78f-44dd-be65-2c1c109adf34.png" alt="Markata" width="400"></a>
</h1>

<p align=center>
  <em>
    Markdown to site, plugins all the way down
  </em>
</p>

## Coming soon

pydantic all the things.  All post objects and config will become pydantic objects.  This will allow for validation to happen early, and referencing post attributes or config, it can be assumed that they exist whether they were explicitly created or cohersed to their defaults early in the build.

---

A static site generator that will give you a great site with many standard web
features like rss, sitemaps, and seo tags, out of the box. Running `markata
build` will get you a that only requires you to write Markdown. If you have
additional features that you want, don't worry, since markata is built
completely on plugins you can develop and install your own plugins to add the
features you want.

## QuickStart

Markata is fully configurable through a `markata.toml` file, but the defaults
allow to build your site right out of the box with nothing more than Markdown.

### Installation

`markata` is hosted on pypi and can be installed using pip.

```bash
python -m pip install markata
```

### Create Some Content

Make some `.md` files in your current working directory. By default, `markata`
will recursively look in all subdirectories for markdown files `**/*.md`.

```bash
mkdir pages
echo '# My First Post' > first-post.md
echo '# Hello World' > hello-world.md
```

### Build your site

Install markata into your virtual environment and run `markata build`. It will
create your site in `./markout`, leave its cache in `./.markata.cache`, and
copy all assets from `./static` into `./markout` by default.

```bash
python -m pip install markata
markata build

# or if pipx is your thing
pipx run markata build
```

### Building a Blog with Markata _using a template_

The markata cli includes a `new` command that will present you with questions
to fill in the jinja variables in this repo.

```bash
markata new blog [directory]

# start the site and watch for changes
hatch run tui
```

Now if you open localhost:8000, you will be presented with an example site that
will walk you through some features of markata. You can play with it at
your own pace, or drop all the pages and start writing your own content.

## Motivation

Markata is able to build your site purely from Markdown, allowing you to get
started creating your own content quickly. Out of the box it will cover your
seo tags, rss feeds, sitemap, and og images. Since it is built completely from
plugins you can remove, modify, or add to any of its behavior.

- configurable
- plugins
- seo
- rss
- sitemap
- og-image

## Using Markata

The docs are still a work in progress, but the
[base_cli](https://markata.dev/markata/plugins/base_cli/) walks through how to
effectively use the `markata build` command. At this point Markata is far from
stable and **will change quite a bit**, should you choose to use it on real
site make sure you pin to the version that you want to build from. I will let
you know as it becomes more stable and ready to use without diligence of
pinning to the version you want.

**Honestly** A big motivation for me was wanting to learn and understand how to
create a project that is completely plugin driven. This is highly a learning
project for me, and it has grown into something I use every day.

## Examples Gallary

Markata has a project gallery to show off sites built with markata. Please
[submit](https://github.com/WaylonWalker/markata/issues/78) yours, and check
out the [project-gallery](http://markata.dev/project-gallery/) for inspiration.
