fixed branding, removed bulma docs html
parent
809e3cddad
commit
2e94331813
|
@ -1,512 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Hello Bulma!</title>
|
||||
<link rel="stylesheet" href="/static/bulma.min.css">
|
||||
</head>
|
||||
<body class="has-navbar-fixed-top">
|
||||
|
||||
<nav class="navbar is-transparent is-fixed-top" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item" href="https://bulma.io">
|
||||
<img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">
|
||||
</a>
|
||||
|
||||
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="navbarBasicExample" class="navbar-menu">
|
||||
<div class="navbar-start">
|
||||
<a class="navbar-item">
|
||||
Home
|
||||
</a>
|
||||
|
||||
<a class="navbar-item">
|
||||
Documentation
|
||||
</a>
|
||||
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link">
|
||||
More
|
||||
</a>
|
||||
|
||||
<div class="navbar-dropdown">
|
||||
<a class="navbar-item">
|
||||
About
|
||||
</a>
|
||||
<a class="navbar-item">
|
||||
Jobs
|
||||
</a>
|
||||
<a class="navbar-item">
|
||||
Contact
|
||||
</a>
|
||||
<hr class="navbar-divider">
|
||||
<a class="navbar-item">
|
||||
Report an issue
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="navbar-end">
|
||||
<div class="navbar-item">
|
||||
<div class="buttons">
|
||||
<a class="button is-primary">
|
||||
<strong>Sign up</strong>
|
||||
</a>
|
||||
<a class="button is-light">
|
||||
Log in
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<article class="message container">
|
||||
<div class="message-header">
|
||||
<p>Hello World</p>
|
||||
<button class="delete" aria-label="delete"></button>
|
||||
</div>
|
||||
<div class="message-body">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. <strong>Pellentesque risus mi</strong>, tempus quis placerat ut, porta nec nulla. Vestibulum rhoncus ac ex sit amet fringilla. Nullam gravida purus diam, et dictum <a>felis venenatis</a> efficitur. Aenean ac <em>eleifend lacus</em>, in mollis lectus. Donec sodales, arcu et sollicitudin porttitor, tortor urna tempor ligula, id porttitor mi magna a neque. Donec dui urna, vehicula et sem eget, facilisis sodales sem.
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<div class="columns is-centered">
|
||||
<div class="column">
|
||||
<section class="section">
|
||||
<div>
|
||||
<h1 class="title">
|
||||
Hello World
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
My first website with <strong>Bulma</strong>!
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
hx-get="https://v2.jokeapi.dev/joke/Any?format=txt&safe-mode&type=single"
|
||||
hx-target="#joke-container"
|
||||
class="button is-primary"
|
||||
>
|
||||
Make me laugh!
|
||||
</button>
|
||||
|
||||
<p id="joke-container" class="box">Click the button to load a joke...</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<div class="column">
|
||||
<nav class="panel">
|
||||
<p class="panel-heading">
|
||||
Repositories
|
||||
</p>
|
||||
<div class="panel-block">
|
||||
<p class="control has-icons-left">
|
||||
<input class="input" type="text" placeholder="Search">
|
||||
<span class="icon is-left">
|
||||
<i class="fas fa-search" aria-hidden="true"></i>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<p class="panel-tabs">
|
||||
<a class="is-active">All</a>
|
||||
<a>Public</a>
|
||||
<a>Private</a>
|
||||
<a>Sources</a>
|
||||
<a>Forks</a>
|
||||
</p>
|
||||
<a class="panel-block is-active">
|
||||
<span class="panel-icon">
|
||||
<i class="fas fa-book" aria-hidden="true"></i>
|
||||
</span>
|
||||
bulma
|
||||
</a>
|
||||
<a class="panel-block">
|
||||
<span class="panel-icon">
|
||||
<i class="fas fa-book" aria-hidden="true"></i>
|
||||
</span>
|
||||
marksheet
|
||||
</a>
|
||||
<a class="panel-block">
|
||||
<span class="panel-icon">
|
||||
<i class="fas fa-book" aria-hidden="true"></i>
|
||||
</span>
|
||||
minireset.css
|
||||
</a>
|
||||
<a class="panel-block">
|
||||
<span class="panel-icon">
|
||||
<i class="fas fa-book" aria-hidden="true"></i>
|
||||
</span>
|
||||
jgthms.github.io
|
||||
</a>
|
||||
<a class="panel-block">
|
||||
<span class="panel-icon">
|
||||
<i class="fas fa-code-branch" aria-hidden="true"></i>
|
||||
</span>
|
||||
daniellowtw/infboard
|
||||
</a>
|
||||
<a class="panel-block">
|
||||
<span class="panel-icon">
|
||||
<i class="fas fa-code-branch" aria-hidden="true"></i>
|
||||
</span>
|
||||
mojs
|
||||
</a>
|
||||
<label class="panel-block">
|
||||
<input type="checkbox">
|
||||
remember me
|
||||
</label>
|
||||
<div class="panel-block">
|
||||
<button class="button is-link is-outlined is-fullwidth">
|
||||
Reset all filters
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="container table-container">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><abbr title="Position">Pos</abbr></th>
|
||||
<th>Team</th>
|
||||
<th><abbr title="Played">Pld</abbr></th>
|
||||
<th><abbr title="Won">W</abbr></th>
|
||||
<th><abbr title="Drawn">D</abbr></th>
|
||||
<th><abbr title="Lost">L</abbr></th>
|
||||
<th><abbr title="Goals for">GF</abbr></th>
|
||||
<th><abbr title="Goals against">GA</abbr></th>
|
||||
<th><abbr title="Goal difference">GD</abbr></th>
|
||||
<th><abbr title="Points">Pts</abbr></th>
|
||||
<th>Qualification or relegation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><abbr title="Position">Pos</abbr></th>
|
||||
<th>Team</th>
|
||||
<th><abbr title="Played">Pld</abbr></th>
|
||||
<th><abbr title="Won">W</abbr></th>
|
||||
<th><abbr title="Drawn">D</abbr></th>
|
||||
<th><abbr title="Lost">L</abbr></th>
|
||||
<th><abbr title="Goals for">GF</abbr></th>
|
||||
<th><abbr title="Goals against">GA</abbr></th>
|
||||
<th><abbr title="Goal difference">GD</abbr></th>
|
||||
<th><abbr title="Points">Pts</abbr></th>
|
||||
<th>Qualification or relegation</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Leicester_City_F.C." title="Leicester City F.C.">Leicester City</a> <strong>(C)</strong>
|
||||
</td>
|
||||
<td>38</td>
|
||||
<td>23</td>
|
||||
<td>12</td>
|
||||
<td>3</td>
|
||||
<td>68</td>
|
||||
<td>36</td>
|
||||
<td>+32</td>
|
||||
<td>81</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Champions_League#Group_stage" title="2016–17 UEFA Champions League">Champions League group stage</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>2</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Arsenal_F.C." title="Arsenal F.C.">Arsenal</a></td>
|
||||
<td>38</td>
|
||||
<td>20</td>
|
||||
<td>11</td>
|
||||
<td>7</td>
|
||||
<td>65</td>
|
||||
<td>36</td>
|
||||
<td>+29</td>
|
||||
<td>71</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Champions_League#Group_stage" title="2016–17 UEFA Champions League">Champions League group stage</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>3</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Tottenham_Hotspur_F.C." title="Tottenham Hotspur F.C.">Tottenham Hotspur</a></td>
|
||||
<td>38</td>
|
||||
<td>19</td>
|
||||
<td>13</td>
|
||||
<td>6</td>
|
||||
<td>69</td>
|
||||
<td>35</td>
|
||||
<td>+34</td>
|
||||
<td>70</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Champions_League#Group_stage" title="2016–17 UEFA Champions League">Champions League group stage</a></td>
|
||||
</tr>
|
||||
<tr class="is-selected">
|
||||
<th>4</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Manchester_City_F.C." title="Manchester City F.C.">Manchester City</a></td>
|
||||
<td>38</td>
|
||||
<td>19</td>
|
||||
<td>9</td>
|
||||
<td>10</td>
|
||||
<td>71</td>
|
||||
<td>41</td>
|
||||
<td>+30</td>
|
||||
<td>66</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Champions_League#Play-off_round" title="2016–17 UEFA Champions League">Champions League play-off round</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Manchester_United_F.C." title="Manchester United F.C.">Manchester United</a></td>
|
||||
<td>38</td>
|
||||
<td>19</td>
|
||||
<td>9</td>
|
||||
<td>10</td>
|
||||
<td>49</td>
|
||||
<td>35</td>
|
||||
<td>+14</td>
|
||||
<td>66</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Europa_League#Group_stage" title="2016–17 UEFA Europa League">Europa League group stage</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>6</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Southampton_F.C." title="Southampton F.C.">Southampton</a></td>
|
||||
<td>38</td>
|
||||
<td>18</td>
|
||||
<td>9</td>
|
||||
<td>11</td>
|
||||
<td>59</td>
|
||||
<td>41</td>
|
||||
<td>+18</td>
|
||||
<td>63</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Europa_League#Group_stage" title="2016–17 UEFA Europa League">Europa League group stage</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/West_Ham_United_F.C." title="West Ham United F.C.">West Ham United</a></td>
|
||||
<td>38</td>
|
||||
<td>16</td>
|
||||
<td>14</td>
|
||||
<td>8</td>
|
||||
<td>65</td>
|
||||
<td>51</td>
|
||||
<td>+14</td>
|
||||
<td>62</td>
|
||||
<td>Qualification for the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_UEFA_Europa_League#Third_qualifying_round" title="2016–17 UEFA Europa League">Europa League third qualifying round</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>8</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Liverpool_F.C." title="Liverpool F.C.">Liverpool</a></td>
|
||||
<td>38</td>
|
||||
<td>16</td>
|
||||
<td>12</td>
|
||||
<td>10</td>
|
||||
<td>63</td>
|
||||
<td>50</td>
|
||||
<td>+13</td>
|
||||
<td>60</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>9</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Stoke_City_F.C." title="Stoke City F.C.">Stoke City</a></td>
|
||||
<td>38</td>
|
||||
<td>14</td>
|
||||
<td>9</td>
|
||||
<td>15</td>
|
||||
<td>41</td>
|
||||
<td>55</td>
|
||||
<td>−14</td>
|
||||
<td>51</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>10</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Chelsea_F.C." title="Chelsea F.C.">Chelsea</a></td>
|
||||
<td>38</td>
|
||||
<td>12</td>
|
||||
<td>14</td>
|
||||
<td>12</td>
|
||||
<td>59</td>
|
||||
<td>53</td>
|
||||
<td>+6</td>
|
||||
<td>50</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>11</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Everton_F.C." title="Everton F.C.">Everton</a></td>
|
||||
<td>38</td>
|
||||
<td>11</td>
|
||||
<td>14</td>
|
||||
<td>13</td>
|
||||
<td>59</td>
|
||||
<td>55</td>
|
||||
<td>+4</td>
|
||||
<td>47</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>12</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Swansea_City_A.F.C." title="Swansea City A.F.C.">Swansea City</a></td>
|
||||
<td>38</td>
|
||||
<td>12</td>
|
||||
<td>11</td>
|
||||
<td>15</td>
|
||||
<td>42</td>
|
||||
<td>52</td>
|
||||
<td>−10</td>
|
||||
<td>47</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>13</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Watford_F.C." title="Watford F.C.">Watford</a></td>
|
||||
<td>38</td>
|
||||
<td>12</td>
|
||||
<td>9</td>
|
||||
<td>17</td>
|
||||
<td>40</td>
|
||||
<td>50</td>
|
||||
<td>−10</td>
|
||||
<td>45</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>14</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/West_Bromwich_Albion_F.C." title="West Bromwich Albion F.C.">West Bromwich Albion</a></td>
|
||||
<td>38</td>
|
||||
<td>10</td>
|
||||
<td>13</td>
|
||||
<td>15</td>
|
||||
<td>34</td>
|
||||
<td>48</td>
|
||||
<td>−14</td>
|
||||
<td>43</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>15</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Crystal_Palace_F.C." title="Crystal Palace F.C.">Crystal Palace</a></td>
|
||||
<td>38</td>
|
||||
<td>11</td>
|
||||
<td>9</td>
|
||||
<td>18</td>
|
||||
<td>39</td>
|
||||
<td>51</td>
|
||||
<td>−12</td>
|
||||
<td>42</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>16</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/A.F.C._Bournemouth" title="A.F.C. Bournemouth">AFC Bournemouth</a></td>
|
||||
<td>38</td>
|
||||
<td>11</td>
|
||||
<td>9</td>
|
||||
<td>18</td>
|
||||
<td>45</td>
|
||||
<td>67</td>
|
||||
<td>−22</td>
|
||||
<td>42</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>17</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Sunderland_A.F.C." title="Sunderland A.F.C.">Sunderland</a></td>
|
||||
<td>38</td>
|
||||
<td>9</td>
|
||||
<td>12</td>
|
||||
<td>17</td>
|
||||
<td>48</td>
|
||||
<td>62</td>
|
||||
<td>−14</td>
|
||||
<td>39</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>18</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Newcastle_United_F.C." title="Newcastle United F.C.">Newcastle United</a> <strong>(R)</strong>
|
||||
</td>
|
||||
<td>38</td>
|
||||
<td>9</td>
|
||||
<td>10</td>
|
||||
<td>19</td>
|
||||
<td>44</td>
|
||||
<td>65</td>
|
||||
<td>−21</td>
|
||||
<td>37</td>
|
||||
<td>Relegation to the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_Football_League_Championship" title="2016–17 Football League Championship">Football League Championship</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>19</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Norwich_City_F.C." title="Norwich City F.C.">Norwich City</a> <strong>(R)</strong>
|
||||
</td>
|
||||
<td>38</td>
|
||||
<td>9</td>
|
||||
<td>7</td>
|
||||
<td>22</td>
|
||||
<td>39</td>
|
||||
<td>67</td>
|
||||
<td>−28</td>
|
||||
<td>34</td>
|
||||
<td>Relegation to the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_Football_League_Championship" title="2016–17 Football League Championship">Football League Championship</a></td> </tr>
|
||||
<tr>
|
||||
<th>20</th>
|
||||
<td><a href="https://en.wikipedia.org/wiki/Aston_Villa_F.C." title="Aston Villa F.C.">Aston Villa</a> <strong>(R)</strong>
|
||||
</td>
|
||||
<td>38</td>
|
||||
<td>3</td>
|
||||
<td>8</td>
|
||||
<td>27</td>
|
||||
<td>27</td>
|
||||
<td>76</td>
|
||||
<td>−49</td>
|
||||
<td>17</td>
|
||||
<td>Relegation to the <a href="https://en.wikipedia.org/wiki/2016%E2%80%9317_Football_League_Championship" title="2016–17 Football League Championship">Football League Championship</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer is-fixed-bottom">
|
||||
<div class="content has-text-centered">
|
||||
<p>
|
||||
<strong>Bulma</strong> by <a href="https://jgthms.com">Jeremy Thomas</a>. The source code is licensed
|
||||
<a href="http://opensource.org/licenses/mit-license.php">MIT</a>. The website content
|
||||
is licensed <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY NC SA 4.0</a>.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
<script >
|
||||
// NavBar Script
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
// Get all "navbar-burger" elements
|
||||
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
|
||||
|
||||
// Add a click event on each of them
|
||||
$navbarBurgers.forEach( el => {
|
||||
el.addEventListener('click', () => {
|
||||
|
||||
// Get the target from the "data-target" attribute
|
||||
const target = el.dataset.target;
|
||||
const $target = document.getElementById(target);
|
||||
|
||||
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
|
||||
el.classList.toggle('is-active');
|
||||
$target.classList.toggle('is-active');
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script src="/static/htmx.min.js"></script>
|
||||
</html>
|
|
@ -14,8 +14,8 @@ templ footer(timestamp string) {
|
|||
<footer class="footer is-fixed-bottom">
|
||||
<div class="content has-text-centered">
|
||||
<p>
|
||||
<strong>Webframework</strong> by <a href="https://www.jmbit.de">Johannes Bülow</a> © { timestamp } .
|
||||
The source code is licensed <a href="https://opensource.org/license/gpl-2-0/">GPLv2</a>.
|
||||
<strong>Filegate</strong> by <a href="https://www.jmbit.de">Johannes Bülow</a> © { timestamp } .
|
||||
This Application is licenced under <a href="https://opensource.org/license/gpl-2-0/">GPLv2</a>.
|
||||
Using <a href="https://bulma.io/">Bulma</a>, <a href="https://htmx.org/">HTMX</a>, <a href="https://templ.guide/">Templ</a>, <a href="https://gin-gonic.com/">Gin</a> and <a href="https://gorm.io/">GORM</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
@ -28,7 +28,7 @@ templ navbar(loggedIn bool) {
|
|||
<nav id="navbarTop" class="navbar is-transparent is-fixed-top" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item material-icons" href="/">
|
||||
web build
|
||||
<img src="/static/logo.svg"/>
|
||||
</a>
|
||||
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarTop">
|
||||
<span aria-hidden="true"></span>
|
||||
|
|
|
@ -60,7 +60,7 @@ func footer(timestamp string) templ.Component {
|
|||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var4 := `Webframework`
|
||||
templ_7745c5c3_Var4 := `Filegate`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var4)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
|
@ -110,7 +110,7 @@ func footer(timestamp string) templ.Component {
|
|||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var10 := `The source code is licensed `
|
||||
templ_7745c5c3_Var10 := `This Application is licenced under `
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
|
@ -274,30 +274,21 @@ func navbar(loggedIn bool) templ.Component {
|
|||
templ_7745c5c3_Var26 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<nav id=\"navbarTop\" class=\"navbar is-transparent is-fixed-top\" role=\"navigation\" aria-label=\"main navigation\"><div class=\"navbar-brand\"><a class=\"navbar-item material-icons\" href=\"/\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<nav id=\"navbarTop\" class=\"navbar is-transparent is-fixed-top\" role=\"navigation\" aria-label=\"main navigation\"><div class=\"navbar-brand\"><a class=\"navbar-item material-icons\" href=\"/\"><img src=\"/static/logo.svg\"></a> <a role=\"button\" class=\"navbar-burger\" aria-label=\"menu\" aria-expanded=\"false\" data-target=\"navbarTop\"><span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span></a></div><div id=\"navbar\" class=\"navbar-menu\"><div class=\"navbar-start\"><a class=\"navbar-item\" href=\"/index.html\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var27 := `web build`
|
||||
templ_7745c5c3_Var27 := `Home`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var27)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</a> <a role=\"button\" class=\"navbar-burger\" aria-label=\"menu\" aria-expanded=\"false\" data-target=\"navbarTop\"><span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span> <span aria-hidden=\"true\"></span></a></div><div id=\"navbar\" class=\"navbar-menu\"><div class=\"navbar-start\"><a class=\"navbar-item\" href=\"/index.html\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var28 := `Home`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</a> <a class=\"navbar-item\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var29 := `Page`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var29)
|
||||
templ_7745c5c3_Var28 := `Page`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var28)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
@ -328,9 +319,9 @@ func loginButton(loggedIn bool) templ.Component {
|
|||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var30 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var30 == nil {
|
||||
templ_7745c5c3_Var30 = templ.NopComponent
|
||||
templ_7745c5c3_Var29 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var29 == nil {
|
||||
templ_7745c5c3_Var29 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if loggedIn {
|
||||
|
@ -338,8 +329,8 @@ func loginButton(loggedIn bool) templ.Component {
|
|||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var31 := `Profile`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var31)
|
||||
templ_7745c5c3_Var30 := `Profile`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var30)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
@ -347,8 +338,8 @@ func loginButton(loggedIn bool) templ.Component {
|
|||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var32 := `Log out`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32)
|
||||
templ_7745c5c3_Var31 := `Log out`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var31)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
@ -361,8 +352,8 @@ func loginButton(loggedIn bool) templ.Component {
|
|||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Var33 := `Log in`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33)
|
||||
templ_7745c5c3_Var32 := `Log in`
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
@ -386,17 +377,17 @@ func errorMessage(title string, content string) templ.Component {
|
|||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var34 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var34 == nil {
|
||||
templ_7745c5c3_Var34 = templ.NopComponent
|
||||
templ_7745c5c3_Var33 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var33 == nil {
|
||||
templ_7745c5c3_Var33 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<article class=\"message container\"><div class=\"message-header\"><p>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var35 string = title
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
|
||||
var templ_7745c5c3_Var34 string = title
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
@ -404,8 +395,8 @@ func errorMessage(title string, content string) templ.Component {
|
|||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var36 string = content
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36))
|
||||
var templ_7745c5c3_Var35 string = content
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="/static/bulma.min.css">
|
||||
<link rel="stylesheet" href="/static/materialsymbols.css">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{.Title}}</title>
|
||||
</head>
|
||||
<body class="has-navbar-fixed-top">
|
||||
{{block "navbar" .}}{{end}}
|
||||
|
||||
{{block "content" .}}{{end}}
|
||||
|
||||
{{block "footer" .}}{{end}}
|
||||
</body>
|
||||
<script src="/static/htmx.min.js"></script>
|
||||
<script src="/static/bulmaScripts.js"></script>
|
||||
</html>
|
|
@ -1,13 +0,0 @@
|
|||
{{define "footer"}}
|
||||
<footer class="footer is-fixed-bottom">
|
||||
<div class="content has-text-centered">
|
||||
<p>
|
||||
<strong>Webframework</strong> by <a href="https://www.jmbit.de">Johannes Bülow</a>.
|
||||
The source code is licensed <a href="https://opensource.org/license/gpl-2-0/">GPLv2</a>.
|
||||
Using <a href="https://bulma.io/">Bulma</a> and <a href="https://htmx.org/">HTMX</a>.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
{{end}}
|
|
@ -1,42 +0,0 @@
|
|||
{{define "navbar"}}
|
||||
<nav class="navbar is-transparent is-fixed-top" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item" href="/">
|
||||
<img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">
|
||||
</a>
|
||||
|
||||
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbar">
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="navbar-menu">
|
||||
<div class="navbar-start">
|
||||
<a class="navbar-item" href="/index.html">
|
||||
Home
|
||||
</a>
|
||||
<a class="navbar-item">
|
||||
Page
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="navbar-end">
|
||||
<div class="navbar-item">
|
||||
{{if .username}}
|
||||
<a class="navbar-link" href="/profile.html">
|
||||
Profile
|
||||
</a>
|
||||
{{else}}
|
||||
<div class="buttons">
|
||||
<a class="button is-light" href="/login.html">
|
||||
Log in
|
||||
</a>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
{{end}}
|
|
@ -1,63 +0,0 @@
|
|||
package oldtemplates
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"html/template"
|
||||
"io/fs"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gin-contrib/multitemplate"
|
||||
)
|
||||
|
||||
//go:embed layouts/*.gohtml partials/*.gohtml views/*.gohtml
|
||||
var templateFS embed.FS
|
||||
|
||||
// from https://github.com/gin-contrib/multitemplate/issues/30
|
||||
func LoadTemplates() multitemplate.Renderer {
|
||||
r := multitemplate.NewRenderer()
|
||||
|
||||
funcMap := template.FuncMap{
|
||||
"formatAsDate": func(t time.Time) string {
|
||||
return t.Format("YYYY-MM-DD")
|
||||
},
|
||||
}
|
||||
|
||||
layouts, err := fs.Glob(templateFS, "layouts/*.gohtml")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
partials, err := fs.Glob(templateFS, "partials/*.gohtml")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
views, err := fs.Glob(templateFS, "views/*.gohtml")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
println("Templates")
|
||||
// Generate our templates map from our layouts, partials, and views directories
|
||||
for _, view := range views {
|
||||
var assets []string
|
||||
assets = append(assets, layouts...)
|
||||
assets = append(assets, partials...)
|
||||
files := append(assets, view)
|
||||
|
||||
// should be same name as the root file so that we don't get "incomplete" template error
|
||||
tname := filepath.Base(files[0])
|
||||
t := template.Must(template.New(tname).Funcs(funcMap).ParseFS(
|
||||
templateFS,
|
||||
files...,
|
||||
))
|
||||
|
||||
fileName := filepath.Base(view)
|
||||
templateName := strings.TrimSuffix(fileName, ".gohtml")
|
||||
r.Add(templateName, t)
|
||||
println(templateName)
|
||||
}
|
||||
return r
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{{define "content"}}
|
||||
<div>
|
||||
<h1 class="title">
|
||||
{{.content.title}}
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
An error has occurred
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
{{.content.message}}
|
||||
</div>
|
||||
{{end}}
|
|
@ -1,21 +0,0 @@
|
|||
{{define "content"}}
|
||||
<div>
|
||||
<h1 class="title">
|
||||
Hello World
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
My first website with <strong>Bulma</strong>!
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
hx-get="https://v2.jokeapi.dev/joke/Any?format=txt&safe-mode&type=single"
|
||||
hx-target="#joke-container"
|
||||
class="button is-primary"
|
||||
>
|
||||
Make me laugh!
|
||||
</button>
|
||||
|
||||
<p id="joke-container" class="box">Click the button to load a joke...</p>
|
||||
</div>
|
||||
{{end}}
|
|
@ -1,26 +0,0 @@
|
|||
{{define "content"}}
|
||||
<div class="columns is-centered">
|
||||
<div class="column">
|
||||
<div class="container">
|
||||
<h1 class="title">
|
||||
{{.content.title}}
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
If you need help logging in, please contact your Administrator
|
||||
</p>
|
||||
<div class="panel">
|
||||
<p class="panel-heading">Login Form</p>
|
||||
<div class="panel-block">
|
||||
<form method="post" name="login" action="/login.html">
|
||||
<label> Username </label>
|
||||
<input type="text" placeholder="username" name="username" required class="input">
|
||||
<label> Password </label>
|
||||
<input type="password" name="password" required class="input">
|
||||
<button class="button is-primary" type="submit">Login</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
|
@ -1,14 +0,0 @@
|
|||
{{define "content"}}
|
||||
<div class="columns is-centered">
|
||||
<div class="column">
|
||||
<div class="container">
|
||||
<h1 class="title">
|
||||
{{.content.title}}
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
Login successful. Redirecting...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
|
@ -1,13 +0,0 @@
|
|||
{{define "content"}}
|
||||
<div>
|
||||
<h1 class="title">
|
||||
Hello World
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
My first website with <strong>Bulma</strong>!
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
{{end}}
|
|
@ -1,21 +0,0 @@
|
|||
{{define "content"}}
|
||||
<div>
|
||||
<h1 class="title">
|
||||
Hello World
|
||||
</h1>
|
||||
<p class="subtitle">
|
||||
My first website with <strong>Bulma</strong>!
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
hx-get="https://v2.jokeapi.dev/joke/Any?format=txt&safe-mode&type=single"
|
||||
hx-target="#joke-container"
|
||||
class="button is-primary"
|
||||
>
|
||||
Make me laugh!
|
||||
</button>
|
||||
|
||||
<p id="joke-container" class="box">Click the button to load a joke...</p>
|
||||
</div>
|
||||
{{end}}
|
Loading…
Reference in New Issue