Arect和他的……
Arect Shell

记得很久之前看到了一个网站,是我的博客主题的制作者的个人网站。类似于Linux的终端。当时的我刚刚进入大学学习了C语言,对这些和编程有关的事情非常感兴趣。于是扒下了源码(作者默认允许),对着屏幕看了十分钟:完完全全看不懂。当时对于这个网页究竟是怎么实现的、怎么运作的真的是一窍不通。抱着一丝丝遗憾与羡慕落荒而逃,甚至连部署都不会。

之前在翻历史看看大佬有没有更新的时候翻出了大佬以前的文章:

于是又想起了这件事,看了看文章和评论区,感觉自己又行了,于是新建了一个文件夹。不得不说真的难写,因为我其实对HTML、CSS、JavaScript都不怎么懂,心想如果能用JavaScript Page或者Go就好了,全部靠代码拼凑结果。但是我的垃圾服务器要配置这些实在太麻烦了,于是还是仿照大佬用JavaScript吧。

磨磨唧唧画出了介绍和版本号,然后马上就卡死了,如何像真正的终端一样输入命令呢?在写普通的程序的时候丝毫不用考虑这些东西因为命令行窗口就是这样的。而HTML要输入东西需要input标签,标签的样式、自动伸长、首行缩进等等等让我头疼了一晚上,因为我真的不懂嘛。使劲F12大佬的页面也看不出什么。后来才发现HTML的一个属性允许区块可编辑,关闭单词自动换行,这前端才算及格了。

接下来要保存每条命令和结果并插入到输入框上方,获取并清除输入框内容等,个个都让我头大,在网上搜了好久JavaScript的资料挣扎了好久,最终决定交给Vue。Vue非常强大,帮了我不少忙QAQ。将我的工作缩减至储存历史就够了。

但是这个时候又吃了没学问的亏,关于文件结构的设计,由于人傻智商低,用两个一维数组来储存绝对路径和文件名,结构越往后越头疼,ls命令姑且写出来了但是cd几乎要吐血。这个时候我的代码好像已经上传到Github了。就在我扔掉电脑的前一分钟,我终于搜到了原来JavaScript可以储存对象数组,直接就实现了树状结构,比各种语言的直观多了,我仿佛见到了救世主。

于是推到了之前的代码(当然HTML不是代码我也没改),开始用新数据结构重写,当然也遇到了很多麻烦,用了很多特别傻的if else判断,再加上网上代码无脑复制,所以显得很笨很笨。

目前只写了ls、cd、clear、shutdown,求star:

INSPI

文章作者

保持学者的沉默与谦恭

发表评论

textsms
account_circle
email

Arect和他的……

Arect Shell
记得很久之前看到了一个网站,是我的博客主题的制作者的个人网站。类似于Linux的终端。当时的我刚刚进入大学学习了C语言,对这些和编程有关的事情非常感兴趣。于是扒下了源码(作者默认允…
扫描二维码继续阅读
2020-10-23