@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
yarn lint
|
||||
@ -1,131 +1,2 @@
|
||||
# [💻 LiveTerm - build terminal styled websites in minutes!](https://liveterm.vercel.app)
|
||||
|
||||
Highly customizable, easy-to-use, and minimal terminal styled website template, powered by Next.js.
|
||||
|
||||
Building a simple website with LiveTerm only takes **minutes**, and you only need to work with **one** file: `config.json`. After you cloned this repository, simply run `yarn install && yarn dev` and start editing `config.json` to build your website!
|
||||
|
||||
LiveTerm can be used to build a variety of websites:
|
||||
|
||||
- [personal website](https://cveinnt.com)
|
||||
- [browser startpage](https://livetermstart.vercel.app/)
|
||||
- [project page](https://liveterm.vercel.app/)
|
||||
- or maybe just a cool browser music player...be creative!
|
||||
|
||||
Feel free to play with the web demo above!
|
||||
|
||||
## 📸 Showcase
|
||||
|
||||
<p align="center">
|
||||
<img src="./demo/demo.gif" width="600"><br>
|
||||
<strong>LiveTerm with different themes</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="./demo/cveinnt.png" width="600"><br>
|
||||
<strong><a href="https://cveinnt.com" target=_blank>my personal website</a></strong>
|
||||
</p>
|
||||
|
||||
## 🚀 Ship your LiveTerm site in less than 5 minutes
|
||||
|
||||
LiveTerm requires the `yarn` package manager. You can install `yarn` [here](https://classic.yarnpkg.com/lang/en/docs/install/).
|
||||
|
||||
Simply run the following commmand in your terminal:
|
||||
|
||||
```bash
|
||||
sh -c "$(curl -fsSL https://raw.github.com/Cveinnt/LiveTerm/main/install/install.sh)"
|
||||
```
|
||||
|
||||
This will install LiveTerm to the current directory. You can start building your website with:
|
||||
|
||||
```bash
|
||||
cd LiveTerm && yarn dev
|
||||
```
|
||||
|
||||
Start editing `config.json` and try saving and see the updated changes!
|
||||
|
||||
Alternatively, you can clone this repository to a location of your choosing
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Cveinnt/LiveTerm.git && cd LiveTerm
|
||||
```
|
||||
|
||||
Then install dependencies and start developing there:
|
||||
|
||||
```bash
|
||||
yarn install && yarn dev
|
||||
```
|
||||
|
||||
### Docker Usage
|
||||
|
||||
First, clone the project and edit `config.json` to your liking. Then run the following to start the container in the background:
|
||||
|
||||
```shell
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
If you **know** what you were doing, you can also try changing `Dockerfile` & `docker-compose.yml`!
|
||||
Learn more about Docker [here](https://docs.docker.com/get-started/overview/ 'here').
|
||||
|
||||
## 📄 Configuration
|
||||
|
||||
### Basic Configuration
|
||||
|
||||
90% of LiveTerm's configurations are done through the `config.json` file.
|
||||
|
||||
```javascript
|
||||
{
|
||||
"readmeUrl": // create a Github README and link it here!
|
||||
"title": // title of the website
|
||||
"name": // your name, included in 'about' command
|
||||
"ascii": // ascii art to display
|
||||
"social": {
|
||||
"github": // your handle
|
||||
"linkedin": // your handle
|
||||
},
|
||||
"email": // your email
|
||||
"ps1_hostname": "liveterm" // hostname in prompt
|
||||
"ps1_username": "visitor", // username in prompt
|
||||
"resume_url": "../resume.pdf", // path to your resume
|
||||
"non_terminal_url": "W",
|
||||
"colors": {
|
||||
"light": {
|
||||
...
|
||||
},
|
||||
"dark": {
|
||||
... // you can use existing templates in themes.json or use your own!
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Feel free to change it as you see fit!
|
||||
|
||||
### Themes
|
||||
|
||||
You can find several pre-configured themes in `themes.json`, and you can replace the colors in `config.json` with the theme color you like! The themes are based on the themes on [this website](https://glitchbone.github.io/vscode-base16-term/#/).
|
||||
|
||||
For a better preview of the themes, checkout the images in the `demo` folder.
|
||||
|
||||
### Favicons
|
||||
|
||||
Favicons are located in `public/`, along with the other files you may want to upload to your website. I used this [website](https://www.favicon-generator.org/) to generate favicons.
|
||||
|
||||
### Banner
|
||||
|
||||
You may also want to change the output of the `banner` command. To do that, simply paste your generated banner in `src/utils/bin/commands.ts`. I used this [website](https://manytools.org/hacker-tools/ascii-banner/) to generate my banner.
|
||||
|
||||
### Advanced Configuration
|
||||
|
||||
If you want to further customize your page, feel free to change the source code to your liking!
|
||||
|
||||
## 🌐 Deploy on Vercel
|
||||
|
||||
The easiest way to deploy a Next.js app is to use the [Vercel Platform](https://vercel.com/) from the creators of Next.js.
|
||||
|
||||
You can install `vercel` cli and follow the instruction [here](https://vercel.com/docs/concepts/deployments/overview).
|
||||
|
||||
You can also connect your github account to vercel and have vercel automatically deploy the github repository for you.
|
||||
|
||||
## Credit
|
||||
|
||||
Based on M4TT72's awesome [Terminal](https://github.com/m4tt72/terminal).
|
||||
# [mattdangelo.co](https://mattdangelo.co)
|
||||
Personal website forked from the [LiveTerm](https://github.com/Cveinnt/LiveTerm) repo
|
||||
|
||||
|
Before Width: | Height: | Size: 352 KiB |
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 315 KiB |
|
Before Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 332 KiB |
|
Before Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 332 KiB |
|
Before Width: | Height: | Size: 330 KiB |
|
Before Width: | Height: | Size: 216 KiB |
@ -1,59 +0,0 @@
|
||||
#!/bin/sh
|
||||
# This script installs LiveTerm.
|
||||
#
|
||||
# Found a bug? Report it here: https://github.com/Cveinnt/LiveTerm/issues
|
||||
|
||||
set -e -u
|
||||
|
||||
eval "git clone 'https://github.com/Cveinnt/LiveTerm.git'"
|
||||
|
||||
cd LiveTerm
|
||||
|
||||
echo "LiveTerm cloned! Installing dependencies..."
|
||||
|
||||
if command -v yarn >/dev/null 2>&1 ; then
|
||||
yarn install
|
||||
else
|
||||
cat 1>&2 << 'EOA'
|
||||
/=====================================\\
|
||||
| COMMAND NOT FOUND: 'yarn' |
|
||||
\\=====================================/
|
||||
|
||||
Uh oh! We couldn't find 'yarn' installed on your system.
|
||||
|
||||
You should first install 'yarn' on your system.
|
||||
|
||||
For more information, visit yarn's installation page:
|
||||
|
||||
https://classic.yarnpkg.com/lang/en/docs/install/
|
||||
|
||||
EOA
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat <<-'EOM'
|
||||
|
||||
|
||||
█████ ███ ███████████
|
||||
░░███ ░░░ ░█░░░███░░░█
|
||||
░███ ████ █████ █████ ██████ ░ ░███ ░ ██████ ████████ █████████████
|
||||
░███ ░░███ ░░███ ░░███ ███░░███ ░███ ███░░███░░███░░███░░███░░███░░███
|
||||
░███ ░███ ░███ ░███ ░███████ ░███ ░███████ ░███ ░░░ ░███ ░███ ░███
|
||||
░███ █ ░███ ░░███ ███ ░███░░░ ░███ ░███░░░ ░███ ░███ ░███ ░███
|
||||
███████████ █████ ░░█████ ░░██████ █████ ░░██████ █████ █████░███ █████
|
||||
░░░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░ ░░░ ░░░░░
|
||||
|
||||
|
||||
LiveTerm has been downloaded to the current directory.
|
||||
You can start developing it with:
|
||||
|
||||
cd LiveTerm && yarn dev
|
||||
|
||||
This will open a local port at http://localhost:3000,
|
||||
where you can preview your website. To apply changes, edit:
|
||||
|
||||
config.json
|
||||
|
||||
And the changes should be applied upon saves!
|
||||
|
||||
EOM
|
||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 929 B |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 991 B |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 1.3 KiB |
@ -1,36 +0,0 @@
|
||||
// // List of commands that require API calls
|
||||
|
||||
import { getProjects } from '../api';
|
||||
import { getQuote } from '../api';
|
||||
import { getReadme } from '../api';
|
||||
import { getWeather } from '../api';
|
||||
|
||||
export const projects = async (args: string[]): Promise<string> => {
|
||||
const projects = await getProjects();
|
||||
return projects
|
||||
.map(
|
||||
(repo) =>
|
||||
`${repo.name} - <a class="text-light-blue dark:text-dark-blue underline" href="${repo.html_url}" target="_blank">${repo.html_url}</a>`,
|
||||
)
|
||||
.join('\n');
|
||||
};
|
||||
|
||||
export const quote = async (args: string[]): Promise<string> => {
|
||||
const data = await getQuote();
|
||||
return data.quote;
|
||||
};
|
||||
|
||||
export const readme = async (args: string[]): Promise<string> => {
|
||||
const readme = await getReadme();
|
||||
return `Opening GitHub README...\n
|
||||
${readme}`;
|
||||
};
|
||||
|
||||
export const weather = async (args: string[]): Promise<string> => {
|
||||
const city = args.join('+');
|
||||
if (!city) {
|
||||
return 'Usage: weather [city]. Example: weather casablanca';
|
||||
}
|
||||
const weather = await getWeather(city);
|
||||
return weather;
|
||||
};
|
||||
@ -1,3 +1 @@
|
||||
export * from './commands';
|
||||
export * from './api_commands';
|
||||
export { default as sumfetch } from './sumfetch';
|
||||
export * from './commands';
|
||||
@ -1,162 +0,0 @@
|
||||
{
|
||||
"default": {
|
||||
"light": {
|
||||
"background": "#FBF1C9",
|
||||
"foreground": "#3C3836",
|
||||
"yellow": "#D79921",
|
||||
"green": "#98971A",
|
||||
"gray": "#7C6F64",
|
||||
"blue": "#458588",
|
||||
"red": "#CA2124"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#2E3440",
|
||||
"foreground": "#E5E9F0",
|
||||
"yellow": "#5E81AC",
|
||||
"green": "#A3BE8C",
|
||||
"gray": "#88C0D0",
|
||||
"blue": "#EBCB8B",
|
||||
"red": "#BF616A"
|
||||
}
|
||||
},
|
||||
"gruvbox": {
|
||||
"light": {
|
||||
"background": "#FBF1C9",
|
||||
"foreground": "#3C3836",
|
||||
"yellow": "#D79921",
|
||||
"green": "#98971A",
|
||||
"gray": "#7C6F64",
|
||||
"blue": "#458588",
|
||||
"red": "#CA2124"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#1c1c1c",
|
||||
"foreground": "#EBDBB2",
|
||||
"yellow": "#D79921",
|
||||
"green": "#98971A",
|
||||
"gray": "#A89984",
|
||||
"blue": "#458588",
|
||||
"red": "#CA2124"
|
||||
}
|
||||
},
|
||||
"dracula": {
|
||||
"light": {
|
||||
"background": "#FFFFDB",
|
||||
"foreground": "#282a36",
|
||||
"yellow": "#ffb86c",
|
||||
"green": "#50fa7b",
|
||||
"gray": "#8B6BB9",
|
||||
"blue": "#67AFC0",
|
||||
"red": "#ff5555"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#282a36",
|
||||
"foreground": "#f8f8f2",
|
||||
"yellow": "#ffb86c",
|
||||
"green": "#50fa7b",
|
||||
"gray": "#bd93f9",
|
||||
"blue": "#8be9fd",
|
||||
"red": "#ff5555"
|
||||
}
|
||||
},
|
||||
"Nord": {
|
||||
"light": {
|
||||
"background": "#E5E9F0",
|
||||
"foreground": "#2E3440",
|
||||
"yellow": "#5E81AC",
|
||||
"green": "#A3BE8C",
|
||||
"gray": "#88C0D0",
|
||||
"blue": "#EBCB8B",
|
||||
"red": "#BF616A"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#2E3440",
|
||||
"foreground": "#E5E9F0",
|
||||
"yellow": "#5E81AC",
|
||||
"green": "#A3BE8C",
|
||||
"gray": "#88C0D0",
|
||||
"blue": "#EBCB8B",
|
||||
"red": "#BF616A"
|
||||
}
|
||||
},
|
||||
"Monokai": {
|
||||
"light": {
|
||||
"background": "#F8F8F2",
|
||||
"foreground": "#272822",
|
||||
"yellow": "#F4BF75",
|
||||
"green": "#A6E22E",
|
||||
"gray": "#AE81FF",
|
||||
"blue": "#66D9EF",
|
||||
"red": "#F92672"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#272822",
|
||||
"foreground": "#F8F8F2",
|
||||
"yellow": "#F4BF75",
|
||||
"green": "#A6E22E",
|
||||
"gray": "#AE81FF",
|
||||
"blue": "#66D9EF",
|
||||
"red": "#F92672"
|
||||
}
|
||||
},
|
||||
"Mocha": {
|
||||
"light": {
|
||||
"background": "#D0C8C6",
|
||||
"foreground": "#3B3228",
|
||||
"yellow": "#F4BC87",
|
||||
"green": "#BEB55B",
|
||||
"gray": "#A89BB9",
|
||||
"blue": "#8AB3B5",
|
||||
"red": "#CB6077"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#3B3228",
|
||||
"foreground": "#D0C8C6",
|
||||
"yellow": "#F4BC87",
|
||||
"green": "#BEB55B",
|
||||
"gray": "#A89BB9",
|
||||
"blue": "#8AB3B5",
|
||||
"red": "#CB6077"
|
||||
}
|
||||
},
|
||||
"Solarized": {
|
||||
"light": {
|
||||
"background": "#FDF6E3",
|
||||
"foreground": "#586E75",
|
||||
"yellow": "#B58900",
|
||||
"green": "#859900",
|
||||
"gray": "#6C71C4",
|
||||
"blue": "#268BD2",
|
||||
"red": "#DC322F"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#002B36",
|
||||
"foreground": "#93A1A1",
|
||||
"yellow": "#B58900",
|
||||
"green": "#859900",
|
||||
"gray": "#6C71C4",
|
||||
"blue": "#268BD2",
|
||||
"red": "#DC322F"
|
||||
}
|
||||
},
|
||||
"Paraiso": {
|
||||
"light": {
|
||||
"background": "#A39E9B",
|
||||
"foreground": "#2F1E2E",
|
||||
"yellow": "#FEC418",
|
||||
"green": "#48B685",
|
||||
"gray": "#815BA4",
|
||||
"blue": "#06B6EF",
|
||||
"red": "#EF6155"
|
||||
},
|
||||
"dark": {
|
||||
"background": "#2F1E2E",
|
||||
"foreground": "#A39E9B",
|
||||
"yellow": "#FEC418",
|
||||
"green": "#48B685",
|
||||
"gray": "#815BA4",
|
||||
"blue": "#06B6EF",
|
||||
"red": "#EF6155"
|
||||
}
|
||||
}
|
||||
}
|
||||