diff --git a/internal/server/templates.go b/internal/server/templates.go index f788b10..8d91e1e 100644 --- a/internal/server/templates.go +++ b/internal/server/templates.go @@ -18,7 +18,7 @@ import ( // GET / // compiles the page template or component template matching the url func (s *Server) serveTemplates(r *http.Request) (response.Response, error) { - name, args := s.getTemplateNameAndArgs(r, "internal/site/templates/component_bodies") + name, args := s.getTemplateNameAndArgs(r, s.contentDir+"/templates/component_bodies") b, err := s.templater.ExecuteComponentBody(name, args...) if err == nil { @@ -29,7 +29,7 @@ func (s *Server) serveTemplates(r *http.Request) (response.Response, error) { return s.handleTemplateError(err, args...) } - name, args = s.getTemplateNameAndArgs(r, "internal/site/templates/page_bodies") + name, args = s.getTemplateNameAndArgs(r, s.contentDir+"/templates/page_bodies") if b, err = s.templater.ExecutePage(name, args...); err == nil { return response.HTML(b), nil @@ -79,6 +79,7 @@ func (s *Server) getTemplateNameAndArgs(r *http.Request, templateDir string) (na // getComponentTemplateNameForURL eliminate any trailing .html or /, and checks for any // file with path parameters in the name, eg '{abc}.html.tmpl', prefering exact filename matches. func getTemplateNameForURL(u *url.URL, templateDir string) (name string, params map[string]string) { + templateDir = path.Clean(templateDir) fp := strings.TrimPrefix(strings.TrimSuffix(strings.TrimSuffix(u.Path, ".html"), "/"), "/") if fp == "" { // "/" maps to "/index" diff --git a/main.go b/main.go index 545405e..6820bd2 100644 --- a/main.go +++ b/main.go @@ -142,8 +142,7 @@ func runServer(ctx context.Context, logger *slog.Logger, connPool *pgxpool.Pool, Addr: ":8082", // local Handler: server.NewServer( logger.WithGroup("server"), - // TODO: consider moving the templates up to a higher level... - "./internal/server", + "./", raw_events.NewStore(logger.WithGroup("raw-event-store"), connPool), accounts.NewStore(logger, connPool), etsy_platform.NewPlatform( diff --git a/internal/server/scripts/_hyperscript.min.js.gz b/scripts/_hyperscript.min.js.gz similarity index 100% rename from internal/server/scripts/_hyperscript.min.js.gz rename to scripts/_hyperscript.min.js.gz diff --git a/internal/server/scripts/htmx.min.js.gz b/scripts/htmx.min.js.gz similarity index 100% rename from internal/server/scripts/htmx.min.js.gz rename to scripts/htmx.min.js.gz diff --git a/internal/server/styles/accessibility.css b/styles/accessibility.css similarity index 100% rename from internal/server/styles/accessibility.css rename to styles/accessibility.css diff --git a/internal/server/styles/backgrounds.css b/styles/backgrounds.css similarity index 100% rename from internal/server/styles/backgrounds.css rename to styles/backgrounds.css diff --git a/internal/server/styles/borders.css b/styles/borders.css similarity index 100% rename from internal/server/styles/borders.css rename to styles/borders.css diff --git a/internal/server/styles/components.css b/styles/components.css similarity index 100% rename from internal/server/styles/components.css rename to styles/components.css diff --git a/internal/server/styles/effects.css b/styles/effects.css similarity index 100% rename from internal/server/styles/effects.css rename to styles/effects.css diff --git a/internal/server/styles/filters.css b/styles/filters.css similarity index 100% rename from internal/server/styles/filters.css rename to styles/filters.css diff --git a/internal/server/styles/flexbox-and-grid.css b/styles/flexbox-and-grid.css similarity index 100% rename from internal/server/styles/flexbox-and-grid.css rename to styles/flexbox-and-grid.css diff --git a/internal/server/styles/index.css b/styles/index.css similarity index 90% rename from internal/server/styles/index.css rename to styles/index.css index 11b01b9..3ba718a 100644 --- a/internal/server/styles/index.css +++ b/styles/index.css @@ -174,6 +174,15 @@ } } @layer utilities { + .visible { + visibility: visible; + } + .relative { + position: relative; + } + .static { + position: static; + } .mt-\[1em\] { margin-top: 1em; } @@ -192,9 +201,15 @@ .block { display: block; } + .contents { + display: contents; + } .flex { display: flex; } + .hidden { + display: none; + } .table { display: table; } @@ -302,9 +317,15 @@ .text-nowrap { text-wrap: nowrap; } + .italic { + font-style: italic; + } .underline { text-decoration-line: underline; } + .filter { + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } .hover\:bg-accent { &:hover { @media (hover: hover) { @@ -655,11 +676,77 @@ syntax: "*"; inherits: false; } +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop { --tw-border-style: solid; --tw-font-weight: initial; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; } } } diff --git a/internal/server/styles/interactivity.css b/styles/interactivity.css similarity index 100% rename from internal/server/styles/interactivity.css rename to styles/interactivity.css diff --git a/internal/server/styles/layout.css b/styles/layout.css similarity index 100% rename from internal/server/styles/layout.css rename to styles/layout.css diff --git a/internal/server/styles/sizing.css b/styles/sizing.css similarity index 100% rename from internal/server/styles/sizing.css rename to styles/sizing.css diff --git a/internal/server/styles/source.css b/styles/source.css similarity index 100% rename from internal/server/styles/source.css rename to styles/source.css diff --git a/internal/server/styles/spacing.css b/styles/spacing.css similarity index 100% rename from internal/server/styles/spacing.css rename to styles/spacing.css diff --git a/internal/server/styles/svg.css b/styles/svg.css similarity index 100% rename from internal/server/styles/svg.css rename to styles/svg.css diff --git a/internal/server/styles/tables.css b/styles/tables.css similarity index 100% rename from internal/server/styles/tables.css rename to styles/tables.css diff --git a/internal/server/styles/transforms.css b/styles/transforms.css similarity index 100% rename from internal/server/styles/transforms.css rename to styles/transforms.css diff --git a/internal/server/styles/transitions-and-animations.css b/styles/transitions-and-animations.css similarity index 100% rename from internal/server/styles/transitions-and-animations.css rename to styles/transitions-and-animations.css diff --git a/internal/server/styles/typography.css b/styles/typography.css similarity index 100% rename from internal/server/styles/typography.css rename to styles/typography.css diff --git a/tailwind.sh b/tailwind.sh index 8811ff3..27fcb5c 100755 --- a/tailwind.sh +++ b/tailwind.sh @@ -1 +1 @@ -npx @tailwindcss/cli -i styles/source.css -o styles/index.css --cwd ./internal/site --watch +npx @tailwindcss/cli -i styles/source.css -o styles/index.css --watch diff --git a/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl b/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl rename to templates/component_bodies/accounts/{acctID}/inventory/sync-groups/draft/listings/{orderIndex}.html.tmpl diff --git a/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl b/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl rename to templates/component_bodies/accounts/{acctID}/inventory/sync-table-v2.html.tmpl diff --git a/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl b/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl rename to templates/component_bodies/accounts/{acctID}/inventory/sync-table.html.tmpl diff --git a/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl b/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl rename to templates/component_bodies/accounts/{acctID}/inventory/sync-table/new-row.html.tmpl diff --git a/internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl b/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl rename to templates/component_bodies/accounts/{acctID}/inventory/sync-table/showcase-table.html.tmpl diff --git a/internal/server/templates/component_bodies/button-dev.html.tmpl b/templates/component_bodies/button-dev.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/button-dev.html.tmpl rename to templates/component_bodies/button-dev.html.tmpl diff --git a/internal/server/templates/component_bodies/nav_bar.html.tmpl b/templates/component_bodies/nav_bar.html.tmpl similarity index 100% rename from internal/server/templates/component_bodies/nav_bar.html.tmpl rename to templates/component_bodies/nav_bar.html.tmpl diff --git a/internal/server/templates/layout.html.tmpl b/templates/layout.html.tmpl similarity index 100% rename from internal/server/templates/layout.html.tmpl rename to templates/layout.html.tmpl diff --git a/internal/server/templates/page_bodies/account-creation.html.tmpl b/templates/page_bodies/account-creation.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/account-creation.html.tmpl rename to templates/page_bodies/account-creation.html.tmpl diff --git a/internal/server/templates/page_bodies/accounts/{acctID}/index.html.tmpl b/templates/page_bodies/accounts/{acctID}/index.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/accounts/{acctID}/index.html.tmpl rename to templates/page_bodies/accounts/{acctID}/index.html.tmpl diff --git a/internal/server/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl b/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/accounts/{acctID}/inventory.html.tmpl rename to templates/page_bodies/accounts/{acctID}/inventory.html.tmpl diff --git a/internal/server/templates/page_bodies/accounts/{acctID}/reports.html.tmpl b/templates/page_bodies/accounts/{acctID}/reports.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/accounts/{acctID}/reports.html.tmpl rename to templates/page_bodies/accounts/{acctID}/reports.html.tmpl diff --git a/internal/server/templates/page_bodies/conflict.html.tmpl b/templates/page_bodies/conflict.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/conflict.html.tmpl rename to templates/page_bodies/conflict.html.tmpl diff --git a/internal/server/templates/page_bodies/index.html.tmpl b/templates/page_bodies/index.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/index.html.tmpl rename to templates/page_bodies/index.html.tmpl diff --git a/internal/server/templates/page_bodies/login.html.tmpl b/templates/page_bodies/login.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/login.html.tmpl rename to templates/page_bodies/login.html.tmpl diff --git a/internal/server/templates/page_bodies/not-found.html.tmpl b/templates/page_bodies/not-found.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/not-found.html.tmpl rename to templates/page_bodies/not-found.html.tmpl diff --git a/internal/server/templates/page_bodies/sign-up.html.tmpl b/templates/page_bodies/sign-up.html.tmpl similarity index 100% rename from internal/server/templates/page_bodies/sign-up.html.tmpl rename to templates/page_bodies/sign-up.html.tmpl