initial commit?

This commit is contained in:
D-u-c-k-s-e-l 2025-07-16 01:13:12 -05:00
commit 940882ae76
21 changed files with 979 additions and 0 deletions

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor

5
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,5 @@
{
"cSpell.words": [
"Linuxposting"
]
}

15
README.md Normal file
View file

@ -0,0 +1,15 @@
# Website
## notes to maintainers
- articles and announcements are formatted YYYY-MM-DD-title.md or .html and go in articles/_folders
- feed.xml should be disabled later
- sidenav is in _include/sidenav.html
- sidenav options are in _data/nav.yml
- nothing works, it just pretends to.
## Notes about molly
- f yeah linux is cool but wrong vibe. we need an official banner.
- she needs to be Konqied

5
website/.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,5 @@
{
"cSpell.words": [
"linuxposting"
]
}

33
website/Gemfile Normal file
View file

@ -0,0 +1,33 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 4.4.1"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin]
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
# do not have a Java counterpart.
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]

175
website/Gemfile.lock Normal file
View file

@ -0,0 +1,175 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.3.0)
bigdecimal (3.2.2)
colorator (1.1.0)
concurrent-ruby (1.3.5)
csv (3.3.5)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.2)
ffi (1.17.2-aarch64-linux-gnu)
ffi (1.17.2-aarch64-linux-musl)
ffi (1.17.2-arm-linux-gnu)
ffi (1.17.2-arm-linux-musl)
ffi (1.17.2-arm64-darwin)
ffi (1.17.2-x86-linux-gnu)
ffi (1.17.2-x86-linux-musl)
ffi (1.17.2-x86_64-darwin)
ffi (1.17.2-x86_64-linux-gnu)
ffi (1.17.2-x86_64-linux-musl)
forwardable-extended (2.6.0)
google-protobuf (4.31.1)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-aarch64-linux-gnu)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-aarch64-linux-musl)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-x86-linux-gnu)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-x86-linux-musl)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-x86_64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-x86_64-linux-gnu)
bigdecimal
rake (>= 13)
google-protobuf (4.31.1-x86_64-linux-musl)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
jekyll (4.4.1)
addressable (~> 2.4)
base64 (~> 0.2)
colorator (~> 1.0)
csv (~> 3.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
json (~> 2.6)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.3, >= 0.3.6)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (3.1.0)
sass-embedded (~> 1.75)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.12.2)
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
minima (2.5.2)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (6.0.2)
rake (13.3.0)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.4.1)
rouge (4.5.2)
safe_yaml (1.0.5)
sass-embedded (1.89.2)
google-protobuf (~> 4.31)
rake (>= 13)
sass-embedded (1.89.2-aarch64-linux-android)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-aarch64-linux-gnu)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-aarch64-linux-musl)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-arm-linux-androideabi)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-arm-linux-gnueabihf)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-arm-linux-musleabihf)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-arm64-darwin)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-riscv64-linux-android)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-riscv64-linux-gnu)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-riscv64-linux-musl)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-x86_64-darwin)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-x86_64-linux-android)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-x86_64-linux-gnu)
google-protobuf (~> 4.31)
sass-embedded (1.89.2-x86_64-linux-musl)
google-protobuf (~> 4.31)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.6.0)
webrick (1.9.1)
PLATFORMS
aarch64-linux-android
aarch64-linux-gnu
aarch64-linux-musl
arm-linux-androideabi
arm-linux-gnu
arm-linux-gnueabihf
arm-linux-musl
arm-linux-musleabihf
arm64-darwin
riscv64-linux-android
riscv64-linux-gnu
riscv64-linux-musl
ruby
x86-linux-gnu
x86-linux-musl
x86_64-darwin
x86_64-linux-android
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES
http_parser.rb (~> 0.6.0)
jekyll (~> 4.4.1)
jekyll-feed (~> 0.12)
minima (~> 2.5)
tzinfo (>= 1, < 3)
tzinfo-data
wdm (~> 0.1)
BUNDLED WITH
2.6.9

45
website/_config.yml Normal file
View file

@ -0,0 +1,45 @@
title: linuxposting.xyz
description: >-
Linux users having fun i guess...
url: "https://linuxposting.xyz"
defaults:
- scope:
path: ""
values:
layout: default
title: "linuxposting.xyz"
headline: "linuxposting.xyz"
# Build settings
plugins:
- jekyll-feed
collections_dir: articles
collections:
news:
output: true
permalink: /news/:path
announce:
output: true
permalink: /announcements/:path
# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# exclude:
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/

14
website/_data/nav.yml Normal file
View file

@ -0,0 +1,14 @@
- url: /
title: Home
- url: "#"
title: About
- url: "#"
title: Linuxposting News
- url: "#"
title: Site Announcements
- url: "/register"
title: Register for Accounts
- url: "#"
title: View Molly's Page
- url: "#"
title: Contact Us

View file

@ -0,0 +1,9 @@
<nav>
<ul>
{% for item in site.data.nav %}
<li>
<a href="{{ item.url }}">{{ item.title }}</a>
</li>
{% endfor %}
</ul>
</nav>

189
website/_includes/toc.html Normal file
View file

@ -0,0 +1,189 @@
{% capture tocWorkspace %}
{% comment %}
Copyright (c) 2017 Vladimir "allejo" Jimenez
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
{% endcomment %}
{% comment %}
Version 1.2.1
https://github.com/allejo/jekyll-toc
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
Usage:
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
Parameters:
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
Optional Parameters:
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
* class (string) : '' - a CSS class assigned to the TOC
* id (string) : '' - an ID to assigned to the TOC
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
* submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
* base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
* anchor_class (string) : '' - add custom class(es) for each anchor element
* skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
* flat_toc (bool) : false - when set to true, the TOC will be a single level list
Output:
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
generate the table of contents and will NOT output the markdown given to it
{% endcomment %}
{% capture newline %}
{% endcapture %}
{% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
{% capture deprecation_warnings %}{% endcapture %}
{% if include.baseurl %}
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
{% endif %}
{% if include.skipNoIDs %}
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
{% endif %}
{% capture jekyll_toc %}{% endcapture %}
{% assign orderedList = include.ordered | default: false %}
{% assign flatToc = include.flat_toc | default: false %}
{% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
{% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
{% assign minHeader = include.h_min | default: 1 %}
{% assign maxHeader = include.h_max | default: 6 %}
{% assign nodes = include.html | strip | split: '<h' %}
{% assign firstHeader = true %}
{% assign currLevel = 0 %}
{% assign lastLevel = 0 %}
{% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
{% for node in nodes %}
{% if node == "" %}
{% continue %}
{% endif %}
{% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
{% if currLevel < minHeader or currLevel > maxHeader %}
{% continue %}
{% endif %}
{% assign _workspace = node | split: '</h' %}
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
{% assign htmlID = _idWorkspace[0] %}
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
{% assign htmlClass = _classWorkspace[0] %}
{% if htmlClass contains "no_toc" %}
{% continue %}
{% endif %}
{% if firstHeader %}
{% assign minHeader = currLevel %}
{% endif %}
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
{% if include.item_class and include.item_class != blank %}
{% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
{% endif %}
{% if include.submenu_class and include.submenu_class != blank %}
{% assign subMenuLevel = currLevel | minus: 1 %}
{% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
{% endif %}
{% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
{% if htmlID %}
{% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
{% if include.anchor_class %}
{% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
{% endif %}
{% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
{% elsif skipNoIDs == true %}
{% continue %}
{% else %}
{% capture listItem %}{{ anchorBody }}{% endcapture %}
{% endif %}
{% if currLevel > lastLevel and flatToc == false %}
{% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
{% elsif currLevel < lastLevel and flatToc == false %}
{% assign repeatCount = lastLevel | minus: currLevel %}
{% for i in (1..repeatCount) %}
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
{% endfor %}
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
{% else %}
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
{% endif %}
{% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
{% assign lastLevel = currLevel %}
{% assign firstHeader = false %}
{% endfor %}
{% if flatToc == true %}
{% assign repeatCount = 1 %}
{% else %}
{% assign repeatCount = minHeader | minus: 1 %}
{% assign repeatCount = lastLevel | minus: repeatCount %}
{% endif %}
{% for i in (1..repeatCount) %}
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
{% endfor %}
{% if jekyll_toc != '' %}
{% assign rootAttributes = '' %}
{% if include.class and include.class != blank %}
{% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
{% endif %}
{% if include.id and include.id != blank %}
{% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
{% endif %}
{% if rootAttributes %}
{% assign nodes = jekyll_toc | split: '>' %}
{% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
{% endif %}
{% endif %}
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}

View file

@ -0,0 +1,123 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>nya! {{ page.title }}</title>
<link rel="stylesheet" href="/assets/css/main.css" />
</head>
<body>
<!-- Main container -->
<div class="parent">
<!-- top bar -->
<div class="nav-top">
<img src="/assets/img/molly.png" alt="high mouse cherishing lunix. but fr tho, we need logo and stuff">
<h1>{{ page.headline }}</h1>
<p>
[[SEARCH BAR GOES HERE]]
</p>
</div>
<!-- nav menu -->
<nav class="nav-main">
{% comment %}
Sidenav is written in _includes/sidenav.html and
is configured in _data/nav.yml.
{% endcomment %}
{% include sidenav.html %}
</nav>
<!-- icons at the bottom -->
<div class="nav-icons">
<a href="#">
<div class="button" id="btn-1">
<img src="/assets/img/icon.png"><p>members</p>
<!-- This links to the list -->
<!-- Icon with multiple mice including Molly -->
</div>
</a>
<a href="https://w.linuxposting.xyz" target="_blank">
<div class="button" id="btn-2">
<img src="/assets/img/icon.png"><p>wafrn</p>
<!-- Molly with waffle icon -->
</div>
</a>
<a href="https://mail.linuxposting.xyz" target="_blank">
<div class="button" id="btn-3">
<img src="/assets/img/icon.png"><p>webmail</p>
<!-- Molly with letter icon -->
</div>
</a>
<a href="#">
<div class="button" id="btn-4">
<img src="/assets/img/icon.png"><p>forum</p>
<!-- Molly with music icon -->
</div>
</a>
</div>
<!-- the chapter or link list at the top right -->
<div class="content-table">
<p>Table of Contents</p>
{% comment %}
Table of contents generated by https://github.com/allejo/jekyll-toc .
The file is included as toc.html in the _includes directory.
{% endcomment %}
{% include toc.html html=content %}
</div>
<div class="n-feed news">
<a class="news-type-title" href="#">News</a>
<div class="news-arts">
{% for article in site.news %}
<div class="news-item">
<a href="{{ article.url }}">
<h5>{{ article.title }}</h5>
</a>
</div>
{% else %}
<div class="news-item">
<p>No news articles available at the moment.</p>
</div>
{% endfor %}
</div>
<div class="news-rss-subscribe">
<!-- Style me like a button -->
<a href="/feed.xml">
<span>RSS Feed
<!-- Pixel Molly with 'RSS icon' icon -->
</span>
</a>
</div>
</div>
<div class="n-feed announce">
<a class="news-type-title" href="#">Announcements</a>
<div class="news-arts">
{% for announcement in site.announce %}
<div class="news-item">
<a href="{{ announcment.url }}">
<h5>{{ announcement.title }}</h5>
</a>
</div>
{% else %}
<div class="news-item">
<p>No announcements available at the moment.</p>
</div>
{% endfor %}
</div>
<div class="news-rss-subscribe">
<!-- Style me like a button -->
<a href="/feed.xml">
<span>RSS Feed
<!-- Pixel Molly with 'RSS icon' icon -->
</span>
</a>
</div>
</div>
<div class="content">
{{ content }}
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,7 @@
---
title: ing
headline: inesting
description: intestine
---
# TEST yourself

View file

@ -0,0 +1,7 @@
---
title: testing
headline: nesting
description: something abou tests
---
# TEST

View file

@ -0,0 +1,25 @@
---
layout: null
permalink: /announcements/feed.xml
---
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>linuxposting.xyz announcements</title>
<link>https://linuxposting.xyz/</link>
<category>announcements</category>
<ttl>1440</ttl>
<!-- TODO: image element -->
<language>en</language>
<description>Changes and updates to the services hosted by linuxposting.xyz</description>
{% for announcement in site.announce %}
<item>
<title>{{ announcement.title }}</title>
<link>{{ site.url }}{{ announcement.url }}</link>
<description>{{ announcement.description | strip_html | truncate: 200 }}</description>
<pubDate>{{ announcement.date | date_to_xmlschema }}</pubDate>
<guid isPermaLink="false">{{ site.url }}{{ announcement.url }}</guid>
</item>
{% endfor %}
</channel>
</rss>

View file

@ -0,0 +1,25 @@
---
layout: null
permalink: /news/feed.xml
---
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>linuxposting.xyz newsletter</title>
<link>https://linuxposting.xyz/</link>
<category>tech</category>
<ttl>1440</ttl>
<!-- TODO: image element -->
<language>en</language>
<description>The funny news articles linuxposting.xyz makes</description>
{% for article in site.news %}
<item>
<title>{{ article.title }}</title>
<link>{{ site.url }}{{ article.url }}</link>
<description>{{ article.description | strip_html | truncate: 200 }}</description>
<pubDate>{{ article.date | date_to_xmlschema }}</pubDate>
<guid isPermaLink="false">{{ site.url }}{{ article.url }}</guid>
</item>
{% endfor %}
</channel>
</rss>

204
website/assets/css/main.css Normal file
View file

@ -0,0 +1,204 @@
@import url(/assets/themes/colors.css);
/* basics */
html, body {
margin:0;
padding: 8px;
font-family: monospace;
font-size: 14px;
color:var(--t-color);
background-color: var(--bg-darkest);
}
h1, h2, h3, h4, h5 {
font-family: sans-serif;
}
h1 {
font-size: 2.5rem;
}
h2 {
font-size: 2rem;
}
h3 {
font-size: 1.75rem;
}
h4 {
font-size: 1.5rem;
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
text-transform: capitalize;
}
a {
color: var(--a-color);
}
::selection {
background-color: var(--s-color);
}
li {
margin-bottom: 24px;
justify-self: center;
}
/* parent container */
.parent {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-template-rows: repeat(8, 1fr);
gap: 16px;
margin: auto;
height: max(calc(100vh - 32px), 700px); /* 8px top/bottom from body */
}
/* top nav */
.nav-top {
grid-column: span 12 / span 12;
display:flex;
flex-direction: row;
padding-left: 8px;
padding-right: 8px;
justify-content: space-between;
align-items: center;
align-content: center;
}
/* main nav */
.nav-main {
grid-column: span 2 / span 2;
grid-row: span 3 / span 3;
grid-row-start: 2;
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
align-content: center;
}
.nav-main ul {
padding: 8px;
}
.nav-main li {
list-style: none;
}
.nav-icons {
grid-column: span 2 / span 2;
grid-row: span 2 / span 2;
grid-column-start: 1;
grid-row-start: 5;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
gap: 4px;
justify-items: center;
align-items: center;
}
/* buttons of main nav */
.button {
display: flex;
flex-direction: column;
align-self: center;
justify-self: center;
}
.button img {
aspect-ratio: 1/1;
max-width: 48px;
align-self: center;
}
.button p {
margin: 2px;
text-align: center;
}
/* content table */
.content-table {
grid-column: span 2 / span 2;
grid-row: span 3 / span 3;
grid-column-start: 11;
grid-row-start: 2;
word-break: break-word;
}
/* news */
.n-feed {
grid-column: span 2 / span 2;
grid-row: span 2 / span 2;
display: flex;
flex-direction: column;
overflow: hidden;
}
.news {
grid-row-start: 5;
grid-column-start: 11;
}
.announce {
grid-row-start: 7;
grid-column-start: 11;
}
.news-arts {
display: flex;
flex-direction: column;
overflow: scroll;
flex-grow: 2;
}
.news-item {
padding: 4px 16px;
margin: 2px;
}
.news-item h5 {
margin: 0;
}
.news-rss-subscribe {
align-self: flex-end;
padding: 4px 8px;
background-color: var(--fg-lighter); /* HACK: not a background color */
width: calc(100% - 16px);
}
.news-type-title {
font-weight: bold;
text-align: center;
}
/* main content */
.content {
grid-column: span 8 / span 8;
grid-row: span 7 / span 7;
grid-column-start: 3;
grid-row-start: 2;
padding: 16px;
}
/* experimental stuff */
.nav-main, .nav-icons, .nav-top, .content-table, .news, .content, .announce{
background-color: var(--bg);
border: 1px solid var(--t-color);
border-radius:16px;
}
.nav-main, .nav-icons, .nav-top, .content-table, .news, .announce {
position: sticky;
}
.nav-main, .content-table, .content {
overflow-y: scroll;
}

BIN
website/assets/img/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,26 @@
:root {
/* background colors */
--bg: #1e1e2e;
--bg-darker:#181825; /* background colors */
--bg-darkest:#11111b;
--fg:#313244;
--fg-lighter:#45475a; /* whatever is on top of the background */
--fg-lightest:#585b70;
--ov:#6c7086;
--ov-lighter:#7f849c; /* overlays */
--ov-lightest:#9399b2;
/* text colors */
--t-color:#cdd6f4; /* text color */
--h-color:#cdd6f4; /* headline color */
--sh-color:#7f849c; /* sub-headline color */
--a-color:#89b4fa; /* links */
--s-color:#9399b240; /* selections */
/* catppuccin mocha :3 */
}

7
website/index.md Normal file
View file

@ -0,0 +1,7 @@
---
title: hello
layout: default
headline: stupid page
---
TODO: CONTENT

60
website/register.md Normal file
View file

@ -0,0 +1,60 @@
---
title: Account Registration
layout: default
headline: Account Registration
---
### How to Register for accounts on linuxposting.xyz
## Requisites
In order to qualify for an account on any of our services, you must run a tech account. This is defined as an account that posts about tech, or a gimmick blog that impersonates a tech thing
We consider "impersonating" to be having a handle pretending to be something, like "btrfs-unofficial", "steamos-official" or "definitely-zen-browser". In this case, we need to make sure no one else is already impersonating that thing, with some exceptions. We will mainly check tumblr and wafrn for this
This tech account can be on another service, or it can be the account you're planning to open with us, but it needs to be public
If you do qualify, you can ask for personal and/or tech accounts
## Registration
In order to register, please send us an email to account@linuxposting.xyz. We will save this address in order to contact you about your account(s). We also recommend you share a second email address with us, in case you lose access to the first one
This is how we want you to share this data with us. You can duplicate keys if you want multiple accounts, or skip them if you don't want one. The arrows explain what each key is for. Feel free to copy and paste this
> contact: email@example.com <-- second email that you can contact us from. for example, if you ever need to get a password reset
> email: username
> matrix: username
> wafrn: email@example.com <-- email that you'll be registering with on w.linuxposting.xyz
## Response
We will try to respond within a week. If your registration was successful, we'll send you your login details
It may be possible that you want to impersonate a thing, but there are already accounts impersonating it. In this case we will follow up with an email asking to be contacted by these accounts. This way we can confirm they're yours, or that you have their permission to create your accounts
If an account for that thing does exist, but has been inactive for 6 months, we will allow you to create your accounts without need for verification
If you have any issues or questions, you can contact us at support@linuxposting.xyz
## Rexample
Molly the Example Mouse [image of her] would like some accounts.
She sends an email as follows:
> FROM: molly@example.com TO: account@linuxposting.xyz
> SUBJECT: Accounts
> > hi, i'm molly and I'd like some accounts on your website please
> >
> > email: molly@linuxposting.xyz
> > wafrn: molly-the-example-mouse
> > wafrn: baloo-file-official
> >
> > thank you!
It is then verified that she runs the @baloo-file-official tumblr account, and she recieves the accounts requested. Notice that she didn't add a contact field. This is because she didn't have another email.