Skip to content
On this page

1500bytes

I decided to channel my passion for documentation to find the best study method for myself. This is the website you're currently on which I plan to utilize as a dumping ground for my tech related thoughts along with documentation for all services and solutions I aquire knowledge about.

Hosting

Currently this site is hosted using Netlify CI/CD processes to build from my Github repo.

Workflow

The main intentions of this site was to enable me to publish my information for others to use, encourage me to document my knowledge and by proxy requiring me to read over study material such as protocol whitepapers multiple times over, while enjoying it in order to properly format the documents.

Configuration

The webiste is using Vitepress as the SSG (Static Site Generator)

config.js
js
///config.js
import { generateSidebar } from 'vitepress-sidebar';


export default {
  title: "1500bytes",
  description: "Everything I know.",
  cleanUrls: "true",

  themeConfig: {
    logo: "/logo.png",
    siteTitle: "1500bytes",
    // Search config
    search: [
      { provider: 'local' },
    ],
    // Navbar Link
    nav: [
      { text: "Me", link: "/about-me" },
      { text: "Thoughts", link: "/thoughts/index" },
      { text: "Wiki", link: "/wiki/index" },      
      { text: "Projects", link: "/projects/index" },
      { text: "NetDivide", link: "https://netdivide.1500bytes.com/" },
    ],
    // Social Icons
    socialLinks: [
      { icon: "github", link: "https://github.com/kARAT97" },
      { icon: "instagram", link: "https://www.instagram.com/alex.arnars/" },
      { icon: "linkedin", link: "https://www.linkedin.com/in/alexander-orn-arnarson/" },
    ],
    // Sidebar
    sidebar: generateSidebar([
      {
      documentRootPath: '/docs',
      resolvePath: '/',
      },
      {
      documentRootPath: '/docs',
      rootGroupText: 'Thoughts',
      rootGroupLink: 'thoughts/index',
      scanStartPath: '/thoughts',      
      resolvePath: '/thoughts/',
      hyphenToSpace: 'true',
      capitalizeFirst: 'true',
      },
      {
      documentRootPath: '/docs',
      rootGroupLink: 'wiki/index',
      scanStartPath: '/wiki',
      resolvePath: '/wiki/',
      hyphenToSpace: 'true',
      capitalizeFirst: 'true',
      convertSameNameSubFileToGroupIndexPage: 'true',    
      collapseDepth: '2',
      keepMarkdownSyntaxFromTitle: 'true',
      sortMenusByFrontmatterOrder: 'true',
      }
    ]),

    markdown: {
      theme: "material-palenight",
      lineNumbers: true,
    },
  },
};
custom.css
css
@import url(https://fonts.googleapis.com/css?family=Space+Mono:regular,italic,700,700italic);
@import url(https://fonts.googleapis.com/css?family=Space+Grotesk:regular,italic,700,700italic);

:root {
  --vp-c-brand: #ff7340;
  --vp-c-brand-light: #ff5719;
  --vp-c-brand-lighter: #ff7340;
  --vp-c-brand-lighter: rgba(255, 135, 23, 0.25);
  --vp-c-brand-dark: #ff622d;
  --vp-c-brand-darker: #e23c00;

  --vp-c-sponsor: #fd1d7c;

  /* Typography */
  --vp-font-family-base: "Space Grotesk", "Inter var experimental", "Inter var",
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
    Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;

  /* Code Snippet font */
  --vp-font-family-mono: "Space Mono", Menlo, Monaco, Consolas, "Courier New",
    monospace;
  /* Sidebar with modification */
  --vp-sidebar-width: 310px;
}

/* Custom Stlye */
.custom-layout {
  background-color: var(--vp-c-bg-soft);
  color: var(--vp-c-text-1);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1rem;
  min-height: 400px;
  max-width: 750px;
  margin: 6rem auto 0;
  border-radius: 10px;
}

.custom-layout h1 {
  font-size: 2.2rem;
  font-weight: 600;
}

.custom-layout h2 {
  font-size: 1.2rem;
  font-weight: 600;
  align-items: left;
  justify-content: left;
  text-align: left;
}

.custom-layout .btn {
  background-color: var(--vp-button-brand-bg);
  color: var(--vp-button-brand-text);
  border-radius: 20px;
  padding: 0.5rem 1.4rem;
}




/* Wiki index left box Style */
.wiki-index-b1-layout {
  background-color: var(--vp-c-bg-soft);
  color: var(--vp-c-text-1);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: left;
  justify-content: left;
  text-align: center;
  gap: 1rem;
  min-height: 300px;
  max-width: 150px;
  margin: 6rem auto 0;
  border-radius: 10px;
}

.wiki-index-layout h1 {
  font-size: 1.5rem;
  font-weight: 600;
}

.wiki-index-layout h2 {
  font-size: 1.0rem;
  font-weight: 400;
  align-items: left;
  justify-content: left;
  text-align: left;
}


/* Wiki index center box Style */
.wiki-index-b2-layout {
  background-color: var(--vp-c-bg-soft);
  color: var(--vp-c-text-1);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: left;
  justify-content: left;
  text-align: center;
  gap: 1rem;
  min-height: 300px;
  max-width: 150px;
  margin: 6rem auto 0;
  border-radius: 10px;
}

.wiki-index-layout h1 {
  font-size: 1.5rem;
  font-weight: 600;
}

.wiki-index-layout h2 {
  font-size: 1.0rem;
  font-weight: 400;
  align-items: left;
  justify-content: left;
  text-align: left;
}


/* Wiki index right box Style */
.wiki-index-b3-layout {
  background-color: var(--vp-c-bg-soft);
  color: var(--vp-c-text-1);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: left;
  justify-content: left;
  text-align: center;
  gap: 1rem;
  min-height: 300px;
  max-width: 150px;
  margin: 6rem auto 0;
  border-radius: 10px;
}

.wiki-index-layout h1 {
  font-size: 1.5rem;
  font-weight: 600;
}

.wiki-index-layout h2 {
  font-size: 1.0rem;
  font-weight: 400;
  align-items: left;
  justify-content: left;
  text-align: left;
}




/* Feature boxes test style */
.col-xs-15,
.col-sm-15,
.col-md-15,
.col-lg-15 {
    position: relative;
    min-height: 1px;
    padding-right: 10px;
    padding-left: 10px;
    background-color: var(--vp-c-bg-soft);
    color: var(--vp-c-text-1);
}

.col-xs-15 {
    width: 20%;
    float: left;
}
@media (min-width: 768px) {
  .col-sm-15 {
        width: 20%;
        float: left;
    }
}
@media (min-width: 992px) {
    .col-md-15 {
        width: 20%;
        float: left;
    }
}
@media (min-width: 1200px) {
    .col-lg-15 {
        width: 20%;
        float: left;
    }
}





.timecontainer {
    width: 60%;
    margin: 0 auto;
    position: relative;
    text-align: center;
}

.timecontainer::before {
    position: absolute;
    left: 50%;
    content: '';
    width: 5px;
    height: 100%;
    background-color: rgb(30, 30, 32);
    border-radius: 5px;
}

.entry {
    margin: 50px 10px;
    position: relative;
}

.timeindicator {
    position: absolute;
    top: -5px;
    left: calc(50% - 5px);
    width: 15px;
    height: 15px;
    background-color: rgba(247, 89, 16);
    border-radius: 50%;
}

.timeindicator span {
    position: relative;
    top: -5px;
    width: 7px;
    height: 7px;
    display: inline-block;
    background-color: rgb(247, 89, 16);
    border-radius: 50%;
}

.timecontent {
    width: 200px;
    margin: 0 auto;
    transform: translate(-58%, -9px);
    font-size: 14px;
    text-align: right;
}

.entry:nth-child(odd) .timecontent {
    text-align: left;
    transform: translate(60%, -9px);
}

.timecontent span {
    font-weight: 500;
    font-size: 16px;
    display: block;
    color: rgb(250, 112, 49);
}

.time {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-130%, -48%);
    font-size: 14px;
    padding: 5px 10px;
    border-radius: 25px;
    background-color: rgb(250, 112, 49);
    color: white;
    display: inline-block;
}

.entry:nth-child(even) .time {
    transform: translate(40%, -48%);
}

@media only screen and (max-width: 600px) {
    .timecontainer {
        margin: 0;
    }

    .entry:nth-child(even) .timecontent, .entry:nth-child(odd) .timecontent {
        text-align: left;
        transform: translate(60%, -9px);
    }

    .entry:nth-child(even) .time, .entry:nth-child(odd) .time {
        transform: translate(-130%, -48%);
    }
}

Folder tree

md
Root
├── docs (Publish directory)
│   ├── .vitepress (Vitepress configuration directory)
│   ├── projects (Directory for Project pages)
│   ├── public (Media directory)
│   ├── thoughts (Directory for thoughts)
│   └── wiki (Directory for Wiki)
└── node_modules (Node.js Modules)