annotate src/elvish.html.luan @ 99:587399dc0e07

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 23 Jun 2025 22:40:58 -0600
parents 5d41aa24adaf
children 1fd37b122e4a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local Io = require "luan:Io.luan"
95
83d98c822c71 ai change
Franklin Schmidt <fschmidt@gmail.com>
parents: 91
diff changeset
4 local Site_translator = require "luan:ai/Site_translator.luan"
91
76baf48ea36b add translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 68
diff changeset
5 local get_lang = Site_translator.get_lang or error()
76baf48ea36b add translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 68
diff changeset
6 local text_writer = Site_translator.text_writer or error()
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local Shared = require "site:/lib/Shared.luan"
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 local head = Shared.head or error()
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 local needed_header = Shared.needed_header or error()
91
76baf48ea36b add translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 68
diff changeset
10 local luan_url = Shared.luan_url or error()
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 return function()
91
76baf48ea36b add translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 68
diff changeset
14 Io.stdout = text_writer()
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 %>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 <!doctype html>
91
76baf48ea36b add translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 68
diff changeset
17 <html lang="<%=get_lang()%>">
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 <head>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 <% head() %>
98
Franklin Schmidt <fschmidt@gmail.com>
parents: 95
diff changeset
20 <title>Reactionary Software - Elvish Shell</title>
15
9694eff797bf fix html
Franklin Schmidt <fschmidt@gmail.com>
parents: 3
diff changeset
21 </head>
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 <body>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23 <% needed_header() %>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 <div content>
98
Franklin Schmidt <fschmidt@gmail.com>
parents: 95
diff changeset
25 <h1>Elvish Shell</h1>
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26
99
Franklin Schmidt <fschmidt@gmail.com>
parents: 98
diff changeset
27 <p><a href="bash.html">Bash</a> is old and reliable, but it is far from perfect. Bash is clunky and is cryptic for writing shell scripts. Of course most modern shell languages are horrible. The only exception I found is <a href="https://elv.sh/">Elvish</a>.</p>
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28
98
Franklin Schmidt <fschmidt@gmail.com>
parents: 95
diff changeset
29 <p>Elvish has a clean design with none of the quirks of Bash. The only problem is that Elvish doesn't work. Elvish doesn't handle background processes properly as described <a href="https://github.com/elves/elvish/issues/307">here</a>. This means that if you open an Elvish shell, launch a GUI app from the command line, and later close the shell, then this kills the GUI app. That's pretty bad.</p>
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30
98
Franklin Schmidt <fschmidt@gmail.com>
parents: 95
diff changeset
31 <p>In general, no software written by modern programmers work properly. Modern programmers have no conscientiousness. They don't care about bugs and don't respond to user complaints. The background process problem was what made me give up on Elvish, but presumably there are other problems that I didn't encounter.</p>
Franklin Schmidt <fschmidt@gmail.com>
parents: 95
diff changeset
32
Franklin Schmidt <fschmidt@gmail.com>
parents: 95
diff changeset
33 <p>So why bother with Elvish? Because its design is really quite good. A conscientious reactionary programmer could fix Elvish's bugs and make a great shell.</p>
3
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 </div>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 </body>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 </html>
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 <%
a19e0f3a6203 add lucene
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 end