From db5ebbb80779897ba10be5b1350dff6828d8148d Mon Sep 17 00:00:00 2001 From: Araozu Date: Tue, 23 Apr 2024 10:16:51 -0500 Subject: [PATCH] Rewrite in Astrojs --- .gitignore | 28 +++- README.md | 47 ++++++ astro.config.mjs | 12 ++ bun.lockb | Bin 74497 -> 247368 bytes md-docs.config.yaml | 11 -- md/learn/basics/operators.md | 5 - md/learn/flow-control/blocks.md | 4 - md/learn/index.yaml | 72 --------- package.json | 37 ++--- tailwind.css => public/css/global.css | 3 - public/css/pages.css | 39 +++++ {static => public}/css/prism.min.css | 0 {static => public}/css/xcode-colors.css | 0 public/favicon.svg | 9 ++ {static => public}/img/desc_thp.jpg | Bin src/components/Navbar.astro | 19 +++ src/components/Sidebar.astro | 39 +++++ src/components/TOC.astro | 39 +++++ src/components/TOCHeading.astro | 19 +++ src/env.d.ts | 1 + src/layouts/BaseLayout.astro | 31 ++++ src/layouts/PagesLayout.astro | 146 ++++++++++++++++++ {lexer => src/lexer}/highlighter.ts | 11 +- {lexer => src/lexer}/identifier_lexer.test.ts | 0 {lexer => src/lexer}/identifier_lexer.ts | 4 +- {lexer => src/lexer}/lexer.test.ts | 0 {lexer => src/lexer}/lexer.ts | 8 +- {lexer => src/lexer}/number_lexer.test.ts | 0 {lexer => src/lexer}/number_lexer.ts | 4 +- {lexer => src/lexer}/string_lexer.test.ts | 0 {lexer => src/lexer}/string_lexer.ts | 2 +- {lexer => src/lexer}/utils.ts | 0 src/pages/index.astro | 125 +++++++++++++++ {md => src/pages}/learn/basics/comments.md | 5 + {md => src/pages}/learn/basics/datatypes.md | 5 + {md => src/pages}/learn/basics/hello-world.md | 5 + src/pages/learn/basics/operators.md | 10 ++ {md => src/pages}/learn/basics/variables.md | 6 + {md => src/pages}/learn/classes/anonymous.md | 4 + {md => src/pages}/learn/classes/definition.md | 5 + {md => src/pages}/learn/classes/interfaces.md | 5 + {md => src/pages}/learn/classes/magic.md | 5 + {md => src/pages}/learn/classes/static.md | 5 + .../pages}/learn/data-structures/arrays.md | 5 + .../pages}/learn/data-structures/enums.md | 5 + .../pages}/learn/data-structures/maps.md | 5 + .../pages}/learn/data-structures/tuples.md | 5 + .../pages}/learn/error-handling/null.md | 5 + {md => src/pages}/learn/error-handling/try.md | 5 + src/pages/learn/flow-control/blocks.md | 9 ++ .../pages}/learn/flow-control/conditionals.md | 5 + {md => src/pages}/learn/flow-control/loops.md | 5 + {md => src/pages}/learn/flow-control/match.md | 5 + .../pages}/learn/functions/declaration.md | 5 + .../pages}/learn/functions/higher-order.md | 5 + {md => src/pages}/learn/functions/lambdas.md | 5 + .../pages}/learn/functions/parameters.md | 5 + {md => src/pages}/learn/ideas/idea_1.md | 0 {md => src/pages}/learn/index.md | 52 ++++++- {md => src/pages}/learn/install.md | 5 + static/index.html | 122 --------------- static/template.html | 98 ------------ tailwind.config.js => tailwind.config.mjs | 13 +- tsconfig.json | 28 +--- 64 files changed, 771 insertions(+), 391 deletions(-) create mode 100644 README.md create mode 100644 astro.config.mjs delete mode 100644 md-docs.config.yaml delete mode 100644 md/learn/basics/operators.md delete mode 100644 md/learn/flow-control/blocks.md delete mode 100644 md/learn/index.yaml rename tailwind.css => public/css/global.css (96%) create mode 100644 public/css/pages.css rename {static => public}/css/prism.min.css (100%) rename {static => public}/css/xcode-colors.css (100%) create mode 100644 public/favicon.svg rename {static => public}/img/desc_thp.jpg (100%) create mode 100644 src/components/Navbar.astro create mode 100644 src/components/Sidebar.astro create mode 100644 src/components/TOC.astro create mode 100644 src/components/TOCHeading.astro create mode 100644 src/env.d.ts create mode 100644 src/layouts/BaseLayout.astro create mode 100644 src/layouts/PagesLayout.astro rename {lexer => src/lexer}/highlighter.ts (57%) rename {lexer => src/lexer}/identifier_lexer.test.ts (100%) rename {lexer => src/lexer}/identifier_lexer.ts (93%) rename {lexer => src/lexer}/lexer.test.ts (100%) rename {lexer => src/lexer}/lexer.ts (94%) rename {lexer => src/lexer}/number_lexer.test.ts (100%) rename {lexer => src/lexer}/number_lexer.ts (93%) rename {lexer => src/lexer}/string_lexer.test.ts (100%) rename {lexer => src/lexer}/string_lexer.ts (96%) rename {lexer => src/lexer}/utils.ts (100%) create mode 100644 src/pages/index.astro rename {md => src/pages}/learn/basics/comments.md (76%) rename {md => src/pages}/learn/basics/datatypes.md (83%) rename {md => src/pages}/learn/basics/hello-world.md (64%) create mode 100644 src/pages/learn/basics/operators.md rename {md => src/pages}/learn/basics/variables.md (93%) rename {md => src/pages}/learn/classes/anonymous.md (83%) rename {md => src/pages}/learn/classes/definition.md (96%) rename {md => src/pages}/learn/classes/interfaces.md (78%) rename {md => src/pages}/learn/classes/magic.md (78%) rename {md => src/pages}/learn/classes/static.md (88%) rename {md => src/pages}/learn/data-structures/arrays.md (86%) rename {md => src/pages}/learn/data-structures/enums.md (88%) rename {md => src/pages}/learn/data-structures/maps.md (97%) rename {md => src/pages}/learn/data-structures/tuples.md (78%) rename {md => src/pages}/learn/error-handling/null.md (95%) rename {md => src/pages}/learn/error-handling/try.md (91%) create mode 100644 src/pages/learn/flow-control/blocks.md rename {md => src/pages}/learn/flow-control/conditionals.md (90%) rename {md => src/pages}/learn/flow-control/loops.md (93%) rename {md => src/pages}/learn/flow-control/match.md (89%) rename {md => src/pages}/learn/functions/declaration.md (94%) rename {md => src/pages}/learn/functions/higher-order.md (82%) rename {md => src/pages}/learn/functions/lambdas.md (93%) rename {md => src/pages}/learn/functions/parameters.md (94%) rename {md => src/pages}/learn/ideas/idea_1.md (100%) rename {md => src/pages}/learn/index.md (79%) rename {md => src/pages}/learn/install.md (78%) delete mode 100644 static/index.html delete mode 100644 static/template.html rename tailwind.config.js => tailwind.config.mjs (91%) diff --git a/.gitignore b/.gitignore index 8b01b9b..16d54bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,24 @@ -node_modules -static/css/out.css -static/learn -static/js/highlighter.js +# build output +dist/ +# generated types +.astro/ + +# 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 + +# jetbrains setting folder +.idea/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e34a99b --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# Astro Starter Kit: Minimal + +```sh +npm create astro@latest -- --template minimal +``` + +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal) +[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal) +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json) + +> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! + +## 🚀 Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```text +/ +├── public/ +├── src/ +│ └── pages/ +│ └── index.astro +└── package.json +``` + +Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. + +There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. + +Any static assets, like images, can be placed in the `public/` directory. + +## 🧞 Commands + +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro -- --help` | Get help using the Astro CLI | + +## 👀 Want to learn more? + +Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..036bef9 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,12 @@ +import { defineConfig } from 'astro/config'; +import tailwind from "@astrojs/tailwind"; + +import mdx from "@astrojs/mdx"; + +// https://astro.build/config +export default defineConfig({ + integrations: [tailwind(), mdx()], + markdown: { + syntaxHighlight: false, + }, +}); \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index 8f1bb0a806bfaf50957d46099961019b7961d053..32fc5fd34e087f4cb59c051db817baa49e958144 100755 GIT binary patch literal 247368 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 W(zGldAekR-$Yx5o@n8Q>|NS4Zu3xSI delta 24866 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 diff --git a/md-docs.config.yaml b/md-docs.config.yaml deleted file mode 100644 index e70befb..0000000 --- a/md-docs.config.yaml +++ /dev/null @@ -1,11 +0,0 @@ -input: md -output: static -template: static/template.html - -headings: - h1: text-4xl mb-4 mt-8 font-display opacity-90 font-black text-c-text-2 - h2: text-2xl mt-10 mb-4 font-display opacity-90 font-bold text-c-text-2 - h3: text-xl mt-10 mb-4 font-display opacity-90 text-c-text-2 - -file_tree_title_classes: "uppercase font-display text-c-text-2 font-medium" -link_classes: text-blue-500 hover:underline diff --git a/md/learn/basics/operators.md b/md/learn/basics/operators.md deleted file mode 100644 index 949fc93..0000000 --- a/md/learn/basics/operators.md +++ /dev/null @@ -1,5 +0,0 @@ -# Operators - -Some common operators - - diff --git a/md/learn/flow-control/blocks.md b/md/learn/flow-control/blocks.md deleted file mode 100644 index 8037ecd..0000000 --- a/md/learn/flow-control/blocks.md +++ /dev/null @@ -1,4 +0,0 @@ -# Blocks - -Blocks :D - diff --git a/md/learn/index.yaml b/md/learn/index.yaml deleted file mode 100644 index 5320cbe..0000000 --- a/md/learn/index.yaml +++ /dev/null @@ -1,72 +0,0 @@ -path: "" -name: "" -has_index: true -children: -- path: index - name: Index -- path: install - name: Install -- path: basics - name: Basics - children: - - path: hello-world - name: Hello, world! - - name: Variables - path: variables - - path: datatypes - name: Datatypes - - path: comments - name: Comments -- name: Flow control - path: flow-control - children: - - name: Blocks - path: blocks - - name: Conditionals - path: conditionals - - name: Loops - path: loops - - name: Match - path: match -- name: Data structures - path: data-structures - children: - - name: Tuples - path: tuples - - name: Arrays - path: arrays - - name: Maps - path: maps - - name: Enums - path: enums -- name: Functions - path: functions - children: - - name: Declaration - path: declaration - - name: Parameter references - path: parameters - - name: Higher-order functions - path: higher-order - - name: Lambdas - path: lambdas -- name: Error handling - path: error-handling - children: - - name: Nullable types - path: "null" - - name: Try expressions - path: try -- name: Classes - path: classes - children: - - name: Definition - path: definition - - name: Static - path: static - - name: Interfaces - path: interfaces - - name: Anonymous classes - path: anonymous - - name: Magic - path: magic diff --git a/package.json b/package.json index 25a10ef..cc4f1bd 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,22 @@ { - "name": "docs", - "version": "1.0.0", - "description": "", - "main": "index.js", + "name": "thp-docs", + "type": "module", + "version": "0.0.1", "scripts": { - "generate": "md-docs", - "bundle": "bun build ./lexer/highlighter.ts --outdir ./static/js/ --format esm --minify", - "dev": "concurrently -k \"tailwindcss -i ./tailwind.css -o ./static/css/out.css --watch\" \"serve ./static/ -l 3333\"", - "tailwind:watch": "tailwindcss -i ./tailwind.css -o ./static/css/out.css --watch", - "tailwind:build": "tailwindcss -i ./tailwind.css -o ./static/css/out.css" + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" }, - "keywords": [], - "author": "", - "license": "ISC", "dependencies": { - "@types/bun": "^1.0.10", + "@astrojs/check": "^0.5.10", + "@astrojs/mdx": "^2.3.0", + "@astrojs/tailwind": "^5.1.0", + "@types/bun": "^1.0.12", + "astro": "^4.6.1", "codejar": "^4.2.0", - "tailwindcss": "^3.2.7" - }, - "devDependencies": { - "concurrently": "^8.2.0", - "serve": "^14.2.1", - "bun-types": "latest" - }, - "peerDependencies": { - "typescript": "^5.0.0" + "tailwindcss": "^3.4.3", + "typescript": "^5.4.5" } } \ No newline at end of file diff --git a/tailwind.css b/public/css/global.css similarity index 96% rename from tailwind.css rename to public/css/global.css index fc18947..fec57de 100644 --- a/tailwind.css +++ b/public/css/global.css @@ -1,6 +1,3 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; :root { --c-bg: #121212; diff --git a/public/css/pages.css b/public/css/pages.css new file mode 100644 index 0000000..e8a17e4 --- /dev/null +++ b/public/css/pages.css @@ -0,0 +1,39 @@ + +.markdown h1 { + font-size: 2.25rem; + line-height: 2.5rem; + margin-bottom: 1rem; + margin-top: 2rem; + font-family: Inter, sans-serif; + opacity: 0.9; + font-weight: 900; + color: var(--c-text-2); +} + +.markdown h2 { + /* use these tailwind classes: text-2xl mt-10 mb-4 font-display opacity-90 font-bold text-c-text-2 */ + font-size: 1.5rem; + line-height: 2rem; + margin-bottom: 1rem; + margin-top: 2.5rem; + font-family: Inter, sans-serif; + opacity: 0.9; + font-weight: 700; + color: var(--c-text-2); +} + +.markdown ul { + list-style-type: disc; + list-style-position: inside; +} + +.markdown ul li { + padding: 0.5rem 0; +} + +.markdown pre { + margin: 0.5em 0; + padding: 0.75em 0.75em; + color: var(--code-theme-color); + background: var(--code-theme-bg-color); +} diff --git a/static/css/prism.min.css b/public/css/prism.min.css similarity index 100% rename from static/css/prism.min.css rename to public/css/prism.min.css diff --git a/static/css/xcode-colors.css b/public/css/xcode-colors.css similarity index 100% rename from static/css/xcode-colors.css rename to public/css/xcode-colors.css diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..f157bd1 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/static/img/desc_thp.jpg b/public/img/desc_thp.jpg similarity index 100% rename from static/img/desc_thp.jpg rename to public/img/desc_thp.jpg diff --git a/src/components/Navbar.astro b/src/components/Navbar.astro new file mode 100644 index 0000000..896a131 --- /dev/null +++ b/src/components/Navbar.astro @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/src/components/Sidebar.astro b/src/components/Sidebar.astro new file mode 100644 index 0000000..9fdbfbc --- /dev/null +++ b/src/components/Sidebar.astro @@ -0,0 +1,39 @@ +--- +import type { PageEntry } from "../layouts/PagesLayout.astro"; + +const entry: PageEntry = Astro.props.entry; +const basePath: string = Astro.props.basePath; + +const entryPath = entry.path === "index"? "": entry.path; +--- + +{ + !entry.children && ( +
  • + + {entry.title} + +
  • + ) +} +{ + entry.children && ( + <> +
    + {entry.title} +
    + +
      + {entry.children!.map((nextEntry) => ( + + ))} +
    + + ) +} diff --git a/src/components/TOC.astro b/src/components/TOC.astro new file mode 100644 index 0000000..1bafb8b --- /dev/null +++ b/src/components/TOC.astro @@ -0,0 +1,39 @@ +--- +// github.com/rezahedi/rezahedi.dev/blob/main/src/components/TOC.astro +import TOCHeading from "./TOCHeading.astro"; + +const { headings } = Astro.props; + +const toc = buildHierarchy(headings); + +function buildHierarchy(headings: any) { + const toc: any[] = []; + const parentHeadings = new Map(); + + if (!headings) return toc; + + headings.forEach((h: any) => { + const heading = { ...h, subheadings: [] }; + parentHeadings.set(heading.depth, heading); + // Change 2 to 1 if your markdown includes your

    + if (heading.depth === 1) { + toc.push(heading); + } else { + parentHeadings.get(heading.depth - 1).subheadings.push(heading); + } + }); + return toc; +} +--- + +{ + toc && toc.length > 0 && ( + + ) +} diff --git a/src/components/TOCHeading.astro b/src/components/TOCHeading.astro new file mode 100644 index 0000000..4c39d6e --- /dev/null +++ b/src/components/TOCHeading.astro @@ -0,0 +1,19 @@ +--- +// github.com/rezahedi/rezahedi.dev/blob/main/src/components/TOCHeading.astro +const { heading } = Astro.props; +--- + +
  • + + {heading.text} + + { + heading.subheadings.length > 0 && ( +
      + {heading.subheadings.map((subheading: any) => ( + + ))} +
    + ) + } +
  • diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..f964fe0 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..c4e7635 --- /dev/null +++ b/src/layouts/BaseLayout.astro @@ -0,0 +1,31 @@ +--- +const {title} = Astro.props; +--- + + + + + + + {title ?? "THP: Typed Hypertext Processor"} + + + + + + + + + + + + + + + diff --git a/src/layouts/PagesLayout.astro b/src/layouts/PagesLayout.astro new file mode 100644 index 0000000..5541a06 --- /dev/null +++ b/src/layouts/PagesLayout.astro @@ -0,0 +1,146 @@ +--- +import Navbar from "../components/Navbar.astro"; +import BaseLayout from "./BaseLayout.astro"; +import TOC from "../components/TOC.astro"; +import Sidebar from "../components/Sidebar.astro"; + +const { frontmatter, headings } = Astro.props; + +const posts = await Astro.glob("../pages/learn/**/*.md"); + +// The index.md page must have a `pagesLayout` frontmatter, which declares the order of all the pages. +const indexSubpath = `/learn/index.md`; + +const indexPage = posts.find((post) => post.file.endsWith(indexSubpath)); + +if (indexPage === undefined) { + throw new Error(`No index page found at ${indexSubpath}`); +} + +export type PageEntry = { + path: string; + title?: string; + children?: Array; +}; + +const pagesIndex: Array | undefined = + indexPage.frontmatter.pagesLayout; + +if (pagesIndex === undefined) { + console.error(indexPage.frontmatter); + throw new Error(`No pagesLayout frontmatter found in ${indexSubpath}`); +} + +function validateEntry(entry: PageEntry, basePath: string) { + if (!entry.children) { + // Attempt to get the page title from frontmatter + const pageData = posts.find((post) => + post.file.endsWith(entry.path + ".md"), + ); + + if (pageData === undefined) { + console.error(entry); + console.error(entry.path + ".md"); + throw new Error(`No page found at ${entry.path}`); + } + + // set the title + entry.title = pageData.frontmatter.title ?? "Title not set"; + + return; + } + + // Recursively search for children + if (!entry.title) { + console.log(entry); + throw new Error( + `No title found in ${basePath + entry.path}, which is a folder and requires it.`, + ); + } + + const folderName = entry.title; + + entry.children.forEach((child) => + validateEntry(child, basePath + "/" + folderName), + ); +} + +for (const entry of pagesIndex) { + validateEntry(entry, `/learn/`); +} +--- + + + + +
    +
    + +
    + +
    + +
    + +
    + +
    +
    + + + +
    diff --git a/lexer/highlighter.ts b/src/lexer/highlighter.ts similarity index 57% rename from lexer/highlighter.ts rename to src/lexer/highlighter.ts index c1b612b..5509a79 100644 --- a/lexer/highlighter.ts +++ b/src/lexer/highlighter.ts @@ -1,7 +1,7 @@ -import {lex} from "./lexer.ts"; -import { CodeJar } from "codejar" +import { lex } from "./lexer"; +import {CodeJar as Codejar} from "codejar"; -function thp_highlighter(editor: any) { +export function thp_highlighter(editor: any) { let code: string = editor.textContent; let tokens = lex(code); @@ -15,7 +15,4 @@ function thp_highlighter(editor: any) { editor.innerHTML = highlighted_code; } -// @ts-ignore -window.thp_highlighter = thp_highlighter; -// @ts-ignore -window.CodeJar = CodeJar; +export const CodeJar = Codejar; diff --git a/lexer/identifier_lexer.test.ts b/src/lexer/identifier_lexer.test.ts similarity index 100% rename from lexer/identifier_lexer.test.ts rename to src/lexer/identifier_lexer.test.ts diff --git a/lexer/identifier_lexer.ts b/src/lexer/identifier_lexer.ts similarity index 93% rename from lexer/identifier_lexer.ts rename to src/lexer/identifier_lexer.ts index 109c6cc..d7e55ce 100644 --- a/lexer/identifier_lexer.ts +++ b/src/lexer/identifier_lexer.ts @@ -1,5 +1,5 @@ -import type { Token } from "./lexer.ts"; -import { is_identifier_char } from "./utils.ts"; +import type { Token } from "./lexer"; +import { is_identifier_char } from "./utils"; /** * Scans an identifier, at the given position in the input string. diff --git a/lexer/lexer.test.ts b/src/lexer/lexer.test.ts similarity index 100% rename from lexer/lexer.test.ts rename to src/lexer/lexer.test.ts diff --git a/lexer/lexer.ts b/src/lexer/lexer.ts similarity index 94% rename from lexer/lexer.ts rename to src/lexer/lexer.ts index 3239728..b683c16 100644 --- a/lexer/lexer.ts +++ b/src/lexer/lexer.ts @@ -1,7 +1,7 @@ -import { scan_identifier } from "./identifier_lexer.ts"; -import { scan_number } from "./number_lexer.ts"; -import { scan_string } from "./string_lexer.ts"; -import { is_digit, is_lowercase, is_uppercase } from "./utils.ts"; +import { scan_identifier } from "./identifier_lexer"; +import { scan_number } from "./number_lexer"; +import { scan_string } from "./string_lexer"; +import { is_digit, is_lowercase, is_uppercase } from "./utils"; export type Token = { v: string, diff --git a/lexer/number_lexer.test.ts b/src/lexer/number_lexer.test.ts similarity index 100% rename from lexer/number_lexer.test.ts rename to src/lexer/number_lexer.test.ts diff --git a/lexer/number_lexer.ts b/src/lexer/number_lexer.ts similarity index 93% rename from lexer/number_lexer.ts rename to src/lexer/number_lexer.ts index e5875e8..0d04620 100644 --- a/lexer/number_lexer.ts +++ b/src/lexer/number_lexer.ts @@ -1,5 +1,5 @@ -import type { Token } from "./lexer.ts"; -import { is_digit } from "./utils.ts"; +import type { Token } from "./lexer"; +import { is_digit } from "./utils"; /** * Scans a number, at the given position in the input string. diff --git a/lexer/string_lexer.test.ts b/src/lexer/string_lexer.test.ts similarity index 100% rename from lexer/string_lexer.test.ts rename to src/lexer/string_lexer.test.ts diff --git a/lexer/string_lexer.ts b/src/lexer/string_lexer.ts similarity index 96% rename from lexer/string_lexer.ts rename to src/lexer/string_lexer.ts index a03569d..b5e75bd 100644 --- a/lexer/string_lexer.ts +++ b/src/lexer/string_lexer.ts @@ -1,4 +1,4 @@ -import type { Token } from "./lexer.ts"; +import type { Token } from "./lexer"; export function scan_string(input: string, starting_position: number): [Token, number] { let value = "\""; diff --git a/lexer/utils.ts b/src/lexer/utils.ts similarity index 100% rename from lexer/utils.ts rename to src/lexer/utils.ts diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..023d9e4 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,125 @@ +--- +import BaseLayout from "../layouts/BaseLayout.astro"; +import Navbar from "../components/Navbar.astro"; +--- + + + + +
    +
    +
    +

    + A modern, type safe, + + secure language + + compiled to PHP +

    +

    + Inspired by Rust, Zig and Swift, THP has a modern syntax, + semantics, type system and stdlib. +

    +
    +
    + +
    +
    + +
    + + + + + + + + + +
    +
    +
    +
    + + +
    diff --git a/md/learn/basics/comments.md b/src/pages/learn/basics/comments.md similarity index 76% rename from md/learn/basics/comments.md rename to src/pages/learn/basics/comments.md index 7965040..7f7e9d3 100644 --- a/md/learn/basics/comments.md +++ b/src/pages/learn/basics/comments.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Comments +--- + # Comments Only these two: diff --git a/md/learn/basics/datatypes.md b/src/pages/learn/basics/datatypes.md similarity index 83% rename from md/learn/basics/datatypes.md rename to src/pages/learn/basics/datatypes.md index 4af7ee0..25054fb 100644 --- a/md/learn/basics/datatypes.md +++ b/src/pages/learn/basics/datatypes.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Datatypes +--- + # Datatypes Datatypes's first character are always uppercase. diff --git a/md/learn/basics/hello-world.md b/src/pages/learn/basics/hello-world.md similarity index 64% rename from md/learn/basics/hello-world.md rename to src/pages/learn/basics/hello-world.md index 4338752..74c8efa 100644 --- a/md/learn/basics/hello-world.md +++ b/src/pages/learn/basics/hello-world.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Hello world +--- + # Hello, world! Create a file named `hello.thp` with the contents: diff --git a/src/pages/learn/basics/operators.md b/src/pages/learn/basics/operators.md new file mode 100644 index 0000000..d6a2813 --- /dev/null +++ b/src/pages/learn/basics/operators.md @@ -0,0 +1,10 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Install +--- + +# Operators + +Some common operators + + diff --git a/md/learn/basics/variables.md b/src/pages/learn/basics/variables.md similarity index 93% rename from md/learn/basics/variables.md rename to src/pages/learn/basics/variables.md index 420fdd5..3666b2c 100644 --- a/md/learn/basics/variables.md +++ b/src/pages/learn/basics/variables.md @@ -1,3 +1,9 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Variables + +--- + # Variables thp distinguishes between mutable and immutable variables. diff --git a/md/learn/classes/anonymous.md b/src/pages/learn/classes/anonymous.md similarity index 83% rename from md/learn/classes/anonymous.md rename to src/pages/learn/classes/anonymous.md index 86f4135..7d849fe 100644 --- a/md/learn/classes/anonymous.md +++ b/src/pages/learn/classes/anonymous.md @@ -1,3 +1,7 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Anonymous classes +--- # Anonymous classes diff --git a/md/learn/classes/definition.md b/src/pages/learn/classes/definition.md similarity index 96% rename from md/learn/classes/definition.md rename to src/pages/learn/classes/definition.md index 0dba89a..1b885f2 100644 --- a/md/learn/classes/definition.md +++ b/src/pages/learn/classes/definition.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Classes +--- + # Classes Basically kotlin syntax. diff --git a/md/learn/classes/interfaces.md b/src/pages/learn/classes/interfaces.md similarity index 78% rename from md/learn/classes/interfaces.md rename to src/pages/learn/classes/interfaces.md index c3968c6..648a0d1 100644 --- a/md/learn/classes/interfaces.md +++ b/src/pages/learn/classes/interfaces.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Interfaces +--- + # Interfaces diff --git a/md/learn/classes/magic.md b/src/pages/learn/classes/magic.md similarity index 78% rename from md/learn/classes/magic.md rename to src/pages/learn/classes/magic.md index 0d3e5cd..bda80d1 100644 --- a/md/learn/classes/magic.md +++ b/src/pages/learn/classes/magic.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Magic methods +--- + # Magic methods Don't get special treatment. diff --git a/md/learn/classes/static.md b/src/pages/learn/classes/static.md similarity index 88% rename from md/learn/classes/static.md rename to src/pages/learn/classes/static.md index f310b5a..efadc26 100644 --- a/md/learn/classes/static.md +++ b/src/pages/learn/classes/static.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Static +--- + # Static in classes diff --git a/md/learn/data-structures/arrays.md b/src/pages/learn/data-structures/arrays.md similarity index 86% rename from md/learn/data-structures/arrays.md rename to src/pages/learn/data-structures/arrays.md index cf3e1a8..dc79315 100644 --- a/md/learn/data-structures/arrays.md +++ b/src/pages/learn/data-structures/arrays.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Arrays +--- + # Arrays Use square brackets as usual. diff --git a/md/learn/data-structures/enums.md b/src/pages/learn/data-structures/enums.md similarity index 88% rename from md/learn/data-structures/enums.md rename to src/pages/learn/data-structures/enums.md index e9a558c..578e0c9 100644 --- a/md/learn/data-structures/enums.md +++ b/src/pages/learn/data-structures/enums.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Enums +--- + # Enums (Tagged unions) ## Basic enums diff --git a/md/learn/data-structures/maps.md b/src/pages/learn/data-structures/maps.md similarity index 97% rename from md/learn/data-structures/maps.md rename to src/pages/learn/data-structures/maps.md index 9d6d9d5..268adcd 100644 --- a/md/learn/data-structures/maps.md +++ b/src/pages/learn/data-structures/maps.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Maps +--- + # Maps Also known as Associative Arrays, or Objects in other languages. diff --git a/md/learn/data-structures/tuples.md b/src/pages/learn/data-structures/tuples.md similarity index 78% rename from md/learn/data-structures/tuples.md rename to src/pages/learn/data-structures/tuples.md index 9c463cc..b9b264d 100644 --- a/md/learn/data-structures/tuples.md +++ b/src/pages/learn/data-structures/tuples.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Tuples +--- + # Tuples Uses `#()` just to avoid confusion with function calls and grouping (`()`). diff --git a/md/learn/error-handling/null.md b/src/pages/learn/error-handling/null.md similarity index 95% rename from md/learn/error-handling/null.md rename to src/pages/learn/error-handling/null.md index df0b690..36d0e7b 100644 --- a/md/learn/error-handling/null.md +++ b/src/pages/learn/error-handling/null.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Nullable types +--- + # Nullable types All datatypes in THP disallow the usage of `null` by default. diff --git a/md/learn/error-handling/try.md b/src/pages/learn/error-handling/try.md similarity index 91% rename from md/learn/error-handling/try.md rename to src/pages/learn/error-handling/try.md index cd677b9..0c85a71 100644 --- a/md/learn/error-handling/try.md +++ b/src/pages/learn/error-handling/try.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Try expressions +--- + # Try expressions ```thp diff --git a/src/pages/learn/flow-control/blocks.md b/src/pages/learn/flow-control/blocks.md new file mode 100644 index 0000000..5e95d1c --- /dev/null +++ b/src/pages/learn/flow-control/blocks.md @@ -0,0 +1,9 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Blocks +--- + +# Blocks + +Blocks :D + diff --git a/md/learn/flow-control/conditionals.md b/src/pages/learn/flow-control/conditionals.md similarity index 90% rename from md/learn/flow-control/conditionals.md rename to src/pages/learn/flow-control/conditionals.md index 0846b95..91337c2 100644 --- a/md/learn/flow-control/conditionals.md +++ b/src/pages/learn/flow-control/conditionals.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Conditionals +--- + # Conditionals - Only `Bool` are accepted. No truthy/falsy. diff --git a/md/learn/flow-control/loops.md b/src/pages/learn/flow-control/loops.md similarity index 93% rename from md/learn/flow-control/loops.md rename to src/pages/learn/flow-control/loops.md index 758a017..338b95e 100644 --- a/md/learn/flow-control/loops.md +++ b/src/pages/learn/flow-control/loops.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Loops +--- + # Loops ## For loop diff --git a/md/learn/flow-control/match.md b/src/pages/learn/flow-control/match.md similarity index 89% rename from md/learn/flow-control/match.md rename to src/pages/learn/flow-control/match.md index c969df8..962c3a9 100644 --- a/md/learn/flow-control/match.md +++ b/src/pages/learn/flow-control/match.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Match +--- + # Match ## Syntax diff --git a/md/learn/functions/declaration.md b/src/pages/learn/functions/declaration.md similarity index 94% rename from md/learn/functions/declaration.md rename to src/pages/learn/functions/declaration.md index 2c16d0b..9a3d791 100644 --- a/md/learn/functions/declaration.md +++ b/src/pages/learn/functions/declaration.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Declaration +--- + # Declaration diff --git a/md/learn/functions/higher-order.md b/src/pages/learn/functions/higher-order.md similarity index 82% rename from md/learn/functions/higher-order.md rename to src/pages/learn/functions/higher-order.md index 4ae4bd4..b6112ed 100644 --- a/md/learn/functions/higher-order.md +++ b/src/pages/learn/functions/higher-order.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Higher Order Functions +--- + # Higher Order functions diff --git a/md/learn/functions/lambdas.md b/src/pages/learn/functions/lambdas.md similarity index 93% rename from md/learn/functions/lambdas.md rename to src/pages/learn/functions/lambdas.md index 370a6b3..02a31bd 100644 --- a/md/learn/functions/lambdas.md +++ b/src/pages/learn/functions/lambdas.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Lambdas +--- + # Lambdas / Anonymous functions diff --git a/md/learn/functions/parameters.md b/src/pages/learn/functions/parameters.md similarity index 94% rename from md/learn/functions/parameters.md rename to src/pages/learn/functions/parameters.md index 4a802ab..8467517 100644 --- a/md/learn/functions/parameters.md +++ b/src/pages/learn/functions/parameters.md @@ -1,3 +1,8 @@ +--- +layout: ../../../layouts/PagesLayout.astro +title: Function parameters +--- + # Function parameters diff --git a/md/learn/ideas/idea_1.md b/src/pages/learn/ideas/idea_1.md similarity index 100% rename from md/learn/ideas/idea_1.md rename to src/pages/learn/ideas/idea_1.md diff --git a/md/learn/index.md b/src/pages/learn/index.md similarity index 79% rename from md/learn/index.md rename to src/pages/learn/index.md index 62e626b..ca817a5 100644 --- a/md/learn/index.md +++ b/src/pages/learn/index.md @@ -1,3 +1,53 @@ +--- +layout: ../../layouts/PagesLayout.astro +title: Welcome +pagesLayout: +- path: index +- path: install +- path: basics + title: Basics + children: + - path: hello-world + - path: variables + - path: datatypes + - path: comments +- path: flow-control + title: Flow control + children: + - path: blocks + - path: conditionals + - path: loops + - path: match +- path: data-structures + title: Data structures + children: + - path: tuples + - path: arrays + - path: maps + - path: enums +- path: functions + title: Functions + children: + - path: declaration + - path: parameters + - path: higher-order + - path: lambdas +- path: error-handling + title: Error handling + children: + - path: "null" + - path: try +- path: classes + title: Classes + children: + - path: definition + - path: static + - path: interfaces + - path: anonymous + - path: magic + +--- + # Welcome Welcome to the documentation of the THP programming languague. @@ -9,7 +59,7 @@ THP is a new programming language that compiles to PHP.
    This page discusses some of the design decitions of the language, -if you want to install THP go to the [installation guide](/installation-guide) +if you want to install THP go to the [installation guide](install) If you want to learn the language, go to the learn section. diff --git a/md/learn/install.md b/src/pages/learn/install.md similarity index 78% rename from md/learn/install.md rename to src/pages/learn/install.md index 444187a..8d54dfd 100644 --- a/md/learn/install.md +++ b/src/pages/learn/install.md @@ -1,3 +1,8 @@ +--- +layout: ../../layouts/PagesLayout.astro +title: Install +--- + # Install ## From scratch diff --git a/static/index.html b/static/index.html deleted file mode 100644 index aa302dd..0000000 --- a/static/index.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - THP: Typed Hypertext Processor - - - - - - - - - - - - - - -
    -
    -
    -

    - A modern, type safe, - - secure language - - compiled to PHP -

    -

    - Inspired by Rust, Zig and Swift, THP has a modern syntax, semantics, - type system and stdlib. -

    -
    -
    - -
    -
    - -
    - - - - - - - - - -
    -
    -
    -
    - - - - - - diff --git a/static/template.html b/static/template.html deleted file mode 100644 index 99adab3..0000000 --- a/static/template.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - THP: Typed Hypertext Processor - - - - - - - - - - - - - - -
    -
    - -
    - -
    - {{markdown}} -
    - -
    - -
    -
    - - - - - - - \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.mjs similarity index 91% rename from tailwind.config.js rename to tailwind.config.mjs index d7be3c5..5717238 100644 --- a/tailwind.config.js +++ b/tailwind.config.mjs @@ -1,8 +1,8 @@ /** @type {import('tailwindcss').Config} */ -module.exports = { - content: ["./static/**/*.html"], - theme: { - extend: { +export default { + content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], + theme: { + extend: { colors: { "c-bg": "var(--c-bg)", "c-text": "var(--c-text)", @@ -22,8 +22,8 @@ module.exports = { "display": ["Inter", "'Josefin Sans'", "'Fugaz One'", "sans-serif"], "body": ["Inter", "sans-serif"], }, - }, - corePlugins: { + }, + corePlugins: { container: false }, plugins: [ @@ -48,4 +48,3 @@ module.exports = { } ], } - diff --git a/tsconfig.json b/tsconfig.json index df2b488..3fd7ae6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,3 @@ { - "compilerOptions": { - // Enable latest features - "lib": ["ESNext"], - "target": "ESNext", - "module": "ESNext", - "moduleDetection": "force", - "jsx": "react-jsx", - "allowJs": true, - - // Bundler mode - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - - // Best practices - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, - - // Some stricter flags - "noUnusedLocals": true, - "noUnusedParameters": true, - "noPropertyAccessFromIndexSignature": true - } -} + "extends": "astro/tsconfigs/strictest" +} \ No newline at end of file