diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8af31da --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +isso-dev.db +.hugo_build.lock \ No newline at end of file diff --git a/content/posts/hi-post.md b/content/posts/hi-post.md index 75d80a9..51c943b 100644 --- a/content/posts/hi-post.md +++ b/content/posts/hi-post.md @@ -2,7 +2,7 @@ title: "Hello World" date: 2024-04-04T02:46:07-04:00 draft: false -categories: ["Terminal", "Hugo"] +categories: ["terminal", "hugo"] tags: ["css", "terminal-style", "tutorial"] description: "this is quick description of this post" @@ -10,3 +10,9 @@ description: "this is quick description of this post" # yoooo this is one of my first articles homies. so i wil try my best to write it the best i can + + + + +{{< chat cactus-comments >}} + diff --git a/content/posts/new-test-post.md b/content/posts/new-test-post.md index a00e96c..53808e5 100644 --- a/content/posts/new-test-post.md +++ b/content/posts/new-test-post.md @@ -3,6 +3,6 @@ title: "New Test Post" date: 2024-04-04T02:35:21-04:00 draft: false params: - topic: Games + topic: games --- diff --git a/content/posts/test-post.md b/content/posts/test-post.md index da51fa0..2e4d357 100644 --- a/content/posts/test-post.md +++ b/content/posts/test-post.md @@ -2,7 +2,7 @@ title: "Test Post" date: 2023-07-22T23:03:09-04:00 draft: False -categories: ['Games'] +categories: ['games'] --- ## Introduction diff --git a/hugo.toml b/hugo.toml index 5af54c5..e9677cd 100644 --- a/hugo.toml +++ b/hugo.toml @@ -3,6 +3,14 @@ languageCode = 'en-us' title = 'mshj.net' theme = 'terminal' +[params] + + [params.isso] + url = "http://localhost:8080/" + +[security] + enableInlineShortcodes = true + # Enable tags and categories [taxonomies] category = "categories" diff --git a/isso.dev.cfg b/isso.dev.cfg new file mode 100644 index 0000000..9e1cebc --- /dev/null +++ b/isso.dev.cfg @@ -0,0 +1,19 @@ +[general] +dbpath = /home/mshj/Documents/projects/mshj_blog/isso-dev.db +host = + http://localhost:1313 + http://localhost:33989 + +[server] +listen = http://localhost:8080 + +[moderation] +enabled = false + +[client] +require-email = false +preview = false + +[guard] +enabled = true +ratelimit = 2 diff --git a/public/404.html b/public/404.html index 16d637a..25a476b 100644 --- a/public/404.html +++ b/public/404.html @@ -22,27 +22,38 @@
diff --git a/public/categories/games/index.html b/public/categories/games/index.html index 1379a72..5eea32d 100644 --- a/public/categories/games/index.html +++ b/public/categories/games/index.html @@ -22,27 +22,38 @@
diff --git a/public/categories/hugo/index.html b/public/categories/hugo/index.html index 71073db..85d3b7a 100644 --- a/public/categories/hugo/index.html +++ b/public/categories/hugo/index.html @@ -22,27 +22,38 @@
diff --git a/public/categories/index.html b/public/categories/index.html index 3e17e8a..3e6cf75 100644 --- a/public/categories/index.html +++ b/public/categories/index.html @@ -22,27 +22,38 @@
diff --git a/public/categories/terminal/index.html b/public/categories/terminal/index.html index 534e74f..5a18b7f 100644 --- a/public/categories/terminal/index.html +++ b/public/categories/terminal/index.html @@ -22,27 +22,38 @@
diff --git a/public/css/styles.css b/public/css/styles.css index 783ed77..01e0cf3 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -302,6 +302,260 @@ body { min-height: 100vh; } +/* Neocities button slideshow */ +.neocities-buttons { + margin-top: 1rem; + font-size: 0.85rem; +} + +.neocities-buttons strong { + display: block; + margin-bottom: 0.5rem; +} + +.button-slideshow { + width: 88px; + height: 31px; + overflow: hidden; + position: relative; +} + +.button-slideshow a { + position: absolute; + top: 0; + left: 0; + opacity: 0; + animation: buttonFade 12s infinite; +} + +.button-slideshow a:nth-child(1) { animation-delay: 0s; } +.button-slideshow a:nth-child(2) { animation-delay: 3s; } +.button-slideshow a:nth-child(3) { animation-delay: 6s; } +.button-slideshow a:nth-child(4) { animation-delay: 9s; } + +.button-slideshow a img { + display: block; + width: 88px; + height: 31px; +} + +@keyframes buttonFade { + 0% { opacity: 0; } + 4% { opacity: 1; } + 21% { opacity: 1; } + 25% { opacity: 0; } + 100% { opacity: 0; } +} + +/* Comments container */ +.comments-container { + margin: 0 auto; + width: 100%; + max-width: 700px; + padding: 1.5rem; + margin-top: 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +.comments-container h3 { + margin-top: 0; + margin-bottom: 1rem; + font-size: 1rem; +} + +/* Isso form overrides */ +#isso-thread { + color: #ecf0f1 !important; +} + +/* Hide email, website, and preview */ +.isso-postbox-email, +.isso-postbox-website, +.isso-preview, +.isso-post-action input[name="preview"], +div[class*="isso-postbox-email"], +div[class*="isso-postbox-website"] { + display: none !important; +} + +/* Fallback: hide email/website input wrappers by input name */ +.isso-input-wrapper:has(input[name="email"]), +.isso-input-wrapper:has(input[name="website"]), +.isso-input-wrapper:has(input[placeholder*="mail"]), +.isso-input-wrapper:has(input[placeholder*="ebsite"]) { + display: none !important; +} + +/* Postbox layout */ +#isso-thread .isso-postbox { + display: flex !important; + flex-direction: column !important; + gap: 0 !important; +} + +/* Textarea (comment box) */ +#isso-thread .isso-textarea-wrapper { + margin-bottom: 0.75rem !important; +} + +#isso-thread .isso-textarea, +#isso-thread textarea { + background: #1a1d23 !important; + color: #ecf0f1 !important; + border: 1px solid #2c3e50 !important; + border-radius: 12px !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.9rem !important; + padding: 0.75rem !important; + min-height: 100px !important; + width: 100% !important; + box-sizing: border-box !important; + resize: vertical !important; +} + +/* Author name input */ +#isso-thread .isso-postbox-author, +#isso-thread .isso-input-wrapper:first-of-type { + margin-bottom: 0 !important; +} + +#isso-thread input[type="text"], +#isso-thread .isso-input-wrapper input { + background: #1a1d23 !important; + color: #ecf0f1 !important; + border: 1px solid #2c3e50 !important; + border-radius: 12px !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.9rem !important; + padding: 0.5rem 0.75rem !important; + width: 100% !important; + box-sizing: border-box !important; +} + +/* Focus states */ +#isso-thread textarea:focus, +#isso-thread .isso-textarea:focus, +#isso-thread input[type="text"]:focus { + border-color: #62c4ff !important; + outline: none !important; +} + +#isso-thread textarea::placeholder, +#isso-thread input::placeholder { + color: #555 !important; +} + +/* Name + submit aligned on same row via JS-injected wrapper isn't possible, + so use CSS grid on the postbox to place them */ +#isso-thread .isso-postbox { + display: grid !important; + grid-template-columns: 1fr !important; + gap: 0.75rem !important; +} + +#isso-thread .isso-textarea-wrapper { + grid-column: 1 !important; +} + +#isso-thread .isso-auth-section { + display: flex !important; + align-items: center !important; + justify-content: space-between !important; + gap: 0.5rem !important; +} + +#isso-thread .isso-postbox-author, +#isso-thread .isso-auth-section .isso-input-wrapper:first-of-type { + flex: 1 !important; + margin-bottom: 0 !important; +} + +#isso-thread .isso-post-action { + margin: 0 !important; + padding: 0 !important; +} + +#isso-thread .isso-post-action:first-of-type { + margin-left: auto !important; +} + +#isso-thread .isso-post-action ~ .isso-post-action { + display: none !important; +} + +#isso-thread .isso-post-action input[type="submit"], +#isso-thread .isso-postbox-author input, +#isso-thread .isso-input-wrapper:first-of-type input { + height: 36px !important; + box-sizing: border-box !important; +} + +#isso-thread .isso-postbox-author input, +#isso-thread .isso-input-wrapper:first-of-type input { + width: 100% !important; + min-width: 180px !important; +} + +#isso-thread input[type="submit"] { + background: #62c4ff !important; + color: #222225 !important; + border: none !important; + border-radius: 12px !important; + padding: 0.5rem 1.25rem !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.85rem !important; + font-weight: 600 !important; + cursor: pointer !important; + transition: background 0.2s ease !important; +} + +#isso-thread input[type="submit"]:hover { + background: #4ab0ed !important; +} + +/* Custom comment avatars */ +.isso-custom-avatar { + width: 48px !important; + height: 48px !important; + border-radius: 50% !important; + object-fit: cover !important; +} + +/* Comment styling */ +#isso-thread .isso-comment { + border-left: 2px solid #2c3e50 !important; + padding: 0.75rem !important; + padding-left: 1rem !important; + margin-bottom: 1rem !important; + margin-top: 1rem !important; +} + +#isso-thread .isso-comment-header { + color: #a3abba !important; + font-size: 0.8rem !important; + margin-bottom: 0.5rem !important; +} + +#isso-thread .isso-text-wrapper { + color: #ecf0f1 !important; + line-height: 1.5 !important; +} + +#isso-thread .isso-comment-footer { + color: #666 !important; + font-size: 0.75rem !important; + margin-top: 0.5rem !important; +} + +#isso-thread .isso-comment-footer a { + color: #a3abba !important; + text-decoration: none !important; +} + +#isso-thread .isso-comment-footer a:hover { + color: #62c4ff !important; +} + :root { --global-font-size: 15px; --global-line-height: 1.4em; diff --git a/public/css/styles.css.tmp.28280.1769582633307 b/public/css/styles.css.tmp.28280.1769582633307 new file mode 100644 index 0000000..01e0cf3 --- /dev/null +++ b/public/css/styles.css.tmp.28280.1769582633307 @@ -0,0 +1,584 @@ +/* Sleek Terminal Card */ +.card-container { + --terminal-bg: #1a1d23; + --terminal-border: #2c3e50; + --terminal-accent: #3498db; + --terminal-text: #ecf0f1; + --terminal-highlight: #2ecc71; + + color: var(--terminal-text) !important; + font-family: 'SF Mono', 'Menlo', monospace; + padding: 1rem; + position: relative; + overflow: hidden; + transition: all 0.3s ease; + max-width: 700px; + margin: 1.5rem auto; +} + +.main-content { + flex-grow: 1; + width: 100%; + padding-bottom: 60px; +} + + +/* Card container adjustments */ +.card-container { + margin: 0 auto; + width: 100%; + max-width: 700px; + padding-right: 1.5rem; + padding-bottom: 1.5rem; + padding-left: 1.5rem; + padding-top: 0; +} + +/* Header styling */ +.card-container header { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + margin-bottom: 0.5rem; + padding-bottom: 0.75rem; + font-size: 1.2rem; + font-weight: 600; + background-color: transparent; + padding: 0; + border: none; +} + +.card-container header h1 { + padding-top: 0; +} + +.card-container header h2 { + color: var(--terminal-text); + font-size: inherit; + font-weight: inherit; + margin: 0; + letter-spacing: -0.5px; +} + +/* Body content */ +.content-wrapper { + line-height: 1.6; + font-size: 1rem; +} + +/* Code blocks */ +.content-wrapper pre { + background: rgba(0, 0, 0, 0.2); + border-radius: 4px; + padding: 0.75rem; + overflow-x: auto; +} + + +/* Status indicator */ +.card-container::after { + content: '●'; + position: absolute; + top: 12px; + right: 15px; + color: var(--terminal-highlight); + font-size: 0.8rem; + text-shadow: 0 0 8px currentColor; + display: none; +} + +/* Menu list */ +.menu-list { + list-style-type: none !important; + padding: 0; + margin: 0; +} + +.menu-list li { + margin-bottom: 0.5rem; + list-style: none; +} + +.meta-info { + font-size: 0.8rem; + color: #666; + margin-left: 0.5rem; +} +/* Tag list */ +.tag-list { + margin-top: 1rem; + font-size: 0.8rem; +} + +/* Tag link */ +.tag-link { + text-decoration: none; + color: #ffffff; + padding: 0.1rem 0.3rem; + border-radius: 0.3rem; + margin-right: 0.3rem; +} + +.tag-link:nth-child(8n+1) { + background-color: #f2f2f2; +} + +.tag-link:nth-child(8n+2) { + background-color: #ff69b4; +} + +.tag-link:nth-child(8n+3) { + background-color: #33cc33; +} + +.tag-link:nth-child(8n+4) { + background-color: #6666ff; +} + +.tag-link:nth-child(8n+5) { + background-color: #ffff66; +} + +.tag-link:nth-child(8n+6) { + background-color: #ff9966; +} + +.tag-link:nth-child(8n+7) { + background-color: #cc66cc; +} + +.tag-link:nth-child(8n+0) { + background-color: #66cccc; +} +.tag-link:hover { + background-color: #ddd; + color: #333; +} + +.components-grid { + display: grid; + grid-column-gap: 1.4em; + grid-template-columns: auto; + grid-template-rows: auto; +} + +.image-grid { + display: grid; + grid-template-rows: auto; + display: grid; + grid-gap: 1em; + grid-template-rows: auto; + grid-template-columns: repeat(auto-fit, + minmax(calc(var(--page-width) / 12), 1fr)); +} + +.header-container { + display: flex; + align-items: center; +} + +.mini-header { + font-size: 0.8rem; + color: #666; + margin-left: 1rem; + border-right: 2px solid #666; + animation: blink 0.7s infinite; +} + +@keyframes blink { + 0% { + border-color: #666; + } + 50% { + border-color: transparent; + } + 100% { + border-color: #666; + } +} + +@media only screen and (min-width: 70em) { + .components-grid { + grid-template-columns: 3fr 9fr; + } + + .components-grid aside { + position: sticky; + top: calc(var(--global-space) * 2); + } +} + +.terminal-tags { + margin-top: 1rem; + line-height: 2; +} + +.terminal-tag { + background-color: var(--secondary-color); + color: var(--background-color); + padding: 0.2rem 0.5rem; + margin-right: 0.5rem; + text-decoration: none; + font-size: 0.8rem; + border-radius: 3px; +} + +.terminal-tag:hover { + background-color: var(--primary-color); +} + +.terminal-meta { + opacity: 0.7; + font-size: 0.8rem; + margin-left: 0.5rem; +} + + +.post-list { + display: flex; + flex-direction: column; + padding: 1rem; + border: 1px solid #eee; + border-radius: 20px; + margin-bottom: 1.5rem; + position:static !important; + +} +.post-list li { + list-style: none; + margin: 0; + padding: 0; +} + +.post-list-title { + font-weight: 600; + color: #333; + margin-bottom: 0.5rem; +} + + +.post-list-description { + color: #e6e6e6; + font-size: 0.9rem; + line-height: 1.4; + margin: 0 0 0 0; +} + +/* Add spacing between list items */ +.post-list + .post-list { + margin-top: 1.5rem; +} + + +.site-footer { + margin-top: auto; + width: 100%; + padding: 1rem; + text-align: center; +} + +.footer-nav a { + text-decoration: none; + color: #666; + margin: 0 0.5rem; + display: inline-block; +} + +.footer-nav a:hover { + color: #333; +} + +.footer-nav svg { + vertical-align: middle; +} + +.site-footer p { + font-size: 0.9rem; + color: #666; + margin: 0.5rem 0; +} + +body { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +/* Neocities button slideshow */ +.neocities-buttons { + margin-top: 1rem; + font-size: 0.85rem; +} + +.neocities-buttons strong { + display: block; + margin-bottom: 0.5rem; +} + +.button-slideshow { + width: 88px; + height: 31px; + overflow: hidden; + position: relative; +} + +.button-slideshow a { + position: absolute; + top: 0; + left: 0; + opacity: 0; + animation: buttonFade 12s infinite; +} + +.button-slideshow a:nth-child(1) { animation-delay: 0s; } +.button-slideshow a:nth-child(2) { animation-delay: 3s; } +.button-slideshow a:nth-child(3) { animation-delay: 6s; } +.button-slideshow a:nth-child(4) { animation-delay: 9s; } + +.button-slideshow a img { + display: block; + width: 88px; + height: 31px; +} + +@keyframes buttonFade { + 0% { opacity: 0; } + 4% { opacity: 1; } + 21% { opacity: 1; } + 25% { opacity: 0; } + 100% { opacity: 0; } +} + +/* Comments container */ +.comments-container { + margin: 0 auto; + width: 100%; + max-width: 700px; + padding: 1.5rem; + margin-top: 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +.comments-container h3 { + margin-top: 0; + margin-bottom: 1rem; + font-size: 1rem; +} + +/* Isso form overrides */ +#isso-thread { + color: #ecf0f1 !important; +} + +/* Hide email, website, and preview */ +.isso-postbox-email, +.isso-postbox-website, +.isso-preview, +.isso-post-action input[name="preview"], +div[class*="isso-postbox-email"], +div[class*="isso-postbox-website"] { + display: none !important; +} + +/* Fallback: hide email/website input wrappers by input name */ +.isso-input-wrapper:has(input[name="email"]), +.isso-input-wrapper:has(input[name="website"]), +.isso-input-wrapper:has(input[placeholder*="mail"]), +.isso-input-wrapper:has(input[placeholder*="ebsite"]) { + display: none !important; +} + +/* Postbox layout */ +#isso-thread .isso-postbox { + display: flex !important; + flex-direction: column !important; + gap: 0 !important; +} + +/* Textarea (comment box) */ +#isso-thread .isso-textarea-wrapper { + margin-bottom: 0.75rem !important; +} + +#isso-thread .isso-textarea, +#isso-thread textarea { + background: #1a1d23 !important; + color: #ecf0f1 !important; + border: 1px solid #2c3e50 !important; + border-radius: 12px !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.9rem !important; + padding: 0.75rem !important; + min-height: 100px !important; + width: 100% !important; + box-sizing: border-box !important; + resize: vertical !important; +} + +/* Author name input */ +#isso-thread .isso-postbox-author, +#isso-thread .isso-input-wrapper:first-of-type { + margin-bottom: 0 !important; +} + +#isso-thread input[type="text"], +#isso-thread .isso-input-wrapper input { + background: #1a1d23 !important; + color: #ecf0f1 !important; + border: 1px solid #2c3e50 !important; + border-radius: 12px !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.9rem !important; + padding: 0.5rem 0.75rem !important; + width: 100% !important; + box-sizing: border-box !important; +} + +/* Focus states */ +#isso-thread textarea:focus, +#isso-thread .isso-textarea:focus, +#isso-thread input[type="text"]:focus { + border-color: #62c4ff !important; + outline: none !important; +} + +#isso-thread textarea::placeholder, +#isso-thread input::placeholder { + color: #555 !important; +} + +/* Name + submit aligned on same row via JS-injected wrapper isn't possible, + so use CSS grid on the postbox to place them */ +#isso-thread .isso-postbox { + display: grid !important; + grid-template-columns: 1fr !important; + gap: 0.75rem !important; +} + +#isso-thread .isso-textarea-wrapper { + grid-column: 1 !important; +} + +#isso-thread .isso-auth-section { + display: flex !important; + align-items: center !important; + justify-content: space-between !important; + gap: 0.5rem !important; +} + +#isso-thread .isso-postbox-author, +#isso-thread .isso-auth-section .isso-input-wrapper:first-of-type { + flex: 1 !important; + margin-bottom: 0 !important; +} + +#isso-thread .isso-post-action { + margin: 0 !important; + padding: 0 !important; +} + +#isso-thread .isso-post-action:first-of-type { + margin-left: auto !important; +} + +#isso-thread .isso-post-action ~ .isso-post-action { + display: none !important; +} + +#isso-thread .isso-post-action input[type="submit"], +#isso-thread .isso-postbox-author input, +#isso-thread .isso-input-wrapper:first-of-type input { + height: 36px !important; + box-sizing: border-box !important; +} + +#isso-thread .isso-postbox-author input, +#isso-thread .isso-input-wrapper:first-of-type input { + width: 100% !important; + min-width: 180px !important; +} + +#isso-thread input[type="submit"] { + background: #62c4ff !important; + color: #222225 !important; + border: none !important; + border-radius: 12px !important; + padding: 0.5rem 1.25rem !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.85rem !important; + font-weight: 600 !important; + cursor: pointer !important; + transition: background 0.2s ease !important; +} + +#isso-thread input[type="submit"]:hover { + background: #4ab0ed !important; +} + +/* Custom comment avatars */ +.isso-custom-avatar { + width: 48px !important; + height: 48px !important; + border-radius: 50% !important; + object-fit: cover !important; +} + +/* Comment styling */ +#isso-thread .isso-comment { + border-left: 2px solid #2c3e50 !important; + padding: 0.75rem !important; + padding-left: 1rem !important; + margin-bottom: 1rem !important; + margin-top: 1rem !important; +} + +#isso-thread .isso-comment-header { + color: #a3abba !important; + font-size: 0.8rem !important; + margin-bottom: 0.5rem !important; +} + +#isso-thread .isso-text-wrapper { + color: #ecf0f1 !important; + line-height: 1.5 !important; +} + +#isso-thread .isso-comment-footer { + color: #666 !important; + font-size: 0.75rem !important; + margin-top: 0.5rem !important; +} + +#isso-thread .isso-comment-footer a { + color: #a3abba !important; + text-decoration: none !important; +} + +#isso-thread .isso-comment-footer a:hover { + color: #62c4ff !important; +} + +:root { + --global-font-size: 15px; + --global-line-height: 1.4em; + --global-space: 10px; + --font-stack: Menlo, Monaco, Lucida Console, Liberation Mono, + DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, + serif; + --mono-font-stack: Menlo, Monaco, Lucida Console, Liberation Mono, + DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, + serif; + --background-color: #15151b !important; + --page-width: 60em; + --font-color: #e8e9ed; + --invert-font-color: #222225; + --secondary-color: #a3abba; + --tertiary-color: #a3abba; + --primary-color: #62c4ff; + --error-color: #ff3c74; + --progress-bar-background: #3f3f44; + --progress-bar-fill: #62c4ff; + --code-bg-color: #3f3f44; + --input-style: solid; + --display-h1-decoration: none; +} + + diff --git a/public/images/avatars/avatar1.jpg b/public/images/avatars/avatar1.jpg new file mode 100644 index 0000000..9fde822 Binary files /dev/null and b/public/images/avatars/avatar1.jpg differ diff --git a/public/images/avatars/avatar2.png b/public/images/avatars/avatar2.png new file mode 100644 index 0000000..18e6dd0 Binary files /dev/null and b/public/images/avatars/avatar2.png differ diff --git a/public/images/avatars/avatar3.png b/public/images/avatars/avatar3.png new file mode 100644 index 0000000..7ede1d6 Binary files /dev/null and b/public/images/avatars/avatar3.png differ diff --git a/public/index.html b/public/index.html index 4284c7c..4bb0b8f 100644 --- a/public/index.html +++ b/public/index.html @@ -22,27 +22,38 @@
diff --git a/public/js/topbar.js b/public/js/topbar.js index 9c258cf..f305ff3 100644 --- a/public/js/topbar.js +++ b/public/js/topbar.js @@ -1,5 +1,5 @@ const miniHeader = document.getElementById('mini-header'); -const texts = ['use linux', 'i hate css', 'gpl everything', 'made with love']; // add your random text here +const texts = ['use linux', 'soup for my family', 'gpl everything']; // add your random text here const text = texts[Math.floor(Math.random() * texts.length)]; let charIndex = 0; @@ -7,7 +7,7 @@ function typeText() { if (charIndex < text.length) { miniHeader.textContent += text.charAt(charIndex); charIndex++; - setTimeout(typeText, 50); // adjust the typing speed here + setTimeout(typeText, 50); } } diff --git a/public/posts/hi-post/index.html b/public/posts/hi-post/index.html index f7e0be0..10383e2 100644 --- a/public/posts/hi-post/index.html +++ b/public/posts/hi-post/index.html @@ -1,5 +1,5 @@ - + @@ -22,27 +22,38 @@
@@ -55,9 +66,9 @@
Categories: - Terminal + terminal - Hugo + hugo
@@ -77,12 +88,90 @@

yoooo

this is one of my first articles homies. so i wil try my best to write it the best i can

- -
- + + + + +
+

comments

+
+ + + +
+
+ + diff --git a/public/posts/index.html b/public/posts/index.html index 2043b61..457e902 100644 --- a/public/posts/index.html +++ b/public/posts/index.html @@ -22,27 +22,38 @@
diff --git a/public/posts/new-test-post/index.html b/public/posts/new-test-post/index.html index cfe7f03..c7dddfb 100644 --- a/public/posts/new-test-post/index.html +++ b/public/posts/new-test-post/index.html @@ -1,5 +1,5 @@ - + @@ -22,27 +22,38 @@
@@ -54,12 +65,88 @@
- -
- + + +
+

comments

+
+ + + +
+
+ + diff --git a/public/posts/test-post/index.html b/public/posts/test-post/index.html index 67cc8e9..9f3ef5a 100644 --- a/public/posts/test-post/index.html +++ b/public/posts/test-post/index.html @@ -1,5 +1,5 @@ - + @@ -22,27 +22,38 @@
@@ -55,7 +66,7 @@
Categories: - Games + games
@@ -65,12 +76,88 @@

Introduction

This is bold text, and this is emphasized text.

Visit the Hugo website!

- -
- + + +
+

comments

+
+ + + +
+
+ + diff --git a/public/projects/index.html b/public/projects/index.html index c739bf1..1d22e45 100644 --- a/public/projects/index.html +++ b/public/projects/index.html @@ -22,27 +22,38 @@
diff --git a/public/projects/project/index.html b/public/projects/project/index.html index 99d464e..e7240e6 100644 --- a/public/projects/project/index.html +++ b/public/projects/project/index.html @@ -22,27 +22,38 @@
diff --git a/public/tags/css/index.html b/public/tags/css/index.html index 75e802b..f378d81 100644 --- a/public/tags/css/index.html +++ b/public/tags/css/index.html @@ -22,27 +22,38 @@
diff --git a/public/tags/index.html b/public/tags/index.html index 3c41ccf..71c2dde 100644 --- a/public/tags/index.html +++ b/public/tags/index.html @@ -22,27 +22,38 @@
diff --git a/public/tags/terminal-style/index.html b/public/tags/terminal-style/index.html index 7955330..9f63cd7 100644 --- a/public/tags/terminal-style/index.html +++ b/public/tags/terminal-style/index.html @@ -22,27 +22,38 @@
diff --git a/public/tags/tutorial/index.html b/public/tags/tutorial/index.html index b71ddd2..9fee6b6 100644 --- a/public/tags/tutorial/index.html +++ b/public/tags/tutorial/index.html @@ -22,27 +22,38 @@
diff --git a/static/images/avatars/avatar1.jpg b/static/images/avatars/avatar1.jpg new file mode 100644 index 0000000..9fde822 Binary files /dev/null and b/static/images/avatars/avatar1.jpg differ diff --git a/static/images/avatars/avatar2.png b/static/images/avatars/avatar2.png new file mode 100644 index 0000000..18e6dd0 Binary files /dev/null and b/static/images/avatars/avatar2.png differ diff --git a/static/images/avatars/avatar3.png b/static/images/avatars/avatar3.png new file mode 100644 index 0000000..7ede1d6 Binary files /dev/null and b/static/images/avatars/avatar3.png differ diff --git a/themes/terminal/layouts/_default/baseof.html b/themes/terminal/layouts/_default/baseof.html index 57382c5..d1a4588 100644 --- a/themes/terminal/layouts/_default/baseof.html +++ b/themes/terminal/layouts/_default/baseof.html @@ -14,19 +14,30 @@
diff --git a/themes/terminal/layouts/_default/single.html b/themes/terminal/layouts/_default/single.html index a953981..f77031a 100644 --- a/themes/terminal/layouts/_default/single.html +++ b/themes/terminal/layouts/_default/single.html @@ -21,9 +21,85 @@ {{ end }}
- {{ .Content }} + {{ .Content }}
- - + +{{ with .Site.Params.isso }} +
+

comments

+
+ + + +
+
+{{ end }} {{ end }} \ No newline at end of file diff --git a/themes/terminal/layouts/_shortcodes/chat.html b/themes/terminal/layouts/_shortcodes/chat.html new file mode 100644 index 0000000..bbc9516 --- /dev/null +++ b/themes/terminal/layouts/_shortcodes/chat.html @@ -0,0 +1,16 @@ +{{ if .Site.Params.cactusComments.enabled }} +
+ + +
+ +
+{{ end }} diff --git a/themes/terminal/static/css/styles.css b/themes/terminal/static/css/styles.css index 783ed77..01e0cf3 100644 --- a/themes/terminal/static/css/styles.css +++ b/themes/terminal/static/css/styles.css @@ -302,6 +302,260 @@ body { min-height: 100vh; } +/* Neocities button slideshow */ +.neocities-buttons { + margin-top: 1rem; + font-size: 0.85rem; +} + +.neocities-buttons strong { + display: block; + margin-bottom: 0.5rem; +} + +.button-slideshow { + width: 88px; + height: 31px; + overflow: hidden; + position: relative; +} + +.button-slideshow a { + position: absolute; + top: 0; + left: 0; + opacity: 0; + animation: buttonFade 12s infinite; +} + +.button-slideshow a:nth-child(1) { animation-delay: 0s; } +.button-slideshow a:nth-child(2) { animation-delay: 3s; } +.button-slideshow a:nth-child(3) { animation-delay: 6s; } +.button-slideshow a:nth-child(4) { animation-delay: 9s; } + +.button-slideshow a img { + display: block; + width: 88px; + height: 31px; +} + +@keyframes buttonFade { + 0% { opacity: 0; } + 4% { opacity: 1; } + 21% { opacity: 1; } + 25% { opacity: 0; } + 100% { opacity: 0; } +} + +/* Comments container */ +.comments-container { + margin: 0 auto; + width: 100%; + max-width: 700px; + padding: 1.5rem; + margin-top: 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +.comments-container h3 { + margin-top: 0; + margin-bottom: 1rem; + font-size: 1rem; +} + +/* Isso form overrides */ +#isso-thread { + color: #ecf0f1 !important; +} + +/* Hide email, website, and preview */ +.isso-postbox-email, +.isso-postbox-website, +.isso-preview, +.isso-post-action input[name="preview"], +div[class*="isso-postbox-email"], +div[class*="isso-postbox-website"] { + display: none !important; +} + +/* Fallback: hide email/website input wrappers by input name */ +.isso-input-wrapper:has(input[name="email"]), +.isso-input-wrapper:has(input[name="website"]), +.isso-input-wrapper:has(input[placeholder*="mail"]), +.isso-input-wrapper:has(input[placeholder*="ebsite"]) { + display: none !important; +} + +/* Postbox layout */ +#isso-thread .isso-postbox { + display: flex !important; + flex-direction: column !important; + gap: 0 !important; +} + +/* Textarea (comment box) */ +#isso-thread .isso-textarea-wrapper { + margin-bottom: 0.75rem !important; +} + +#isso-thread .isso-textarea, +#isso-thread textarea { + background: #1a1d23 !important; + color: #ecf0f1 !important; + border: 1px solid #2c3e50 !important; + border-radius: 12px !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.9rem !important; + padding: 0.75rem !important; + min-height: 100px !important; + width: 100% !important; + box-sizing: border-box !important; + resize: vertical !important; +} + +/* Author name input */ +#isso-thread .isso-postbox-author, +#isso-thread .isso-input-wrapper:first-of-type { + margin-bottom: 0 !important; +} + +#isso-thread input[type="text"], +#isso-thread .isso-input-wrapper input { + background: #1a1d23 !important; + color: #ecf0f1 !important; + border: 1px solid #2c3e50 !important; + border-radius: 12px !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.9rem !important; + padding: 0.5rem 0.75rem !important; + width: 100% !important; + box-sizing: border-box !important; +} + +/* Focus states */ +#isso-thread textarea:focus, +#isso-thread .isso-textarea:focus, +#isso-thread input[type="text"]:focus { + border-color: #62c4ff !important; + outline: none !important; +} + +#isso-thread textarea::placeholder, +#isso-thread input::placeholder { + color: #555 !important; +} + +/* Name + submit aligned on same row via JS-injected wrapper isn't possible, + so use CSS grid on the postbox to place them */ +#isso-thread .isso-postbox { + display: grid !important; + grid-template-columns: 1fr !important; + gap: 0.75rem !important; +} + +#isso-thread .isso-textarea-wrapper { + grid-column: 1 !important; +} + +#isso-thread .isso-auth-section { + display: flex !important; + align-items: center !important; + justify-content: space-between !important; + gap: 0.5rem !important; +} + +#isso-thread .isso-postbox-author, +#isso-thread .isso-auth-section .isso-input-wrapper:first-of-type { + flex: 1 !important; + margin-bottom: 0 !important; +} + +#isso-thread .isso-post-action { + margin: 0 !important; + padding: 0 !important; +} + +#isso-thread .isso-post-action:first-of-type { + margin-left: auto !important; +} + +#isso-thread .isso-post-action ~ .isso-post-action { + display: none !important; +} + +#isso-thread .isso-post-action input[type="submit"], +#isso-thread .isso-postbox-author input, +#isso-thread .isso-input-wrapper:first-of-type input { + height: 36px !important; + box-sizing: border-box !important; +} + +#isso-thread .isso-postbox-author input, +#isso-thread .isso-input-wrapper:first-of-type input { + width: 100% !important; + min-width: 180px !important; +} + +#isso-thread input[type="submit"] { + background: #62c4ff !important; + color: #222225 !important; + border: none !important; + border-radius: 12px !important; + padding: 0.5rem 1.25rem !important; + font-family: 'SF Mono', 'Menlo', monospace !important; + font-size: 0.85rem !important; + font-weight: 600 !important; + cursor: pointer !important; + transition: background 0.2s ease !important; +} + +#isso-thread input[type="submit"]:hover { + background: #4ab0ed !important; +} + +/* Custom comment avatars */ +.isso-custom-avatar { + width: 48px !important; + height: 48px !important; + border-radius: 50% !important; + object-fit: cover !important; +} + +/* Comment styling */ +#isso-thread .isso-comment { + border-left: 2px solid #2c3e50 !important; + padding: 0.75rem !important; + padding-left: 1rem !important; + margin-bottom: 1rem !important; + margin-top: 1rem !important; +} + +#isso-thread .isso-comment-header { + color: #a3abba !important; + font-size: 0.8rem !important; + margin-bottom: 0.5rem !important; +} + +#isso-thread .isso-text-wrapper { + color: #ecf0f1 !important; + line-height: 1.5 !important; +} + +#isso-thread .isso-comment-footer { + color: #666 !important; + font-size: 0.75rem !important; + margin-top: 0.5rem !important; +} + +#isso-thread .isso-comment-footer a { + color: #a3abba !important; + text-decoration: none !important; +} + +#isso-thread .isso-comment-footer a:hover { + color: #62c4ff !important; +} + :root { --global-font-size: 15px; --global-line-height: 1.4em; diff --git a/themes/terminal/static/js/topbar.js b/themes/terminal/static/js/topbar.js index 9c258cf..f305ff3 100644 --- a/themes/terminal/static/js/topbar.js +++ b/themes/terminal/static/js/topbar.js @@ -1,5 +1,5 @@ const miniHeader = document.getElementById('mini-header'); -const texts = ['use linux', 'i hate css', 'gpl everything', 'made with love']; // add your random text here +const texts = ['use linux', 'soup for my family', 'gpl everything']; // add your random text here const text = texts[Math.floor(Math.random() * texts.length)]; let charIndex = 0; @@ -7,7 +7,7 @@ function typeText() { if (charIndex < text.length) { miniHeader.textContent += text.charAt(charIndex); charIndex++; - setTimeout(typeText, 50); // adjust the typing speed here + setTimeout(typeText, 50); } }