initial commit?
This commit is contained in:
commit
940882ae76
21 changed files with 979 additions and 0 deletions
5
website/.vscode/settings.json
vendored
Normal file
5
website/.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"cSpell.words": [
|
||||
"linuxposting"
|
||||
]
|
||||
}
|
||||
33
website/Gemfile
Normal file
33
website/Gemfile
Normal 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
175
website/Gemfile.lock
Normal 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
45
website/_config.yml
Normal 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
14
website/_data/nav.yml
Normal 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
|
||||
9
website/_includes/sidenav.html
Normal file
9
website/_includes/sidenav.html
Normal 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
189
website/_includes/toc.html
Normal 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 -}}
|
||||
123
website/_layouts/default.html
Normal file
123
website/_layouts/default.html
Normal 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>
|
||||
7
website/articles/_announce/2025-07-16-test.md
Normal file
7
website/articles/_announce/2025-07-16-test.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: ing
|
||||
headline: inesting
|
||||
description: intestine
|
||||
---
|
||||
|
||||
# TEST yourself
|
||||
7
website/articles/_news/2025-07-16-test.md
Normal file
7
website/articles/_news/2025-07-16-test.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: testing
|
||||
headline: nesting
|
||||
description: something abou tests
|
||||
---
|
||||
|
||||
# TEST
|
||||
25
website/articles/announce_feed.xml
Normal file
25
website/articles/announce_feed.xml
Normal 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>
|
||||
25
website/articles/news_feed.xml
Normal file
25
website/articles/news_feed.xml
Normal 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
204
website/assets/css/main.css
Normal 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
BIN
website/assets/img/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
BIN
website/assets/img/molly.png
Normal file
BIN
website/assets/img/molly.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
26
website/assets/themes/colors.css
Normal file
26
website/assets/themes/colors.css
Normal 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
7
website/index.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: hello
|
||||
layout: default
|
||||
headline: stupid page
|
||||
---
|
||||
|
||||
TODO: CONTENT
|
||||
60
website/register.md
Normal file
60
website/register.md
Normal 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.
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue