mirror of https://github.com/Hilbis/Hilbish
Compare commits
3 Commits
72d6b0a4a0
...
246fc4d7ee
Author | SHA1 | Date |
---|---|---|
sammyette | 246fc4d7ee | |
sammyette | 91ec0cf4a4 | |
sammyette | 2a80795331 |
|
@ -1 +0,0 @@
|
||||||
hello!
|
|
2
vars.go
2
vars.go
|
@ -11,7 +11,7 @@ var (
|
||||||
|
|
||||||
// Version info
|
// Version info
|
||||||
var (
|
var (
|
||||||
ver = "v2.0.0"
|
ver = "v2.0.1"
|
||||||
releaseName = "Hibiscus"
|
releaseName = "Hibiscus"
|
||||||
gitCommit string
|
gitCommit string
|
||||||
gitBranch string
|
gitBranch string
|
||||||
|
|
|
@ -20,6 +20,16 @@ enableGitInfo = true
|
||||||
name = 'Docs'
|
name = 'Docs'
|
||||||
pageref = '/docs'
|
pageref = '/docs'
|
||||||
weight = 3
|
weight = 3
|
||||||
|
[[menu.nav]]
|
||||||
|
identifier = 'blog'
|
||||||
|
name = 'Blog'
|
||||||
|
pageref = '/blog'
|
||||||
|
weight = 4
|
||||||
|
|
||||||
[markup.goldmark.renderer]
|
[markup.goldmark.renderer]
|
||||||
unsafe = true
|
unsafe = true
|
||||||
|
|
||||||
|
[author]
|
||||||
|
[author.sammyette]
|
||||||
|
name = 'sammyette'
|
||||||
|
picture = 'https://avatars1.githubusercontent.com/u/38820196?s=460&u=b9f4efb2375bae6cb30656d790c6e0a2939327c0&v=4'
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
---
|
||||||
|
title: "Hilbish v2.0 Release"
|
||||||
|
date: 2022-12-29T01:55:21+00:00
|
||||||
|
---
|
||||||
|
|
||||||
|
Hilbish v2.0 has been released!
|
||||||
|
Well actually, it was released a week ago, but I only wrote this
|
||||||
|
Hilbish blog *after* that.
|
||||||
|
|
||||||
|
This is a **big** release, coming 9 months after the previous v1.2.0 and
|
||||||
|
featuring over 40+ bug fixes and tons of new features and enhancements, so
|
||||||
|
let's see what is in this release.
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
When querying about the problems people have with Hilbish, one of the
|
||||||
|
issues was its poor documentation. Hilbish had plain text, autogenerated
|
||||||
|
documentation which only covered the module functions (bait, hilbish,
|
||||||
|
commander, etc.) and did not include the interfaces (`hilbish.timers`,
|
||||||
|
`hilbish.jobs` and all that).
|
||||||
|
|
||||||
|
I have tried to improve this by working on documenting all the
|
||||||
|
interfaces (except for some functions of `hilbish.runner`, that's hard to do)
|
||||||
|
and made the documentation markdown for use on this website. This means
|
||||||
|
that users can look at documentation here or with the `doc` command.
|
||||||
|
|
||||||
|
Hopefully this addresses documentation complaints, and if not, please open an issue.
|
||||||
|
|
||||||
|
# Main Bug Fixes
|
||||||
|
As this is a piece of software with no unit testing that is maintained by me alone,
|
||||||
|
there is gonna be either some bug or something that I overlooked when
|
||||||
|
making a change. I make a lot of mistakes. There's also the other fact that
|
||||||
|
sometimes there's just bugs for any other reasosn. Good thing I fixed
|
||||||
|
more than 40 of those bugs in this release!
|
||||||
|
|
||||||
|
## Readline Bug Fixes
|
||||||
|
The pure Go readline library is good in some ways and bad in others.
|
||||||
|
A good portion of the bug fixes are for the readline library, and also
|
||||||
|
related to text input with east asian characters and the like (Korean, Japanese,
|
||||||
|
etc.)
|
||||||
|
|
||||||
|
A few of the fixes (and additions) include:
|
||||||
|
|
||||||
|
- Fixing various crashes, including when there is a "stray" newline at the end of text
|
||||||
|
- Grid completion menu causing spam and duplicate text when there are items longer than
|
||||||
|
the terminal and/or contain Japanese or other characters.
|
||||||
|
- Cursor positioning with CJK characters
|
||||||
|
- Adding new keybinds and fixing others
|
||||||
|
|
||||||
|
## Other fixes
|
||||||
|
There are a lot more fixes, even more than the ones listed here, but these are the main ones:
|
||||||
|
- Don't put alias expanded command in history (I've fixed this 5 times now....)
|
||||||
|
- Handle stdin being nonblocking
|
||||||
|
- Completion related fixes, like showing the full name, completing files with spaces
|
||||||
|
|
||||||
|
# Breaking changes
|
||||||
|
This release is a major version bump not only because there are tons of fixes, but because
|
||||||
|
there are breaking changes. This means that there are some changes done which would
|
||||||
|
cause errors with an old user config (breaking).
|
||||||
|
|
||||||
|
## Lua 5.4
|
||||||
|
The most important is the use of a new Lua VM library. Previously, Hilbish
|
||||||
|
used gopher-lua, which implements Lua 5.1. This has been changed to
|
||||||
|
[golua](https://github.com/arnodel/golua/), which implements Lua 5.4.
|
||||||
|
|
||||||
|
Moving from 5.1 to 5.4 does have breaking changes even if it doesn't seem like it,
|
||||||
|
and since these are different Lua implementations, there may be some differences there too.
|
||||||
|
|
||||||
|
## Userdata
|
||||||
|
Previously, objects such as jobs or timers were represented by tables.
|
||||||
|
This has been changed to userdata to make more sense.
|
||||||
|
|
||||||
|
## Other changes
|
||||||
|
Runner functions are now required to return a table.
|
||||||
|
It can (at the moment) have 4 variables:
|
||||||
|
- `input` (user input)
|
||||||
|
- `exitCode` (exit code)
|
||||||
|
- `error` (error message)
|
||||||
|
- `continue` (whether to prompt for more input)
|
||||||
|
User input has been added to the return to account for runners wanting to
|
||||||
|
prompt for continued input, and to add it properly to history. `continue`
|
||||||
|
got added so that it would be easier for runners to get continued input
|
||||||
|
without having to actually handle it at all.
|
||||||
|
|
||||||
|
The MacOS config paths now match Linux, since it makes more sense for
|
||||||
|
a program like Hilbish.
|
||||||
|
|
||||||
|
The Hilbish greeting is now an *opt*, and is printed by default.
|
||||||
|
|
||||||
|
# Feature Additions
|
||||||
|
Besides fixes and changes, this release also includes a good portion of
|
||||||
|
new features! Users can now add handlers for syntax highlighting and
|
||||||
|
inline hinting.
|
||||||
|
|
||||||
|
Some new hooks have been added, like `hilbish.cancel` and `hilbish.init`.
|
||||||
|
You can look at all the hooks via the `doc hooks` command
|
||||||
|
|
||||||
|
Job management functions have also been added. You can now put jobs in the
|
||||||
|
foreground/background and disown them via the expected commands and also
|
||||||
|
via the Lua API.
|
||||||
|
|
||||||
|
The `hilbish.timers` API interface was also added in this release!
|
||||||
|
|
||||||
|
# Closing Off
|
||||||
|
Hilbish has gone from something small and simple for myself to a slightly
|
||||||
|
advanced shell with a decent amount of features, and a few users. It
|
||||||
|
still hasn't reached levels of other alt shells in regards to literally
|
||||||
|
everything, but the goal is to get there!
|
||||||
|
|
||||||
|
If you want to check the FULL changelog, you can [do so here.](https://github.com/Rosettea/Hilbish/releases/tag/v2.0.0)
|
||||||
|
This v2.0 release marks an advancement in Hilbish (and also how long
|
||||||
|
one of my projects hasn't died) and I hope it can advance even further.
|
||||||
|
|
||||||
|
Thanks for reading, and I'll be back for the v2.1 release notes, or maybe
|
||||||
|
something else in between.
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Welcome to the Hilbish blog"
|
||||||
|
---
|
||||||
|
|
||||||
|
Hello! Welcome to the Hilbish blog. This will mainly contain release
|
||||||
|
announcements and some other things relating to Hilbish (development).
|
|
@ -2,6 +2,7 @@
|
||||||
title: Install
|
title: Install
|
||||||
description: Steps on how to install Hilbish on all the OSes and distros supported.
|
description: Steps on how to install Hilbish on all the OSes and distros supported.
|
||||||
layout: page
|
layout: page
|
||||||
|
draft: true
|
||||||
---
|
---
|
||||||
|
|
||||||
## Official Binaries
|
## Official Binaries
|
||||||
|
|
|
@ -1,4 +1 @@
|
||||||
<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if eq (substr .Destination 0 4) "http" }} target="_blank" rel="noopener"{{ end }}>
|
<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if eq (substr .Destination 0 4) "http" }} target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>
|
||||||
{{ .Text | safeHTML }}
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<main>
|
||||||
|
<div class="row row-cols-1 row-cols-md-1 g-4">
|
||||||
|
{{ range where .Site.RegularPages "Section" "in" "blog" }}
|
||||||
|
<div class="col d-flex justify-content-center">
|
||||||
|
<div class="card" style="width: 56rem;">
|
||||||
|
<div class="card-body">
|
||||||
|
<a href="{{ .Permalink }}"><h5 class="card-title">{{ .Title }}</h5></a>
|
||||||
|
<h6 class='card-subtitle text-muted mb-2'>
|
||||||
|
{{- if isset .Params "date" -}}
|
||||||
|
<time>{{ .Date.Format "January 2, 2006" }}</time>
|
||||||
|
{{- end -}}
|
||||||
|
</h6>
|
||||||
|
<p class="card-text">{{if .Description}}{{ .Description }}{{ else }}{{ .Summary }}{{ end }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{- end }}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{{ end }}
|
|
@ -2,7 +2,16 @@
|
||||||
<main>
|
<main>
|
||||||
<div class="container mt-2">
|
<div class="container mt-2">
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
{{.Content}}
|
<img src='{{ .Site.Author.sammyette.picture }}' width=48 style='border-radius: 100%'>
|
||||||
|
<em class='text-muted'>
|
||||||
|
by <strong>{{ .Site.Author.sammyette.name }}</strong>
|
||||||
|
{{- if isset .Params "date" -}}
|
||||||
|
<time> // {{ .Date.Format "January 2, 2006" }}</time>
|
||||||
|
{{- end -}}
|
||||||
|
</em>
|
||||||
|
<div class='my-4'>
|
||||||
|
{{.Content}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
Loading…
Reference in New Issue