diff options
| -rwxr-xr-x | scripts/seed.sh | 287 | ||||
| -rw-r--r-- | seed/bios.html | 109 | ||||
| -rw-r--r-- | seed/signatures.html | 60 |
3 files changed, 422 insertions, 34 deletions
diff --git a/scripts/seed.sh b/scripts/seed.sh index 59971dc..4cded48 100755 --- a/scripts/seed.sh +++ b/scripts/seed.sh @@ -2,60 +2,279 @@ set -euo pipefail DB_PATH="shrine/pagoda.db" +SEED_DIR="seed" if [ ! -f "$DB_PATH" ]; then echo "Database not found at $DB_PATH" exit 1 fi -HASH=$(npx -y bcryptjs-cli password 2>/dev/null) -OWNER_DATE=$(date -v-4m +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -d "4 months ago" +"%Y-%m-%dT%H:%M:%SZ") - -echo "Generating 99 unique citizens..." -npx -y @faker-js/cli firstName >/dev/null 2>&1 -FAKER_MODULES=$(find ~/.npm/_npx -path "*/@faker-js/cli/bin/faker.js" -print -quit 2>/dev/null) -FAKER_MODULES="${FAKER_MODULES%/@faker-js/cli/bin/faker.js}" - -NAMES=$(NODE_PATH="$FAKER_MODULES" node -e " -var f = require('@faker-js/faker').faker; -var now = Date.now(); -var threeMonthsAgo = new Date(now); -threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3); -var range = now - threeMonthsAgo.getTime(); -var seen = new Set(); -while (seen.size < 99) { - var first = f.person.firstName(); - var username = first.toLowerCase().replace(/[^a-z]/g, ''); - if (username.length >= 3 && username.length <= 32 && !seen.has(username)) { - seen.add(username); - var last = f.person.lastName(); - var joinDate = new Date(threeMonthsAgo.getTime() + Math.random() * range).toISOString().replace(/\.\d{3}Z/, 'Z'); - console.log(username + '|' + first + ' ' + last + '|' + joinDate); - } +EXISTING=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM users;") +if [ "$EXISTING" -gt 0 ]; then + echo "Database already has $EXISTING users, skipping seed" + exit 0 +fi + +HASH=$(htpasswd -nbBC 10 "" password | cut -d: -f2) + +FIRST_NAMES=( + Aiko Bram Cleo Dax Elara Fern Gideon Hana Idris Jade + Kael Luna Milo Nyx Orion Piper Quinn Rune Sage Thorn + Uma Vesper Wren Xara Yuki Zara Asher Blaze Cedar Dove + Echo Flint Haven Ivy Jet Kit Lark Moss Nova Onyx + Pearl Quill Rain Sky Terra Vale Wolf Yew Zen Aria + Bay Coral Drift Elm Fox Gale Hawk Iris Juniper Kai + Leaf Maple Nimbus Oak Pine River Storm Thistle Umber Violet + Willow Birch Cliff Dawn Eve Frost Glen Heath Kite Lotus + Meadow Night Olive Petal Reed Sol Tide Vine Wynn Briar + Cloud Dune Fable Grove Haze Isle Kelp Lyric Mars Nectar + Opal Plum Robin Star Twig Veil Wave Yarrow Zinnia Aster + Brook Cinder Delta Ember Fjord Garnet Holly Indigo Jasper Lichen + Mist Nettle Orbit Poppy Reef Sable Talon Vapor Wisp Aspen + Brine Cobalt Dew Eon Flame Glint Heather Ink Knoll Lumen + Moth Nile Pixel Quartz Ripple Shade Torrent Umbra Verge Zephyr +) + +LAST_NAMES=( + Ashworth Blackwood Clearwater Duskfall Evergreen Foxglove Goldleaf Hawthorn + Ironbark Junewood Keelshore Larkspur Moonvale Nightbloom Oakshade Pinecrest + Quillstone Ravenhill Silverbrook Thornwick Underhill Verdant Westwind Zenith + Ashford Birchwood Copperfield Dawnstar Elderwood Fernside Greymist Holloway + Icemere Jadeheart Kestrel Lakeshore Mossglen Northlight Overbrook Peakwood + Quicksilver Rosewood Stonebridge Tidewater Umbervale Vineheart Wildmere Ashcroft + Brightwell Coldspring Deepwood Evenfall Frostmere Glendale Hartwood Ivybridge + Jasperfall Kirkwood Longmeadow Millbrook Newgrove Oldfield Ridgemont Sundale + Thistlewood Upland Valewood Wintermere Brookfield Creekside Dellwood Eastmore + Fairhaven Greenwood Highcliff Inkwell Lakewood Nightvale Pondcress Rustwood +) + +PRONOUNS=( + "zir/zem" "voi/vol" "qui/quem" "sol/solis" "lux/luxis" + "nim/nir" "dra/drem" "pix/pixis" "nyx/nyxis" "vex/vir" + "kal/kis" "ryn/rynis" "zel/zem" "orb/orbis" "mox/moxis" + "jin/jinis" "tav/tavis" "wren/wrenis" "flux/fluxis" "ash/ashis" + "glyph/glyphir" "hex/haxis" "nil/nilis" "arc/arcis" "cyr/cyris" + "dex/dexis" "fen/fenis" "kez/kezis" "nym/nymis" "thri/threm" +) + +LOCATIONS=( + "Portland, Oregon" "London, England" "Tokyo, Japan" "Berlin, Germany" "Melbourne, Australia" + "Toronto, Canada" "Brooklyn, New York" "Seattle, Washington" "Amsterdam, Netherlands" "Seoul, South Korea" + "Austin, Texas" "Glasgow, Scotland" "Lisbon, Portugal" "Chicago, Illinois" "Stockholm, Sweden" + "Vancouver, Canada" "Dublin, Ireland" "Paris, France" "Denver, Colorado" "Cape Town, South Africa" + "San Francisco, California" "Helsinki, Finland" "Singapore" "Oslo, Norway" "Montreal, Canada" + "Osaka, Japan" "Manchester, England" "Barcelona, Spain" "Wellington, New Zealand" "Reykjavik, Iceland" + "Buenos Aires, Argentina" "Prague, Czech Republic" "Bangkok, Thailand" "Taipei, Taiwan" "Nairobi, Kenya" + "Lima, Peru" "Kyoto, Japan" "Edinburgh, Scotland" "Bologna, Italy" "Zurich, Switzerland" + "Copenhagen, Denmark" "Marrakech, Morocco" "Hanoi, Vietnam" "Bogota, Colombia" "Tallinn, Estonia" + "Krakow, Poland" "Kuala Lumpur, Malaysia" "Mumbai, India" "Mexico City, Mexico" "Christchurch, New Zealand" +) + +BIOS=() +while IFS= read -r line; do + [ -n "$line" ] && BIOS+=("$line") +done < "$SEED_DIR/bios.html" + +SIGS=() +while IFS= read -r line; do + [ -n "$line" ] && SIGS+=("$line") +done < "$SEED_DIR/signatures.html" + +BIO_COUNT=${#BIOS[@]} +SIG_COUNT=${#SIGS[@]} + +TOTAL_USERS=$(( RANDOM % 31 + 120 )) +CITIZEN_COUNT=$(( TOTAL_USERS - 1 )) + +ADMIN_COUNT=$(( CITIZEN_COUNT * 2 / 100 )) +MOD_COUNT=$(( CITIZEN_COUNT * 3 / 100 )) +BANNED_COUNT=$(( CITIZEN_COUNT * 4 / 100 )) +DISABLED_COUNT=$(( CITIZEN_COUNT * 3 / 100 )) +UNVERIFIED_COUNT=$(( CITIZEN_COUNT * 5 / 100 )) +[ "$ADMIN_COUNT" -lt 1 ] && ADMIN_COUNT=1 +[ "$MOD_COUNT" -lt 1 ] && MOD_COUNT=1 +[ "$BANNED_COUNT" -lt 1 ] && BANNED_COUNT=1 +[ "$DISABLED_COUNT" -lt 1 ] && DISABLED_COUNT=1 +[ "$UNVERIFIED_COUNT" -lt 1 ] && UNVERIFIED_COUNT=1 + +SLOTS=() +for ((i=0; i<CITIZEN_COUNT; i++)); do SLOTS+=("$i"); done +for ((i=${#SLOTS[@]}-1; i>0; i--)); do + j=$(( RANDOM % (i + 1) )) + tmp=${SLOTS[$i]}; SLOTS[$i]=${SLOTS[$j]}; SLOTS[$j]=$tmp +done + +BIO_MAP="" +for ((i=0; i<BIO_COUNT && i<${#SLOTS[@]}; i++)); do + BIO_MAP="${BIO_MAP},${SLOTS[$i]}:${i}," +done + +SIG_POOL=() +for ((i=0; i<BIO_COUNT && i<${#SLOTS[@]}; i++)); do SIG_POOL+=("${SLOTS[$i]}"); done +for ((i=${#SIG_POOL[@]}-1; i>0; i--)); do + j=$(( RANDOM % (i + 1) )) + tmp=${SIG_POOL[$i]}; SIG_POOL[$i]=${SIG_POOL[$j]}; SIG_POOL[$j]=$tmp +done + +SIG_MAP="" +for ((i=0; i<SIG_COUNT && i<${#SIG_POOL[@]}; i++)); do + SIG_MAP="${SIG_MAP},${SIG_POOL[$i]}:${i}," +done + +random_date_between() { + local start_epoch=$1 + local end_epoch=$2 + local range=$(( end_epoch - start_epoch )) + local offset=$(( RANDOM * RANDOM % range )) + echo $(( start_epoch + offset )) } -") + +NOW_EPOCH=$(date +%s) +THREE_MONTHS_AGO=$(date -v-3m +%s 2>/dev/null || date -d "3 months ago" +%s) +ONE_MONTH_AGO=$(date -v-1m +%s 2>/dev/null || date -d "1 month ago" +%s) +ONE_MONTH_AHEAD=$(date -v+1m +%s 2>/dev/null || date -d "1 month" +%s) +FOUR_MONTHS_AGO=$(date -v-4m +%s 2>/dev/null || date -d "4 months ago" +%s) + +OWNER_DATE=$(date -r $FOUR_MONTHS_AGO +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -d "@$FOUR_MONTHS_AGO" +"%Y-%m-%dT%H:%M:%SZ") +OWNER_SEEN=$(date -u +"%Y-%m-%dT%H:%M:%SZ") +OWNER_BIO='<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">A really awesome cool slick ninja dinosaur thingy</em></i></p>' +OWNER_SIG='<p class="editor-paragraph"><span style="white-space: pre-wrap;">Love and Ciao</span></p>' SQL_FILE=$(mktemp) trap "rm -f $SQL_FILE" EXIT -printf '%s' "INSERT OR IGNORE INTO users (username, email, password_hash, display_name, role, email_verified, created_at, updated_at) VALUES " > "$SQL_FILE" -printf '%s' "('cr', '[email protected]', '${HASH}', 'Bobby', 'owner', 1, '${OWNER_DATE}', '${OWNER_DATE}')" >> "$SQL_FILE" +escape_sql() { + printf '%s' "$1" | sed "s/'/''/g" +} + +echo "BEGIN TRANSACTION;" > "$SQL_FILE" + +OWNER_BIO_ESC=$(escape_sql "$OWNER_BIO") +OWNER_SIG_ESC=$(escape_sql "$OWNER_SIG") +cat >> "$SQL_FILE" << OWNERSQL +INSERT OR IGNORE INTO users ( + username, email, password_hash, display_name, role, email_verified, + jade, honor, pronouns, location, bio, signature, birthday, last_seen_at, + ip, created_at, updated_at +) VALUES ( + 'master', '[email protected]', '${HASH}', 'Master', 'owner', 1, + 1000, 500, 'sol/solis', 'The Cloud', + '${OWNER_BIO_ESC}', '${OWNER_SIG_ESC}', + '1904-03-15T00:00:00Z', '${OWNER_SEEN}', + '127.0.0.1', '${OWNER_DATE}', '${OWNER_DATE}' +); +OWNERSQL + +echo "Generating $CITIZEN_COUNT citizens..." + +USED_USERNAMES="|" COUNT=0 -while IFS='|' read -r USERNAME DISPLAY JOIN_DATE; do - DISPLAY=$(echo "$DISPLAY" | sed "s/'/''/g") +for ((i=0; i<CITIZEN_COUNT; i++)); do + USERNAME="" + while true; do + FIRST=${FIRST_NAMES[$(( RANDOM % ${#FIRST_NAMES[@]} ))]} + USERNAME=$(echo "$FIRST" | tr '[:upper:]' '[:lower:]') + if [[ "$USED_USERNAMES" != *"|${USERNAME}|"* ]]; then + break + fi + LAST=${LAST_NAMES[$(( RANDOM % ${#LAST_NAMES[@]} ))]} + USERNAME=$(echo "${FIRST}${LAST}" | tr '[:upper:]' '[:lower:]') + if [[ "$USED_USERNAMES" != *"|${USERNAME}|"* ]]; then + break + fi + done + USED_USERNAMES="${USED_USERNAMES}${USERNAME}|" + + DISPLAY_FIRST=${FIRST_NAMES[$(( RANDOM % ${#FIRST_NAMES[@]} ))]} + DISPLAY_LAST=${LAST_NAMES[$(( RANDOM % ${#LAST_NAMES[@]} ))]} + DISPLAY_NAME="$DISPLAY_FIRST $DISPLAY_LAST" + + PRONOUN=${PRONOUNS[$(( RANDOM % ${#PRONOUNS[@]} ))]} + LOC=${LOCATIONS[$(( RANDOM % ${#LOCATIONS[@]} ))]} + + JOIN_EPOCH=$(random_date_between $THREE_MONTHS_AGO $NOW_EPOCH) + JOIN_DATE=$(date -r $JOIN_EPOCH +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -d "@$JOIN_EPOCH" +"%Y-%m-%dT%H:%M:%SZ") + + SEEN_OFFSET=$(( RANDOM % (7 * 24 * 3600) )) + SEEN_EPOCH=$(( NOW_EPOCH - SEEN_OFFSET )) + LAST_SEEN=$(date -r $SEEN_EPOCH +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -d "@$SEEN_EPOCH" +"%Y-%m-%dT%H:%M:%SZ") + + BDAY_EPOCH=$(random_date_between $ONE_MONTH_AGO $ONE_MONTH_AHEAD) + BDAY_MONTH=$(date -r $BDAY_EPOCH +"%m" 2>/dev/null || date -d "@$BDAY_EPOCH" +"%m") + BDAY_DAY=$(date -r $BDAY_EPOCH +"%d" 2>/dev/null || date -d "@$BDAY_EPOCH" +"%d") + BIRTHDAY="1904-${BDAY_MONTH}-${BDAY_DAY}T00:00:00Z" + + JADE=$(( RANDOM % 500 )) + HONOR=$(( RANDOM % 200 )) + + BIO="" + SIG="" + if [[ "$BIO_MAP" == *",${i}:"* ]]; then + BIO_IDX=$(echo "$BIO_MAP" | sed "s/.*,${i}:\([0-9]*\),.*/\1/") + BIO=$(escape_sql "${BIOS[$BIO_IDX]}") + fi + if [[ "$SIG_MAP" == *",${i}:"* ]]; then + SIG_IDX=$(echo "$SIG_MAP" | sed "s/.*,${i}:\([0-9]*\),.*/\1/") + SIG=$(escape_sql "${SIGS[$SIG_IDX]}") + fi + + ROLE="member" + EMAIL_VERIFIED=1 + BANNED=0 + BANNED_AT="" + BANNED_REASON="" + BANNED_BY="" + DISABLED=0 + DISABLED_AT="" + DISABLED_REASON="" + DISABLED_BY="" + LINE_NUM=$(( i + 1 )) + + if [ "$LINE_NUM" -le "$ADMIN_COUNT" ]; then + ROLE="admin" + elif [ "$LINE_NUM" -le "$((ADMIN_COUNT + MOD_COUNT))" ]; then + ROLE="moderator" + elif [ "$LINE_NUM" -le "$((ADMIN_COUNT + MOD_COUNT + BANNED_COUNT))" ]; then + BANNED=1 + BANNED_AT="'${JOIN_DATE}'" + BANNED_REASON="'Violated community guidelines'" + BANNED_BY=1 + elif [ "$LINE_NUM" -le "$((ADMIN_COUNT + MOD_COUNT + BANNED_COUNT + DISABLED_COUNT))" ]; then + DISABLED=1 + DISABLED_AT="'${JOIN_DATE}'" + DISABLED_REASON="'Account temporarily suspended'" + DISABLED_BY=1 + elif [ "$LINE_NUM" -le "$((ADMIN_COUNT + MOD_COUNT + BANNED_COUNT + DISABLED_COUNT + UNVERIFIED_COUNT))" ]; then + EMAIL_VERIFIED=0 + fi + + DISPLAY_ESC=$(escape_sql "$DISPLAY_NAME") + LOC_ESC=$(escape_sql "$LOC") - printf '%s' ", ('${USERNAME}', '${USERNAME}@pagoda.local', '${HASH}', '${DISPLAY}', 'member', 1, '${JOIN_DATE}', '${JOIN_DATE}')" >> "$SQL_FILE" + printf "INSERT OR IGNORE INTO users (username, email, password_hash, display_name, role, email_verified, jade, honor, pronouns, location, bio, signature, birthday, last_seen_at, account_banned, banned_at, banned_reason, banned_by, account_disabled, disabled_at, disabled_reason, disabled_by, ip, created_at, updated_at) VALUES ('%s', '%[email protected]', '%s', '%s', '%s', %s, %s, %s, '%s', '%s', '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s, %s, '127.0.0.1', '%s', '%s');\n" \ + "$USERNAME" "$USERNAME" "$HASH" "$DISPLAY_ESC" "$ROLE" "$EMAIL_VERIFIED" \ + "$JADE" "$HONOR" "$PRONOUN" "$LOC_ESC" "$BIO" "$SIG" \ + "$BIRTHDAY" "$LAST_SEEN" \ + "$BANNED" "${BANNED_AT:-NULL}" "${BANNED_REASON:-NULL}" "${BANNED_BY:-NULL}" \ + "$DISABLED" "${DISABLED_AT:-NULL}" "${DISABLED_REASON:-NULL}" "${DISABLED_BY:-NULL}" \ + "$JOIN_DATE" "$JOIN_DATE" >> "$SQL_FILE" COUNT=$((COUNT + 1)) - echo " [$COUNT/99] $USERNAME ($DISPLAY)" -done <<< "$NAMES" + STATUS="" + if [ "$BANNED" -eq 1 ]; then STATUS=" [banned]"; + elif [ "$DISABLED" -eq 1 ]; then STATUS=" [disabled]"; + elif [ "$EMAIL_VERIFIED" -eq 0 ]; then STATUS=" [unverified]"; + elif [ "$ROLE" != "member" ]; then STATUS=" [$ROLE]"; + fi + echo " [$COUNT/$CITIZEN_COUNT] $USERNAME ($DISPLAY_NAME)$STATUS" +done -echo ";" >> "$SQL_FILE" +echo "COMMIT;" >> "$SQL_FILE" echo "Inserting into database..." sqlite3 "$DB_PATH" < "$SQL_FILE" TOTAL=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM users;") -echo "Done. Total users: $TOTAL"
\ No newline at end of file +echo "Done. Total users: $TOTAL (admins: $ADMIN_COUNT, mods: $MOD_COUNT, banned: $BANNED_COUNT, disabled: $DISABLED_COUNT, unverified: $UNVERIFIED_COUNT)"
\ No newline at end of file diff --git a/seed/bios.html b/seed/bios.html new file mode 100644 index 0000000..0fd4b2d --- /dev/null +++ b/seed/bios.html @@ -0,0 +1,109 @@ +<p class="editor-paragraph"><span style="white-space: pre-wrap;">just a small web enthusiast making things on the internet </span><br><span style="white-space: pre-wrap;">i collect </span><b><strong class="editor-bold" style="white-space: pre-wrap;">blinkies</strong></b><span style="white-space: pre-wrap;"> and </span><b><strong class="editor-bold" style="white-space: pre-wrap;">web badges</strong></b><span style="white-space: pre-wrap;"> like they're going out of style (they did, that's the point)</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">dreaming in hex colors since 2003</em></i><br><br><span style="white-space: pre-wrap;">html css and vibes. no javascript allowed on my lawn </span><br><span style="white-space: pre-wrap;">current mood: ๐</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">welcome to my corner of the web! </span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">interests:</strong></b><span style="white-space: pre-wrap;"> pixel art, retro gaming, web design, cats</span><br><b><strong class="editor-bold" style="white-space: pre-wrap;">currently playing:</strong></b><span style="white-space: pre-wrap;"> something old and good</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">professional internet explorer (not the browser) ๐</span><br><br><span style="white-space: pre-wrap;">i make websites for fun and refuse to learn react</span><br><i><em class="editor-italic" style="white-space: pre-wrap;">the old web was better and i will die on this hill</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">hi i'm a digital gardener tending my little web plot ๐ฑ</span><br><span style="white-space: pre-wrap;">if you like what you see, sign my guestbook!</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">STATUS:</strong></b><span style="white-space: pre-wrap;"> perpetually under construction ๐ง</span><br><br><span style="white-space: pre-wrap;">webmaster, pixel pusher, css wizard</span><br><span style="white-space: pre-wrap;">making the web weird again one div at a time</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ต linux user, pixel artist, coffee drinker ๐ต</span><br><br><span style="white-space: pre-wrap;">building my own little world out of html and spite</span><br><i><em class="editor-italic" style="white-space: pre-wrap;">powered by ramen and determination</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i put the </span><i><em class="editor-italic" style="white-space: pre-wrap;">fun</em></i><span style="white-space: pre-wrap;"> in </span><b><strong class="editor-bold" style="white-space: pre-wrap;">function</strong></b><br><br><span style="white-space: pre-wrap;">amateur coder who thinks tables for layout was peak web design</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">nostalgic for the early web โจ geocities refugee</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">skills:</strong></b><span style="white-space: pre-wrap;"> html, css, ms paint, being online too much</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">โญ collector of web things โญ</span><br><span style="white-space: pre-wrap;">buttons, blinkies, stamps, and bad opinions</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">i have mass amounts of bookmarks and zero regrets</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">hi!! i like drawing and making websites ๐จ</span><br><span style="white-space: pre-wrap;">my art is mediocre but my css is </span><b><strong class="editor-bold" style="white-space: pre-wrap;">immaculate</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">yo i just think personal websites are neat</span><br><br><span style="white-space: pre-wrap;">recovering social media addict. this is my therapy</span><br><span style="white-space: pre-wrap;">๐ฅ๏ธ best viewed in 1024x768</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">you have entered my domain</em></i><br><br><span style="white-space: pre-wrap;">i write code during the day and worse code at night</span><br><span style="white-space: pre-wrap;">hobbyist web developer since dial-up was a thing</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ธ amateur photographer and web designer ๐ธ</span><br><br><span style="white-space: pre-wrap;">i believe in the small web and also in naps</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">web revival is real</strong></b><span style="white-space: pre-wrap;"> and i'm here for every pixel of it</span><br><br><span style="white-space: pre-wrap;">musician, artist, professional overthinker</span><br><span style="white-space: pre-wrap;">๐ธ check out my music page!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i spend too much time customizing my site and not enough time adding content</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">it's about the journey not the destination</em></i><span style="white-space: pre-wrap;"> (the journey is CSS)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ฑ cat parent, tea enthusiast, web builder</span><br><br><span style="white-space: pre-wrap;">started making websites in middle school and never stopped</span><br><b><strong class="editor-bold" style="white-space: pre-wrap;">frames and marquees forever</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">just here to vibe and make weird little websites</span><br><span style="white-space: pre-wrap;">my code is spaghetti and i wouldn't have it any other way ๐</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">old soul on the new web ๐พ</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">fav things:</strong></b><span style="white-space: pre-wrap;"> bitmap fonts, tiled backgrounds, visitor counters</span><br><span style="white-space: pre-wrap;">keeping the spirit of web 1.0 alive</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ฆ creature of the night and the internet ๐ฆ</span><br><br><span style="white-space: pre-wrap;">gothic web design is an art form and i am its humble practitioner</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">hello world! ๐</span><br><span style="white-space: pre-wrap;">i like to tinker with things on the web</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">forever adding new pages to my site that i will never finish</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">part-time webmaster, full-time nerd ๐ค</span><br><br><span style="white-space: pre-wrap;">i think every person deserves their own website</span><br><span style="white-space: pre-wrap;">the algorithm-free web is the </span><b><strong class="editor-bold" style="white-space: pre-wrap;">best</strong></b><span style="white-space: pre-wrap;"> web</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ making colorful things on the internet since forever</span><br><br><span style="white-space: pre-wrap;">designer by trade, web nerd by choice</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i don't have a brand, i have a website. there's a difference</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">current hyperfixation:</strong></b><span style="white-space: pre-wrap;"> CSS art</span><br><i><em class="editor-italic" style="white-space: pre-wrap;">previous hyperfixation: also CSS art</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐น๏ธ retro game collector and web tinkerer</span><br><br><span style="white-space: pre-wrap;">my website has more pages than visitors and that's ok</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">local weirdo making websites in the year 20XX</span><br><span style="white-space: pre-wrap;">anti-minimalism activist ๐ช</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">more is more</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ต tea, code, repeat</span><br><br><span style="white-space: pre-wrap;">freelance illustrator who spends more time on their personal site than on client work</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">in a committed relationship with my text editor</em></i><br><br><span style="white-space: pre-wrap;">full stack web developer (html + css = full stack right?)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ป spreading good vibes across the world wide web</span><br><br><span style="white-space: pre-wrap;">i believe in under construction gifs and background music autoplay</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">if you're reading this, you're cool ๐</span><br><br><span style="white-space: pre-wrap;">internet archaeologist and web preservationist</span><br><b><strong class="editor-bold" style="white-space: pre-wrap;">save the web!</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ธ frog enthusiast and html hobbyist</span><br><br><span style="white-space: pre-wrap;">my website is my magnum opus (it has three pages)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">bookworm, writer, and amateur web designer ๐</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">i write poetry and pretend people read it</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">hi i'm just here because social media is bad</span><br><span style="white-space: pre-wrap;">now i have a website instead and it's </span><b><strong class="editor-bold" style="white-space: pre-wrap;">significantly</strong></b><span style="white-space: pre-wrap;"> cooler</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ฎ gamer, coder, professional procrastinator</span><br><br><span style="white-space: pre-wrap;">speedrunning website development (badly)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">the internet used to be a place of wonder and it </span><b><strong class="editor-bold" style="white-space: pre-wrap;">can be again</strong></b><br><br><span style="white-space: pre-wrap;">โ๏ธ optimist about the future of the personal web</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ญ artist, writer, maker of things</span><br><br><span style="white-space: pre-wrap;">my website is my gallery, my diary, and my soapbox all in one</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">aspiring web wizard ๐ง</span><br><span style="white-space: pre-wrap;">currently learning: everything</span><br><span style="white-space: pre-wrap;">currently knowing: approximately nothing</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ ocean lover and web surfer (literally)</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">surfing the web the way it was meant to be surfed</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">indie web advocate and pixel art dabbler</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">hot take:</strong></b><span style="white-space: pre-wrap;"> your website doesn't need to be useful, it just needs to be </span><i><em class="editor-italic" style="white-space: pre-wrap;">yours</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ mushroom forager and website forager</span><br><br><span style="white-space: pre-wrap;">i find cool websites in the wild and add them to my links page</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">night owl coder ๐ฆ</span><br><span style="white-space: pre-wrap;">best work happens between midnight and 4am</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">this is not a healthy lifestyle but it is mine</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ช space nerd with a website</span><br><br><span style="white-space: pre-wrap;">my site has a starfield background and i </span><b><strong class="editor-bold" style="white-space: pre-wrap;">will not</strong></b><span style="white-space: pre-wrap;"> apologize</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">plant parent ๐ฟ web parent ๐</span><br><br><span style="white-space: pre-wrap;">both my plants and my websites need more attention than i give them</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">just vibing in my little html house ๐ </span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">established:</strong></b><span style="white-space: pre-wrap;"> whenever i felt like it</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ต musician who codes and coder who musics ๐ต</span><br><br><span style="white-space: pre-wrap;">my website has an embedded midi player and i think that's beautiful</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">critter enthusiast and web architect ๐พ</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">every website should have an animals page. this is not negotiable</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐๏ธ illustrator by day, webmaster by night</span><br><br><span style="white-space: pre-wrap;">my website is held together by willpower and z-index hacks</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">cottagecore but make it </span><b><strong class="editor-bold" style="white-space: pre-wrap;">webcore</strong></b><span style="white-space: pre-wrap;"> ๐พ๐ป</span><br><br><span style="white-space: pre-wrap;">cozy websites for cozy people</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ฎ digital witch brewing websites in my cauldron</span><br><br><span style="white-space: pre-wrap;">ingredients: html, css, a sprinkle of javascript, and three newt eyes</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i have opinions about fonts and i </span><b><strong class="editor-bold" style="white-space: pre-wrap;">will</strong></b><span style="white-space: pre-wrap;"> share them</span><br><br><span style="white-space: pre-wrap;">typography nerd and web design enthusiast ๐</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐๏ธ mountain dweller making websites from the wilderness</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">my internet connection is questionable but my website is not</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">recovering perfectionist learning to just ship it ๐</span><br><br><span style="white-space: pre-wrap;">my website is done when i say it's done (it's never done)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐งถ fiber artist who also weaves the web</span><br><br><span style="white-space: pre-wrap;">knitting patterns and html have more in common than you think</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">chronically online since before it was a thing ๐</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">achievement unlocked:</strong></b><span style="white-space: pre-wrap;"> 20+ years of being on the internet</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ช ringmaster of my own little internet circus</span><br><br><span style="white-space: pre-wrap;">step right up and see the amazing blinking text!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">solarpunk web designer โ๏ธ๐ฟ</span><br><br><span style="white-space: pre-wrap;">building a better internet, one sustainable website at a time</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ฒ tabletop gamer and web hobbyist</span><br><br><span style="white-space: pre-wrap;">rolled a nat 20 on website building. rolled a nat 1 on updating it regularly</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i think websites should sparkle โจ</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">if your website doesn't have at least one gif, what are you even doing</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐งช mad scientist of web design</span><br><br><span style="white-space: pre-wrap;">my experiments are questionable but my enthusiasm is </span><b><strong class="editor-bold" style="white-space: pre-wrap;">unmatched</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">quiet person, loud website ๐ข</span><br><br><span style="white-space: pre-wrap;">i let my html speak for me</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ nocturnal web builder</span><br><br><span style="white-space: pre-wrap;">all of my best design decisions were made at 3am and most of them were bad</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">vintage web collector ๐ผ</span><br><br><span style="white-space: pre-wrap;">i archive old websites like people archive vinyl records</span><br><b><strong class="editor-bold" style="white-space: pre-wrap;">preservation matters</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ busy bee making honeycombs of html</span><br><br><span style="white-space: pre-wrap;">my website is sweet and i'm proud of it</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">aspiring polymath, actual procrastinator ๐คท</span><br><br><span style="white-space: pre-wrap;">interests: too many. websites: also too many. finished projects: zero</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ดโโ ๏ธ sailing the indie web seas</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">arr, matey, have ye signed me guestbook?</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">film photography nerd and website builder ๐ท</span><br><br><span style="white-space: pre-wrap;">both my photos and my websites have that grainy analog charm</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ฆ fox lover and web tinkerer</span><br><br><span style="white-space: pre-wrap;">firefox is the best browser and i accept no debate on this matter</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i peaked when i learned how to center a div</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">it's all downhill from here</strong></b><span style="white-space: pre-wrap;"> (and i'm enjoying the ride)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐บ tropical vibes, digital life</span><br><br><span style="white-space: pre-wrap;">making websites from paradise (my room with a desk fan)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">the web is a canvas and i refuse to paint inside the lines ๐จ</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">embrace chaos. embrace tables. embrace the blink tag</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ง cool and normal person with a cool and normal website</span><br><br><span style="white-space: pre-wrap;">(the website has flame gifs and a skull cursor)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">train enthusiast who also rides the information superhighway ๐</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">next stop:</strong></b><span style="white-space: pre-wrap;"> my website</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ต desert dweller with an oasis of a website</span><br><br><span style="white-space: pre-wrap;">dry humor, warm climate, hot takes about web design</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">baker and coder ๐ฐ</span><br><br><span style="white-space: pre-wrap;">both involve following recipes, making a mess, and hoping for the best</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ญ theater kid energy but for websites</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">every page is a stage and every visitor is my audience</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i've been on the internet too long to remember what grass looks like ๐พ</span><br><br><span style="white-space: pre-wrap;">but at least my website is nice</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ชด slowly growing my website like a bonsai tree</span><br><br><span style="white-space: pre-wrap;">patience, care, and strategic pruning of dead links</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">map nerd and web cartographer ๐บ๏ธ</span><br><br><span style="white-space: pre-wrap;">exploring the indie web and charting its many wonders</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ introvert who built their dream house out of html</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">visitors welcome.</strong></b><span style="white-space: pre-wrap;"> shoes off at the door please</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">chaotic good web designer ๐ฒ</span><br><br><span style="white-space: pre-wrap;">i follow no grid system and answer to no framework</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ here be dragons (and also my website)</span><br><br><span style="white-space: pre-wrap;">fantasy nerd who builds websites instead of DnD campaigns now</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">my browser has 47 tabs open and one of them is my own website ๐ท๏ธ</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">i will close them eventually (i will not)</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ธ punk rock attitude, pixel art aesthetic</span><br><br><span style="white-space: pre-wrap;">DIY websites for a DIY world. corporate web can get lost</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">friendly neighborhood webmaster ๐ธ๏ธ</span><br><br><span style="white-space: pre-wrap;">with great html comes great responsibility</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ง life is short. eat cake. make websites</span><br><br><span style="white-space: pre-wrap;">in that order. always in that order</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">haunting the internet like a friendly ghost ๐ป</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">boo!</strong></b><span style="white-space: pre-wrap;"> (did i scare you? no? ok. look at my website instead)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐จ color theory obsessed web designer</span><br><br><span style="white-space: pre-wrap;">i have spent 3 hours choosing between two shades of blue that are identical</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">robot in disguise ๐ค</span><br><br><span style="white-space: pre-wrap;">just kidding. i'm a human who makes websites. beep boop</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ป spreading sunshine across the world wide web</span><br><br><span style="white-space: pre-wrap;">one cheerful webpage at a time</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i write code like i write poetry: badly but with great passion ๐</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">roses are red, violets are blue, my div won't center, i don't know what to do</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐๏ธ keeper of links and curator of the obscure</span><br><br><span style="white-space: pre-wrap;">if you need a website about something weird, i probably have it bookmarked</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">making websites is my love language ๐</span><br><br><span style="white-space: pre-wrap;">gifts of service (web services, specifically)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">โ fueled entirely by caffeine and nostalgia</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">daily routine:</strong></b><span style="white-space: pre-wrap;"> wake up, coffee, check neocities, code, sleep, repeat</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ life's too short for boring websites</span><br><br><span style="white-space: pre-wrap;">if it doesn't have at least 5 colors on the homepage, i'm not interested</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">time traveler from web 1.0 ๐ฐ๏ธ</span><br><br><span style="white-space: pre-wrap;">i've seen things you wouldn't believe. animated construction workers. dancing babies. webring after webring...</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐งต threading pixels together since forever</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">cross stitch enthusiast who learned that pixel art is basically the same thing</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">i take my websites seriously and nothing else ๐</span><br><br><span style="white-space: pre-wrap;">professional goofball, amateur webmaster</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ง๏ธ rainy day web builder</span><br><br><span style="white-space: pre-wrap;">there's no better time to code than when it's pouring outside</span><br><b><strong class="editor-bold" style="white-space: pre-wrap;">lo-fi beats and html sheets</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">small web, big dreams โจ</span><br><br><span style="white-space: pre-wrap;">one day my website will be cool. today is not that day. but </span><i><em class="editor-italic" style="white-space: pre-wrap;">soon</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ง penguin appreciator and open source advocate</span><br><br><span style="white-space: pre-wrap;">free software, free web, free penguin stickers (while supplies last)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">wanderer of the digital realm ๐ก๏ธ</span><br><br><span style="white-space: pre-wrap;">i quest for cool websites and slay boring homepages</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ช welcome to the show! my website is the main attraction</span><br><br><span style="white-space: pre-wrap;">admission: free. exit: through the guestbook</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">minimalist in life, maximalist on the web ๐ผ๏ธ</span><br><br><i><em class="editor-italic" style="white-space: pre-wrap;">my apartment is empty but my website has seventeen background images</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">just a chill person making chill websites ๐ง</span><br><br><span style="white-space: pre-wrap;">no pressure, no deadlines, just vibes</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ต my website has a soundtrack and it slaps</span><br><br><b><strong class="editor-bold" style="white-space: pre-wrap;">autoplay midi is a feature not a bug</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">gardener of both real and digital gardens ๐ฑ</span><br><br><span style="white-space: pre-wrap;">my tomatoes are doing better than my CSS but we don't talk about that</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ง fixing things that aren't broken since 1999</span><br><br><span style="white-space: pre-wrap;">if it works, don't touch it. unless it's your website. then touch it constantly</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">perpetual student of the web ๐</span><br><br><span style="white-space: pre-wrap;">every day i learn something new about CSS and every day i forget something old</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">๐ riding the wave of indie web creativity</span><br><br><span style="white-space: pre-wrap;">cowabunga, dude. check out my rad homepage</span></p>
\ No newline at end of file diff --git a/seed/signatures.html b/seed/signatures.html new file mode 100644 index 0000000..edb22a4 --- /dev/null +++ b/seed/signatures.html @@ -0,0 +1,60 @@ +<p class="editor-paragraph"><span style="white-space: pre-wrap;">thanks for visiting my site!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">keep the web weird</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">made with love and too much coffee</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">the internet is my playground</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">stay curious, stay creative</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">long live the personal web</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">web revival is real</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">embrace the cringe</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">see you in the webrings!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">peace, love, and html</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">signed, a humble webmaster</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">be the website you want to see in the world</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">don't forget to sign my guestbook!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">love and ciao</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">end of line</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">until next time!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">happy surfing!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">you've been visited by the webmaster fairy</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">small web, big heart</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">catch me in the nekoverse</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">stay hydrated. touch grass. update your website</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">this signature is under construction</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">powered by pixels and determination</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">your friendly neighborhood webmaster</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">404 signature not found</strong></b><span style="white-space: pre-wrap;"> (just kidding, here it is)</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">may your links never be broken</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">one website at a time</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">the web is what we make it</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">bytes and love</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">Ctrl+S and goodnight</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">keep clicking, keep creating</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">see you on the information superhighway</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">ad astra per html</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">semper web</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">logging off for now</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">xoxo, a creature of the internet</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">make websites not war</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">brb updating my site</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">in code we trust</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">no thoughts, just html</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">have a nice browse!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">life is short, make weird websites</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">the revolution will be hyperlinked</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">click responsibly</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">farewell, fellow netizen</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">may your bandwidth be plentiful</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">go forth and hyperlink</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">cheers from the small web</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">never stop building</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">thanks for reading my posts!</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">my website misses you already</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">this message will self-destruct (it won't)</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">remember when the internet was fun? it still is</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">onwards and upwards!</span></p> +<p class="editor-paragraph"><b><strong class="editor-bold" style="white-space: pre-wrap;">the future is handmade</strong></b></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">take care out there on the web</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">another day, another commit</span></p> +<p class="editor-paragraph"><i><em class="editor-italic" style="white-space: pre-wrap;">view source for the truth</em></i></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">with love from my text editor</span></p> +<p class="editor-paragraph"><span style="white-space: pre-wrap;">wishing you good CSS specificity</span></p>
\ No newline at end of file |
