First commit
This commit is contained in:
32
.gitignore
vendored
Normal file
32
.gitignore
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# node
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn*.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
# builds / caches / coverage
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
.cache/
|
||||||
|
.tmp/
|
||||||
|
coverage/
|
||||||
|
|
||||||
|
# env / local config
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
# Jekyll
|
||||||
|
_site
|
||||||
|
.sass-cache
|
||||||
|
.jekyll-cache
|
||||||
|
.jekyll-metadata
|
||||||
|
vendor
|
||||||
|
.bundle/
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
*.log
|
||||||
1
.husky/pre-commit
Normal file
1
.husky/pre-commit
Normal file
@@ -0,0 +1 @@
|
|||||||
|
pnpm exec lint-staged
|
||||||
27
.prettierrc
Normal file
27
.prettierrc
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"tabWidth": 2,
|
||||||
|
"useTabs": false,
|
||||||
|
"singleQuote": true,
|
||||||
|
"printWidth": 100,
|
||||||
|
"plugins": ["@shopify/prettier-plugin-liquid", "prettier-plugin-nginx"],
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": "*.html",
|
||||||
|
"options": {
|
||||||
|
"parser": "liquid-html"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": "*.md",
|
||||||
|
"options": {
|
||||||
|
"parser": "markdown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": ["nginx.conf", "*.conf"],
|
||||||
|
"options": {
|
||||||
|
"parser": "nginx"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
24
404.html
Normal file
24
404.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
permalink: /404.html
|
||||||
|
layout: page
|
||||||
|
---
|
||||||
|
<style type='text/css' media='screen'>
|
||||||
|
.container {
|
||||||
|
margin: 10px auto;
|
||||||
|
max-width: 600px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin: 30px 0;
|
||||||
|
font-size: 4em;
|
||||||
|
line-height: 1;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class='container'>
|
||||||
|
<h1>404</h1>
|
||||||
|
|
||||||
|
<p><strong>Page not found :(</strong></p>
|
||||||
|
<p>The requested page could not be found.</p>
|
||||||
|
</div>
|
||||||
22
Gemfile
Normal file
22
Gemfile
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
source "https://rubygems.org"
|
||||||
|
gem "jekyll", "~> 4.4.1"
|
||||||
|
gem "minima", "~> 2.5"
|
||||||
|
|
||||||
|
group :jekyll_plugins do
|
||||||
|
gem "jekyll-feed", "~> 0.12"
|
||||||
|
gem 'jekyll-archives'
|
||||||
|
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]
|
||||||
178
Gemfile.lock
Normal file
178
Gemfile.lock
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
addressable (2.8.7)
|
||||||
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
|
base64 (0.3.0)
|
||||||
|
bigdecimal (3.3.1)
|
||||||
|
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.33.0)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-aarch64-linux-gnu)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-aarch64-linux-musl)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-arm64-darwin)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-x86-linux-gnu)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-x86-linux-musl)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-x86_64-darwin)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-x86_64-linux-gnu)
|
||||||
|
bigdecimal
|
||||||
|
rake (>= 13)
|
||||||
|
google-protobuf (4.33.0-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-archives (2.3.0)
|
||||||
|
jekyll (>= 3.6, < 5.0)
|
||||||
|
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.15.1)
|
||||||
|
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.4)
|
||||||
|
rouge (4.6.1)
|
||||||
|
safe_yaml (1.0.5)
|
||||||
|
sass-embedded (1.93.2)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
rake (>= 13)
|
||||||
|
sass-embedded (1.93.2-aarch64-linux-android)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-aarch64-linux-gnu)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-aarch64-linux-musl)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-arm-linux-androideabi)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-arm-linux-gnueabihf)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-arm-linux-musleabihf)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-arm64-darwin)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-riscv64-linux-android)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-riscv64-linux-gnu)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-riscv64-linux-musl)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-x86_64-darwin)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-x86_64-linux-android)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.2-x86_64-linux-gnu)
|
||||||
|
google-protobuf (~> 4.31)
|
||||||
|
sass-embedded (1.93.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-archives
|
||||||
|
jekyll-feed (~> 0.12)
|
||||||
|
minima (~> 2.5)
|
||||||
|
tzinfo (>= 1, < 3)
|
||||||
|
tzinfo-data
|
||||||
|
wdm (~> 0.1)
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.7.2
|
||||||
31
README.md
Normal file
31
README.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Severed blog (Jekyll app)
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
**Install Dependencies (Ruby & Node):**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bundle install && pnpm install
|
||||||
|
```
|
||||||
|
|
||||||
|
**Start Local Server:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
```
|
||||||
|
|
||||||
|
**Build for Production:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Code Quality
|
||||||
|
|
||||||
|
**Format Code Manually:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm format
|
||||||
|
```
|
||||||
|
|
||||||
|
_(Formatting also runs automatically on commit via Husky)_
|
||||||
66
_config.yml
Normal file
66
_config.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# Site settings
|
||||||
|
title: Severed
|
||||||
|
email: wboughattas@proton.me
|
||||||
|
description: >-
|
||||||
|
Architectural revisions and engineering logs from the Severed platform.
|
||||||
|
Transitioning from managed cloud to self-hosted OSS infrastructure.
|
||||||
|
|
||||||
|
# Deployment
|
||||||
|
baseurl: ''
|
||||||
|
url: 'https://blog.severed.ink'
|
||||||
|
#twitter_username: jekyllrb
|
||||||
|
github_username: Severed
|
||||||
|
|
||||||
|
# Shorter URLs
|
||||||
|
permalink: /:categories/:title/
|
||||||
|
|
||||||
|
# Theme settings
|
||||||
|
theme: minima
|
||||||
|
minima:
|
||||||
|
skin: dark
|
||||||
|
|
||||||
|
plugins:
|
||||||
|
- jekyll-feed
|
||||||
|
- jekyll-archives
|
||||||
|
|
||||||
|
# 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/
|
||||||
|
|
||||||
|
# custom fields
|
||||||
|
#
|
||||||
|
module_order:
|
||||||
|
- releases
|
||||||
|
- architectures
|
||||||
|
|
||||||
|
jekyll-archives:
|
||||||
|
enabled:
|
||||||
|
- categories
|
||||||
|
layout: category_index
|
||||||
|
permalinks:
|
||||||
|
category: '/:name/'
|
||||||
|
|
||||||
|
sass:
|
||||||
|
style: compressed
|
||||||
|
quiet_deps: true
|
||||||
|
silence_deprecations:
|
||||||
|
- import
|
||||||
|
- color-functions
|
||||||
|
- global-builtin
|
||||||
|
- mixed-decls
|
||||||
30
_includes/directory_tree.html
Normal file
30
_includes/directory_tree.html
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<div class='architecture-tree'>
|
||||||
|
<h3 class='post-list-heading'>System Architectures</h3>
|
||||||
|
|
||||||
|
<details open style='margin-bottom: 20px;'>
|
||||||
|
<summary style='cursor: pointer; list-style: none; font-family: monospace; font-size: 1.1em; outline: none;'>
|
||||||
|
<svg
|
||||||
|
style='width: 16px; height: 16px; vertical-align: middle; margin-right: 5px;'
|
||||||
|
viewBox='0 0 24 24'
|
||||||
|
fill='none'
|
||||||
|
stroke='currentColor'
|
||||||
|
stroke-width='2'
|
||||||
|
stroke-linecap='round'
|
||||||
|
stroke-linejoin='round'
|
||||||
|
>
|
||||||
|
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path>
|
||||||
|
</svg>
|
||||||
|
<strong>Architectures/</strong>
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<ul style='list-style: none; padding-left: 12px; margin-top: 10px;'>
|
||||||
|
{% for doc in site.architectures %}
|
||||||
|
<li style='margin-bottom: 5px;'>
|
||||||
|
<a href='{{ doc.url | relative_url }}' style='text-decoration: none; color: #2a7ae2;'>
|
||||||
|
{{ doc.title | default: doc.name }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</details>
|
||||||
|
</div>
|
||||||
99
_includes/folder_tree.html
Normal file
99
_includes/folder_tree.html
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
<div
|
||||||
|
class='tree-card'
|
||||||
|
style='margin-bottom: 16px; border: 1px solid #e1e4e8; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,0.03);'
|
||||||
|
>
|
||||||
|
<details style='background: #ffffff;'>
|
||||||
|
<summary
|
||||||
|
style='cursor: pointer; padding: 10px 16px; background: #f6f8fa; border-bottom: 1px solid transparent; outline: none; list-style: none; display: flex; align-items: center; transition: background 0.2s ease;'
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
class='chevron'
|
||||||
|
width='16'
|
||||||
|
height='16'
|
||||||
|
viewBox='0 0 24 24'
|
||||||
|
fill='none'
|
||||||
|
stroke='#586069'
|
||||||
|
stroke-width='2'
|
||||||
|
stroke-linecap='round'
|
||||||
|
stroke-linejoin='round'
|
||||||
|
style='margin-right: 8px;'
|
||||||
|
>
|
||||||
|
<polyline points="9 18 15 12 9 6"></polyline>
|
||||||
|
</svg>
|
||||||
|
<span style="font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 13px; font-weight: 600; color: #24292e;">
|
||||||
|
_{{ include.name }}
|
||||||
|
</span>
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<div style='padding: 8px 0; border-top: 1px solid #e1e4e8;'>
|
||||||
|
{% for post in include.posts %}
|
||||||
|
<a
|
||||||
|
href='{{ post.url | relative_url }}'
|
||||||
|
class='tree-item'
|
||||||
|
style="display: flex; align-items: center; justify-content: space-between; padding: 6px 16px 6px 36px; text-decoration: none; color: #586069; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 14px; transition: all 0.2s ease;"
|
||||||
|
>
|
||||||
|
<div style='display: flex; align-items: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;'>
|
||||||
|
{% if post.highlight == true %}
|
||||||
|
<svg
|
||||||
|
width='12'
|
||||||
|
height='12'
|
||||||
|
viewBox='0 0 24 24'
|
||||||
|
fill='#f1c40f'
|
||||||
|
stroke='#f1c40f'
|
||||||
|
stroke-width='2'
|
||||||
|
stroke-linecap='round'
|
||||||
|
stroke-linejoin='round'
|
||||||
|
style='margin-right: 9px; flex-shrink: 0;'
|
||||||
|
>
|
||||||
|
<polygon
|
||||||
|
points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
|
||||||
|
</svg>
|
||||||
|
{% else %}
|
||||||
|
<span
|
||||||
|
style='width: 6px; height: 6px; border-radius: 50%; background: #e1e4e8; margin-right: 12px; margin-left: 3px; flex-shrink: 0;'
|
||||||
|
></span>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<span style='white-space: nowrap; overflow: hidden; text-overflow: ellipsis;'>
|
||||||
|
{{- post.title | escape -}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span style='font-size: 12px; color: #959da5; margin-left: 10px; flex-shrink: 0; font-variant-numeric: tabular-nums;'>
|
||||||
|
{{ post.date | date: '%b %d' }}
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
details[open] summary .chevron {
|
||||||
|
transform: rotate(90deg);
|
||||||
|
transition: transform 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
details:not([open]) summary .chevron {
|
||||||
|
transition: transform 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
details summary:hover {
|
||||||
|
background: #f0f3f6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
details[open] summary {
|
||||||
|
border-bottom-color: #e1e4e8 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.tree-item:hover {
|
||||||
|
background-color: #f1f8ff;
|
||||||
|
color: #0366d6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.tree-item:hover span:first-child {
|
||||||
|
background: #0366d6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Color the dot on hover */
|
||||||
|
</style>
|
||||||
20
_includes/head.html
Normal file
20
_includes/head.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<head>
|
||||||
|
<meta charset='utf-8'>
|
||||||
|
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
|
||||||
|
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
||||||
|
{%- seo -%}
|
||||||
|
|
||||||
|
<link rel='preconnect' href='https://fonts.googleapis.com'>
|
||||||
|
<link rel='preconnect' href='https://fonts.gstatic.com' crossorigin>
|
||||||
|
<link
|
||||||
|
href='https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap'
|
||||||
|
rel='stylesheet'
|
||||||
|
>
|
||||||
|
|
||||||
|
<link
|
||||||
|
rel='stylesheet'
|
||||||
|
href='{{ '/assets/main.css' | relative_url }}?v={{ site.time | date: '%s' }}'
|
||||||
|
>
|
||||||
|
|
||||||
|
{%- feed_meta -%}
|
||||||
|
</head>
|
||||||
15
_includes/header.html
Normal file
15
_includes/header.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<header class='site-header' role='banner'>
|
||||||
|
<div class='wrapper'>
|
||||||
|
<a class='site-title' rel='author' href='{{ "/" | relative_url }}'>
|
||||||
|
{{ site.title | escape }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav class='site-nav'>
|
||||||
|
<div class='trigger'>
|
||||||
|
<a class='page-link' href='https://severed.ink' style='font-weight: bold; color: #24292e;'>
|
||||||
|
severed.ink ↗
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
12
_includes/social.html
Normal file
12
_includes/social.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<ul class='social-media-list'>
|
||||||
|
{%- if site.github_username -%}
|
||||||
|
<li>
|
||||||
|
<a href='https://git.severed.ink/{{ site.github_username | cgi_escape | escape }}'>
|
||||||
|
<svg class='svg-icon'>
|
||||||
|
<use xlink:href="{{ '/assets/minima-social-icons.svg#github' | relative_url }}"></use>
|
||||||
|
</svg>
|
||||||
|
<span class='username'>{{ site.github_username | escape }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{%- endif -%}
|
||||||
|
</ul>
|
||||||
33
_layouts/category_index.html
Normal file
33
_layouts/category_index.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
layout: forge
|
||||||
|
---
|
||||||
|
<div style='margin-bottom: 20px;'>
|
||||||
|
<a
|
||||||
|
href='/'
|
||||||
|
style="text-decoration: none; color: #586069; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; font-size: 14px; display: flex; align-items: center; font-weight: 500;"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width='16'
|
||||||
|
height='16'
|
||||||
|
viewBox='0 0 24 24'
|
||||||
|
fill='none'
|
||||||
|
stroke='currentColor'
|
||||||
|
stroke-width='2'
|
||||||
|
stroke-linecap='round'
|
||||||
|
stroke-linejoin='round'
|
||||||
|
style='margin-right: 6px;'
|
||||||
|
>
|
||||||
|
<line x1="19" y1="12" x2="5" y2="12"></line>
|
||||||
|
<polyline points="12 19 5 12 12 5"></polyline>
|
||||||
|
</svg>
|
||||||
|
Back to Forge
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h1 class='post-list-heading' style='margin-bottom: 30px; text-transform: capitalize;'>
|
||||||
|
{{ page.title }} Module
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class='modules-wrapper'>
|
||||||
|
{% include folder_tree.html name=page.title posts=page.posts %}
|
||||||
|
</div>
|
||||||
6
_layouts/forge.html
Normal file
6
_layouts/forge.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<div class='home'>
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
29
_layouts/home.html
Normal file
29
_layouts/home.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<div class='home'>
|
||||||
|
{%- if page.title -%}
|
||||||
|
<h1 class='page-heading'>{{ page.title }}</h1>
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
{{ content }}
|
||||||
|
|
||||||
|
{%- if site.posts.size > 0 -%}
|
||||||
|
<h2 class='post-list-heading'>{{ page.list_title | default: 'Posts' }}</h2>
|
||||||
|
<ul class='post-list'>
|
||||||
|
{%- for post in site.posts -%}
|
||||||
|
<li>
|
||||||
|
<span class='post-meta'>{{ post.date | date: '%b %-d, %Y' }}</span>
|
||||||
|
<h3>
|
||||||
|
<a class='post-link' href='{{ post.url | relative_url }}'>
|
||||||
|
{{ post.title | escape }}
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
{%- if site.show_excerpts -%}
|
||||||
|
{{ post.excerpt }}
|
||||||
|
{%- endif -%}
|
||||||
|
</li>
|
||||||
|
{%- endfor -%}
|
||||||
|
</ul>
|
||||||
|
{%- endif -%}
|
||||||
|
</div>
|
||||||
17
_posts/architectures/2025-12-27-architecture-0.1.md
Normal file
17
_posts/architectures/2025-12-27-architecture-0.1.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: Architecture V1 (WIP)
|
||||||
|
date: 2025-12-27 02:00:00 -0400
|
||||||
|
categories:
|
||||||
|
- architectures
|
||||||
|
---
|
||||||
|
|
||||||
|
## Monitoring
|
||||||
|
|
||||||
|
```bash
|
||||||
|
.
|
||||||
|
└── alloy
|
||||||
|
├── config
|
||||||
|
│ └── config.alloy
|
||||||
|
└── docker-compose.yml
|
||||||
|
```
|
||||||
54
_posts/releases/2025-12-27-release-0.1.md
Normal file
54
_posts/releases/2025-12-27-release-0.1.md
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: 'Release 0.1: The Severed Ecosystem'
|
||||||
|
date: 2025-12-27 02:00:00 -0400
|
||||||
|
categories:
|
||||||
|
- releases
|
||||||
|
highlight: true
|
||||||
|
---
|
||||||
|
|
||||||
|
This blog serves as the public documentation for **Severed**. While the main site provides the high-level vision,
|
||||||
|
this space is dedicated to the technical source-of-truth for the experiments, infrastructure-as-code, and proprietary
|
||||||
|
tooling that are used within the cluster.
|
||||||
|
|
||||||
|
### Ecosystem
|
||||||
|
|
||||||
|
The following services are currently active within the `severed.ink` network:
|
||||||
|
|
||||||
|
- **[ChronoFlow Quant](https://refinement.severed.ink)**: Proprietary Trading Pipeline `(Auth Required)`
|
||||||
|
- **[Flow Admin](https://refinement.severed.ink)**: Dagster Orchestration Engine `(Auth Required)`
|
||||||
|
- **[Optics](https://optics.severed.ink)**: Centralized Grafana Observability `(Auth Required)`
|
||||||
|
- **[Gitea](https://git.severed.ink)**: Version Control & Git Ops `(Public)`
|
||||||
|
- **[Blog](https://blog.severed.ink)**: Public Engineering Documentation `(Public)`
|
||||||
|
|
||||||
|
### Core Infrastructure
|
||||||
|
|
||||||
|
The ecosystem is powered by a **Home Server Cluster** managed via a **Kubernetes (k3s)** distribution. This setup
|
||||||
|
prioritizes local sovereignty and GitOps principles.
|
||||||
|
|
||||||
|
- **CI Pipeline:** Automated build and test suites are orchestrated by a private Jenkins server utilizing self-hosted
|
||||||
|
runners.
|
||||||
|
- **GitOps & Deployment:** Automated synchronization and state enforcement via **ArgoCD**.
|
||||||
|
- **Data Layer:** Persistent storage managed by **PostgreSQL**.
|
||||||
|
- **Telemetry:** Full-stack observability provided by **Prometheus** (metrics) and **Loki** (logs) via **Grafana**.
|
||||||
|
- **Security Layer:** Push/Pull GitOps operations require an active connection to a **WireGuard (VPN)** for remote
|
||||||
|
access.
|
||||||
|
|
||||||
|
### Roadmap
|
||||||
|
|
||||||
|
Engineering efforts are currently focused on the following milestones:
|
||||||
|
|
||||||
|
1. **OSS Strategy:** Transitioning from a hybrid of AWS managed services toward a ~100% Open Source Software (OSS) stack.
|
||||||
|
2. **High Availability (HA):** Implementing a "Cloud RAID-1" failover mechanism. In the event of home cluster
|
||||||
|
instability, traffic automatically routes to a secondary cloud-instantiated Kubernetes cluster as a temporary
|
||||||
|
failover.
|
||||||
|
3. **Data Resilience:** Automating PostgreSQL backup strategies to ensure parity between the primary cluster and the
|
||||||
|
cloud-based failover.
|
||||||
|
4. **Storage Infrastructure:** Integrating a dedicated **TrueNAS** node to move from local SATA/NVMe reliance to a
|
||||||
|
centralized, redundant storage architecture.
|
||||||
|
|
||||||
|
### Terminal Redirect
|
||||||
|
|
||||||
|
For the full technical portfolio and expertise highlights, visit the main site:
|
||||||
|
|
||||||
|
## [→ severed.ink](https://severed.ink/)
|
||||||
37
assets/main.scss
Normal file
37
assets/main.scss
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
---
|
||||||
|
|
||||||
|
@import 'minima';
|
||||||
|
|
||||||
|
/* Minimal Tweaks for the Tree Component */
|
||||||
|
details > summary {
|
||||||
|
list-style: none; /* Hides default triangle in some browsers */
|
||||||
|
}
|
||||||
|
|
||||||
|
details > summary::-webkit-details-marker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-header {
|
||||||
|
border-top: none; /* Removes the top grey line (your previous request) */
|
||||||
|
|
||||||
|
/* Sticky Logic */
|
||||||
|
position: sticky; /* Stick to the viewport */
|
||||||
|
top: 0; /* Stick exactly at the top */
|
||||||
|
z-index: 1000; /* Ensure it sits above all other content */
|
||||||
|
background-color: #fff; /* White background to hide scrolling content */
|
||||||
|
|
||||||
|
/* Optional: Adds a subtle shadow when scrolling for better separation */
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
caret-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 2. Restore the cursor for actual input fields so users can type */
|
||||||
|
input,
|
||||||
|
textarea,
|
||||||
|
[contenteditable] {
|
||||||
|
caret-color: auto;
|
||||||
|
}
|
||||||
10
docker-compose.yml
Normal file
10
docker-compose.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: nginx:alpine
|
||||||
|
container_name: jekyll_blog
|
||||||
|
ports:
|
||||||
|
- '8080:80'
|
||||||
|
volumes:
|
||||||
|
- ./_site:/usr/share/nginx/html:ro
|
||||||
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
|
restart: unless-stopped
|
||||||
41
index.markdown
Normal file
41
index.markdown
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
layout: forge
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2 class="post-list-heading">Highlighted articles</h2>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
{% for post in site.posts %}
|
||||||
|
{% if post.highlight == true %}
|
||||||
|
<li>
|
||||||
|
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
|
||||||
|
<h3>
|
||||||
|
<a class="post-link" href="{{ post.url | relative_url }}">
|
||||||
|
{{ post.title | escape }}
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 class="post-list-heading" style="margin-top: 40px;">Documentation Modules</h2>
|
||||||
|
|
||||||
|
<div class="modules-wrapper">
|
||||||
|
{% for folder_name in site.module_order %}
|
||||||
|
{% assign cat_posts = site.categories[folder_name] %}
|
||||||
|
{% if cat_posts %}
|
||||||
|
{% include folder_tree.html name=folder_name posts=cat_posts %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign sorted_cats = site.categories | sort %}
|
||||||
|
{% for category in sorted_cats %}
|
||||||
|
{% assign cat_name = category[0] %}
|
||||||
|
{% assign cat_posts = category[1] %}
|
||||||
|
{% unless site.module_order contains cat_name %}
|
||||||
|
{% include folder_tree.html name=cat_name posts=cat_posts %}
|
||||||
|
{% endunless %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</div>
|
||||||
42
nginx.conf
Normal file
42
nginx.conf
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
# define root globally so all location blocks (images, css, etc) inherit it
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
# gzip compression
|
||||||
|
gzip on;
|
||||||
|
gzip_types text/plain text/css application/json application/javascript text/xml appl>
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_min_length 1000;
|
||||||
|
|
||||||
|
# assets (images, fonts, favicons) - cache for 1 Year
|
||||||
|
location ~* \.(jpg|jpeg|gif|png|ico|svg|woff|woff2|ttf|eot)$ {
|
||||||
|
expires 365d;
|
||||||
|
add_header Cache-Control "public, no-transform";
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
# code (css, js) - cache for 1 month
|
||||||
|
location ~* \.(css|js)$ {
|
||||||
|
expires 30d;
|
||||||
|
add_header Cache-Control "public, no-transform";
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
# standard routing - short cache
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ $uri.html =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
# error page
|
||||||
|
error_page 404 /404.html;
|
||||||
|
|
||||||
|
location = /404.html {
|
||||||
|
internal ;
|
||||||
|
}
|
||||||
|
|
||||||
|
# logging / lb config
|
||||||
|
real_ip_header X-Forwarded-For;
|
||||||
|
set_real_ip_from 10.0.0.0/8;
|
||||||
|
}
|
||||||
35
package.json
Normal file
35
package.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "cntest",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "In dev: ```bash bundle exec jekyll serve ```",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"prepare": "husky",
|
||||||
|
"format": "prettier --write .",
|
||||||
|
"dev": "bundle exec jekyll serve",
|
||||||
|
"build": "bundle exec jekyll build"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.{html,md,js,css,scss,json,yaml,yml,conf}": "prettier --write"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/wboughattas/cntest.git"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"type": "commonjs",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/wboughattas/cntest/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/wboughattas/cntest#readme",
|
||||||
|
"devDependencies": {
|
||||||
|
"@shopify/prettier-plugin-liquid": "^1.10.0",
|
||||||
|
"prettier-plugin-nginx": "^1.0.3",
|
||||||
|
"husky": "^9.1.7",
|
||||||
|
"lint-staged": "^16.2.7",
|
||||||
|
"prettier": "^3.7.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
500
pnpm-lock.yaml
generated
Normal file
500
pnpm-lock.yaml
generated
Normal file
@@ -0,0 +1,500 @@
|
|||||||
|
lockfileVersion: '9.0'
|
||||||
|
|
||||||
|
settings:
|
||||||
|
autoInstallPeers: true
|
||||||
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
importers:
|
||||||
|
.:
|
||||||
|
devDependencies:
|
||||||
|
'@shopify/prettier-plugin-liquid':
|
||||||
|
specifier: ^1.10.0
|
||||||
|
version: 1.10.0(prettier@3.7.4)
|
||||||
|
husky:
|
||||||
|
specifier: ^9.1.7
|
||||||
|
version: 9.1.7
|
||||||
|
lint-staged:
|
||||||
|
specifier: ^16.2.7
|
||||||
|
version: 16.2.7
|
||||||
|
prettier:
|
||||||
|
specifier: ^3.7.4
|
||||||
|
version: 3.7.4
|
||||||
|
prettier-plugin-nginx:
|
||||||
|
specifier: ^1.0.3
|
||||||
|
version: 1.0.3
|
||||||
|
|
||||||
|
packages:
|
||||||
|
'@shopify/liquid-html-parser@2.9.0':
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-bkI4tLbU47YUxpgbMa9fgeJjFEMvRNEFL644Yk0ZKo5H1IRzU4pPyCQ6PkGvb0JJnt7OZ+RDGvb6ZLCnAR2Z/A==,
|
||||||
|
}
|
||||||
|
|
||||||
|
'@shopify/prettier-plugin-liquid@1.10.0':
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-csHYjwuT34o8ja6EY0dUBYQS5UVwsKwRYxGiuG816Ov0B8lVd8FUjOwWUk2SnrNx3cGgL0no7z+Byapp7sC1Uw==,
|
||||||
|
}
|
||||||
|
peerDependencies:
|
||||||
|
prettier: ^2.0.0 || ^3.0.0
|
||||||
|
|
||||||
|
ansi-escapes@7.2.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
ansi-regex@6.2.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=12' }
|
||||||
|
|
||||||
|
ansi-styles@6.2.3:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=12' }
|
||||||
|
|
||||||
|
braces@3.0.3:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=8' }
|
||||||
|
|
||||||
|
cli-cursor@5.0.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
cli-truncate@5.1.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=20' }
|
||||||
|
|
||||||
|
colorette@2.0.20:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==,
|
||||||
|
}
|
||||||
|
|
||||||
|
commander@14.0.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=20' }
|
||||||
|
|
||||||
|
emoji-regex@10.6.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==,
|
||||||
|
}
|
||||||
|
|
||||||
|
environment@1.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
eventemitter3@5.0.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==,
|
||||||
|
}
|
||||||
|
|
||||||
|
fill-range@7.1.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=8' }
|
||||||
|
|
||||||
|
get-east-asian-width@1.4.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
html-styles@1.0.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-cDl5dcj73oI4Hy0DSUNh54CAwslNLJRCCoO+RNkVo+sBrjA/0+7E/xzvj3zH/GxbbBLGJhE0hBe1eg+0FINC6w==,
|
||||||
|
}
|
||||||
|
|
||||||
|
husky@9.1.7:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
is-fullwidth-code-point@5.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
is-number@7.0.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=0.12.0' }
|
||||||
|
|
||||||
|
isarray@1.0.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==,
|
||||||
|
}
|
||||||
|
|
||||||
|
isobject@2.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=0.10.0' }
|
||||||
|
|
||||||
|
line-column@1.0.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==,
|
||||||
|
}
|
||||||
|
|
||||||
|
lint-staged@16.2.7:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=20.17' }
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
listr2@9.0.5:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=20.0.0' }
|
||||||
|
|
||||||
|
log-update@6.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
micromatch@4.0.8:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=8.6' }
|
||||||
|
|
||||||
|
mimic-function@5.0.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
nano-spawn@2.0.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=20.17' }
|
||||||
|
|
||||||
|
ohm-js@17.3.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-LySMdjweN1hKBMMV8lM44+1wiewkndDNNJxtgVAscs7y683MXCdQZLsIaw64/p8NuqYbKOWZoHIOA5DU/xchoA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=0.12.1' }
|
||||||
|
|
||||||
|
onetime@7.0.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
picomatch@2.3.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=8.6' }
|
||||||
|
|
||||||
|
pidtree@0.6.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=0.10' }
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
prettier-plugin-nginx@1.0.3:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-vV5q85s8XnV6NEgvz1gVLfZhmxAxY03MyOYj2ApBpjFkbs00lRsRkTmqO9L39ADuD18z1RRCcfZ3eVxKhI/nqg==,
|
||||||
|
}
|
||||||
|
|
||||||
|
prettier@3.7.4:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=14' }
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
restore-cursor@5.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
rfdc@1.4.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==,
|
||||||
|
}
|
||||||
|
|
||||||
|
signal-exit@4.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=14' }
|
||||||
|
|
||||||
|
slice-ansi@7.1.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
string-argv@0.3.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=0.6.19' }
|
||||||
|
|
||||||
|
string-width@7.2.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
string-width@8.1.0:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=20' }
|
||||||
|
|
||||||
|
strip-ansi@7.1.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=12' }
|
||||||
|
|
||||||
|
to-regex-range@5.0.1:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=8.0' }
|
||||||
|
|
||||||
|
wrap-ansi@9.0.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==,
|
||||||
|
}
|
||||||
|
engines: { node: '>=18' }
|
||||||
|
|
||||||
|
yaml@2.8.2:
|
||||||
|
resolution:
|
||||||
|
{
|
||||||
|
integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==,
|
||||||
|
}
|
||||||
|
engines: { node: '>= 14.6' }
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
snapshots:
|
||||||
|
'@shopify/liquid-html-parser@2.9.0':
|
||||||
|
dependencies:
|
||||||
|
line-column: 1.0.2
|
||||||
|
ohm-js: 17.3.0
|
||||||
|
|
||||||
|
'@shopify/prettier-plugin-liquid@1.10.0(prettier@3.7.4)':
|
||||||
|
dependencies:
|
||||||
|
'@shopify/liquid-html-parser': 2.9.0
|
||||||
|
html-styles: 1.0.0
|
||||||
|
prettier: 3.7.4
|
||||||
|
|
||||||
|
ansi-escapes@7.2.0:
|
||||||
|
dependencies:
|
||||||
|
environment: 1.1.0
|
||||||
|
|
||||||
|
ansi-regex@6.2.2: {}
|
||||||
|
|
||||||
|
ansi-styles@6.2.3: {}
|
||||||
|
|
||||||
|
braces@3.0.3:
|
||||||
|
dependencies:
|
||||||
|
fill-range: 7.1.1
|
||||||
|
|
||||||
|
cli-cursor@5.0.0:
|
||||||
|
dependencies:
|
||||||
|
restore-cursor: 5.1.0
|
||||||
|
|
||||||
|
cli-truncate@5.1.1:
|
||||||
|
dependencies:
|
||||||
|
slice-ansi: 7.1.2
|
||||||
|
string-width: 8.1.0
|
||||||
|
|
||||||
|
colorette@2.0.20: {}
|
||||||
|
|
||||||
|
commander@14.0.2: {}
|
||||||
|
|
||||||
|
emoji-regex@10.6.0: {}
|
||||||
|
|
||||||
|
environment@1.1.0: {}
|
||||||
|
|
||||||
|
eventemitter3@5.0.1: {}
|
||||||
|
|
||||||
|
fill-range@7.1.1:
|
||||||
|
dependencies:
|
||||||
|
to-regex-range: 5.0.1
|
||||||
|
|
||||||
|
get-east-asian-width@1.4.0: {}
|
||||||
|
|
||||||
|
html-styles@1.0.0: {}
|
||||||
|
|
||||||
|
husky@9.1.7: {}
|
||||||
|
|
||||||
|
is-fullwidth-code-point@5.1.0:
|
||||||
|
dependencies:
|
||||||
|
get-east-asian-width: 1.4.0
|
||||||
|
|
||||||
|
is-number@7.0.0: {}
|
||||||
|
|
||||||
|
isarray@1.0.0: {}
|
||||||
|
|
||||||
|
isobject@2.1.0:
|
||||||
|
dependencies:
|
||||||
|
isarray: 1.0.0
|
||||||
|
|
||||||
|
line-column@1.0.2:
|
||||||
|
dependencies:
|
||||||
|
isarray: 1.0.0
|
||||||
|
isobject: 2.1.0
|
||||||
|
|
||||||
|
lint-staged@16.2.7:
|
||||||
|
dependencies:
|
||||||
|
commander: 14.0.2
|
||||||
|
listr2: 9.0.5
|
||||||
|
micromatch: 4.0.8
|
||||||
|
nano-spawn: 2.0.0
|
||||||
|
pidtree: 0.6.0
|
||||||
|
string-argv: 0.3.2
|
||||||
|
yaml: 2.8.2
|
||||||
|
|
||||||
|
listr2@9.0.5:
|
||||||
|
dependencies:
|
||||||
|
cli-truncate: 5.1.1
|
||||||
|
colorette: 2.0.20
|
||||||
|
eventemitter3: 5.0.1
|
||||||
|
log-update: 6.1.0
|
||||||
|
rfdc: 1.4.1
|
||||||
|
wrap-ansi: 9.0.2
|
||||||
|
|
||||||
|
log-update@6.1.0:
|
||||||
|
dependencies:
|
||||||
|
ansi-escapes: 7.2.0
|
||||||
|
cli-cursor: 5.0.0
|
||||||
|
slice-ansi: 7.1.2
|
||||||
|
strip-ansi: 7.1.2
|
||||||
|
wrap-ansi: 9.0.2
|
||||||
|
|
||||||
|
micromatch@4.0.8:
|
||||||
|
dependencies:
|
||||||
|
braces: 3.0.3
|
||||||
|
picomatch: 2.3.1
|
||||||
|
|
||||||
|
mimic-function@5.0.1: {}
|
||||||
|
|
||||||
|
nano-spawn@2.0.0: {}
|
||||||
|
|
||||||
|
ohm-js@17.3.0: {}
|
||||||
|
|
||||||
|
onetime@7.0.0:
|
||||||
|
dependencies:
|
||||||
|
mimic-function: 5.0.1
|
||||||
|
|
||||||
|
picomatch@2.3.1: {}
|
||||||
|
|
||||||
|
pidtree@0.6.0: {}
|
||||||
|
|
||||||
|
prettier-plugin-nginx@1.0.3: {}
|
||||||
|
|
||||||
|
prettier@3.7.4: {}
|
||||||
|
|
||||||
|
restore-cursor@5.1.0:
|
||||||
|
dependencies:
|
||||||
|
onetime: 7.0.0
|
||||||
|
signal-exit: 4.1.0
|
||||||
|
|
||||||
|
rfdc@1.4.1: {}
|
||||||
|
|
||||||
|
signal-exit@4.1.0: {}
|
||||||
|
|
||||||
|
slice-ansi@7.1.2:
|
||||||
|
dependencies:
|
||||||
|
ansi-styles: 6.2.3
|
||||||
|
is-fullwidth-code-point: 5.1.0
|
||||||
|
|
||||||
|
string-argv@0.3.2: {}
|
||||||
|
|
||||||
|
string-width@7.2.0:
|
||||||
|
dependencies:
|
||||||
|
emoji-regex: 10.6.0
|
||||||
|
get-east-asian-width: 1.4.0
|
||||||
|
strip-ansi: 7.1.2
|
||||||
|
|
||||||
|
string-width@8.1.0:
|
||||||
|
dependencies:
|
||||||
|
get-east-asian-width: 1.4.0
|
||||||
|
strip-ansi: 7.1.2
|
||||||
|
|
||||||
|
strip-ansi@7.1.2:
|
||||||
|
dependencies:
|
||||||
|
ansi-regex: 6.2.2
|
||||||
|
|
||||||
|
to-regex-range@5.0.1:
|
||||||
|
dependencies:
|
||||||
|
is-number: 7.0.0
|
||||||
|
|
||||||
|
wrap-ansi@9.0.2:
|
||||||
|
dependencies:
|
||||||
|
ansi-styles: 6.2.3
|
||||||
|
string-width: 7.2.0
|
||||||
|
strip-ansi: 7.1.2
|
||||||
|
|
||||||
|
yaml@2.8.2: {}
|
||||||
Reference in New Issue
Block a user