Metadata-Version: 2.4
Name: htmpl-template
Version: 0.0.1
Summary: Starter template for projects using 'htmpl'
Project-URL: Homepage, https://github.com/rmyers/htmpl-template
Project-URL: Documentation, https://github.com/rmyers/htmpl-template#readme
Project-URL: Repository, https://github.com/rmyers/htmpl-template
Author-email: Robert Myers <robert@julython.org>
License-Expression: MIT
License-File: LICENSE
Keywords: fastapi,html,htmx,pico,t-strings,templating
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Typing :: Typed
Requires-Python: >=3.14
Requires-Dist: copier
Provides-Extra: dev
Requires-Dist: cuneus; extra == 'dev'
Requires-Dist: fastapi; extra == 'dev'
Requires-Dist: htmpl; extra == 'dev'
Requires-Dist: mistune; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
Requires-Dist: pytest>=9.0.2; extra == 'dev'
Requires-Dist: python-multipart; extra == 'dev'
Requires-Dist: rdflib; extra == 'dev'
Requires-Dist: tdom; extra == 'dev'
Description-Content-Type: text/markdown

# htmpl-template

Starter project for htmpl, this is based off of copier but includes a UI to manage the installed options. The available options include:

- Auth (login and registration pages)
- Themes
- Database services

The components you copy in are yours to change, we have based the desgin of this component library on `shadcn` where you 'install' the components you want and they are copied into your project. That way if you want to change anything, you simply modify the code to your liking.

If and when the base template changes you will be able to upgrade to the new one. Copier handles applying changes to the templated files and gives options to overwrite or produce a diff and allow you to apply the changes via git conflict resolution.

## Getting Started

First you will need to install `uv` go get it now if you don't have it: https://docs.astral.sh/uv/

> [!NOTE]
> Make sure you are not in an existing project folder before running this command.

Find a good location to install your project:

```bash
$ uvx htmpl init .
Installed 24 packages in 11ms

🎤 What is your project name?
   frank
🎤 What is your Python module name?
   frank
🎤 What theme to use?
   dark

Copying from template version 0.1.0
```

The above command will create the project in a folder called `frank` that includes a Makefile to initialize and run the application.

```bash
# display the available commands:
$ make

# Runs uv sync and generates .env file for storing secrets for local dev
$ make setup

# Run the application locally
$ make dev
```

Open your browser and go to http://localhost:8000/admin/ this will allow you to view documentation on the available components and install them. Some of the components have dependencies that will need to be installed for python deps we run `uv add <package>` otherwise we'll run copier `copier upgrade --data <options.selected>`
