- Mention them in notes of the metacharacters section (originally proposed in
#1781 by @marco-m).
- Add a new subsection for qualified names.
- Add examples of the correspondance between command foo and variable $foo~.
- Homepage revamp:
- Rewrite the homepage in a linear format of sections, with every other
section styled with full-width gray background.
- The first section is a short intro, with big buttons for "download" and
"learn".
- Create a new "case studies" page to house the explainers for the examples.
- Site-wide styles:
- Restyle code blocks and ttyshots, using a more subtle gray border box
instead of gray background.
- Support headers for code blocks and ttyshots, in a style that vaguely
resembles title bars of desktop windows. In Markdown sources, additional
content after the language tag becomes the header.
- Reorganize the global stylesheet and template, including using 2 spaces for
indentation and putting dark mode color rules next to the light mode rules.
- Change debug hotkey to toggle dark mode to Shift-D.
- Ttyshots:
- Handle trailing spaces in more places in the ttyshot tool - there seems to
be more of them in the latest tmux version.
- Base the ttyshot tool's parser on pkg/transcript.
- Support per-ttyshot cols and rows.
- Rename x.elvts and x.ttyshot.html to x-ttyshot.elvts and x-ttyshot.html.
- Change the syntax from "@ttyshot filename" to code block with a special
"ttyshot" language tag to work better with the header syntax.
This construct is only used in two places - grouping numerical comparison
commands together and grouping string comparison commands together. However,
grouping them together makes it impossible to look up their individual elvdocs,
for example using "doc:show '<'", so abandon this half-baked grouping mechanism.
In future a more general mechanism to group symbols together may be introduced.
Document != and !=s as if they only take two arguments, addressing #1767. The
actual change will be done in a separate commit.
The primary purpose of this change is to fix a broken link to the
readline binding source. A secondary purpose is a baby step to
addressing issue #1719.
Related #1719
This syntax has been documented to have an implicit destination of
builtin.html#foo, but it never worked correctly outside builtin.html itself.
Also do some minor cleanups of the package, including removing bogus package
godocs that were inherited from the previous version where the components were
separate programs.
While working on an unrelated change I noticed that `make all-checks`
found a typo. I was using codespell 2.2.5 so this also upodates the
.github/workflows/ci.yml file to depend on that release since doing so
does not introduce any false positives.
Most of the symbols moved originate from Go's os package. However,
eval-symlink, which is provided by Go's path/filepath package, is also moved to
the os: module since it requires actual filesystem access. The idea is that
Elvish's path: will only provide functionalities for lexically manipulating
file paths without referencing the actual filesystem, akin to Python's
pathlib.PurePath.
The old symbols in path: are not formally deprecated since the compiler can't
statically check symbols in modules yet.
Now that pipe is a structmap and structmaps are considered indistinguishable to
normal maps, IO redirection should support arbitrary maps too.
Update the relevant section in the language spec and rewrite it a bit.
Struct map is a mechanism to let Go code expose simple structs to Elvish code.
The difference between struct maps and maps is convenience for Go code; they
also have different performance characteristics, but since struct maps are
always quite small, the difference is not meaningful for Elvish's use cases.
As a result, there is no good reason that Elvish code needs to be aware of the
difference between struct maps and normal maps. Making them indistinguishable to
Elvish code simplifies the language.
This commit does the following:
- Change Equal, Hash, Kind and Repr to treat struct maps like maps.
- Change Assoc and Dissoc to "promote" struct maps to maps.
- Remove the custom Repr method of parse.Source.
- Update documentation to reflect this change.
This is to prepare for a stylesheet overhaul that will reduce the width of the
body text.
Also change home/pipelines.elvts to use XKCD instead, which is a bit more
interesting than GitHub and makes for a shorter URL.
When encountering files that can't be lstat'ed, simply ignore them instead of
terminating the entire globbing process. This is consistent with how directories
that can't be read are already silently ignored.
This fixes#1674.
For example, [`put`]() links to the elvdoc for "put".
Also remove the @cf macro now that implicit targets make it easier to link to
other elvdoc sections.
We are no longer using Pandoc, so this limitation can be lifted.
Also make @cf generate internal links where applicable in non-builtin modules:
"@cf mod:fn" in the doc of "mod" now links to just "#mod:fn" instead of
"mod.html#mod:fn".