add renderer option

This commit is contained in:
Rowan 2025-10-06 16:42:10 -04:00
parent 956fdbb4e3
commit adcf39ca4a
2 changed files with 12 additions and 4 deletions

View file

@ -23,19 +23,20 @@ an easy to train html templating system
## cli
```
usage: puppygirl build [-h] [-p] INPUT OUTPUT
usage: puppygirl build [-h] [-p] [-r {client,server}] INPUT OUTPUT
positional arguments:
INPUT
OUTPUT
options:
-h, --help show this help message and exit
-h, --help show this help message and exit
-p, --pretty
-r, --renderer {client,server}
```
```
$ puppygirl build --pretty index.html dist/index.html
$ puppygirl build --pretty --renderer server index.html dist/index.html
```
## programmatically

View file

@ -12,11 +12,18 @@ build = subparsers.add_parser("build", add_help=True)
build.add_argument("input", metavar="INPUT")
build.add_argument("output", metavar="OUTPUT")
build.add_argument("-p", "--pretty", action="store_true")
build.add_argument("-r", "--renderer", choices=["client", "server"], default="server")
def main():
args = parser.parse_args()
pg = Puppygirl(renderer=ClientSideRenderer(), elements=[PuppygirlDomme])
match args.renderer:
case "client":
renderer = ClientSideRenderer()
case _:
renderer = ServerSideRenderer()
pg = Puppygirl(renderer=renderer, elements=[PuppygirlDomme])
html = pg.fetch(args.input)
if args.pretty: