A bit more about the webpage itself

This commit is contained in:
Daniel Kluge 2022-11-15 15:25:42 +01:00
parent d2b5b3da34
commit 561146b81d

View File

@ -3,7 +3,7 @@
= Terminal = Terminal
Hello and welcome to my CLI website. Hello and welcome to my website. This documentation is for the https://c0ntroller.de/terminal[cli on my website] so check it out if you haven't!
== Why did I do this? == Why did I do this?
Mainly because of boredom and because I like to code. Mainly because of boredom and because I like to code.
@ -26,10 +26,15 @@ It seemed not too hard to make, as it consists of an input field and a log/histo
But I wanted more. I wanted the code to be as modular as possible, so it's easy in the future to add commands, project logs, and components. Also, I wanted some appealing features like tab completion and shortcuts. But I wanted more. I wanted the code to be as modular as possible, so it's easy in the future to add commands, project logs, and components. Also, I wanted some appealing features like tab completion and shortcuts.
But as it is hard to show a CLI to friends who don't know computer science or an employer, I decided a "normal" frontend should be added.
==== Implementing all the Stuff ==== Implementing all the Stuff
As you can imagine, it was not easy to implement all the features I had imagined. But I'm pretty confident I'm on the right track now. + As you can imagine, it was not easy to implement all the features I had imagined. But I'm pretty confident I'm on the right track now. +
The commands are all contained in one file, and one can easily add or remove them, add flags and other attributes and change the function called when the command is requested. + The commands are all contained in one file, and one can easily add or remove them, add flags and other attributes and change the function called when the command is requested. +
The project files are contained in a separate repository and folder on my server, which is just used as a Docker volume. This means they can be updated without rebuilding the entire project. The project files are contained in a separate repository and folder on my server, which is just used as a Docker volume. This means they can be updated without rebuilding the entire project.
After the CLI website was done, it was my main homepage for a few months.
Then that I created the "normal" part which basically is a blog and my portfolio.
==== Autodeployment ==== Autodeployment
I like automatization, so I use a CI/CD pipeline. I like automatization, so I use a CI/CD pipeline.
@ -49,7 +54,7 @@ One day I have a good thought (At least I _think_ it's good...) and add an issue
[.line-through]#Probably I should start by adding a https://json-schema.org/[JSON schema] for the project list.# Thats done! [.line-through]#Probably I should start by adding a https://json-schema.org/[JSON schema] for the project list.# Thats done!
== Shortcuts == CLI Shortcuts
I talked about shortcuts before, but here's a list of which shortcuts are possible: I talked about shortcuts before, but here's a list of which shortcuts are possible:
[cols="1,4"] [cols="1,4"]
@ -79,10 +84,11 @@ kbd:[Ctrl+C]
|=== |===
== Some Stuff I'm Proud of == Some Stuff I'm Proud of
- Every line in the history window is parsed in a custom format. - Every line in the cli history window is parsed in a custom format.
* `%{command}` is parsed to a clickable command * `%{command}` is parsed to a clickable command
* `#{link text|url}` is parsed to a link * `#{link text|url}` is parsed to a link
- Project logs are loaded dynamically. They can be updated at any time. - Project logs are loaded dynamically. They can be updated at any time.
* But they are rendered in the backend. For the main site no JS is necessary!
- There are lots of eastereggs. Some are for specific people, some for me and some for fun. - There are lots of eastereggs. Some are for specific people, some for me and some for fun.
- I made some custom annotations for code blocks show faulty code (wrong syntax/will not compile/etc.). - I made some custom annotations for code blocks show faulty code (wrong syntax/will not compile/etc.).