From a2c92466b9cdc5990d7446914c148ef18308cf28 Mon Sep 17 00:00:00 2001 From: Sebastian Wendel Date: Fri, 7 Apr 2023 16:32:36 +0200 Subject: [PATCH] added astro --- .envrc | 7 + .eslintignore | 20 + .eslintrc.js | 32 + .gitea/workflows/build.yaml | 20 + .gitignore | 26 + .npmrc | 2 + .prettierignore | 4 + .prettierrc | 5 + .prettierrc.cjs | 30 + .vscode/extensions.json | 7 + .vscode/launch.json | 11 + .vscode/settings.json | 12 + .vscode/tasks.json | 18 + astro.config.mjs | 17 + flake.lock | 505 ++ flake.nix | 51 + garnix.yaml | 3 + nix/hooks.nix | 13 + nix/site.nix | 35 + package.json | 31 + public/favicon.svg | 13 + public/opengraph.jpg | Bin 0 -> 46659 bytes public/robots.txt | 4 + renovate.json | 8 + src/assets/hero-alt.png | Bin 0 -> 71006 bytes src/assets/hero-source.svg | 32 + src/assets/hero.png | Bin 0 -> 40349 bytes src/components/contactform.astro | 127 + src/components/container.astro | 7 + src/components/cta.astro | 17 + src/components/features.astro | 69 + src/components/footer.astro | 19 + src/components/hero.astro | 54 + src/components/logos.astro | 16 + src/components/navbar/dropdown.astro | 47 + src/components/navbar/navbar.astro | 88 + src/components/pricing.astro | 45 + src/components/sectionhead.astro | 12 + src/components/ui/button.astro | 40 + src/components/ui/icons/index.js | 1 + src/components/ui/icons/tick.astro | 16 + src/components/ui/link.astro | 44 + .../complete-guide-fullstack-development.md | 37 + .../essential-data-structures-algorithms.md | 37 + .../blog/how-to-become-frontend-master.md | 44 + src/content/blog/kitchensink.mdx | 193 + src/content/config.ts | 39 + src/content/team/janette-lynch.md | 10 + src/content/team/marcell-ziemann.md | 10 + src/content/team/robert-palmer.md | 10 + src/layouts/BlogLayout.astro | 50 + src/layouts/Layout.astro | 68 + src/pages/about.astro | 62 + src/pages/blog.astro | 76 + src/pages/blog/[slug].astro | 62 + src/pages/contact.astro | 45 + src/pages/index.astro | 18 + src/pages/pricing.astro | 80 + src/utils/all.js | 9 + tailwind.config.cjs | 13 + tsconfig.json | 27 + yarn.lock | 4308 +++++++++++++++++ 62 files changed, 6706 insertions(+) create mode 100644 .envrc create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitea/workflows/build.yaml create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .prettierrc.cjs create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 astro.config.mjs create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 garnix.yaml create mode 100644 nix/hooks.nix create mode 100644 nix/site.nix create mode 100644 package.json create mode 100644 public/favicon.svg create mode 100644 public/opengraph.jpg create mode 100644 public/robots.txt create mode 100644 renovate.json create mode 100644 src/assets/hero-alt.png create mode 100644 src/assets/hero-source.svg create mode 100644 src/assets/hero.png create mode 100644 src/components/contactform.astro create mode 100644 src/components/container.astro create mode 100644 src/components/cta.astro create mode 100644 src/components/features.astro create mode 100644 src/components/footer.astro create mode 100644 src/components/hero.astro create mode 100644 src/components/logos.astro create mode 100644 src/components/navbar/dropdown.astro create mode 100644 src/components/navbar/navbar.astro create mode 100644 src/components/pricing.astro create mode 100644 src/components/sectionhead.astro create mode 100644 src/components/ui/button.astro create mode 100644 src/components/ui/icons/index.js create mode 100644 src/components/ui/icons/tick.astro create mode 100644 src/components/ui/link.astro create mode 100644 src/content/blog/complete-guide-fullstack-development.md create mode 100644 src/content/blog/essential-data-structures-algorithms.md create mode 100644 src/content/blog/how-to-become-frontend-master.md create mode 100644 src/content/blog/kitchensink.mdx create mode 100644 src/content/config.ts create mode 100644 src/content/team/janette-lynch.md create mode 100644 src/content/team/marcell-ziemann.md create mode 100644 src/content/team/robert-palmer.md create mode 100644 src/layouts/BlogLayout.astro create mode 100644 src/layouts/Layout.astro create mode 100644 src/pages/about.astro create mode 100644 src/pages/blog.astro create mode 100644 src/pages/blog/[slug].astro create mode 100644 src/pages/contact.astro create mode 100644 src/pages/index.astro create mode 100644 src/pages/pricing.astro create mode 100644 src/utils/all.js create mode 100644 tailwind.config.cjs create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..5778f17 --- /dev/null +++ b/.envrc @@ -0,0 +1,7 @@ +watch_file flake.nix flake.lock package.json yarn.lock nix/*.nix + +use flake + +yarn install + +yarn sync \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..f860ece --- /dev/null +++ b/.eslintignore @@ -0,0 +1,20 @@ +# build output +dist/ +result + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..3d4f080 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,32 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + extends: ['plugin:astro/all'], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + plugins: ['@typescript-eslint'], + rules: {}, + overrides: [ + { + // Define the configuration for `.astro` file. + files: ['*.astro'], + // Allows Astro components to be parsed. + parser: 'astro-eslint-parser', + // Parse the script in `.astro` as TypeScript by adding the following configuration. + // It's the setting you need when using TypeScript. + parserOptions: { + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.astro'], + }, + rules: { + // override/add rules settings here, such as: + 'astro/no-set-html-directive': 'off', + }, + }, + ], +}; diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..b972147 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,20 @@ +name: node-build + +on: + push: + branches: [main] + +jobs: + node: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - run: git fetch --force --tags + - uses: actions/setup-node@v3 + with: + node-version: 18 + - run: npm ci + - run: npm test + - run: npm run build diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..437dab4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# nix env +.direnv/ +result + +# build output +dist/ + +# generated type files +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +pnpm-debug.log* +yarn-debug.log* +yarn-error.log* + +# environment variables +.env +.env.production +src/env.d.ts + +# pre-commit +/.pre-commit-config.yaml diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..ef83021 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +# Expose Astro dependencies for `pnpm` users +shamefully-hoist=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..e9d14ee --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +/.vscode +/dist +/result +/.direnv \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..42f85a1 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "tabWidth": 2, + "useTabs": false, + "bracketSameLine": true +} \ No newline at end of file diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..f548ca4 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,30 @@ +/** @type {import("@types/prettier").Options} */ +module.exports = { + printWidth: 100, + semi: true, + singleQuote: true, + tabWidth: 4, + trailingComma: 'es5', + useTabs: true, + plugins: ['./node_modules/prettier-plugin-astro'], + overrides: [ + { + files: '*.astro', + options: { + parser: 'astro', + }, + }, + { + files: ['.*', '*.md', '*.toml'], + options: { + useTabs: false, + }, + }, + { + files: ['*.yaml', '*.yml', '*.json'], + options: { + tabWidth: 2, + }, + }, + ], +}; diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..d3d93fe --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "astro-build.astro-vscode", + "kamadorueda.alejandra", + ], + "unwantedRecommendations": [] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d642209 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..acd4dc2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ + +{ + "alejandra.program": "alejandra", + "[nix]": { + "editor.defaultFormatter": "kamadorueda.alejandra", + "editor.formatOnPaste": true, + "editor.formatOnSave": true, + "editor.insertSpaces": true, + "editor.tabSize": 2, + "editor.codeLens": true + }, +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..ef57256 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,18 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "watch tests", + "type": "shell", + "command": "watch --color 'nix-build test --no-out-link | xargs cat'", + "presentation": { + "echo": false, + "reveal": "always", + "focus": false, + "panel": "dedicated", + "showReuseMessage": false + }, + "problemMatcher": [] + } + ] +} \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..785b966 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,17 @@ +import { defineConfig } from "astro/config"; +import tailwind from "@astrojs/tailwind"; +import image from "@astrojs/image"; +import mdx from "@astrojs/mdx"; +import sitemap from "@astrojs/sitemap"; + +export default defineConfig({ + site: "https://astroship.web3templates.com", + integrations: [ + tailwind(), + image({ + serviceEntryPoint: "@astrojs/image/sharp", + }), + mdx(), + sitemap(), + ], +}); diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..8fb9dc7 --- /dev/null +++ b/flake.lock @@ -0,0 +1,505 @@ +{ + "nodes": { + "alejandra": { + "inputs": { + "fenix": "fenix", + "flakeCompat": "flakeCompat", + "nixpkgs": [ + "d2n", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1658427149, + "narHash": "sha256-ToD/1z/q5VHsLMrS2h96vjJoLho59eNRtknOUd19ey8=", + "owner": "kamadorueda", + "repo": "alejandra", + "rev": "f5a22afd2adfb249b4e68e0b33aa1f0fb73fb1be", + "type": "github" + }, + "original": { + "owner": "kamadorueda", + "repo": "alejandra", + "type": "github" + } + }, + "crane": { + "flake": false, + "locked": { + "lastModified": 1670900067, + "narHash": "sha256-VXVa+KBfukhmWizaiGiHRVX/fuk66P8dgSFfkVN4/MY=", + "owner": "ipetkov", + "repo": "crane", + "rev": "59b31b41a589c0a65e4a1f86b0e5eac68081468b", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "d2n": { + "inputs": { + "alejandra": "alejandra", + "all-cabal-json": [ + "nixpkgs" + ], + "crane": "crane", + "devshell": "devshell", + "flake-parts": "flake-parts", + "flake-utils-pre-commit": "flake-utils-pre-commit", + "ghc-utils": "ghc-utils", + "gomod2nix": "gomod2nix", + "mach-nix": "mach-nix", + "nix-pypi-fetcher": "nix-pypi-fetcher", + "nixpkgs": "nixpkgs", + "poetry2nix": "poetry2nix", + "pre-commit-hooks": "pre-commit-hooks", + "pruned-racket-catalog": "pruned-racket-catalog" + }, + "locked": { + "lastModified": 1676992344, + "narHash": "sha256-TEn5kEi/jL9Dt6O+ZZ7kQwnlAgEv0r4VgQZnav/cfV4=", + "owner": "nix-community", + "repo": "dream2nix", + "rev": "db72710500a80bdf4589b6807d2491a4a0dae3ad", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "dream2nix", + "type": "github" + } + }, + "devshell": { + "flake": false, + "locked": { + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "d2n", + "alejandra", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1657607339, + "narHash": "sha256-HaqoAwlbVVZH2n4P3jN2FFPMpVuhxDy1poNOR7kzODc=", + "owner": "nix-community", + "repo": "fenix", + "rev": "b814c83d9e6aa5a28d0cf356ecfdafb2505ad37d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "d2n", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1675933616, + "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1679737941, + "narHash": "sha256-srSD9CwsVPnUMsIZ7Kt/UegkKUEBcTyU1Rev7mO45S0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3502ee99d6dade045bdeaf7b0cd8ec703484c25c", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils-pre-commit": { + "locked": { + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flakeCompat": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "ghc-utils": { + "flake": false, + "locked": { + "lastModified": 1662774800, + "narHash": "sha256-1Rd2eohGUw/s1tfvkepeYpg8kCEXiIot0RijapUjAkE=", + "ref": "refs/heads/master", + "rev": "bb3a2d3dc52ff0253fb9c2812bd7aa2da03e0fea", + "revCount": 1072, + "type": "git", + "url": "https://gitlab.haskell.org/bgamari/ghc-utils" + }, + "original": { + "type": "git", + "url": "https://gitlab.haskell.org/bgamari/ghc-utils" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gomod2nix": { + "flake": false, + "locked": { + "lastModified": 1627572165, + "narHash": "sha256-MFpwnkvQpauj799b4QTBJQFEddbD02+Ln5k92QyHOSk=", + "owner": "tweag", + "repo": "gomod2nix", + "rev": "67f22dd738d092c6ba88e420350ada0ed4992ae8", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "gomod2nix", + "type": "github" + } + }, + "mach-nix": { + "flake": false, + "locked": { + "lastModified": 1634711045, + "narHash": "sha256-m5A2Ty88NChLyFhXucECj6+AuiMZPHXNbw+9Kcs7F6Y=", + "owner": "DavHau", + "repo": "mach-nix", + "rev": "4433f74a97b94b596fa6cd9b9c0402104aceef5d", + "type": "github" + }, + "original": { + "id": "mach-nix", + "type": "indirect" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1678109515, + "narHash": "sha256-C2X+qC80K2C1TOYZT8nabgo05Dw2HST/pSn6s+n6BO8=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "aa9ff6ce4a7f19af6415fb3721eaa513ea6c763c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-pypi-fetcher": { + "flake": false, + "locked": { + "lastModified": 1669065297, + "narHash": "sha256-UStjXjNIuIm7SzMOWvuYWIHBkPUKQ8Id63BMJjnIDoA=", + "owner": "DavHau", + "repo": "nix-pypi-fetcher", + "rev": "a9885ac6a091576b5195d547ac743d45a2a615ac", + "type": "github" + }, + "original": { + "owner": "DavHau", + "repo": "nix-pypi-fetcher", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1665580254, + "narHash": "sha256-hO61XPkp1Hphl4HGNzj1VvDH5URt7LI6LaY/385Eul4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f634d427b0224a5f531ea5aa10c3960ba6ec5f0f", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1675183161, + "narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1673800717, + "narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1677050843, + "narHash": "sha256-3fcFxn58eCtrXrVPeW/nAg6NR5wUERVEf8zOtjPDzuM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9e0eed654c705c7cafe192a8eba1610217f70544", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1671271357, + "narHash": "sha256-xRJdLbWK4v2SewmSStYrcLa0YGJpleufl44A19XSW8k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "40f79f003b6377bd2f4ed4027dde1f8f922995dd", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "poetry2nix": { + "flake": false, + "locked": { + "lastModified": 1666918719, + "narHash": "sha256-BkK42fjAku+2WgCOv2/1NrPa754eQPV7gPBmoKQBWlc=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "289efb187123656a116b915206e66852f038720e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "1.36.0", + "repo": "poetry2nix", + "type": "github" + } + }, + "pre-commit": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1676879534, + "narHash": "sha256-HU4RXcwsAX1u7AUbGOBDxkYQkeODcn+HZjXqKa1y/hk=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "c9495f017f67a11e9c9909b032dc7762dfc853cf", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-utils": [ + "d2n", + "flake-utils-pre-commit" + ], + "nixpkgs": [ + "d2n", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646153636, + "narHash": "sha256-AlWHMzK+xJ1mG267FdT8dCq/HvLCA6jwmx2ZUy5O8tY=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "b6bc0b21e1617e2b07d8205e7fae7224036dfa4b", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pruned-racket-catalog": { + "flake": false, + "locked": { + "lastModified": 1672537287, + "narHash": "sha256-SuOvXVcLfakw18oJB/PuRMyvGyGG1+CQD3R+TGHIv44=", + "owner": "nix-community", + "repo": "pruned-racket-catalog", + "rev": "c8b89557fb53b36efa2ee48a769c7364df0f6262", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "catalog", + "repo": "pruned-racket-catalog", + "type": "github" + } + }, + "root": { + "inputs": { + "d2n": "d2n", + "flake-parts": "flake-parts_2", + "nix-filter": "nix-filter", + "nixpkgs": "nixpkgs_2", + "pre-commit": "pre-commit" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1657557289, + "narHash": "sha256-PRW+nUwuqNTRAEa83SfX+7g+g8nQ+2MMbasQ9nt6+UM=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "caf23f29144b371035b864a1017dbc32573ad56d", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..05fead9 --- /dev/null +++ b/flake.nix @@ -0,0 +1,51 @@ +{ + description = "nixos_hamburg - Website"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable"; + d2n.url = "github:nix-community/dream2nix"; + d2n.inputs.all-cabal-json.follows = "nixpkgs"; + nix-filter.url = "github:numtide/nix-filter"; + flake-parts.url = "github:hercules-ci/flake-parts"; + pre-commit.url = "github:cachix/pre-commit-hooks.nix"; + }; + + outputs = { + d2n, + nix-filter, + flake-parts, + pre-commit, + ... + } @ inputs: let + systems = ["x86_64-linux" "aarch64-linux"]; + in + flake-parts.lib.mkFlake {inherit inputs;} { + inherit systems; + + imports = [d2n.flakeModuleBeta pre-commit.flakeModule ./nix/site.nix ./nix/hooks.nix]; + + dream2nix.config.projectRoot = ./.; + + perSystem = { + self', + config, + pkgs, + system, + ... + }: { + apps.serve.program = "${pkgs.writeShellScript "serve" '' + ${pkgs.miniserve}/bin/miniserve -p 3001 --index index.html ${self'.packages.default} + ''}"; + + packages.default = self'.packages.nixos_hamburg; + + devShells.default = pkgs.mkShell { + packages = builtins.attrValues { + inherit (pkgs) yarn; + inherit (pkgs) alejandra nil; + }; + shellHook = config.pre-commit.installationScript; + }; + }; + }; +} diff --git a/garnix.yaml b/garnix.yaml new file mode 100644 index 0000000..f9feef7 --- /dev/null +++ b/garnix.yaml @@ -0,0 +1,3 @@ +builds: + exclude: + - 'checks.*.pre-commit' diff --git a/nix/hooks.nix b/nix/hooks.nix new file mode 100644 index 0000000..fc4e471 --- /dev/null +++ b/nix/hooks.nix @@ -0,0 +1,13 @@ +{self, ...}: { + perSystem = {pkgs, ...}: { + pre-commit.check.enable = true; + pre-commit.settings.hooks.nixpkgs-fmt.enable = false; + pre-commit.settings.hooks.alejandra.enable = true; + pre-commit.settings.hooks.prettier.enable = true; + + pre-commit.settings.hooks.eslint.enable = true; + pre-commit.settings.hooks.eslint.pass_filenames = false; + pre-commit.settings.settings.eslint.binPath = "${pkgs.nodePackages.eslint}/bin/eslint src"; + pre-commit.settings.settings.eslint.extensions = "\\.(js|ts|jsx|tsx|astro|md|mdx|cjs|ts)$"; + }; +} diff --git a/nix/site.nix b/nix/site.nix new file mode 100644 index 0000000..aae1359 --- /dev/null +++ b/nix/site.nix @@ -0,0 +1,35 @@ +{inputs, ...}: let + inherit (inputs.nix-filter.lib) filter inDirectory matchExt; +in { + perSystem = {config, ...}: { + dream2nix.inputs.self = { + source = filter { + root = ./..; + include = [ + (inDirectory "src") + (inDirectory "public") + (matchExt "js") + (matchExt "cjs") + (matchExt "mjs") + ../package.json + ../yarn.lock + ]; + }; + projects.nixos_hamburg = { + name = "nixos_hamburg"; + subsystem = "nodejs"; + translator = "yarn-lock"; + subsystemInfo.nodejs = 18; + }; + + packageOverrides.nixos_hamburg.copyNixos_hamburg = { + installPhase = '' + mkdir -p $out + cp -rv ./dist/* $out + ''; + }; + }; + + packages.nixos_hamburg = config.dream2nix.outputs.self.packages.nixos_hamburg; + }; +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..14b17ae --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "nixos.hamburg", + "type": "module", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "sync": "astro sync", + "astro": "astro" + }, + "dependencies": { + "@astrojs/image": "^0.14.1", + "@astrojs/mdx": "^0.16.0", + "@astrojs/sitemap": "^1.0.1", + "@astrojs/tailwind": "^3.0.1", + "@fontsource/inter": "^4.5.15", + "astro": "^2.0.11", + "astro-feather-icons": "^1.0.2", + "astro-icon": "^0.8.0", + "astro-navbar": "^1.1.5", + "astro-seo": "^0.7.0", + "tailwindcss": "^3.2.4" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.9", + "sharp": "^0.31.3" + } +} diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..0f39062 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/public/opengraph.jpg b/public/opengraph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d69468ff78d004c1858866f84eff60f3fe1a829 GIT binary patch literal 46659 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 literal 0 HcmV?d00001 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..398c0ca --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: http://astroship.web3templates.com/sitemap-index.xml \ No newline at end of file diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..e4fac37 --- /dev/null +++ b/renovate.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["config:base"], + "assignees": ["Nobbz"], + "rangeStrategy": "update-lockfile", + "schedule": ["* 0-5 * * *"], + "nix": { "enabled": true } +} diff --git a/src/assets/hero-alt.png b/src/assets/hero-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..c92012e31f1af2c8c32ae3f3afa9996efb75b208 GIT binary patch literal 71006 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/hero.png b/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8cdf038f4839d48a5d7713b3bc263527c5c68d GIT binary patch literal 40349 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 LX{=L;aESgtSB9dW literal 0 HcmV?d00001 diff --git a/src/components/contactform.astro b/src/components/contactform.astro new file mode 100644 index 0000000..1cba2ab --- /dev/null +++ b/src/components/contactform.astro @@ -0,0 +1,127 @@ +--- +import Button from "./ui/button.astro"; +--- + + +
+ + + +
+ +
+ Please provide your full name. +
+
+
+ +
+ Please provide your email address. +
+
+ Please provide a valid email address. +
+
+
+ +
+ Please enter your message. +
+
+ +
+
+ + + + diff --git a/src/components/container.astro b/src/components/container.astro new file mode 100644 index 0000000..b8ce53a --- /dev/null +++ b/src/components/container.astro @@ -0,0 +1,7 @@ +--- +const { class: className } = Astro.props; +--- + +
+ +
diff --git a/src/components/cta.astro b/src/components/cta.astro new file mode 100644 index 0000000..8f4789f --- /dev/null +++ b/src/components/cta.astro @@ -0,0 +1,17 @@ +--- +import Link from "./ui/link.astro"; +--- + +
+

+ Build faster websites. +

+

+ Pull content from anywhere and serve it fast with Astro's next-gen island + architecture. +

+
+ Get Started +
+
diff --git a/src/components/features.astro b/src/components/features.astro new file mode 100644 index 0000000..fe3a094 --- /dev/null +++ b/src/components/features.astro @@ -0,0 +1,69 @@ +--- +// @ts-ignore +import { Icon } from "astro-icon"; + +const features = [ + { + title: "Bring Your Own Framework", + description: + "Build your site using React, Svelte, Vue, Preact, web components, or just plain ol' HTML + JavaScript.", + icon: "bx:bxs-briefcase", + }, + { + title: "100% Static HTML, No JS", + description: + "Astro renders your entire page to static HTML, removing all JavaScript from your final build by default.", + icon: "bx:bxs-window-alt", + }, + { + title: "On-Demand Components", + description: + "Need some JS? Astro can automatically hydrate interactive components when they become visible on the page. ", + icon: "bx:bxs-data", + }, + { + title: "Broad Integration", + description: + "Astro supports TypeScript, Scoped CSS, CSS Modules, Sass, Tailwind, Markdown, MDX, and any other npm packages.", + icon: "bx:bxs-bot", + }, + { + title: "SEO Enabled", + description: + "Automatic sitemaps, RSS feeds, pagination and collections take the pain out of SEO and syndication. It just works!", + icon: "bx:bxs-file-find", + }, + { + title: "Community", + description: + "Astro is an open source project powered by hundreds of contributors making thousands of individual contributions.", + icon: "bx:bxs-user", + }, +]; +--- + +
+

+ Everything you need to start a website +

+

+ Astro comes batteries included. It takes the best parts of state-of-the-art + tools and adds its own innovations. +

+
+ +
+ { + features.map((item) => ( +
+
+ +
+
+

{item.title}

{" "} +

{item.description}

+
+
+ )) + } +
diff --git a/src/components/footer.astro b/src/components/footer.astro new file mode 100644 index 0000000..4667235 --- /dev/null +++ b/src/components/footer.astro @@ -0,0 +1,19 @@ +
+

+ Copyright © {new Date().getFullYear()} Astroship. All rights reserved. +

+ +

+ Made by + Web3Templates + +

+
diff --git a/src/components/hero.astro b/src/components/hero.astro new file mode 100644 index 0000000..7f95ab1 --- /dev/null +++ b/src/components/hero.astro @@ -0,0 +1,54 @@ +--- +import { Picture } from "@astrojs/image/components"; +import heroImage from "assets/hero.png"; +import Link from "@components/ui/link.astro"; +import { Icon } from "astro-icon"; +--- + +
+ +
+

+ Marketing website done with Astro +

+

+ Astroship is a starter template for startups, marketing websites & landing + pages. Built with Astro.build and TailwindCSS. You can quickly create + any website with this starter. +

+
+ + + + Download for Free + + + + GitHub Repo + +
+
+
diff --git a/src/components/logos.astro b/src/components/logos.astro new file mode 100644 index 0000000..11db8dd --- /dev/null +++ b/src/components/logos.astro @@ -0,0 +1,16 @@ +--- +// @ts-ignore +import { Icon } from "astro-icon"; +--- + +
+

Works with your technologies

+
+ + + + + + +
+
diff --git a/src/components/navbar/dropdown.astro b/src/components/navbar/dropdown.astro new file mode 100644 index 0000000..b743a38 --- /dev/null +++ b/src/components/navbar/dropdown.astro @@ -0,0 +1,47 @@ +--- +import { Dropdown, DropdownItems } from "astro-navbar"; +const { title, lastItem, children } = Astro.props; +--- + +
  • + + + +
    +
    + { + children.map((item) => ( + + {item.title} + + )) + } +
    +
    +
    +
    +
  • diff --git a/src/components/navbar/navbar.astro b/src/components/navbar/navbar.astro new file mode 100644 index 0000000..89bc45f --- /dev/null +++ b/src/components/navbar/navbar.astro @@ -0,0 +1,88 @@ +--- +import Container from "@components/container.astro"; +import Link from "@components/ui/link.astro"; +import Dropdown from "./dropdown.astro"; +import { Astronav, MenuItems, MenuIcon } from "astro-navbar"; + +const menuitems = [ + { + title: "Features", + path: "#", + children: [ + { title: "Action", path: "#" }, + { title: "Another action", path: "#" }, + { title: "Dropdown Submenu", path: "#" }, + ], + }, + { + title: "Pricing", + path: "/pricing", + }, + { + title: "About", + path: "/about", + }, + { + title: "Blog", + path: "/blog", + }, + { + title: "Contact", + path: "/contact", + }, +]; +--- + + +
    + +
    + Astroship + +
    + +
    +
    + +
    +
    + +
    +
    +
    diff --git a/src/components/pricing.astro b/src/components/pricing.astro new file mode 100644 index 0000000..ccdf8e8 --- /dev/null +++ b/src/components/pricing.astro @@ -0,0 +1,45 @@ +--- +import { Tick } from "@components/ui/icons"; +import Link from "@components/ui/link.astro"; + +const { plan } = Astro.props; +--- + +
    +
    +
    +

    {plan.name}

    + { + plan.price && typeof plan.price === "object" + ? plan.price.monthly + : plan.price + } +

    + +
      + { + plan.features.map((item) => ( +
    • + + {item} +
    • + )) + } +
    + + {plan.button.text || "Get Started"} + +
    +
    +
    diff --git a/src/components/sectionhead.astro b/src/components/sectionhead.astro new file mode 100644 index 0000000..fb134ef --- /dev/null +++ b/src/components/sectionhead.astro @@ -0,0 +1,12 @@ +--- +const { align = "center" } = Astro.props; +--- + +
    +

    + Title +

    +

    + Some description goes here +

    +
    diff --git a/src/components/ui/button.astro b/src/components/ui/button.astro new file mode 100644 index 0000000..53f9339 --- /dev/null +++ b/src/components/ui/button.astro @@ -0,0 +1,40 @@ +--- +interface Props { + size?: "md" | "lg"; + block?: boolean; + style?: "outline" | "primary" | "inverted"; + class?: string; + [x: string]: any; +} + +const { + size = "md", + style = "primary", + block, + class: className, + ...rest +} = Astro.props; + +const sizes = { + md: "px-5 py-2.5", + lg: "px-6 py-3", +}; + +const styles = { + outline: "border-2 border-black hover:bg-black text-black hover:text-white", + primary: + "bg-black text-white hover:bg-slate-900 border-2 border-transparent", +}; +--- + + diff --git a/src/components/ui/icons/index.js b/src/components/ui/icons/index.js new file mode 100644 index 0000000..98449ea --- /dev/null +++ b/src/components/ui/icons/index.js @@ -0,0 +1 @@ +export { default as Tick } from "./tick.astro"; diff --git a/src/components/ui/icons/tick.astro b/src/components/ui/icons/tick.astro new file mode 100644 index 0000000..bf83b8c --- /dev/null +++ b/src/components/ui/icons/tick.astro @@ -0,0 +1,16 @@ +--- +const { class: className } = Astro.props; +--- + + + diff --git a/src/components/ui/link.astro b/src/components/ui/link.astro new file mode 100644 index 0000000..54976fc --- /dev/null +++ b/src/components/ui/link.astro @@ -0,0 +1,44 @@ +--- +interface Props { + href: string; + size?: "md" | "lg"; + block?: boolean; + style?: "outline" | "primary" | "inverted" | "muted"; + class?: string; + [x: string]: any; +} + +const { + href, + block, + size = "lg", + style = "primary", + class: className, + ...rest +} = Astro.props; + +const sizes = { + lg: "px-5 py-2.5", + md: "px-4 py-2", +}; + +const styles = { + outline: "bg-white border-2 border-black hover:bg-gray-100 text-black ", + primary: "bg-black text-white hover:bg-gray-800 border-2 border-transparent", + inverted: "bg-white text-black border-2 border-transparent", + muted: "bg-gray-100 hover:bg-gray-200 border-2 border-transparent", +}; +--- + + + diff --git a/src/content/blog/complete-guide-fullstack-development.md b/src/content/blog/complete-guide-fullstack-development.md new file mode 100644 index 0000000..74ceaff --- /dev/null +++ b/src/content/blog/complete-guide-fullstack-development.md @@ -0,0 +1,37 @@ +--- +draft: false +title: "The Complete Guide to Full Stack Web Development" +snippet: "Ornare cum cursus laoreet sagittis nunc fusce posuere per euismod dis vehicula a, semper fames lacus maecenas dictumst pulvinar neque enim non potenti. Torquent hac sociosqu eleifend potenti." +image: { + src: "https://images.unsplash.com/photo-1593720213428-28a5b9e94613?&fit=crop&w=430&h=240", + alt: "full stack web development" +} +publishDate: "2022-11-08 11:39" +category: "Tutorials" +author: "Janette Lynch" +tags: [webdev, tailwindcss, frontend] +--- + +Lorem ipsum dolor sit amet consectetur adipiscing elit euismod rutrum, consequat fringilla ultricies nullam curae mollis semper conubia viverra, orci aenean dapibus pharetra nec tortor tellus cubilia. Ullamcorper mi lectus eu malesuada tempor massa praesent magna mattis posuere, lobortis vulputate ut duis magnis parturient habitant nibh id tristique, quis suspendisse donec nisl penatibus sem non feugiat taciti. Mollis per ridiculus integer cursus semper vestibulum fermentum penatibus cubilia blandit scelerisque, tempus platea leo posuere ac pharetra volutpat aliquet euismod id ullamcorper lobortis, urna est magna mus rhoncus massa curae libero praesent eget. Mattis malesuada vestibulum quis ac nam phasellus suscipit facilisis libero diam posuere, cursus massa vehicula neque imperdiet tincidunt dui egestas lacinia mollis aliquet orci, nisl curabitur dapibus litora dis cum nostra montes ligula praesent. Facilisi aliquam convallis molestie tempor blandit ultricies bibendum parturient cubilia quam, porttitor morbi torquent tempus taciti nec faucibus elementum phasellus, quis inceptos vestibulum gravida augue potenti eget nunc maecenas. Tempor facilisis ligula volutpat habitant consequat inceptos orci per potenti blandit platea, mus sapien eget vel libero vestibulum augue cubilia ut ultrices fringilla lectus, imperdiet pellentesque cum ridiculus convallis sollicitudin nisl interdum semper felis. + +Ornare cum cursus laoreet sagittis nunc fusce posuere per euismod dis vehicula a, semper fames lacus maecenas dictumst pulvinar neque enim non potenti. Torquent hac sociosqu eleifend potenti augue nulla vivamus senectus odio, quisque curabitur enim consequat class sociis feugiat ullamcorper, felis dis imperdiet cubilia commodo sed massa phasellus. Viverra purus mus nisi condimentum dui vehicula facilisis turpis, habitant nascetur lectus tempor quisque habitasse urna scelerisque, nibh nullam vestibulum luctus aenean mollis metus. Suscipit gravida duis nec aliquet natoque molestie a ridiculus scelerisque cum, justo cursus sapien sodales purus dignissim vel facilisi magnis, inceptos rutrum ut integer auctor commodo sollicitudin fames et. Faucibus ligula nibh sagittis mauris auctor posuere habitant, scelerisque phasellus accumsan egestas gravida viverra nam, sed etiam eleifend proin massa dictumst. Porttitor risus luctus per aenean tellus primis fringilla vitae fames lacinia mauris metus, nec pulvinar quisque commodo sodales ac nibh natoque phasellus semper placerat. Lectus aenean potenti leo sollicitudin tristique eros quam ligula, vestibulum diam consequat enim torquent nec tempus, blandit viverra dapibus eleifend dis nunc nascetur. + +## Sodales hendrerit malesuada et vestibulum + +- Luctus euismod pretium nisi et, est dui enim. + +- Curae eget inceptos malesuada, fermentum class. + +- Porttitor vestibulum aliquam porta feugiat velit, potenti eu placerat. + +- Ligula lacus tempus ac porta, vel litora. + +Torquent non nisi lacinia faucibus nibh tortor taciti commodo porttitor, mus hendrerit id leo scelerisque mollis habitasse orci tristique aptent, lacus at molestie cubilia facilisis porta accumsan condimentum. Metus lacus suscipit porttitor integer facilisi torquent, nostra nulla platea at natoque varius venenatis, id quam pharetra aliquam leo. Dictum orci himenaeos quam mi fusce lacinia maecenas ac magna eleifend laoreet, vivamus enim curabitur ullamcorper est ultrices convallis suscipit nascetur. Ornare fames pretium ante ac eget nisi tellus vivamus, convallis mauris sapien imperdiet sollicitudin aliquet taciti quam, lacinia tempor primis magna iaculis at eu. Est facilisi proin risus eleifend orci torquent ultricies platea, quisque nullam vel porttitor euismod sociis non, maecenas sociosqu interdum arcu sed pharetra potenti. Aliquet risus tempus hendrerit sapien tellus eget cursus enim etiam dui, lobortis nostra pellentesque odio posuere morbi ad neque senectus arcu eu, turpis proin ac felis purus fames magnis dis dignissim. + +Orci volutpat augue viverra scelerisque dictumst ut condimentum vivamus, accumsan cum sem sollicitudin aliquet vehicula porta pretium placerat, malesuada euismod primis cubilia rutrum tempus parturient. Urna mauris in nibh morbi hendrerit vulputate condimentum, iaculis consequat porttitor dui dis euismod eros, arcu elementum venenatis varius lectus nisi. Nibh arcu ultrices semper morbi quam aptent quisque porta posuere iaculis, vestibulum cum vitae primis varius natoque conubia eu. Placerat sociis sagittis sociosqu morbi purus lobortis convallis, bibendum tortor ridiculus orci habitasse viverra dictum, quis rutrum fusce potenti volutpat vehicula. Curae porta inceptos lectus mus urna litora semper aliquam libero rutrum sem dui maecenas ligula quis, eget risus non imperdiet cum morbi magnis suspendisse etiam augue porttitor placerat facilisi hendrerit. Et eleifend eget augue duis fringilla sagittis erat est habitasse commodo tristique quisque pretium, suspendisse imperdiet inceptos mollis blandit magna mus elementum molestie sed vestibulum. Euismod morbi hendrerit suscipit felis ornare libero ligula, mus tortor urna interdum blandit nisi netus posuere, purus fermentum magnis nam primis nulla. + +## Elementum nisi urna cursus nisl quam ante tristique blandit ultricies eget + +Netus at rutrum taciti vestibulum molestie conubia semper class potenti lobortis, hendrerit donec vitae ad libero natoque parturient litora congue. Torquent rhoncus odio cursus iaculis molestie arcu leo condimentum accumsan, laoreet congue duis libero justo tortor commodo fusce, massa eros hac euismod netus sodales mi magnis. Aenean nullam sollicitudin ad velit nulla venenatis suspendisse iaculis, aliquet senectus mollis aptent fringilla volutpat nascetur, nec urna vehicula lacinia neque augue orci. Suspendisse et eleifend convallis sollicitudin posuere diam turpis gravida congue ultrices, laoreet ultricies dapibus proin facilisis magna class praesent fusce. Mus morbi magnis ultricies sed turpis ultrices tempus tortor bibendum, netus nulla viverra torquent malesuada ridiculus tempor. Parturient sociosqu erat ullamcorper gravida natoque varius, etiam habitant augue praesent per curabitur iaculis, donec pellentesque cursus suscipit aliquet. Congue curae cursus scelerisque pellentesque quis fusce arcu eros dictumst luctus ridiculus nisl viverra, turpis class faucibus phasellus feugiat eleifend fringilla orci tristique habitasse conubia quam. Habitasse montes congue sodales rutrum cras torquent cursus auctor condimentum imperdiet egestas nascetur, platea tincidunt ut sollicitudin purus libero lobortis ad nisi diam quam. + +Suspendisse et eleifend convallis sollicitudin posuere diam turpis gravida congue ultrices, laoreet ultricies dapibus proin facilisis magna class praesent fusce. Mus morbi magnis ultricies sed turpis ultrices tempus tortor bibendum, netus nulla viverra torquent malesuada ridiculus tempor. Parturient sociosqu erat ullamcorper gravida natoque varius, etiam habitant augue praesent per curabitur iaculis, donec pellentesque cursus suscipit aliquet. Congue curae cursus scelerisque pellentesque quis fusce arcu eros dictumst luctus ridiculus nisl viverra, turpis class faucibus phasellus feugiat eleifend fringilla orci tristique habitasse conubia quam. Habitasse montes congue sodales rutrum cras torquent cursus auctor condimentum imperdiet egestas nascetur. diff --git a/src/content/blog/essential-data-structures-algorithms.md b/src/content/blog/essential-data-structures-algorithms.md new file mode 100644 index 0000000..0f09b56 --- /dev/null +++ b/src/content/blog/essential-data-structures-algorithms.md @@ -0,0 +1,37 @@ +--- +draft: false +title: " Introduction to the Essential Data Structures & Algorithms" +snippet: "Ornare cum cursus laoreet sagittis nunc fusce posuere per euismod dis vehicula a, semper fames lacus maecenas dictumst pulvinar neque enim non potenti. Torquent hac sociosqu eleifend potenti." +image: { + src: "https://images.unsplash.com/photo-1627163439134-7a8c47e08208?&fit=crop&w=430&h=240", + alt: "data structures & algorithms" +} +publishDate: "2022-11-09 16:39" +category: "Courses" +author: "Marcell Ziemann" +tags: [webdev, tailwindcss, frontend] +--- + +Lorem ipsum dolor sit amet consectetur adipiscing elit euismod rutrum, consequat fringilla ultricies nullam curae mollis semper conubia viverra, orci aenean dapibus pharetra nec tortor tellus cubilia. Ullamcorper mi lectus eu malesuada tempor massa praesent magna mattis posuere, lobortis vulputate ut duis magnis parturient habitant nibh id tristique, quis suspendisse donec nisl penatibus sem non feugiat taciti. Mollis per ridiculus integer cursus semper vestibulum fermentum penatibus cubilia blandit scelerisque, tempus platea leo posuere ac pharetra volutpat aliquet euismod id ullamcorper lobortis, urna est magna mus rhoncus massa curae libero praesent eget. Mattis malesuada vestibulum quis ac nam phasellus suscipit facilisis libero diam posuere, cursus massa vehicula neque imperdiet tincidunt dui egestas lacinia mollis aliquet orci, nisl curabitur dapibus litora dis cum nostra montes ligula praesent. Facilisi aliquam convallis molestie tempor blandit ultricies bibendum parturient cubilia quam, porttitor morbi torquent tempus taciti nec faucibus elementum phasellus, quis inceptos vestibulum gravida augue potenti eget nunc maecenas. Tempor facilisis ligula volutpat habitant consequat inceptos orci per potenti blandit platea, mus sapien eget vel libero vestibulum augue cubilia ut ultrices fringilla lectus, imperdiet pellentesque cum ridiculus convallis sollicitudin nisl interdum semper felis. + +Ornare cum cursus laoreet sagittis nunc fusce posuere per euismod dis vehicula a, semper fames lacus maecenas dictumst pulvinar neque enim non potenti. Torquent hac sociosqu eleifend potenti augue nulla vivamus senectus odio, quisque curabitur enim consequat class sociis feugiat ullamcorper, felis dis imperdiet cubilia commodo sed massa phasellus. Viverra purus mus nisi condimentum dui vehicula facilisis turpis, habitant nascetur lectus tempor quisque habitasse urna scelerisque, nibh nullam vestibulum luctus aenean mollis metus. Suscipit gravida duis nec aliquet natoque molestie a ridiculus scelerisque cum, justo cursus sapien sodales purus dignissim vel facilisi magnis, inceptos rutrum ut integer auctor commodo sollicitudin fames et. Faucibus ligula nibh sagittis mauris auctor posuere habitant, scelerisque phasellus accumsan egestas gravida viverra nam, sed etiam eleifend proin massa dictumst. Porttitor risus luctus per aenean tellus primis fringilla vitae fames lacinia mauris metus, nec pulvinar quisque commodo sodales ac nibh natoque phasellus semper placerat. Lectus aenean potenti leo sollicitudin tristique eros quam ligula, vestibulum diam consequat enim torquent nec tempus, blandit viverra dapibus eleifend dis nunc nascetur. + +## Sodales hendrerit malesuada et vestibulum + +- Luctus euismod pretium nisi et, est dui enim. + +- Curae eget inceptos malesuada, fermentum class. + +- Porttitor vestibulum aliquam porta feugiat velit, potenti eu placerat. + +- Ligula lacus tempus ac porta, vel litora. + +Torquent non nisi lacinia faucibus nibh tortor taciti commodo porttitor, mus hendrerit id leo scelerisque mollis habitasse orci tristique aptent, lacus at molestie cubilia facilisis porta accumsan condimentum. Metus lacus suscipit porttitor integer facilisi torquent, nostra nulla platea at natoque varius venenatis, id quam pharetra aliquam leo. Dictum orci himenaeos quam mi fusce lacinia maecenas ac magna eleifend laoreet, vivamus enim curabitur ullamcorper est ultrices convallis suscipit nascetur. Ornare fames pretium ante ac eget nisi tellus vivamus, convallis mauris sapien imperdiet sollicitudin aliquet taciti quam, lacinia tempor primis magna iaculis at eu. Est facilisi proin risus eleifend orci torquent ultricies platea, quisque nullam vel porttitor euismod sociis non, maecenas sociosqu interdum arcu sed pharetra potenti. Aliquet risus tempus hendrerit sapien tellus eget cursus enim etiam dui, lobortis nostra pellentesque odio posuere morbi ad neque senectus arcu eu, turpis proin ac felis purus fames magnis dis dignissim. + +Orci volutpat augue viverra scelerisque dictumst ut condimentum vivamus, accumsan cum sem sollicitudin aliquet vehicula porta pretium placerat, malesuada euismod primis cubilia rutrum tempus parturient. Urna mauris in nibh morbi hendrerit vulputate condimentum, iaculis consequat porttitor dui dis euismod eros, arcu elementum venenatis varius lectus nisi. Nibh arcu ultrices semper morbi quam aptent quisque porta posuere iaculis, vestibulum cum vitae primis varius natoque conubia eu. Placerat sociis sagittis sociosqu morbi purus lobortis convallis, bibendum tortor ridiculus orci habitasse viverra dictum, quis rutrum fusce potenti volutpat vehicula. Curae porta inceptos lectus mus urna litora semper aliquam libero rutrum sem dui maecenas ligula quis, eget risus non imperdiet cum morbi magnis suspendisse etiam augue porttitor placerat facilisi hendrerit. Et eleifend eget augue duis fringilla sagittis erat est habitasse commodo tristique quisque pretium, suspendisse imperdiet inceptos mollis blandit magna mus elementum molestie sed vestibulum. Euismod morbi hendrerit suscipit felis ornare libero ligula, mus tortor urna interdum blandit nisi netus posuere, purus fermentum magnis nam primis nulla. + +## Elementum nisi urna cursus nisl quam ante tristique blandit ultricies eget + +Netus at rutrum taciti vestibulum molestie conubia semper class potenti lobortis, hendrerit donec vitae ad libero natoque parturient litora congue. Torquent rhoncus odio cursus iaculis molestie arcu leo condimentum accumsan, laoreet congue duis libero justo tortor commodo fusce, massa eros hac euismod netus sodales mi magnis. Aenean nullam sollicitudin ad velit nulla venenatis suspendisse iaculis, aliquet senectus mollis aptent fringilla volutpat nascetur, nec urna vehicula lacinia neque augue orci. Suspendisse et eleifend convallis sollicitudin posuere diam turpis gravida congue ultrices, laoreet ultricies dapibus proin facilisis magna class praesent fusce. Mus morbi magnis ultricies sed turpis ultrices tempus tortor bibendum, netus nulla viverra torquent malesuada ridiculus tempor. Parturient sociosqu erat ullamcorper gravida natoque varius, etiam habitant augue praesent per curabitur iaculis, donec pellentesque cursus suscipit aliquet. Congue curae cursus scelerisque pellentesque quis fusce arcu eros dictumst luctus ridiculus nisl viverra, turpis class faucibus phasellus feugiat eleifend fringilla orci tristique habitasse conubia quam. Habitasse montes congue sodales rutrum cras torquent cursus auctor condimentum imperdiet egestas nascetur, platea tincidunt ut sollicitudin purus libero lobortis ad nisi diam quam. + +Suspendisse et eleifend convallis sollicitudin posuere diam turpis gravida congue ultrices, laoreet ultricies dapibus proin facilisis magna class praesent fusce. Mus morbi magnis ultricies sed turpis ultrices tempus tortor bibendum, netus nulla viverra torquent malesuada ridiculus tempor. Parturient sociosqu erat ullamcorper gravida natoque varius, etiam habitant augue praesent per curabitur iaculis, donec pellentesque cursus suscipit aliquet. Congue curae cursus scelerisque pellentesque quis fusce arcu eros dictumst luctus ridiculus nisl viverra, turpis class faucibus phasellus feugiat eleifend fringilla orci tristique habitasse conubia quam. Habitasse montes congue sodales rutrum cras torquent cursus auctor condimentum imperdiet egestas nascetur. diff --git a/src/content/blog/how-to-become-frontend-master.md b/src/content/blog/how-to-become-frontend-master.md new file mode 100644 index 0000000..ac655b4 --- /dev/null +++ b/src/content/blog/how-to-become-frontend-master.md @@ -0,0 +1,44 @@ +--- +draft: false +title: "How to become a Frontend Master" +snippet: "Ornare cum cursus laoreet sagittis nunc fusce posuere per euismod dis vehicula a, semper fames lacus maecenas dictumst pulvinar neque enim non potenti. Torquent hac sociosqu eleifend potenti." +image: { + src: "https://images.unsplash.com/photo-1667372393119-3d4c48d07fc9?&fit=crop&w=430&h=240", + alt: "frontend master" +} +publishDate: "2022-11-07 15:39" +category: "Tutorials" +author: "Connor Lopez" +tags: [astro, tailwindcss, frontend] +--- + +Whatever you do, it's always beneficial to have the right tools at your disposal. I love working remotely and am a big advocate of doing remote software development. Therefore, I always strive to have the best equipment available to be as productive as possible. Writing posts like this constantly takes a lot of time. Luckily iVanky helped me out and sponsored this post so that I can concentrate on writing. I recently had the chance to test out one of their hottest products, a dual USB-C Docking Station that allows me to connect both my wide-screen monitors to my MacBook with Dual 4K@60Hz display connectivity. It also supports up to 96W laptop charging, which is awesome. If you are in a situation like me and want to upgrade your equipment, check out this and their other products! And now comes the article: + +Whether you are new to programming or already an experienced developer. In this industry, learning new concepts and languages/frameworks is +mandatory to keep up with the rapid changes. Take for example React - open-sourced by Facebook just a shy 4 years ago it already became the number one choice for JavaScript devs around the globe. But also Vue and Angular, of course, have their legitimate follower-base. And then there is Svelte, and universal frameworks like Next.js or Nuxt.js, and Gatsby, and Gridsome, and Quasar, and and and. If you want to shine as an expert JavaScript developer you should at least have some experience in different frameworks and libraries - besides doing your homework with good, old JS. + +To help you become Frontend Masters, I have collected 9 different projects, each with a distinct topic and a different JavaScript framework or library as a tech stack that you can build and add to your portfolio. Remember, nothing helps you more than actually building stuff so go ahead, sharpen your mind and make this happen! + +## Dictum integer fusce ac ridiculus + +Lorem ipsum dolor sit amet consectetur adipiscing elit euismod rutrum, consequat fringilla ultricies nullam curae mollis semper conubia viverra, orci aenean dapibus pharetra nec tortor tellus cubilia. Ullamcorper mi lectus eu malesuada tempor massa praesent magna mattis posuere, lobortis vulputate ut duis magnis parturient habitant nibh id tristique, quis suspendisse donec nisl penatibus sem non feugiat taciti. Mollis per ridiculus integer cursus semper vestibulum fermentum penatibus cubilia blandit scelerisque, tempus platea leo posuere ac pharetra volutpat aliquet euismod id ullamcorper lobortis, urna est magna mus rhoncus massa curae libero praesent eget. Mattis malesuada vestibulum quis ac nam phasellus suscipit facilisis libero diam posuere, cursus massa vehicula neque imperdiet tincidunt dui egestas lacinia mollis aliquet orci, nisl curabitur dapibus litora dis cum nostra montes ligula praesent. Facilisi aliquam convallis molestie tempor blandit ultricies bibendum parturient cubilia quam, porttitor morbi torquent tempus taciti nec faucibus elementum phasellus, quis inceptos vestibulum gravida augue potenti eget nunc maecenas. Tempor facilisis ligula volutpat habitant consequat inceptos orci per potenti blandit platea, mus sapien eget vel libero vestibulum augue cubilia ut ultrices fringilla lectus, imperdiet pellentesque cum ridiculus convallis sollicitudin nisl interdum semper felis. + +Ornare cum cursus laoreet sagittis nunc fusce posuere per euismod dis vehicula a, semper fames lacus maecenas dictumst pulvinar neque enim non potenti. Torquent hac sociosqu eleifend potenti augue nulla vivamus senectus odio, quisque curabitur enim consequat class sociis feugiat ullamcorper, felis dis imperdiet cubilia commodo sed massa phasellus. Viverra purus mus nisi condimentum dui vehicula facilisis turpis, habitant nascetur lectus tempor quisque habitasse urna scelerisque, nibh nullam vestibulum luctus aenean mollis metus. Suscipit gravida duis nec aliquet natoque molestie a ridiculus scelerisque cum, justo cursus sapien sodales purus dignissim vel facilisi magnis, inceptos rutrum ut integer auctor commodo sollicitudin fames et. Faucibus ligula nibh sagittis mauris auctor posuere habitant, scelerisque phasellus accumsan egestas gravida viverra nam, sed etiam eleifend proin massa dictumst. Porttitor risus luctus per aenean tellus primis fringilla vitae fames lacinia mauris metus, nec pulvinar quisque commodo sodales ac nibh natoque phasellus semper placerat. Lectus aenean potenti leo sollicitudin tristique eros quam ligula, vestibulum diam consequat enim torquent nec tempus, blandit viverra dapibus eleifend dis nunc nascetur. + +## Sodales hendrerit malesuada et vestibulum + +- Luctus euismod pretium nisi et, est dui enim. + +- Curae eget inceptos malesuada, fermentum class. + +- Porttitor vestibulum aliquam porta feugiat velit, potenti eu placerat. + +- Ligula lacus tempus ac porta, vel litora. + +Torquent non nisi lacinia faucibus nibh tortor taciti commodo porttitor, mus hendrerit id leo scelerisque mollis habitasse orci tristique aptent, lacus at molestie cubilia facilisis porta accumsan condimentum. Metus lacus suscipit porttitor integer facilisi torquent, nostra nulla platea at natoque varius venenatis, id quam pharetra aliquam leo. Dictum orci himenaeos quam mi fusce lacinia maecenas ac magna eleifend laoreet, vivamus enim curabitur ullamcorper est ultrices convallis suscipit nascetur. Ornare fames pretium ante ac eget nisi tellus vivamus, convallis mauris sapien imperdiet sollicitudin aliquet taciti quam, lacinia tempor primis magna iaculis at eu. Est facilisi proin risus eleifend orci torquent ultricies platea, quisque nullam vel porttitor euismod sociis non, maecenas sociosqu interdum arcu sed pharetra potenti. Aliquet risus tempus hendrerit sapien tellus eget cursus enim etiam dui, lobortis nostra pellentesque odio posuere morbi ad neque senectus arcu eu, turpis proin ac felis purus fames magnis dis dignissim. + +Orci volutpat augue viverra scelerisque dictumst ut condimentum vivamus, accumsan cum sem sollicitudin aliquet vehicula porta pretium placerat, malesuada euismod primis cubilia rutrum tempus parturient. Urna mauris in nibh morbi hendrerit vulputate condimentum, iaculis consequat porttitor dui dis euismod eros, arcu elementum venenatis varius lectus nisi. Nibh arcu ultrices semper morbi quam aptent quisque porta posuere iaculis, vestibulum cum vitae primis varius natoque conubia eu. Placerat sociis sagittis sociosqu morbi purus lobortis convallis, bibendum tortor ridiculus orci habitasse viverra dictum, quis rutrum fusce potenti volutpat vehicula. Curae porta inceptos lectus mus urna litora semper aliquam libero rutrum sem dui maecenas ligula quis, eget risus non imperdiet cum morbi magnis suspendisse etiam augue porttitor placerat facilisi hendrerit. Et eleifend eget augue duis fringilla sagittis erat est habitasse commodo tristique quisque pretium, suspendisse imperdiet inceptos mollis blandit magna mus elementum molestie sed vestibulum. Euismod morbi hendrerit suscipit felis ornare libero ligula, mus tortor urna interdum blandit nisi netus posuere, purus fermentum magnis nam primis nulla. + +## Elementum nisi urna cursus nisl quam ante tristique blandit ultricies eget + +Netus at rutrum taciti vestibulum molestie conubia semper class potenti lobortis, hendrerit donec vitae ad libero natoque parturient litora congue. Torquent rhoncus odio cursus iaculis molestie arcu leo condimentum accumsan, laoreet congue duis libero justo tortor commodo fusce, massa eros hac euismod netus sodales mi magnis. Aenean nullam sollicitudin ad velit nulla venenatis suspendisse iaculis, aliquet senectus mollis aptent fringilla volutpat nascetur, nec urna vehicula lacinia neque augue orci. Suspendisse et eleifend convallis sollicitudin posuere diam turpis gravida congue ultrices, laoreet ultricies dapibus proin facilisis magna class praesent fusce. Mus morbi magnis ultricies sed turpis ultrices tempus tortor bibendum, netus nulla viverra torquent malesuada ridiculus tempor. Parturient sociosqu erat ullamcorper gravida natoque varius, etiam habitant augue praesent per curabitur iaculis, donec pellentesque cursus suscipit aliquet. Congue curae cursus scelerisque pellentesque quis fusce arcu eros dictumst luctus ridiculus nisl viverra, turpis class faucibus phasellus feugiat eleifend fringilla orci tristique habitasse conubia quam. Habitasse montes congue sodales rutrum cras torquent cursus auctor condimentum imperdiet egestas nascetur, platea tincidunt ut sollicitudin purus libero lobortis ad nisi diam quam. diff --git a/src/content/blog/kitchensink.mdx b/src/content/blog/kitchensink.mdx new file mode 100644 index 0000000..c1d4e0e --- /dev/null +++ b/src/content/blog/kitchensink.mdx @@ -0,0 +1,193 @@ +--- +draft: false +title: "Typography Example Post" +snippet: "Sint sit cillum pariatur eiusmod nulla pariatur ipsum. Sit laborum anim qui mollit tempor pariatur nisi minim dolor. Aliquip et adipisicing sit sit fugiat" +publishDate: "2022-11-05 15:36" +image: { + src: "https://images.unsplash.com/photo-1542393545-10f5cde2c810?&fit=crop&w=430&h=240", + alt: "typography" +} +category: "Technology" +author: "Charles North" +tags: [mdx, astro, blog] +--- + +import Button from "@components/ui/button.astro"; + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +## Headings + +Sint sit cillum pariatur eiusmod nulla pariatur ipsum. Sit laborum anim qui mollit tempor pariatur nisi minim dolor. Aliquip et adipisicing sit sit fugiat commodo id sunt. Nostrud enim ad commodo incididunt cupidatat in ullamco ullamco Lorem cupidatat velit enim et Lorem. Ut laborum cillum laboris fugiat culpa sint irure do reprehenderit culpa occaecat. Exercitation esse mollit tempor magna aliqua in occaecat aliquip veniam reprehenderit nisi dolor in laboris dolore velit. + +## Heading two + +Aute officia nulla deserunt do deserunt cillum velit magna. Officia veniam culpa anim minim dolore labore pariatur voluptate id ad est duis quis velit dolor pariatur enim. Incididunt enim excepteur do veniam consequat culpa do voluptate dolor fugiat ad adipisicing sit. Labore officia est adipisicing dolore proident eiusmod exercitation deserunt ullamco anim do occaecat velit. Elit dolor consectetur proident sunt aliquip est do tempor quis aliqua culpa aute. Duis in tempor exercitation pariatur et adipisicing mollit irure tempor ut enim esse commodo laboris proident. Do excepteur laborum anim esse aliquip eu sit id Lorem incididunt elit irure ea nulla dolor et. Nulla amet fugiat qui minim deserunt enim eu cupidatat aute officia do velit ea reprehenderit. + +### Heading three + +Voluptate cupidatat cillum elit quis ipsum eu voluptate fugiat consectetur enim. Quis ut voluptate culpa ex anim aute consectetur dolore proident voluptate exercitation eiusmod. Esse in do anim magna minim culpa sint. Adipisicing ipsum consectetur proident ullamco magna sit amet aliqua aute fugiat laborum exercitation duis et. + +#### Heading four + +Commodo fugiat aliqua minim quis pariatur mollit id tempor. Non occaecat minim esse enim aliqua adipisicing nostrud duis consequat eu adipisicing qui. Minim aliquip sit excepteur ipsum consequat laborum pariatur excepteur. Veniam fugiat et amet ad elit anim laborum duis mollit occaecat et et ipsum et reprehenderit. Occaecat aliquip dolore adipisicing sint labore occaecat officia fugiat. Quis adipisicing exercitation exercitation eu amet est laboris sunt nostrud ipsum reprehenderit ullamco. Enim sint ut consectetur id anim aute voluptate exercitation mollit dolore magna magna est Lorem. Ut adipisicing adipisicing aliqua ullamco voluptate labore nisi tempor esse magna incididunt. + +##### Heading five + +Veniam enim esse amet veniam deserunt laboris amet enim consequat. Minim nostrud deserunt cillum consectetur commodo eu enim nostrud ullamco occaecat excepteur. Aliquip et ut est commodo enim dolor amet sint excepteur. Amet ad laboris laborum deserunt sint sunt aliqua commodo ex duis deserunt enim est ex labore ut. Duis incididunt velit adipisicing non incididunt adipisicing adipisicing. Ad irure duis nisi tempor eu dolor fugiat magna et consequat tempor eu ex dolore. Mollit esse nisi qui culpa ut nisi ex proident culpa cupidatat cillum culpa occaecat anim. Ut officia sit ea nisi ea excepteur nostrud ipsum et nulla. + +###### Heading six + +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + +[[Top]](#top) + +## Paragraphs + +Incididunt ex adipisicing ea ullamco consectetur in voluptate proident fugiat tempor deserunt reprehenderit ullamco id dolore laborum. Do laboris laboris minim incididunt qui consectetur exercitation adipisicing dolore et magna consequat magna anim sunt. Officia fugiat Lorem sunt pariatur incididunt Lorem reprehenderit proident irure. Dolore ipsum aliqua mollit ad officia fugiat sit eu aliquip cupidatat ipsum duis laborum laborum fugiat esse. Voluptate anim ex dolore deserunt ea ex eiusmod irure. Occaecat excepteur aliqua exercitation aliquip dolor esse eu eu. + +Officia dolore laborum aute incididunt commodo nisi velit est est elit et dolore elit exercitation. Enim aliquip magna id ipsum aliquip consectetur ad nulla quis. Incididunt pariatur dolor consectetur cillum enim velit cupidatat laborum quis ex. + +Officia irure in non voluptate adipisicing sit amet tempor duis dolore deserunt enim ut. Reprehenderit incididunt in ad anim et deserunt deserunt Lorem laborum quis. Enim aute anim labore proident laboris voluptate elit excepteur in. Ex labore nulla velit officia ullamco Lorem Lorem id do. Dolore ullamco ipsum magna dolor pariatur voluptate ipsum id occaecat ipsum. Dolore tempor quis duis commodo quis quis enim. + +[[Top]](#top) + +## Blockquotes + +Ad nisi laborum aute cupidatat magna deserunt eu id laboris id. Aliquip nulla cupidatat sint ex Lorem mollit laborum dolor amet est ut esse aute. Nostrud ex consequat id incididunt proident ipsum minim duis aliqua ut ex et ad quis. Laborum sint esse cillum anim nulla cillum consectetur aliqua sit. Nisi excepteur cillum labore amet excepteur commodo enim occaecat consequat ipsum proident exercitation duis id in. + +> Ipsum et cupidatat mollit exercitation enim duis sunt irure aliqua reprehenderit mollit. Pariatur Lorem pariatur laboris do culpa do elit irure. Eiusmod amet nulla voluptate velit culpa et aliqua ad reprehenderit sit ut. + +Labore ea magna Lorem consequat aliquip consectetur cillum duis dolore. Et veniam dolor qui incididunt minim amet laboris sit. Dolore ad esse commodo et dolore amet est velit ut nisi ea. Excepteur ea nulla commodo dolore anim dolore adipisicing eiusmod labore id enim esse quis mollit deserunt est. Minim ea culpa voluptate nostrud commodo proident in duis aliquip minim. + +> Qui est sit et reprehenderit aute est esse enim aliqua id aliquip ea anim. Pariatur sint reprehenderit mollit velit voluptate enim consectetur sint enim. Quis exercitation proident elit non id qui culpa dolore esse aliquip consequat. + +Ipsum excepteur cupidatat sunt minim ad eiusmod tempor sit. + +> Deserunt excepteur adipisicing culpa pariatur cillum laboris ullamco nisi fugiat cillum officia. In cupidatat nulla aliquip tempor ad Lorem Lorem quis voluptate officia consectetur pariatur ex in est duis. Mollit id esse est elit exercitation voluptate nostrud nisi laborum magna dolore dolore tempor in est consectetur. + +Adipisicing voluptate ipsum culpa voluptate id aute laboris labore esse fugiat veniam ullamco occaecat do ut. Tempor et esse reprehenderit veniam proident ipsum irure sit ullamco et labore ea excepteur nulla labore ut. Ex aute minim quis tempor in eu id id irure ea nostrud dolor esse. + +[[Top]](#top) + +## Lists + +### Ordered List + +1. Longan +2. Lychee +3. Excepteur ad cupidatat do elit laborum amet cillum reprehenderit consequat quis. + Deserunt officia esse aliquip consectetur duis ut labore laborum commodo aliquip aliquip velit pariatur dolore. +4. Marionberry +5. Melon + - Cantaloupe + - Honeydew + - Watermelon +6. Miracle fruit +7. Mulberry + +### Unordered List + +- Olive +- Orange + - Blood orange + - Clementine +- Papaya +- Ut aute ipsum occaecat nisi culpa Lorem id occaecat cupidatat id id magna laboris ad duis. Fugiat cillum dolore veniam nostrud proident sint consectetur eiusmod irure adipisicing. +- Passionfruit + +[[Top]](#top) + +## Horizontal rule + +In dolore velit aliquip labore mollit minim tempor veniam eu veniam ad in sint aliquip mollit mollit. Ex occaecat non deserunt elit laborum sunt tempor sint consequat culpa culpa qui sit. Irure ad commodo eu voluptate mollit cillum cupidatat veniam proident amet minim reprehenderit. + +--- + +In laboris eiusmod reprehenderit aliquip sit proident occaecat. Non sit labore anim elit veniam Lorem minim commodo eiusmod irure do minim nisi. Dolor amet cillum excepteur consequat sint non sint. + +[[Top]](#top) + +## Table + +Duis sunt ut pariatur reprehenderit mollit mollit magna dolore in pariatur nulla commodo sit dolor ad fugiat. Laboris amet ea occaecat duis eu enim exercitation deserunt ea laborum occaecat reprehenderit. Et incididunt dolor commodo consequat mollit nisi proident non pariatur in et incididunt id. Eu ut et Lorem ea ex magna minim ipsum ipsum do. + +| Table Heading 1 | Table Heading 2 | Center align | Right align | Table Heading 5 | +| :-------------- | :-------------- | :----------: | ----------: | :-------------- | +| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 | +| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 | +| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 | +| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 | +| Item 1 | Item 2 | Item 3 | Item 4 | Item 5 | + +Minim id consequat adipisicing cupidatat laborum culpa veniam non consectetur et duis pariatur reprehenderit eu ex consectetur. Sunt nisi qui eiusmod ut cillum laborum Lorem officia aliquip laboris ullamco nostrud laboris non irure laboris. Cillum dolore labore Lorem deserunt mollit voluptate esse incididunt ex dolor. + +[[Top]](#top) + +## Code + +### Inline code + +Ad amet irure est magna id mollit Lorem in do duis enim. Excepteur velit nisi magna ea pariatur pariatur ullamco fugiat deserunt sint non sint. Duis duis est `code in text` velit velit aute culpa ex quis pariatur pariatur laborum aute pariatur duis tempor sunt ad. Irure magna voluptate dolore consectetur consectetur irure esse. Anim magna `in culpa qui officia` dolor eiusmod esse amet aute cupidatat aliqua do id voluptate cupidatat reprehenderit amet labore deserunt. + +### Highlighted + +Et fugiat ad nisi amet magna labore do cillum fugiat occaecat cillum Lorem proident. In sint dolor ullamco ad do adipisicing amet id excepteur Lorem aliquip sit irure veniam laborum duis cillum. Aliqua occaecat minim cillum deserunt magna sunt laboris do do irure ea nostrud consequat ut voluptate ex. + +```go +package main + +import ( + "fmt" + "net/http" +) + +func handler(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:]) +} + +func main() { + http.HandleFunc("/", handler) + http.ListenAndServe(":8080", nil) +} +``` + +Ex amet id ex aliquip id do laborum excepteur exercitation elit sint commodo occaecat nostrud est. Nostrud pariatur esse veniam laborum non sint magna sit laboris minim in id. Aliqua pariatur pariatur excepteur adipisicing irure culpa consequat commodo et ex id ad. + +[[Top]](#top) + +## Inline elements + +Sint ea anim ipsum ad commodo cupidatat do **exercitation** incididunt et minim ad labore sunt. Minim deserunt labore laboris velit nulla incididunt ipsum nulla. Ullamco ad laborum ea qui et anim in laboris exercitation tempor sit officia laborum reprehenderit culpa velit quis. **Consequat commodo** reprehenderit duis [irure](#!) esse esse exercitation minim enim Lorem dolore duis irure. Nisi Lorem reprehenderit ea amet excepteur dolor excepteur magna labore proident voluptate ipsum. Reprehenderit ex esse deserunt aliqua ea officia mollit Lorem nulla magna enim. Et ad ipsum labore enim ipsum **cupidatat consequat**. Commodo non ea cupidatat magna deserunt dolore ipsum velit nulla elit veniam nulla eiusmod proident officia. + +![Super wide](https://images.unsplash.com/photo-1471128466710-c26ff0d26143?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTY2MDc4MTk3Mw&ixlib=rb-1.2.1&q=80&utm_campaign=api-credit&utm_medium=referral&utm_source=unsplash_source&w=1080) + +_Proident sit veniam in est proident officia adipisicing_ ea tempor cillum non cillum velit deserunt. Voluptate laborum incididunt sit consectetur Lorem irure incididunt voluptate nostrud. Commodo ut eiusmod tempor cupidatat esse enim minim ex anim consequat. Mollit sint culpa qui laboris quis consectetur ad sint esse. Amet anim anim minim ullamco et duis non irure. Sit tempor adipisicing ea laboris `culpa ex duis sint` anim aute reprehenderit id eu ea. Aute [excepteur proident](#!) Lorem minim adipisicing nostrud mollit ad ut voluptate do nulla esse occaecat aliqua sint anim. + +![Not so big](https://placekitten.com/480/400) + +Incididunt in culpa cupidatat mollit cillum qui proident sit. In cillum aliquip incididunt voluptate magna amet cupidatat cillum pariatur sint aliqua est _enim **anim** voluptate_. Magna aliquip proident incididunt id duis pariatur eiusmod incididunt commodo culpa dolore sit. Culpa do nostrud elit ad exercitation anim pariatur non minim nisi **adipisicing sunt _officia_**. Do deserunt magna mollit Lorem commodo ipsum do cupidatat mollit enim ut elit veniam ea voluptate. + +Reprehenderit non eu quis in ad elit esse qui aute id [incididunt](#!) dolore cillum. Esse laboris consequat dolor anim exercitation tempor aliqua deserunt velit magna laboris. Culpa culpa minim duis amet mollit do quis amet commodo nulla irure. + +[[Top]](#top) + +## MDX + +```js +--- +publishDate: 'Aug 02 2022' +title: 'Markdown elements demo post' +--- +import Logo from "@components/ui/button.astro"; + +## MDX + + +``` + +
    + +
    + +[[Top]](#top) diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 0000000..fa6c60c --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,39 @@ +// 1. Import utilities from `astro:content` +import { z, defineCollection } from 'astro:content'; + +// 2. Define your collection(s) +const blogCollection = defineCollection({ + schema: z.object({ + draft: z.boolean(), + title: z.string(), + snippet: z.string(), + image: z.object({ + src: z.string(), + alt: z.string(), + }), + publishDate: z.string().transform(str => new Date(str)), + author: z.string().default('Astroship'), + category: z.string(), + tags: z.array(z.string()), + }), +}); + +const teamCollection = defineCollection({ + schema: z.object({ + draft: z.boolean(), + name: z.string(), + title: z.string(), + avatar: z.object({ + src: z.string(), + alt: z.string(), + }), + publishDate: z.string().transform(str => new Date(str)), + }), +}); + +// 3. Export a single `collections` object to register your collection(s) +// This key should match your collection directory name in "src/content" +export const collections = { + 'blog': blogCollection, + 'team': teamCollection, +}; \ No newline at end of file diff --git a/src/content/team/janette-lynch.md b/src/content/team/janette-lynch.md new file mode 100644 index 0000000..3debb7d --- /dev/null +++ b/src/content/team/janette-lynch.md @@ -0,0 +1,10 @@ +--- +draft: false +name: "Janette Lynch" +title: "Senior Director" +avatar: { + src: "https://images.unsplash.com/photo-1580489944761-15a19d654956?&fit=crop&w=280", + alt: "Janette Lynch" +} +publishDate: "2022-11-07 15:39" +--- diff --git a/src/content/team/marcell-ziemann.md b/src/content/team/marcell-ziemann.md new file mode 100644 index 0000000..9a304e9 --- /dev/null +++ b/src/content/team/marcell-ziemann.md @@ -0,0 +1,10 @@ +--- +draft: false +name: "Marcell Ziemann" +title: "Principal Strategist" +avatar: { + src: "https://images.unsplash.com/photo-1633332755192-727a05c4013d?&fit=crop&w=280", + alt: "Marcell Ziemann" +} +publishDate: "2022-11-08 15:39" +--- diff --git a/src/content/team/robert-palmer.md b/src/content/team/robert-palmer.md new file mode 100644 index 0000000..9cf6e8d --- /dev/null +++ b/src/content/team/robert-palmer.md @@ -0,0 +1,10 @@ +--- +draft: false +name: "Robert Palmer" +title: "Marketing Engineer" +avatar: { + src: "https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?&fit=crop&w=280", + alt: "Robert Palmer" +} +publishDate: "2022-11-09 15:39" +--- diff --git a/src/layouts/BlogLayout.astro b/src/layouts/BlogLayout.astro new file mode 100644 index 0000000..cd0f7bf --- /dev/null +++ b/src/layouts/BlogLayout.astro @@ -0,0 +1,50 @@ +--- +import Container from "@components/container.astro"; +import { getFormattedDate } from "@utils/all"; +import { log } from "astro/dist/core/logger/core"; +import Layout from "./Layout.astro"; + +const { frontmatter } = Astro.props; +--- + + + +
    + + {frontmatter.category} + +

    + {frontmatter.title} +

    +
    + + {frontmatter.author} + + + + +
    + { + frontmatter.tags.map((tag) => ( + #{tag} + )) + } +
    +
    +
    + +
    + +
    + +
    +
    diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro new file mode 100644 index 0000000..9b3b131 --- /dev/null +++ b/src/layouts/Layout.astro @@ -0,0 +1,68 @@ +--- +import { SEO } from "astro-seo"; +import Footer from "@components/footer.astro"; +import Navbar from "@components/navbar/navbar.astro"; +import "@fontsource/inter/variable.css"; + +export interface Props { + title: string; +} + +const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString(); + +const resolvedImageWithDomain = new URL( + "/opengraph.jpg", + Astro.site +).toString(); + +const { title } = Astro.props; + +const makeTitle = title + ? title + " | " + "Astroship" + : "Astroship - Starter Template for Astro with Tailwind CSS"; +--- + + + + + + + + + + + + + + + +