From aecd9f844ef0a277a55aa536db3336362e8db353 Mon Sep 17 00:00:00 2001 From: retoor Date: Fri, 24 Jan 2025 16:34:02 +0100 Subject: [PATCH] Docs. --- src/snek/templates/docs.html | 10 +++++++ src/snek/templates/docs.md | 53 ++++++++++++++++++++++++++++++++++++ src/snek/view/docs.py | 15 ++++++++++ 3 files changed, 78 insertions(+) create mode 100644 src/snek/templates/docs.html create mode 100644 src/snek/templates/docs.md create mode 100644 src/snek/view/docs.py diff --git a/src/snek/templates/docs.html b/src/snek/templates/docs.html new file mode 100644 index 0000000..21c0309 --- /dev/null +++ b/src/snek/templates/docs.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} + +{% block main %} +
+ + + + +
+{% endblock %} \ No newline at end of file diff --git a/src/snek/templates/docs.md b/src/snek/templates/docs.md new file mode 100644 index 0000000..2cf60cb --- /dev/null +++ b/src/snek/templates/docs.md @@ -0,0 +1,53 @@ +# API Documentation + +Currently only some details about the internal API are available. + +## How to create a user +```python +# Save user to the table named 'user' +# Password gets sha256 encrypted with default a salt string +# of the snek.system.security module. + +new_user_object = await app.service.user.register( + username="retoor", + password="retoorded" +) +``` + +## Encrypt string +```python +from snek.system import security + +# Support for both utf and bytes. +var1 = security.encrypt("data") +var2 = security.encrypt(b"data") + +# Is correct: +assert(var1 == var2) +``` + +## How to create a basic HTML / Markdown view +```python +from snek.system.view import BaseView + +class IndexView(BaseView): + + async def get(self): + # The render function supports markdown. + # It will render with syntax highlighting. + # Just use the .md file extension in the file name. + return await self.render("index.html") +``` +## How to create a FormView +```python +from snek.system.view import BaseFormView +from snek.form.register import RegisterForm + +class RegisterFormView(BaseFormView): + + form = RegisterForm +``` +## How to register a class view +```python +app.routes.add_view("/your-page.html", YourViewClass) +``` \ No newline at end of file diff --git a/src/snek/view/docs.py b/src/snek/view/docs.py new file mode 100644 index 0000000..e69d754 --- /dev/null +++ b/src/snek/view/docs.py @@ -0,0 +1,15 @@ + + + +from snek.system.view import BaseView + + +class DocsHTMLView(BaseView): + + async def get(self): + return await self.render_template("docs.html") + +class DocsMDView(BaseView): + + async def get(self): + return await self.render_template("docs.md") \ No newline at end of file