# Website This repository hosts the source code which (eventually) powers my website: https://leonardobishop.com/ The app is written in TypeScript and runs on NodeJS using [Express](https://www.npmjs.com/package/express), rendering web pages with [ejs](https://www.npmjs.com/package/ejs). It parses content pages written in a markup language (currently [Wikitext](https://en.wikipedia.org/wiki/Help:Wikitext)) from the `pages/` directory and renders them as HTML. ## Building and running Instructions to build and deploy the web app will be written here whenever it is finished. ### Using docker ``` $ docker build -t website . $ docker run -p 3000:3000 website ``` ### Building directly ``` $ npm i -g typescript $ npm ci --only-production $ tsc && node build/index.js ``` The application will be listening on port 3000. ## Caveats This website is essentially built like a wiki system, though there are some drawbacks with this compared to actual wiki software, considering this is a highly specific use case of it. In no particular order: * re-rendering pages are a pain after edits * files are read from /static/image rather than /pages/file (which breaks the point of the entire namespace system) * templates can't transclude other templates * the Template namespace is the only transcludable namespace * code is a bit wack in places * I'm never happy with the visual design * I don't actually know what to fill this website with * I've written this list both on the website itself and in this readme so I will have to update it twice (and will likely forget one of them) ## License The **source code** for this project is licensed under the [ISC License](https://github.com/LMBishop/website/blob/master/LICENSE.txt). You can read the full license text in the [LICENSE.txt](https://github.com/LMBishop/website/blob/master/LICENSE.txt) file. Any media (images, binary files, videos), or any other non-source code in this repository do not fall under this license.