From 7d732a7ea20589a1b2f58abf3167dd555be421d1 Mon Sep 17 00:00:00 2001 From: Simon Martens Date: Tue, 18 Feb 2025 15:12:24 +0100 Subject: [PATCH] Titelzeile --- .air.toml | 2 +- app/pb.go | 9 +++- dbmodels/seriesses.go | 31 ++++++++++- views/assets/favicon.png | Bin 1571 -> 19022 bytes views/assets/scripts.js | 73 +++++++++++++++----------- views/assets/style.css | 2 +- views/layouts/components/_menu.gohtml | 45 ++++++++++++++-- views/layouts/default/root.gohtml | 14 ++--- views/package-lock.json | 11 ++++ views/package.json | 1 + views/public/favicon.png | Bin 1571 -> 19022 bytes views/transform/main.js | 30 ++++++++++- views/transform/site.css | 43 +++++++++------ 13 files changed, 197 insertions(+), 64 deletions(-) diff --git a/.air.toml b/.air.toml index 8e51803..077a703 100644 --- a/.air.toml +++ b/.air.toml @@ -53,7 +53,7 @@ time = false clean_on_exit = true [proxy] -app_port = 8080 +app_port = 8090 enabled = true proxy_port = 8081 diff --git a/app/pb.go b/app/pb.go index 17c2122..5105828 100644 --- a/app/pb.go +++ b/app/pb.go @@ -109,7 +109,14 @@ func (app *App) setupTestuser() { func (app *App) Serve() error { engine := templating.NewEngine(&views.LayoutFS, &views.RoutesFS) - engine.Globals(map[string]interface{}{"isDev": app.MAConfig.Debug}) + engine.Globals(map[string]interface{}{ + "isDev": app.MAConfig.Debug, + "lang": "de", + "site": map[string]interface{}{ + "title": "Musenalm", + "lang": "de", + "desc": "Bibliographie deutscher Almanache des 18. und 19. Jahrhunderts", + }}) // INFO: hot reloading for poor people if app.MAConfig.Debug { diff --git a/dbmodels/seriesses.go b/dbmodels/seriesses.go index 5aa6177..9ab55a2 100644 --- a/dbmodels/seriesses.go +++ b/dbmodels/seriesses.go @@ -2,11 +2,15 @@ package dbmodels import ( "slices" + "strings" + "github.com/Theodor-Springmann-Stiftung/musenalm/helpers/datatypes" "github.com/pocketbase/dbx" "github.com/pocketbase/pocketbase/core" + "golang.org/x/text/cases" "golang.org/x/text/collate" "golang.org/x/text/language" + "golang.org/x/text/unicode/norm" ) type SeriesEntries map[string][]*REntriesSeries @@ -19,6 +23,17 @@ func SortSeriessesByTitle(series []*Series) { } func BasicSearchSeries(app core.App, query string) ([]*Series, []*Series, error) { + query = strings.TrimSpace(query) + query = datatypes.DeleteTags(query) + query = datatypes.NormalizeString(query) + query = datatypes.RemovePunctuation(query) + query = cases.Lower(language.German).String(query) + query = norm.NFKD.String(query) + + if query == "" { + return []*Series{}, []*Series{}, nil + } + series, err := TitleSearchSeries(app, query) if err != nil { return nil, nil, err @@ -33,8 +48,20 @@ func BasicSearchSeries(app core.App, query string) ([]*Series, []*Series, error) func TitleSearchSeries(app core.App, query string) ([]*Series, error) { series := []*Series{} - err := app.RecordQuery(SERIES_TABLE). - Where(dbx.Like(SERIES_TITLE_FIELD, query).Match(true, true)). + queries := strings.Split(query, " ") + q := app.RecordQuery(SERIES_TABLE). + Where(dbx.Like(SERIES_TITLE_FIELD, queries[0]).Match(true, true)) + + if len(queries) > 1 { + for _, que := range queries[1:] { + que = strings.TrimSpace(que) + if que != "" { + q.AndWhere(dbx.Like(SERIES_TITLE_FIELD, que).Match(true, true)) + } + } + } + + err := q. OrderBy(SERIES_TITLE_FIELD). All(&series) if err != nil { diff --git a/views/assets/favicon.png b/views/assets/favicon.png index 825b9e65af7c104cfb07089bb28659393b4f2097..357867a7caa6ee2b62d8bce6cea500899227b3ee 100644 GIT binary patch literal 19022 zcmbWfcTiMa_63TfqL{OYf*BK_fS^cH6h)Fs21z10NtBG3@KX>Yh)5C<$r4*a111mw zNfMi+NT$gd8s0ka&HQTWRlPsnOj$EU-@f?iO7vYmt+yB--Z7DsyeKUxx#PNxm7$5b0Ta{y zCvHzf&wr8F_Dx4I;_{*GJv;t94im0D8*#kq;D)f%?>B1LA4wlx{wih90iH*<%szec z{T6-uVRHPc_**;17yRjIe%rBY?+ovOl=}nCA36JaMSB|;oR0Y+kj%TlIK$xDW$B~- zIvbf2mhSRC^>yv@0QHb(Zv{m1t3_R1sSgJZ_t|(|OReFZGoPrk(9T&Ves+Ohy9$@I`vcp1^%%8c^}>RocHe) zl@nIhRnaS}(z!hJ-iIa}whe0Aa#`)`x;^(VmP#yER=Zyo{p{*4$tmg8v+rB{zehZd zSt#{r@vqQR4%5vZ{h6A{$3}Dwr%$sCVVW^&zR)*m#;rU0 zY}iosA;*H>7R`S$Vh*_EwyrudsN}!0_Q|xs-K%RI#lx+BFn^&)TrZ}_CHq#e?2yrl zu)29$Quoc7+HQ_Mjt)A#i9cw@oyq@`O=`OO-d?QFlB+W3&M?iA|AtZ{pW!dduAf)8 zWn$vlP5v!#j1YIgA6e|A<<7Enu&!RQiM8xp@J9TJ&F-w4ourk8g@L6VlcbG-o}Iz9 z9XCwujCY)qmb<9xxoR^L(+(!-GpCds>*x(m*OlAdW(P_ZFIcF)aCdUe_r-UfoT}Nu zzVu;Yk)`16qdV4IO>N=k@B9^H!eWvq{_oQNxtv`3KbMnB|L5|# zJOAhI|Go4-cmMCD|33!u|L4xVT)CF)N~)?{6dIkMx##-vU$JaWfx3@qbQLYFAS-2# z;#UQ~uV25uz>0NPIYy;3xkPN}pHC~7Ei04ZrM~@io5k$!_b1MywMGHf#(c+)9jnXn z$QkWzh|$k~)L9-OW0QVGEYYgFIziQ+N9*|an?j47EiB?#moIlSyy?p!8a+PlIMUmo znZux4jdaB%@OA5^|M+o%(I%8r78&B+l^nB*iQ`eKuH@j*(8xeO=hQF%jWv=O*t&J= zTm_33tm#Noym&EGhtZ`P9UFV?h;Bea_T+_}=~iC0r8gzKr177+%p1JS3uKg(l{+ap zjJO{^er#ERk4$nVimm?I39~H~&~R`_yL|cbmZeOKGPtf88k#m`yRBHXRV&D2qSb%J zA|`3UtRGa>1ntR?*$GZ%6%{;5cJJQ32lwy4sHYcZ*_hSIFZ0l2x`lHjkKO9MT%cgl zX^|&*f0N=@$HbDwckbNDis^dDoBdv!>Kug+SXZr5iBXB$uwld31uPt&ey0sEc34uT z0%v1lV}BI~3MpT{{6@x~=YY7lPG@JQuzlC_3oklnozwj_l_Vp)9q8k5fQ;d6JXg{|eOX4Oh+ zYVUWSdt}U*9QjdLIP@y!yZ+Uy!%f)5=y?H#E(%Av)V_if?^c zX!=a8QAnrwOpCaAPMoKw=T^RJ_unam#B)wJvrGo&Ot7b#*FL?ybWMkENvB;`M_IT= z;?=t<@mEY}(G08EQLB-MI@7mW&x)kId9%xhjbG~9w{K|;dGT7AroTVm-74yw;yl_T zeV=)eb4&Uao*-fS3kMDy&`2?ULg$HIzH(*dqwObu#c2u|?&c``^X=hC0ar+k4Nb~t zYsB5wY9~3{%5(Sa?fnvEJNIFdLX|@N~AnalOka7 zV*`!xTEK16t~f+ohk410i@LfySXg(I25KXeZES3Ye|vG(wWW9c{{6cy$>5=|T}Q6> zSILNX?@UK~YSU=(DJcTf>A}KnJ92MN_YRh~6$c(Vc<@4r=-6wEw5SgsE}EE_;8_UJ z7wguqw@A0hTDfvZspz|R@A6b=$&Le8U-SdsTvx5~;&6M9{0T7%fa?fCNOZ+!}@)>G^f^Rctcqx~b*I)}u>8mn}UBZYD3 z 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 literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH { - let o = e.getAttribute("id"), i = e.content; +function d() { + document.querySelectorAll("template[simple]").forEach((r) => { + let o = r.getAttribute("id"), a = r.content; customElements.define( o, class extends HTMLElement { constructor() { - super(), this.appendChild(i.cloneNode(!0)), this.slots = this.querySelectorAll("slot"); + super(), this.appendChild(a.cloneNode(!0)), this.slots = this.querySelectorAll("slot"); } connectedCallback() { - let s = []; - this.slots.forEach((r) => { - let n = r.getAttribute("name"), l = this.querySelector(`[slot="${n}"]`); - l && (r.replaceWith(l.cloneNode(!0)), s.push(l)); - }), s.forEach((r) => { - r.remove(); + let e = []; + this.slots.forEach((n) => { + let s = n.getAttribute("name"), l = this.querySelector(`[slot="${s}"]`); + l && (n.replaceWith(l.cloneNode(!0)), e.push(l)); + }), e.forEach((n) => { + n.remove(); }); } } ); }); } -function d() { - m(), htmx.on("htmx:load", function(t) { - m(); - }), f(); +function h() { + u(), htmx.on("htmx:load", function(t) { + u(); + }), d(); +} +function T(t) { + t || (t = window.location.href); + const r = document.querySelectorAll("nav"); + if (r && r.length > 0) + for (const o of r) + o.querySelectorAll("a, [data-url]").forEach((e) => { + if (e.dataset.url && e.dataset.url !== "") { + let n = window.location.origin + e.dataset.url; + t.startsWith(n) ? e.setAttribute("aria-current", "page") : e.removeAttribute("aria-current"); + } else e.href && (t.startsWith(e.href) ? e.setAttribute("aria-current", "page") : e.removeAttribute("aria-current")); + }); } export { - d as setup + T as setMenuActive, + h as setup }; diff --git a/views/assets/style.css b/views/assets/style.css index c21a236..ce5eade 100644 --- a/views/assets/style.css +++ b/views/assets/style.css @@ -1 +1 @@ -/*! tailwindcss v4.0.5 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:"Source Sans 3","Merriweather Sans",ui-sans-serif;--font-serif:"Merriweather",ui-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(.637 .237 25.331);--color-slate-50:oklch(.984 .003 247.858);--color-slate-700:oklch(.372 .044 257.287);--color-slate-900:oklch(.208 .042 265.755);--color-gray-200:oklch(.928 .006 264.531);--spacing:.25rem;--breakpoint-2xl:96rem;--font-weight-bold:700;--ease-in:cubic-bezier(.4,0,1,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}}@layer components{html{font-size:15.5px}body{background-color:var(--color-slate-50)}h1,h2,h3,h4{font-family:var(--font-serif);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}a{-webkit-hyphens:none;hyphens:none;color:var(--color-slate-700);text-decoration-line:underline;text-decoration-style:dotted}@media (hover:hover){a:hover{color:var(--color-slate-900);text-decoration-style:solid}}ul{margin-block:calc(var(--spacing)*2)}li{margin-left:calc(var(--spacing)*14);list-style-type:disc}a[aria-current=page]{color:var(--color-red-500)!important}main{flex-grow:1;flex-shrink:0}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-\(--breakpoint-2xl\){max-width:var(--breakpoint-2xl)}.translate-2{--tw-translate-x:calc(var(--spacing)*2);--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.justify-center{justify-content:center}.gap-x-2{column-gap:calc(var(--spacing)*2)}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-wrap{text-wrap:wrap}.italic{font-style:italic}.overline{text-decoration-line:overline}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.\[a-zA-Z\:\\-\\\.\]{a-zA-Z:\-\.}.\[\&_td\]\:\!align-top td{vertical-align:top!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@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-ease{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false} +/*! tailwindcss v4.0.5 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:"Source Sans 3","Merriweather Sans",ui-sans-serif;--font-serif:"Merriweather",ui-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-400:oklch(.707 .165 254.624);--color-slate-50:oklch(.984 .003 247.858);--color-slate-200:oklch(.929 .013 255.508);--color-slate-600:oklch(.446 .043 257.281);--color-slate-700:oklch(.372 .044 257.287);--color-slate-900:oklch(.208 .042 265.755);--color-gray-200:oklch(.928 .006 264.531);--color-zinc-200:oklch(.92 .004 286.32);--color-zinc-300:oklch(.871 .006 286.286);--spacing:.25rem;--breakpoint-xl:80rem;--font-weight-bold:700;--ease-in:cubic-bezier(.4,0,1,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}}@layer components{html{font-size:15.5px}body{background-color:var(--color-slate-50)}h1,h2,h3,h4{font-family:var(--font-serif)}a{-webkit-hyphens:none;hyphens:none;color:var(--color-slate-700);text-decoration-line:underline;text-decoration-style:dotted}@media (hover:hover){a:hover{color:var(--color-slate-900);text-decoration-style:solid}}ul{margin-block:calc(var(--spacing)*2)}li{margin-left:calc(var(--spacing)*14);list-style-type:disc}nav>*{border-bottom-style:var(--tw-border-style);border-color:#0000;border-bottom-width:4px}@media (hover:hover){nav>:hover{border-color:var(--color-zinc-200)!important}}nav a[aria-current=page]{color:var(--color-blue-400);border-color:var(--color-zinc-300)!important}nav.submenu a[aria-current=page]{color:var(--color-blue-400)}main{flex-grow:1;flex-shrink:0}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-\(--breakpoint-xl\){max-width:var(--breakpoint-xl)}.translate-2{--tw-translate-x:calc(var(--spacing)*2);--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-x-6{column-gap:calc(var(--spacing)*6)}.self-end{align-self:flex-end}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-zinc-300{border-color:var(--color-zinc-300)}.bg-slate-200{background-color:var(--color-slate-200)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.pt-3{padding-top:calc(var(--spacing)*3)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-wrap{text-wrap:wrap}.text-slate-600{color:var(--color-slate-600)}.italic{font-style:italic}.overline{text-decoration-line:overline}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.\[a-zA-Z\:\\-\\\.\]{a-zA-Z:\-\.}@media (hover:hover){.hover\:cursor-pointer:hover{cursor:pointer}.hover\:text-slate-900:hover{color:var(--color-slate-900)}}.\[\&_td\]\:\!align-top td{vertical-align:top!important}.\[\&\>\*\]\:-mb-1\.5>*{margin-bottom:calc(var(--spacing)*-1.5)}.\[\&\>\*\]\:px-1\.5>*{padding-inline:calc(var(--spacing)*1.5)}.\[\&\>\*\]\:pt-1>*{padding-top:calc(var(--spacing)*1)}.\[\&\>a\]\:no-underline>a{text-decoration-line:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{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-ease{syntax:"*";inherits:false} diff --git a/views/layouts/components/_menu.gohtml b/views/layouts/components/_menu.gohtml index 5c83481..c427e66 100644 --- a/views/layouts/components/_menu.gohtml +++ b/views/layouts/components/_menu.gohtml @@ -1,4 +1,43 @@ -
- Reihen - Personen +
+
+
+

{{ .site.title }}

+

{{ .site.desc }}

+
+ + +
+
+ + diff --git a/views/layouts/default/root.gohtml b/views/layouts/default/root.gohtml index 79d2b17..026977a 100644 --- a/views/layouts/default/root.gohtml +++ b/views/layouts/default/root.gohtml @@ -30,18 +30,14 @@ -
-
- {{ block "_header" . }} - - {{ end }} -
- -
+
+
+ + +
{{ block "body" . }} diff --git a/views/package-lock.json b/views/package-lock.json index 09fec12..76e71ff 100644 --- a/views/package-lock.json +++ b/views/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "devDependencies": { "@tailwindcss/postcss": "^4.0.0", + "daisyui": "^5.0.0-beta.8", "postcss": "^8.4.47", "postcss-cli": "^11.0.0", "prettier": "^3.3.3", @@ -1143,6 +1144,16 @@ "dev": true, "license": "MIT" }, + "node_modules/daisyui": { + "version": "5.0.0-beta.8", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.0.0-beta.8.tgz", + "integrity": "sha512-jSokqm5i+Pv1jG80wliNzMHjmcF+iMx5xRUpk0/QExVoVNyQNWeCsaWJQubPvUq7bt9nzSsQTR2uIZBoyIIoaA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/saadeghi/daisyui?sponsor=1" + } + }, "node_modules/dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", diff --git a/views/package.json b/views/package.json index a9da47b..78db5d7 100644 --- a/views/package.json +++ b/views/package.json @@ -23,6 +23,7 @@ "license": "MIT", "devDependencies": { "@tailwindcss/postcss": "^4.0.0", + "daisyui": "^5.0.0-beta.8", "postcss": "^8.4.47", "postcss-cli": "^11.0.0", "prettier": "^3.3.3", diff --git a/views/public/favicon.png b/views/public/favicon.png index 825b9e65af7c104cfb07089bb28659393b4f2097..357867a7caa6ee2b62d8bce6cea500899227b3ee 100644 GIT binary patch literal 19022 zcmbWfcTiMa_63TfqL{OYf*BK_fS^cH6h)Fs21z10NtBG3@KX>Yh)5C<$r4*a111mw zNfMi+NT$gd8s0ka&HQTWRlPsnOj$EU-@f?iO7vYmt+yB--Z7DsyeKUxx#PNxm7$5b0Ta{y zCvHzf&wr8F_Dx4I;_{*GJv;t94im0D8*#kq;D)f%?>B1LA4wlx{wih90iH*<%szec z{T6-uVRHPc_**;17yRjIe%rBY?+ovOl=}nCA36JaMSB|;oR0Y+kj%TlIK$xDW$B~- zIvbf2mhSRC^>yv@0QHb(Zv{m1t3_R1sSgJZ_t|(|OReFZGoPrk(9T&Ves+Ohy9$@I`vcp1^%%8c^}>RocHe) zl@nIhRnaS}(z!hJ-iIa}whe0Aa#`)`x;^(VmP#yER=Zyo{p{*4$tmg8v+rB{zehZd zSt#{r@vqQR4%5vZ{h6A{$3}Dwr%$sCVVW^&zR)*m#;rU0 zY}iosA;*H>7R`S$Vh*_EwyrudsN}!0_Q|xs-K%RI#lx+BFn^&)TrZ}_CHq#e?2yrl zu)29$Quoc7+HQ_Mjt)A#i9cw@oyq@`O=`OO-d?QFlB+W3&M?iA|AtZ{pW!dduAf)8 zWn$vlP5v!#j1YIgA6e|A<<7Enu&!RQiM8xp@J9TJ&F-w4ourk8g@L6VlcbG-o}Iz9 z9XCwujCY)qmb<9xxoR^L(+(!-GpCds>*x(m*OlAdW(P_ZFIcF)aCdUe_r-UfoT}Nu zzVu;Yk)`16qdV4IO>N=k@B9^H!eWvq{_oQNxtv`3KbMnB|L5|# zJOAhI|Go4-cmMCD|33!u|L4xVT)CF)N~)?{6dIkMx##-vU$JaWfx3@qbQLYFAS-2# z;#UQ~uV25uz>0NPIYy;3xkPN}pHC~7Ei04ZrM~@io5k$!_b1MywMGHf#(c+)9jnXn z$QkWzh|$k~)L9-OW0QVGEYYgFIziQ+N9*|an?j47EiB?#moIlSyy?p!8a+PlIMUmo znZux4jdaB%@OA5^|M+o%(I%8r78&B+l^nB*iQ`eKuH@j*(8xeO=hQF%jWv=O*t&J= zTm_33tm#Noym&EGhtZ`P9UFV?h;Bea_T+_}=~iC0r8gzKr177+%p1JS3uKg(l{+ap zjJO{^er#ERk4$nVimm?I39~H~&~R`_yL|cbmZeOKGPtf88k#m`yRBHXRV&D2qSb%J zA|`3UtRGa>1ntR?*$GZ%6%{;5cJJQ32lwy4sHYcZ*_hSIFZ0l2x`lHjkKO9MT%cgl zX^|&*f0N=@$HbDwckbNDis^dDoBdv!>Kug+SXZr5iBXB$uwld31uPt&ey0sEc34uT z0%v1lV}BI~3MpT{{6@x~=YY7lPG@JQuzlC_3oklnozwj_l_Vp)9q8k5fQ;d6JXg{|eOX4Oh+ zYVUWSdt}U*9QjdLIP@y!yZ+Uy!%f)5=y?H#E(%Av)V_if?^c zX!=a8QAnrwOpCaAPMoKw=T^RJ_unam#B)wJvrGo&Ot7b#*FL?ybWMkENvB;`M_IT= z;?=t<@mEY}(G08EQLB-MI@7mW&x)kId9%xhjbG~9w{K|;dGT7AroTVm-74yw;yl_T zeV=)eb4&Uao*-fS3kMDy&`2?ULg$HIzH(*dqwObu#c2u|?&c``^X=hC0ar+k4Nb~t zYsB5wY9~3{%5(Sa?fnvEJNIFdLX|@N~AnalOka7 zV*`!xTEK16t~f+ohk410i@LfySXg(I25KXeZES3Ye|vG(wWW9c{{6cy$>5=|T}Q6> zSILNX?@UK~YSU=(DJcTf>A}KnJ92MN_YRh~6$c(Vc<@4r=-6wEw5SgsE}EE_;8_UJ z7wguqw@A0hTDfvZspz|R@A6b=$&Le8U-SdsTvx5~;&6M9{0T7%fa?fCNOZ+!}@)>G^f^Rctcqx~b*I)}u>8mn}UBZYD3 z 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 literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH 0) { + for (const menu of menus) { + const links = menu.querySelectorAll("a, [data-url]"); + links.forEach((link) => { + if (link.dataset.url && link.dataset.url !== "") { + let fullurl = window.location.origin + link.dataset.url; + if (url.startsWith(fullurl)) { + link.setAttribute("aria-current", "page"); + } else { + link.removeAttribute("aria-current"); + } + } else if (link.href) { + if (url.startsWith(link.href)) { + link.setAttribute("aria-current", "page"); + } else { + link.removeAttribute("aria-current"); + } + } + }); + } + } +} + +export { setup, setMenuActive }; diff --git a/views/transform/site.css b/views/transform/site.css index 3cf4949..5039b2a 100644 --- a/views/transform/site.css +++ b/views/transform/site.css @@ -1,9 +1,8 @@ -@import 'tailwindcss'; - +@import "tailwindcss"; @theme { - --font-script: Rancho, ui-serif; - --font-sans: 'Source Sans 3', 'Merriweather Sans', ui-sans-serif; - --font-serif: 'Merriweather', ui-serif; + --font-script: Rancho, ui-serif; + --font-sans: "Source Sans 3", "Merriweather Sans", ui-sans-serif; + --font-serif: "Merriweather", ui-serif; } /* @@ -15,17 +14,17 @@ color utility to any element that depends on these defaults. */ @layer base { - *, - ::after, - ::before, - ::backdrop, - ::file-selector-button { - border-color: var(--color-gray-200, currentColor); - } + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentColor); + } } @utility font-variant-small-caps { - font-variant-caps: small-caps; + font-variant-caps: small-caps; } @layer base { @@ -44,7 +43,7 @@ h2, h3, h4 { - @apply font-serif font-bold; + @apply font-serif; } a { @@ -59,8 +58,20 @@ @apply ml-14 list-disc; } - a[aria-current="page"] { - @apply text-red-500!; + nav > * { + @apply border-b-4 border-transparent hover:!border-zinc-200; + } + + nav a[aria-current="page"] { + @apply text-blue-400; + } + + nav a[aria-current="page"] { + @apply !border-zinc-300; + } + + nav.submenu a[aria-current="page"] { + @apply text-blue-400; } main {