generate elem with go
This commit is contained in:
@@ -3,24 +3,33 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
elem "github.com/chasefleming/elem-go"
|
||||||
|
"github.com/chasefleming/elem-go/attrs"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: switch to https://github.com/chasefleming/elem-go
|
|
||||||
|
|
||||||
func chatDiv(content string, color string) string {
|
func chatDiv(content string, color string) string {
|
||||||
return fmt.Sprintf(`<div class="p-2 my-2 rounded bg-%s-600">%s</div>`, color, htmlIfy(content))
|
div := elem.Div(attrs.Props{
|
||||||
|
// attrs.ID: "container",
|
||||||
|
attrs.Class: fmt.Sprintf("p-2 my-2 rounded bg-%s-600", color),
|
||||||
|
},
|
||||||
|
elem.Raw(htmlIfy(content)),
|
||||||
|
)
|
||||||
|
return div.Render()
|
||||||
}
|
}
|
||||||
|
|
||||||
func loader() string {
|
func loader() string {
|
||||||
return `<div class="loader"></div>`
|
return elem.Div(attrs.Props{
|
||||||
|
attrs.Class: "loader",
|
||||||
|
}).Render()
|
||||||
}
|
}
|
||||||
|
|
||||||
func disabledElement(id string, disabled bool) string {
|
func disabledElement(id string, disabled bool) string {
|
||||||
if disabled {
|
return elem.Script(nil,
|
||||||
return `<script> document.getElementById('` + id + `').disabled = true;</script>`
|
elem.If(disabled,
|
||||||
}
|
elem.Raw(`document.getElementById('`+id+`').disabled = true`),
|
||||||
|
elem.Raw(`document.getElementById('`+id+`').disabled = false`),
|
||||||
return `<script> document.getElementById('` + id + `').disabled = false;</script>`
|
)).Render()
|
||||||
}
|
}
|
||||||
|
|
||||||
func htmlIfy(s string) string {
|
func htmlIfy(s string) string {
|
||||||
|
|||||||
@@ -69,12 +69,12 @@
|
|||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap text-center text-sm font-medium">
|
<td class="px-6 py-4 whitespace-nowrap text-center text-sm font-medium">
|
||||||
<button hx-put="/start/{{.}}" class="text-indigo-500 hover:text-indigo-400">
|
<button hx-put="/start/{{.}}">
|
||||||
Start
|
Start
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap text-center text-sm font-medium">
|
<td class="px-6 py-4 whitespace-nowrap text-center text-sm font-medium">
|
||||||
<button hx-put="/pause/{{.}}" class="text-indigo-500 hover:text-indigo-400">
|
<button hx-put="/pause/{{.}}">
|
||||||
Pause
|
Pause
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -3,50 +3,8 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>KnowledgeBase</title>
|
<title>KnowledgeBase</title>
|
||||||
{{template "views/partials/header"}}
|
{{template "views/partials/header"}}
|
||||||
<script src="https://unpkg.com/htmx.org"></script>
|
|
||||||
<script src="https://unpkg.com/htmx.org/dist/ext/sse.js"></script>
|
|
||||||
<script src="https://unpkg.com/hyperscript.org@0.9.12"></script>
|
|
||||||
<style>
|
|
||||||
.section-box {
|
|
||||||
background-color: #2a2a2a; /* Darker background for the form */
|
|
||||||
padding: 20px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
border-radius: 10px;
|
|
||||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: #1a1a1a; /* Lighter overall background */
|
|
||||||
color: #ffffff;
|
|
||||||
font-family: sans-serif;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input, button {
|
|
||||||
width: 100%;
|
|
||||||
padding: 10px;
|
|
||||||
margin-top: 5px;
|
|
||||||
border-radius: 5px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="text"], input[type="file"] {
|
|
||||||
background-color: #333333;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
background-color: #4a76a8; /* Blue color for buttons */
|
|
||||||
color: white;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:hover {
|
|
||||||
background-color: #5a86b8;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body class="bg-gray-900 p-4 text-white font-sans">
|
||||||
{{template "views/partials/menu"}}
|
{{template "views/partials/menu"}}
|
||||||
<header class="text-center mb-8">
|
<header class="text-center mb-8">
|
||||||
<h1 class="text-3xl md:text-5xl font-bold">Knowledgebase (items: {{.KnowledgebaseItemsCount}})</h1>
|
<h1 class="text-3xl md:text-5xl font-bold">Knowledgebase (items: {{.KnowledgebaseItemsCount}})</h1>
|
||||||
|
|||||||
@@ -10,4 +10,41 @@
|
|||||||
body {
|
body {
|
||||||
font-family: 'Roboto', sans-serif;
|
font-family: 'Roboto', sans-serif;
|
||||||
}
|
}
|
||||||
|
.section-box {
|
||||||
|
background-color: #2a2a2a; /* Darker background for the form */
|
||||||
|
padding: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #1a1a1a; /* Lighter overall background */
|
||||||
|
color: #ffffff;
|
||||||
|
font-family: sans-serif;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input, button {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
margin-top: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"], input[type="file"] {
|
||||||
|
background-color: #333333;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-color: #4a76a8; /* Blue color for buttons */
|
||||||
|
color: white;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: #5a86b8;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -50,6 +50,15 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="max-w-4xl mx-auto">
|
<div class="max-w-4xl mx-auto">
|
||||||
|
|
||||||
|
<div class="section-box">
|
||||||
|
<button hx-put="/start/{{.Name}}" class="text-indigo-500 hover:text-indigo-400">
|
||||||
|
Start
|
||||||
|
</button>
|
||||||
|
<button hx-put="/pause/{{.Name}}" class="text-indigo-500 hover:text-indigo-400">
|
||||||
|
Pause
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="section-box">
|
<div class="section-box">
|
||||||
<h2>Export</h2>
|
<h2>Export</h2>
|
||||||
<a href="/settings/export/{{.Name}}" >Export</a>
|
<a href="/settings/export/{{.Name}}" >Export</a>
|
||||||
|
|||||||
11
go.mod
11
go.mod
@@ -6,27 +6,31 @@ toolchain go1.22.2
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/bwmarrin/discordgo v0.28.1
|
github.com/bwmarrin/discordgo v0.28.1
|
||||||
|
github.com/chasefleming/elem-go v0.25.0
|
||||||
github.com/donseba/go-htmx v1.8.0
|
github.com/donseba/go-htmx v1.8.0
|
||||||
|
github.com/dslipak/pdf v0.0.2
|
||||||
github.com/go-telegram/bot v1.2.1
|
github.com/go-telegram/bot v1.2.1
|
||||||
github.com/gofiber/fiber/v2 v2.52.4
|
github.com/gofiber/fiber/v2 v2.52.4
|
||||||
|
github.com/gofiber/template/html/v2 v2.1.1
|
||||||
github.com/google/go-github/v61 v61.0.0
|
github.com/google/go-github/v61 v61.0.0
|
||||||
github.com/onsi/ginkgo/v2 v2.15.0
|
github.com/onsi/ginkgo/v2 v2.15.0
|
||||||
github.com/onsi/gomega v1.31.1
|
github.com/onsi/gomega v1.31.1
|
||||||
|
github.com/oxffaa/gopher-parse-sitemap v0.0.0-20191021113419-005d2eb1def4
|
||||||
|
github.com/philippgille/chromem-go v0.5.0
|
||||||
github.com/sap-nocops/duckduckgogo v0.0.0-20201102135645-176990152850
|
github.com/sap-nocops/duckduckgogo v0.0.0-20201102135645-176990152850
|
||||||
github.com/sashabaranov/go-openai v1.18.3
|
github.com/sashabaranov/go-openai v1.18.3
|
||||||
github.com/slack-go/slack v0.12.5
|
github.com/slack-go/slack v0.12.5
|
||||||
github.com/valyala/fasthttp v1.52.0
|
github.com/valyala/fasthttp v1.52.0
|
||||||
|
jaytaylor.com/html2text v0.0.0-20230321000545-74c2419ad056
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/PuerkitoBio/goquery v1.6.0 // indirect
|
github.com/PuerkitoBio/goquery v1.6.0 // indirect
|
||||||
github.com/andybalholm/brotli v1.1.0 // indirect
|
github.com/andybalholm/brotli v1.1.0 // indirect
|
||||||
github.com/andybalholm/cascadia v1.1.0 // indirect
|
github.com/andybalholm/cascadia v1.1.0 // indirect
|
||||||
github.com/dslipak/pdf v0.0.2 // indirect
|
|
||||||
github.com/go-logr/logr v1.3.0 // indirect
|
github.com/go-logr/logr v1.3.0 // indirect
|
||||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
|
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
|
||||||
github.com/gofiber/template v1.8.3 // indirect
|
github.com/gofiber/template v1.8.3 // indirect
|
||||||
github.com/gofiber/template/html/v2 v2.1.1 // indirect
|
|
||||||
github.com/gofiber/utils v1.1.0 // indirect
|
github.com/gofiber/utils v1.1.0 // indirect
|
||||||
github.com/google/go-cmp v0.6.0 // indirect
|
github.com/google/go-cmp v0.6.0 // indirect
|
||||||
github.com/google/go-querystring v1.1.0 // indirect
|
github.com/google/go-querystring v1.1.0 // indirect
|
||||||
@@ -38,8 +42,6 @@ require (
|
|||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
github.com/mattn/go-runewidth v0.0.15 // indirect
|
github.com/mattn/go-runewidth v0.0.15 // indirect
|
||||||
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
||||||
github.com/oxffaa/gopher-parse-sitemap v0.0.0-20191021113419-005d2eb1def4 // indirect
|
|
||||||
github.com/philippgille/chromem-go v0.5.0 // indirect
|
|
||||||
github.com/rivo/uniseg v0.2.0 // indirect
|
github.com/rivo/uniseg v0.2.0 // indirect
|
||||||
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
||||||
github.com/stretchr/testify v1.9.0 // indirect
|
github.com/stretchr/testify v1.9.0 // indirect
|
||||||
@@ -51,5 +53,4 @@ require (
|
|||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.14.0 // indirect
|
||||||
golang.org/x/tools v0.16.1 // indirect
|
golang.org/x/tools v0.16.1 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
jaytaylor.com/html2text v0.0.0-20230321000545-74c2419ad056 // indirect
|
|
||||||
)
|
)
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -6,6 +6,8 @@ github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5z
|
|||||||
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
||||||
github.com/bwmarrin/discordgo v0.28.1 h1:gXsuo2GBO7NbR6uqmrrBDplPUx2T3nzu775q/Rd1aG4=
|
github.com/bwmarrin/discordgo v0.28.1 h1:gXsuo2GBO7NbR6uqmrrBDplPUx2T3nzu775q/Rd1aG4=
|
||||||
github.com/bwmarrin/discordgo v0.28.1/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
|
github.com/bwmarrin/discordgo v0.28.1/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY=
|
||||||
|
github.com/chasefleming/elem-go v0.25.0 h1:LYzr1auk39Bh3bdKloArOFV7sOBnOfSOKxsg58eWL0Q=
|
||||||
|
github.com/chasefleming/elem-go v0.25.0/go.mod h1:hz73qILBIKnTgOujnSMtEj20/epI+f6vg71RUilJAA4=
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
|
|||||||
Reference in New Issue
Block a user