From 9f9cff55fa4357c37300c05422c5b6676d132567 Mon Sep 17 00:00:00 2001 From: Booklordofthedings Date: Fri, 6 Dec 2024 14:56:47 +0100 Subject: [PATCH] Rewrite to improve performance and the overall api --- Example_Website/src/Index.bf | 32 +++----- Example_Website/src/Program.bf | 3 +- src/Aven.bf | 140 ++++++++++++++++----------------- src/HTML.bf | 102 ++++++++++++------------ src/Internal/Builder.bf | 23 ------ src/Internal/Log.bf | 35 +++++++++ src/Internal/LogLevel.bf | 9 +++ src/Internal/Logger.bf | 41 ---------- src/Internal/Owning.bf | 12 +++ src/Internal/Page.bf | 73 ----------------- src/Page.bf | 36 --------- src/Template.bf | 54 +++++++++++++ 12 files changed, 237 insertions(+), 323 deletions(-) delete mode 100644 src/Internal/Builder.bf create mode 100644 src/Internal/Log.bf create mode 100644 src/Internal/LogLevel.bf delete mode 100644 src/Internal/Logger.bf create mode 100644 src/Internal/Owning.bf delete mode 100644 src/Internal/Page.bf delete mode 100644 src/Page.bf create mode 100644 src/Template.bf diff --git a/Example_Website/src/Index.bf b/Example_Website/src/Index.bf index f7f9fa2..1529de2 100644 --- a/Example_Website/src/Index.bf +++ b/Example_Website/src/Index.bf @@ -1,34 +1,20 @@ namespace Example_Website; -using System; - using Aven; -using Aven.HTML; -class Index : Page +class Index : Template { - - public override void LoadPageContents() + public this() { - this.AddElement( - Div("Content aisjdoasjiodashuihnsduijhnuisdhfsd", - H1("Hello from Aven"), - Raw("Aven is a website generation library, that can be used from"), A("Beef")..SetValue("href", "https://Beeflang.org"), Raw("to generate reuseable html."), Br(), - Raw("By being integrated into a programming language you can freely write your own templating and generation logic"), Br() - )..SetValue("style", "padding: 15px;") - ); + Title = "An aven website"; + OutputFile = "\\Index.html"; } - public this() : base() + public override void Body(HTML body) { - Title = scope $"Aven - {Aven.Version}"; - - this.AddInlineStyle(""" - body { - margin:0px; - } - """); - - + body.Children.Add(Div( + H1("Aven Website"), + Div("adssadsadsadsadsad", "asidosadsadsd")..SetValue("Style", "color:red;") + )); } } \ No newline at end of file diff --git a/Example_Website/src/Program.bf b/Example_Website/src/Program.bf index 85eeb9f..f892882 100644 --- a/Example_Website/src/Program.bf +++ b/Example_Website/src/Program.bf @@ -9,8 +9,7 @@ class Program public static void Main() { Aven aven = scope .(); - aven.Pages.Add(scope Example_Website.Index()); - aven.OutputDirectory = "../output/"; + aven.Register(.Owning(new Example_Website.Index())); aven.Build(); } } \ No newline at end of file diff --git a/src/Aven.bf b/src/Aven.bf index 708fa77..4f7087d 100644 --- a/src/Aven.bf +++ b/src/Aven.bf @@ -1,94 +1,88 @@ namespace Aven; +using Aven.Internal; using System; using System.IO; +using System.Diagnostics; using System.Collections; class Aven { - private static readonly Logger _defaultLogger = new .() ~ delete _; - private static readonly Builder _defaultBuilder = new .() ~ delete _; + private List