From 47fcc566884d7078c153cdce9fb62399fcca5d9e Mon Sep 17 00:00:00 2001 From: ops Date: Wed, 16 Sep 2026 21:54:30 +0000 Subject: Initial Commit --- .../openpgpkey/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp | Bin 0 -> 427 bytes .../luuduct.ai/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp | Bin 0 -> 427 bytes www/.well-known/openpgpkey/luuduct.ai/policy | 0 www/.well-known/openpgpkey/policy | 0 www/form.css | 190 +++++++++++++++++++++ www/index.html | 153 +++++++++++++++++ www/message.html | 87 ++++++++++ www/styles.css | 123 +++++++++++++ 8 files changed, 553 insertions(+) create mode 100644 www/.well-known/openpgpkey/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp create mode 100644 www/.well-known/openpgpkey/luuduct.ai/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp create mode 100644 www/.well-known/openpgpkey/luuduct.ai/policy create mode 100644 www/.well-known/openpgpkey/policy create mode 100644 www/form.css create mode 100644 www/index.html create mode 100644 www/message.html create mode 100644 www/styles.css (limited to 'www') diff --git a/www/.well-known/openpgpkey/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp b/www/.well-known/openpgpkey/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp new file mode 100644 index 0000000..f0fa994 Binary files /dev/null and b/www/.well-known/openpgpkey/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp differ diff --git a/www/.well-known/openpgpkey/luuduct.ai/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp b/www/.well-known/openpgpkey/luuduct.ai/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp new file mode 100644 index 0000000..f0fa994 Binary files /dev/null and b/www/.well-known/openpgpkey/luuduct.ai/hu/t76q8xqkeassgy1kr38re1ppj6cpc1dp differ diff --git a/www/.well-known/openpgpkey/luuduct.ai/policy b/www/.well-known/openpgpkey/luuduct.ai/policy new file mode 100644 index 0000000..e69de29 diff --git a/www/.well-known/openpgpkey/policy b/www/.well-known/openpgpkey/policy new file mode 100644 index 0000000..e69de29 diff --git a/www/form.css b/www/form.css new file mode 100644 index 0000000..e2e42ae --- /dev/null +++ b/www/form.css @@ -0,0 +1,190 @@ +/* + * Copyright (C) 2026 Doan Luu Duc Tai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +.ascii-form-container { + width: 80ch; + max-width: 100%; + margin: 16px 0; + display: flex; + flex-direction: column; + gap: 16px; + box-sizing: border-box; +} + +.ascii-box { + display: flex; + flex-direction: column; + width: 100%; +} + +.ascii-bar { + font: inherit; + line-height: 1.2; + white-space: pre; + user-select: none; + color: inherit; +} + +.ascii-body { + display: flex; + align-items: stretch; + min-height: 1.5em; + background-repeat: repeat-y; + background-position: left top, right top; + background-image: + url("data:image/svg+xml;utf8,|"), + url("data:image/svg+xml;utf8,|"); +} + +@media (prefers-color-scheme: dark) { + .ascii-body { + background-image: + url("data:image/svg+xml;utf8,|"), + url("data:image/svg+xml;utf8,|"); + } +} + +.ascii-content-padding { + display: flex; + align-items: center; + width: 100%; + padding: 0 2ch; + box-sizing: border-box; +} + +.ascii-prompt { + color: #090; + font-weight: bold; + user-select: none; + margin-right: 1ch; +} + +.ascii-input, +.ascii-textarea { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + background: transparent; + border: none; + outline: none; + font: inherit; + color: inherit; + padding: 0; + margin: 0; + width: 100%; + box-sizing: border-box; + border-radius: 0; + line-height: 1.5; +} + +.ascii-textarea { + display: block; + resize: none; + overflow-y: hidden; + min-height: 6em; + field-sizing: content; +} + +.ascii-input::placeholder, +.ascii-textarea::placeholder { + color: #666; + opacity: 0.7; +} + +@media (prefers-color-scheme: dark) { + .ascii-prompt { + color: #0f0; + } + .ascii-input::placeholder, + .ascii-textarea::placeholder { + color: #555; + } +} + +.ascii-actions { + display: flex; + gap: 2ch; + margin-top: 8px; +} + +.ascii-btn { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + background: transparent; + border: none; + outline: none; + font: inherit; + padding: 0; + margin: 0; + cursor: pointer; + white-space: pre; + font-weight: bold; +} + +.ascii-btn-submit { + color: #090; +} + +.ascii-btn-reset { + color: #a00; +} + +.ascii-btn-submit:hover, +.ascii-btn-submit:focus { + background: #090; + color: #fff; +} + +.ascii-btn-reset:hover, +.ascii-btn-reset:focus { + background: #a00; + color: #fff; +} + +@media (prefers-color-scheme: dark) { + .ascii-btn-submit { + color: #0f0; + } + .ascii-btn-submit:hover, + .ascii-btn-submit:focus { + background: #0f0; + color: #000; + } + .ascii-btn-reset { + color: #f33; + } + .ascii-btn-reset:hover, + .ascii-btn-reset:focus { + background: #f33; + color: #000; + } +} + +.ascii-status { + font: inherit; + color: #06c; + white-space: pre-wrap; + padding: 4px 0; + user-select: none; +} + +@media (prefers-color-scheme: dark) { + .ascii-status { + color: #6cf; + } +} diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..f02c538 --- /dev/null +++ b/www/index.html @@ -0,0 +1,153 @@ + + + + + + + + Doan Luu Duc Tai + + + + + + +
+ +
[ JS-free ]
+ +
+ +
+
+
+Home  Projects  Services  Contact  Message Me
+
+
++------------------------------------------------------------------------------+
+|                                                                              |
+|                               Doan Luu Duc Tai                               |
+|                                                                              |
+|                            Email: doan@luuduct.ai                            |
+|                                 SimpleX Chat                                 |
+|                                    Signal                                    |
+|                                                                              |
+|                GPG: 8990FFC0F9D95FAA4C04520BADF3DE23F687C623                 |
+|                                   Cv25519                                    |
+|                                                                              |
++------------------------------------------------------------------------------+
+
+
+
+
+Projects
+________________________________________________________________________________
+
+
+csprdg
+    Conjecturally Secure Pseudo-Random Document Generator
+
+
+csprsg
+    Conjecturally Secure Pseudo-Random Spreadsheet Generator
+
+
+fileshare
+    LAN File Server
+
+
+vfetch
+    neofetch but the ascii part is a video
+
+
+
+
+Services
+________________________________________________________________________________
+
+
+git.doan.luuduct.ai
+* A cgit instance, functional without JS.
+
+    Personal Git repositories
+
+
+search.doan.luuduct.ai
+* A SearXNG instance, functional without JS.
+
+    Private search engine
+
+
+meet.doan.luuduct.ai
+* A MiroTalk instance, JS-required, non-LibreJS-compliant, AGPLv3-licensed.
+
+    Video conferencing
+
+
+
+
+Contact
+________________________________________________________________________________
+ ___   ___   _   _  _   _   _   _ _   _   ___  _   _  ___   _____ _   ___
+|   \ / _ \ /_\ | \| | | | | | | | | | | |   \| | | |/ __| |_   _/_\ |_ _|
+| |) | (_) / _ \| .` | | |_| |_| | |_| | | |) | |_| | (__    | |/ _ \ | |
+|___/ \___/_/ \_\_|\_| |____\___/ \___/  |___/ \___/ \___|   |_/_/ \_\___|
+
+
+
+Message:
+
+    [ Send Encrypted Message ]
+
+
+Email:
+
+    doan@luuduct.ai
+
+
+GPG:
+
+    8990FFC0F9D95FAA4C04520BADF3DE23F687C623
+    Cv25519
+
+
+SimpleX Chat
+
+    SimpleX Contact Link
+
+
+Signal
+
+    @v3QKypba7PzWPAuv2Eu2wRFgUVDuYDhm.73
+
+
+
+
+				
+ +
+
+ + + diff --git a/www/message.html b/www/message.html new file mode 100644 index 0000000..a463a1c --- /dev/null +++ b/www/message.html @@ -0,0 +1,87 @@ + + + + + + + + Message Me - Doan Luu Duc Tai + + + + + + + +
+ +
[ JS-free ]
+ +
+ +
+
+				
+ +
+ +
+
+--[ Reply Contact (Optional) ]------------------------------------------------+
+
+
+ > + +
+
+
+------------------------------------------------------------------------------+
+
+ +
+
+--[ Message Body ]------------------------------------------------------------+
+
+
+ +
+
+
+------------------------------------------------------------------------------+
+
+ +
+ + +
+ +
+ +
+________________________________________________________________________________
+
+Return to Home Page
+				
+ +
+
+ + + diff --git a/www/styles.css b/www/styles.css new file mode 100644 index 0000000..35b7695 --- /dev/null +++ b/www/styles.css @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2026 Doan Luu Duc Tai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +body { + overflow-y: scroll; + font: 16px monospace, monospace; + margin: 0; + padding: 0; +} + +pre { + margin: 0; + overflow-x: auto; +} + +a { + color: #06c; + text-decoration: none; +} + +.good { + color: #090; + font-weight: bold; +} + +.warn { + color: #c90; + font-weight: bold; +} + +.logo { + color: #a00; + text-decoration: none; +} + +.logo:hover { + text-decoration: none; +} + +.badge { + position: absolute; + top: 16px; + left: calc(50% + 280px); + color: #090; + font-weight: bold; + white-space: nowrap; +} + +#page { + display: table; + margin: 16px auto; + position: relative; +} + +#content { + max-width: 80ch; + width: 100%; +} + +.good a, .warn a { + color: inherit; + text-decoration: underline; +} + +.good a { + text-decoration-style: wavy; +} + +.warn a { + text-decoration-style: dotted; +} + +@media (prefers-color-scheme: dark) { + body { + background: #000; + color: #fff; + } + + a { + color: #6cf; + } + + .logo { + color: #f33; + } + + .badge { + color: #0f0; + } + + .good { + color: #0f0; + } + + .warn { + color: #ff0; + } +} + +@media (max-width: 999px) { + body { + font-size: 1.94vw; + } + + .badge { + left: auto; + right: 16px; + } +} -- cgit v1.2.3