Compare commits
5 commits
e35bc3852b
...
b05610cae3
Author | SHA1 | Date | |
---|---|---|---|
b05610cae3 | |||
ae3ee28ab4 | |||
8a9ae16ad3 | |||
cc9206306a | |||
3e3de7ea59 |
5 changed files with 43 additions and 21 deletions
15
.woodpecker/containers.yaml
Normal file
15
.woodpecker/containers.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
when:
|
||||
- event: push
|
||||
branch: main
|
||||
|
||||
steps:
|
||||
- name: publish
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
repo: git.comfy.city/emi/comfy-recipes
|
||||
registry: git.comfy.city
|
||||
tags: latest
|
||||
username: ${CI_REPO_OWNER}
|
||||
password:
|
||||
from_secret: registry_token
|
|
@ -8,4 +8,4 @@ FROM python:3.13-alpine
|
|||
COPY --from=build /build/dist/ /mnt
|
||||
RUN pip install /mnt/comfy_recipes-*-py3-none-any.whl && \
|
||||
rm -r /mnt
|
||||
ENTRYPOINT ["/usr/bin/recipes-cli"]
|
||||
ENTRYPOINT ["/usr/local/bin/recipes-cli"]
|
||||
|
|
14
README.md
14
README.md
|
@ -4,7 +4,13 @@ Comfy Recipes is a simple application that renders your recipes into HTML.
|
|||
|
||||
Documentation is available at <https://comfy.city/comfy-recipes/docs>
|
||||
|
||||
## Building the python package
|
||||
## Running
|
||||
```sh
|
||||
docker run -v ./recipes:/recipes git.comfy.city/Emi/comfy-recipes:latest build /recipes
|
||||
```
|
||||
|
||||
## Building
|
||||
### Building the python package
|
||||
Make sure you have hatchling and build modules installed.
|
||||
```sh
|
||||
python3 -m build
|
||||
|
@ -15,17 +21,17 @@ The package can now be installed with
|
|||
pip install dist/comfy-recipes-*-py3-none-any.whl
|
||||
```
|
||||
|
||||
## Building the docker container
|
||||
### Building the docker container
|
||||
```sh
|
||||
docker buildx build -t git.comfy.city/Emi/comfy-recipes:local .
|
||||
```
|
||||
|
||||
The container can now be ran
|
||||
```sh
|
||||
docker run --rm git.comfy.city/Emi/comfy-recipes:local
|
||||
docker run -v ./recipes:/recipes git.comfy.city/Emi/comfy-recipes:local build /recipes
|
||||
```
|
||||
|
||||
## Building the documentation
|
||||
### Building the documentation
|
||||
```sh
|
||||
cd docs
|
||||
mdbook build
|
||||
|
|
|
@ -197,23 +197,24 @@ class IngredientInstance(Element):
|
|||
def from_dict(cls, ctx: Context, dct: str | Dict[str, Any]) -> Self:
|
||||
if isinstance(dct, str):
|
||||
string = dct.strip()
|
||||
p = re.compile(r"^(?:([0-9\.]+) ([a-zA-Z]+) )?([\w ]+)(?: \((.*)\))?$")
|
||||
p = re.compile(r"^(?:([0-9\.]+) ([a-zA-Z]+) )+([\w ]+)(?: \((.*)\))?$")
|
||||
match = p.match(string)
|
||||
if match is None:
|
||||
raise RuntimeError(
|
||||
"ingredient {string} regex not matched, it should be in the format [amount(num) unit(string, one word)] name(string, any number of words) [(note(string))]"
|
||||
)
|
||||
amount = float(match.group(1))
|
||||
unitstr = match.group(2)
|
||||
|
||||
amount = float(1)
|
||||
unit = ctx.default_unit
|
||||
if unit is not None:
|
||||
unitx = ctx.units.get(unitstr)
|
||||
if unitx is None:
|
||||
ctx.issues.error(issues.ISSUE_UNKNOWN_UNIT, "unknown unit {unitstr}")
|
||||
else:
|
||||
unit = unitx
|
||||
name = match.group(3)
|
||||
note = match.group(4)
|
||||
name = string
|
||||
note = None
|
||||
if match is not None:
|
||||
amount = float(match.group(1))
|
||||
unitstr = match.group(2)
|
||||
if unit is not None:
|
||||
unitx = ctx.units.get(unitstr)
|
||||
if unitx is None:
|
||||
ctx.issues.error(issues.ISSUE_UNKNOWN_UNIT, f"unknown unit {unitstr}")
|
||||
else:
|
||||
unit = unitx
|
||||
name = match.group(3)
|
||||
note = match.group(4)
|
||||
if note is None:
|
||||
note = ""
|
||||
return cls(
|
||||
|
|
|
@ -9,7 +9,7 @@ description = "Smart recipe static site generator"
|
|||
authors = [{ name = "Emi Vasilek", email = "emi.vasilek@gmail.com" }]
|
||||
keywords = ["recipes", "recipe", "static site generator"]
|
||||
requires-python = ">= 3.8"
|
||||
dependencies = ["jsonschema", "jinja2", "PyYAML", "mistune", "lxml"]
|
||||
dependencies = ["jsonschema", "jinja2", "PyYAML", "mistune", "lxml", "lxml_html_clean"]
|
||||
classifiers = [
|
||||
"Development Status :: 3 - Alpha",
|
||||
"Programming Language :: Python",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue