6 Commits
Author SHA1 Message Date
dominicf 6c780e5b8f Update /c/ banner 2026-08-24 13:05:49 -04:00
dominicf 1055495e1d Update index page 2026-08-24 12:12:03 -04:00
dominicf 28c643943f Styling/color enhancements 2026-08-24 11:33:19 -04:00
dominicf e2605dcd54 Styles for table and global links 2026-08-24 11:13:38 -04:00
dominicf 6dad00d41d Fix hot reload proxy address 2026-08-24 10:48:29 -04:00
dominicf fa37b2c302 Run and apply go fix 2026-08-24 10:40:23 -04:00
9 changed files with 75 additions and 29 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ internal/database/comfychan.db
tmp tmp
out out
media/ /media/
# direnv # direnv
.direnv .direnv
+1 -1
View File
@@ -1,5 +1,5 @@
live/templ: live/templ:
templ generate --watch --proxy="http://localhost:8080" --cmd="go run ./web" --open-browser=false -v templ generate --watch --proxy="http://localhost:7676" --cmd="go run ./web" --open-browser=false -v
live/sync_assets: live/sync_assets:
go run github.com/air-verse/air@latest \ go run github.com/air-verse/air@latest \
+1 -1
View File
@@ -56,7 +56,7 @@ CREATE TABLE IF NOT EXISTS bans (
-- Boards -- Boards
INSERT INTO boards (slug, name, tag) VALUES INSERT INTO boards (slug, name, tag) VALUES
('c', 'Comfy', 'Be comfy, fren'), ('c', 'Comfy', 'Stay awhile'),
('r', 'Robots', 'Beep, boop'), ('r', 'Robots', 'Beep, boop'),
('gn', 'Goon', 'God is watching'); ('gn', 'Goon', 'God is watching');
+2 -3
View File
@@ -49,12 +49,11 @@ var urlRx = regexp.MustCompile(`(?i)\bhttps?://[^\s<]+`)
func EnrichPost(body string) string { func EnrichPost(body string) string {
var b strings.Builder var b strings.Builder
for _, rawLine := range strings.Split(body, "\n") { for rawLine := range strings.SplitSeq(body, "\n") {
var outLine string var outLine string
for i, rawWord := range strings.Split(rawLine, " ") { for i, rawWord := range strings.Split(rawLine, " ") {
var outWord string var outWord string
if strings.HasPrefix(rawWord, ">>") { if postId, ok := strings.CutPrefix(rawWord, ">>"); ok {
postId := strings.TrimPrefix(rawWord, ">>")
outWord = fmt.Sprintf( outWord = fmt.Sprintf(
`<a onclick="onReplyLinkClick(event)" onmouseover="highlightPost(%[1]s,event)" `+ `<a onclick="onReplyLinkClick(event)" onmouseover="highlightPost(%[1]s,event)" `+
`onmouseleave="highlightPost(%[1]s,event,false)" href="#post-%[1]s" class="reply-link">%[2]s</a>`, `onmouseleave="highlightPost(%[1]s,event,false)" href="#post-%[1]s" class="reply-link">%[2]s</a>`,
+44 -21
View File
@@ -2,27 +2,28 @@
:root { :root {
--bg-main: #1d1f21; --bg-main: #1d1f21;
--text-color: #c5c8c6; --text-color: #c5c8c6;
--text-muted: #81a2be; --text-muted: #85a28a;
--brand-red: #c5c8c6; --brand-green: #4e5f3f;
--brand-yellow: #db9f12;
--form-header-bg: #282a2e; --form-header-bg: #282a2e;
--border-light: #282a2e; --border-light: #282a2e;
--subject: #b294bb; --subject: #718a5b;
--link-secondary: #81a2be; --link-secondary: #85a28a;
--post-bg: #282a2e; --post-bg: #282a2e;
--post-highlight: #D6BAD0; --post-highlight: #D6BAD0;
--post-author: #c5c8c6; --post-author: #c5c8c6;
--greentext: #b5bd68; --greentext: #949055;
--reply-link: #81a2be; --reply-link: #85a28a;
--dialog-bg: #EDEFF7; --dialog-bg: #EDEFF7;
--danger: #b294bb; --danger: #4e5f3f;
--warning-bg: #b294bb; --warning-bg: #929661;
--black: #000000; --black: #000000;
--heading-bg: #b294bb45; --heading-bg: #4e5f3f;
--heading-text: #FFFFFF; --heading-text: #FFFFFF;
--box-bg: #282a2e; --box-bg: #282a2e;
@@ -41,6 +42,15 @@ body {
color: var(--text-color) color: var(--text-color)
} }
a {
cursor: pointer;
color: var(--text-muted);
}
a:hover {
color: var(--danger);
}
/* INDEX */ /* INDEX */
#clavis { #clavis {
@@ -52,25 +62,16 @@ body {
/* BOARD LIST */ /* BOARD LIST */
#boardList { #boardList {
font-size: 12pt; cursor: default;
font-size: 14pt;
margin: 10px; margin: 10px;
} }
#boardList a {
cursor: pointer;
color: var(--text-muted);
}
#boardList a:hover {
color: var(--danger);
}
/* BOARD */ /* BOARD */
.board-header { .board-header {
margin: 25px auto; margin: 25px auto;
text-align: center; text-align: center;
color: var(--brand-red);
} }
.board-header h1 { .board-header h1 {
@@ -78,15 +79,19 @@ body {
font-size: 1.8rem; font-size: 1.8rem;
margin: 8px; margin: 8px;
margin-top: 12px; margin-top: 12px;
color: var(--brand-yellow);
} }
.board-header p { .board-header p {
font-size: .8rem; font-size: .8rem;
margin: 4px; margin: 4px;
font-style: italic;
color: var(--brand-yellow);
} }
.board-header img { .board-header img {
width: 300px; width: 300px;
height: 100px;
} }
.action-bar { .action-bar {
@@ -422,11 +427,29 @@ body {
background-color: var(--box-bg); background-color: var(--box-bg);
} }
.box h2 { .box-table {
font-size: 10pt;
border: 1px solid var(--black);
background-color: var(--box-bg);
width: 100%;
text-align: center;
}
.box-table td {
padding: 5px;
}
.box-table tbody tr:nth-child(even) {
background-color: color-mix(in srgb, var(--box-bg) 85%, black);
}
.box h2,
.box-table th {
padding: 5px; padding: 5px;
margin: 0; margin: 0;
background-color: var(--heading-bg); background-color: var(--heading-bg);
color: var(--heading-text); color: var(--heading-text);
font-weight: bold;
} }
.box p { .box p {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+26 -2
View File
@@ -4,16 +4,40 @@ import "github.com/dominicf2001/comfychan/web/views/shared"
templ Index() { templ Index() {
@shared.Layout("Comfychan") { @shared.Layout("Comfychan") {
<img style="width: 150px; float: right;" src="/static/media/comfychan.png"/>
<section class="container"> <section class="container">
<img id="clavis" src="/static/media/clavis.png"/>
<div class="box"> <div class="box">
<h2>Welcome to Comfychan</h2> <h2>Welcome to Comfychan</h2>
<div> <div>
<p> <p>
<strong>Comfychan</strong> is place to share comfy images and videos. <strong>Comfychan</strong> is place to share comfy images, videos and retardation.
</p> </p>
</div> </div>
</div> </div>
</section> </section>
<section style="margin-top: 25px;" class="container">
<table class="box-table">
<thead>
<tr>
<th>Board</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/c">/c/ - Comfy</a></td>
<td>Stay awhile</td>
</tr>
<tr>
<td><a href="/r">/r/ - Robots</a></td>
<td>Beep, boop</td>
</tr>
<tr>
<td><a href="/gn">/gn/ - Goon</a></td>
<td>God is watching</td>
</tr>
</tbody>
</table>
</section>
} }
} }