# Installation **Arch** Install dependencies ```bash pacman -S npm nodejs ``` **Debian/Ubuntu** ```bash apt install npm nodejs ``` Download ```bash git clone https://git.fatalmatrix.xyz/cosmic.git ``` Install node modules ```bash npm i ``` Install `npm-check-updates` Optional ```bash npm install -g npm-check-updates ncu -u npm i ``` Run `ncu -u` to update modules # Usage **Create `.env` file** ```.env baseUrl = "http://127.0.0.1:3000/" emailUsername = "email@email.com" emailPassword = "password" NODE_ENV = "dev" MYSQL_HOST = "127.0.0.1" MYSQL_USER = "root" MYSQL_PASSWORD = "Password" ``` On `NODE_ENV` change `dev` to `prod` **Pages** Add pages in the `scripts` folder ```js class Shop() { constructor() {} // GET `/shop` Main() { const data = { start: ``, body: ``, end: `` } return data.start + data.body + data.end } // GET `/shop/product` or POST `/shop/product` and get output from `value` Product(value) { const data = { start: ``, body: ``, end: `` } return data.start + data.body + data.end } // Required module.exports = () => {return new Shop()} } ``` **Layouts** Layouts are located in `views/layouts` **Blog** Blogs must be in markdown format in the `blog` folder To get the title, date and short description to display you must use the format below ```markdown # Title Date: 1/1/1999 --- Short description --- Content goes here ``` Place markdown file in `blog` folder If `blog` folder does not exist ```bash mkdir blog ``` To get blog output ```js const blog = require('../source/blog') blog().ReadBlogs().then(output => { output.forEach((value, key) => { console.log(`key: ${key}`) console.log(value) }) }) ```