Skip to content

Commit

Permalink
feat: Initialize VitePress-based documentation site with comprehensiv…
Browse files Browse the repository at this point in the history
…e structure
  • Loading branch information
yarlson committed Jan 11, 2025
1 parent a3c7a8a commit f994f5f
Show file tree
Hide file tree
Showing 32 changed files with 7,808 additions and 0 deletions.
4 changes: 4 additions & 0 deletions www/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.cursorrules
.vitepress/cache
/.vitepress/dist/
node_modules
111 changes: 111 additions & 0 deletions www/.vitepress/config.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import { defineConfig } from "vitepress";
import { withMermaid } from "vitepress-plugin-mermaid";

export default withMermaid(defineConfig({
title: "FTL Documentation",
description: "Documentation for FTL - Faster Than Light Deployment Tool",
srcDir: "./docs",

markdown: {
theme: {
light: 'github-light',
dark: 'github-dark'
},
languages: ['yaml', 'bash', 'javascript', 'json', 'dockerfile']
},

themeConfig: {
nav: [
{ text: "Home", link: "/" },
{ text: "Getting Started", link: "/getting-started/" },
{ text: "Core Tasks", link: "/core-tasks/" },
{ text: "Configuration", link: "/configuration/" },
{ text: "Guides", link: "/guides/" },
{ text: "Reference", link: "/reference/" }
],

sidebar: {
"/": [
{
text: "Getting Started",
collapsed: false,
items: [
{ text: "Introduction", link: "/getting-started/" },
{ text: "Installation", link: "/getting-started/installation" },
{ text: "Configuration", link: "/getting-started/configuration" },
{
text: "First Deployment",
link: "/getting-started/first-deployment",
},
],
},
{
text: "Core Tasks",
collapsed: false,
items: [
{ text: "Overview", link: "/core-tasks/" },
{ text: "Server Setup", link: "/core-tasks/server-setup" },
{ text: "Building", link: "/core-tasks/building" },
{ text: "Deployment", link: "/core-tasks/deployment" },
{ text: "Logging", link: "/core-tasks/logging" },
{ text: "Tunneling", link: "/core-tasks/tunneling" },
],
},
{
text: "Configuration",
collapsed: true,
items: [
{ text: "Overview", link: "/configuration/" },
{
text: "Project Settings",
link: "/configuration/project-settings",
},
{ text: "Services", link: "/configuration/services" },
{ text: "Dependencies", link: "/configuration/dependencies" },
{ text: "Volumes", link: "/configuration/volumes" },
],
},
{
text: "Guides",
collapsed: true,
items: [
{ text: "Overview", link: "/guides/" },
{ text: "Zero-downtime Deployment", link: "/guides/zero-downtime" },
{ text: "Health Checks", link: "/guides/health-checks" },
{ text: "SSL Management", link: "/guides/ssl-management" },
],
},
{
text: "Reference",
collapsed: true,
items: [
{ text: "Overview", link: "/reference/" },
{ text: "CLI Commands", link: "/reference/cli-commands" },
{
text: "Configuration File",
link: "/reference/configuration-file",
},
{ text: "Environment Variables", link: "/reference/environment" },
{ text: "Troubleshooting", link: "/reference/troubleshooting" },
],
},
],
},

socialLinks: [{ icon: "github", link: "https://github.com/yarlson/ftl" }],

footer: {
message: "Released under the MIT License.",
copyright: "Copyright © 2024-present FTL Contributors",
},

search: {
provider: "local",
},

outline: {
level: [2, 3],
label: "On this page",
},
},
}));
18 changes: 18 additions & 0 deletions www/.vitepress/theme/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// https://vitepress.dev/guide/custom-theme
import { h } from 'vue'
import type { Theme } from 'vitepress'
import DefaultTheme from 'vitepress/theme'
import './vars.css'
import './style.css'

export default {
extends: DefaultTheme,
Layout: () => {
return h(DefaultTheme.Layout, null, {
// https://vitepress.dev/guide/extending-default-theme#layout-slots
})
},
enhanceApp({ app, router, siteData }) {
// ...
}
} satisfies Theme
169 changes: 169 additions & 0 deletions www/.vitepress/theme/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
:root {
/* Light mode */
--vp-c-bg: var(--flexoki-paper);
--vp-c-bg-soft: var(--flexoki-50);
--vp-c-bg-mute: var(--flexoki-100);
--vp-c-bg-alt: var(--flexoki-200);

/* Adjusted text colors for better contrast */
--vp-c-text-1: var(--flexoki-950); /* Darkened from 900 */
--vp-c-text-2: var(--flexoki-800); /* Darkened from 700 */
--vp-c-text-3: var(--flexoki-700); /* Darkened from 600 */

/* Adjusted brand colors for better contrast */
--vp-c-brand-1: var(--flexoki-blue-700); /* Darkened from 600 */
--vp-c-brand-2: var(--flexoki-blue-600); /* Darkened from 500 */
--vp-c-brand-3: var(--flexoki-blue-500); /* Darkened from 400 */
--vp-c-brand-soft: var(--flexoki-blue-100);

/* Buttons with improved contrast */
--vp-button-brand-bg: var(--flexoki-blue-700); /* Darkened for better contrast on white */
--vp-button-brand-hover-bg: var(--flexoki-blue-800);
--vp-button-brand-active-bg: var(--flexoki-blue-900);

/* Links with improved contrast */
--vp-c-link: var(--flexoki-blue-700); /* Darkened from 600 */
--vp-c-link-hover: var(--flexoki-blue-800);
--vp-c-link-active: var(--flexoki-blue-900);

/* Borders */
--vp-c-border: var(--flexoki-300); /* Darkened for better contrast */
--vp-c-divider: var(--flexoki-200);
--vp-c-gutter: var(--flexoki-200);

/* Code blocks */
--vp-code-block-bg: var(--flexoki-50);
--vp-code-block-divider: var(--flexoki-300);
--vp-code-tab-divider: var(--flexoki-300);
--vp-code-copy-code-bg: var(--flexoki-100);
--vp-code-copy-code-hover-bg: var(--flexoki-200);

/* Custom block colors with improved contrast */
--vp-custom-block-tip-border: var(--flexoki-green-600);
--vp-custom-block-tip-text: var(--flexoki-green-900);
--vp-custom-block-tip-bg: var(--flexoki-green-50);

--vp-custom-block-warning-border: var(--flexoki-yellow-600);
--vp-custom-block-warning-text: var(--flexoki-yellow-900);
--vp-custom-block-warning-bg: var(--flexoki-yellow-50);

--vp-custom-block-danger-border: var(--flexoki-red-600);
--vp-custom-block-danger-text: var(--flexoki-red-900);
--vp-custom-block-danger-bg: var(--flexoki-red-50);

/* Syntax highlighting with improved contrast */
--vp-c-text-code: var(--flexoki-magenta-700);
--vp-code-line-highlight-bg: var(--flexoki-yellow-100);
--vp-code-line-number-color: var(--flexoki-600);

/* Sidebar and Navigation */
--vp-sidebar-bg-color: var(--vp-c-bg-soft);
--vp-c-bg-navbar: var(--vp-c-bg-soft);
--vp-c-text-nav: var(--vp-c-text-1);
--vp-c-text-sidebar: var(--vp-c-text-1);
--vp-sidebar-border-color: var(--vp-c-border);
--vp-c-brand: var(--vp-c-brand-1);
--vp-c-brand-dark: var(--vp-c-brand-2);
}

/* Dark mode */
.dark {
--vp-c-bg: var(--flexoki-black);
--vp-c-bg-soft: var(--flexoki-950);
--vp-c-bg-mute: var(--flexoki-900);
--vp-c-bg-alt: var(--flexoki-850);

/* Adjusted text colors for better contrast */
--vp-c-text-1: var(--flexoki-50); /* Lightened from 100 */
--vp-c-text-2: var(--flexoki-200); /* Lightened from 300 */
--vp-c-text-3: var(--flexoki-300); /* Lightened from 400 */

/* Adjusted brand colors for better contrast */
--vp-c-brand-1: var(--flexoki-blue-300); /* Lightened from 400 */
--vp-c-brand-2: var(--flexoki-blue-200); /* Lightened from 500 */
--vp-c-brand-3: var(--flexoki-blue-100); /* Lightened from 600 */
--vp-c-brand-soft: var(--flexoki-blue-800);

/* Buttons with improved contrast */
--vp-button-brand-bg: var(--flexoki-blue-300);
--vp-button-brand-hover-bg: var(--flexoki-blue-200);
--vp-button-brand-active-bg: var(--flexoki-blue-100);

/* Links with improved contrast */
--vp-c-link: var(--flexoki-blue-300);
--vp-c-link-hover: var(--flexoki-blue-200);
--vp-c-link-active: var(--flexoki-blue-100);

/* Borders */
--vp-c-border: var(--flexoki-700); /* Lightened for better contrast */
--vp-c-divider: var(--flexoki-800);
--vp-c-gutter: var(--flexoki-800);

/* Code blocks */
--vp-code-block-bg: var(--flexoki-950);
--vp-code-block-divider: var(--flexoki-700);
--vp-code-tab-divider: var(--flexoki-700);
--vp-code-copy-code-bg: var(--flexoki-900);
--vp-code-copy-code-hover-bg: var(--flexoki-800);

/* Custom block colors with improved contrast */
--vp-custom-block-tip-border: var(--flexoki-green-500);
--vp-custom-block-tip-text: var(--flexoki-green-200);
--vp-custom-block-tip-bg: var(--flexoki-green-900);

--vp-custom-block-warning-border: var(--flexoki-yellow-500);
--vp-custom-block-warning-text: var(--flexoki-yellow-200);
--vp-custom-block-warning-bg: var(--flexoki-yellow-900);

--vp-custom-block-danger-border: var(--flexoki-red-500);
--vp-custom-block-danger-text: var(--flexoki-red-200);
--vp-custom-block-danger-bg: var(--flexoki-red-900);

/* Syntax highlighting with improved contrast */
--vp-c-text-code: var(--flexoki-magenta-300);
--vp-code-line-highlight-bg: var(--flexoki-yellow-900);
--vp-code-line-number-color: var(--flexoki-500);

/* Sidebar and Navigation - Dark mode */
--vp-sidebar-bg-color: var(--vp-c-bg-soft);
--vp-c-bg-navbar: var(--vp-c-bg-soft);
--vp-c-text-nav: var(--vp-c-text-1);
--vp-c-text-sidebar: var(--vp-c-text-1);
--vp-sidebar-border-color: var(--vp-c-border);
}

/* Rest of the styles remain the same */
.VPSidebar {
border-right: 1px solid var(--vp-c-border);
}

.VPSidebarItem.level-0 > .item .text,
.VPSidebarItem.level-1 > .item .text {
font-weight: 500;
}

.VPSidebarItem .item.is-active:not(.has-active) {
background-color: var(--vp-c-brand-soft);
}

.VPNav {
border-bottom: 1px solid var(--vp-c-border);
}

::-webkit-scrollbar {
width: 8px;
height: 8px;
}

::-webkit-scrollbar-track {
background: var(--vp-c-bg-soft);
}

::-webkit-scrollbar-thumb {
background: var(--vp-c-border);
border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
background: var(--vp-c-text-3);
}
63 changes: 63 additions & 0 deletions www/.vitepress/theme/vars.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
:root {
/* Base colors */
--flexoki-black: #100F0F;
--flexoki-paper: #FFFCF0;

/* Base scale */
--flexoki-50: #F2F0E5;
--flexoki-100: #E6E4D9;
--flexoki-150: #DAD8CE;
--flexoki-200: #CECDC3;
--flexoki-300: #B7B5AC;
--flexoki-400: #9F9D96;
--flexoki-500: #878580;
--flexoki-600: #6F6E69;
--flexoki-700: #575653;
--flexoki-800: #403E3C;
--flexoki-850: #343331;
--flexoki-900: #282726;
--flexoki-950: #1C1B1A;

/* Blue */
--flexoki-blue-50: #E1ECEB;
--flexoki-blue-100: #C6DDE8;
--flexoki-blue-200: #92BFDB;
--flexoki-blue-300: #66A0C8;
--flexoki-blue-400: #4385BE;
--flexoki-blue-500: #3171B2;
--flexoki-blue-600: #205EA6;
--flexoki-blue-700: #1A4F8C;
--flexoki-blue-900: #12253B;

/* Red */
--flexoki-red-50: #FFE1D5;
--flexoki-red-300: #E8705F;
--flexoki-red-400: #D14D41;
--flexoki-red-600: #AF3029;
--flexoki-red-700: #942822;
--flexoki-red-950: #261312;

/* Green */
--flexoki-green-50: #EDEECF;
--flexoki-green-300: #A0AF54;
--flexoki-green-400: #879A39;
--flexoki-green-600: #66800B;
--flexoki-green-700: #536907;
--flexoki-green-950: #1A1E0C;

/* Yellow */
--flexoki-yellow-50: #FAEEC6;
--flexoki-yellow-300: #DFB431;
--flexoki-yellow-400: #D0A215;
--flexoki-yellow-600: #AD8301;
--flexoki-yellow-700: #8E6B01;
--flexoki-yellow-950: #241E08;

/* Magenta */
--flexoki-magenta-50: #FEE4E5;
--flexoki-magenta-300: #E47DA8;
--flexoki-magenta-400: #CE5D97;
--flexoki-magenta-600: #A02F6F;
--flexoki-magenta-700: #87285E;
--flexoki-magenta-950: #24131D;
}
Loading

0 comments on commit f994f5f

Please sign in to comment.