* Site improvements (#4049)
- Add missing ARIA annotations on the See Also entry in the right-hand TOC
- Add missing ARIA annotations on the FAQ pages, and switch from a UL to an OL
list for the questions in order to get rid of the bullets.
(cherry picked from commit 469667b184)
* Site improvements
- Fix highlighting of TOC entries in the Chinese version of the site.
I wasn't doing the right escaping to deal with UTF-8 chars.
(cherry picked from commit f124e190de)
- Substantially simplify logic that deals with releases & release notes.
- Make it easier to add a new release to the site. THere are fewer things to
change as the site infra can figure more stuff out on its own.
- Make it so release notes can be added in one language without require them
to be added in the other language.
- Replace the ugly "a new version is available" callout on older release note
pages with a popup that only shows up when you click on the download button.
(cherry picked from commit d458423cf4)
- Fix multi-line snippets when loading a text block from a URL.
- Fix outputis for text blocks loaded from a URL
- Fix @@ expansion for text blocks loaded from a URL.
- Added more text block test cases
- Added the text_hack shortcode to embed text blocks in a tabset in a list. This fixes the
indenting problem in that case. It's a hack, thus the name, but it works.
- Added a download button in the footer of each page.
- Tweaked the rendering of the horizontal lines in the panels on the home page to
improve appearance and avoid occasional funny rendering.
- Run the SVG optimizer on the site content to reduce the size of a few newly added/updated
files.
- Port all the JavaScript to TypeScript. Finally, a typed language to
eliminate a whole class of avoidable errors. This ends up being a line-
by-line affair, mostly about adding type information on functions and
some function calls. This also involved adding quite a few null checks
(since TypeScript tracks nullness). This results in the code being
inherently more robust in the face of somehow malformed HTML which
doesn't contain what the script code is expecting to find.
- Ditch the recently added JSHint linter in favor of tslint.
This undoes the previous fix for bad indent in text blocks in lists in tabs.
Therefore, thst bug has returned. However, the much more serious bug around
all other text boxes is gone.
I've spent many hours banging my head around some of Hugo's behaviors and have
bottomed out at two different Hugo bugs for which I haven't found a clean
workaround.
My next step is to implement a specialized version of the {{< text >}} sequence
designed specifically for the case of "text block in a list in a tab". This will
let me do custom stuff to work around the Hugo bug.
- Implement missing keyboard support in the sidebar.
- Fix keyboard logic in tabs, preventing the strip from being
navigated into.
- Fix keyboard navigation to the print/download/copy buttons in text blocks.
When using the keyboard, those buttons didn't become visible.
- Use common code for menu, tabset, and sidebar navigation logic.
- Fix menu width to use font-size scaling instead of a fixed pixel with.
Also made the menu a bit wider to avoid unsightly wrapping in the menu.
- Set a minimum width for text boxes in order to avoid the print/download/copy
buttons from rendering poorly.
- HTML tags appearing in bash text block output weren't being escaped properly, making them
disappear.
- Never call prism when syntax coloring is turned off, otherwise things
fail with an exception.
- Add tests for the various text block features.
- Combine text_file and text_dynamic into text_import
- Add support for snippet extraction for text downloaded from a URL
- Add support for formatting output blocks in a different style for
content downloaded from a URL
- Report some errors when unable to fetch content from a URL.
- Fixed a few small bugs along the way.
- Added call-to-action buttons in the 1.1 announcements. We can use the same
buttons in future release announcements.
- Fixed broken large warning icon on the 404 error page.
- Fix oerder of blog posts in the side bar.
- Add support to not expand @@ notations in text blocks and use
it for a text blocks that's currently triggering a build failure
- Fixed broken rendering of some text blocks when syntax coloring
is turned off via the menu.
- Increase the constrast for links, per LightHouse analysis.
- Add support for disabling syntax coloring in example text blocks. This
can be controlled from the menu.
- Work on keyboard navigation support. It's not totally done yet,
but its a lot better than it's ever been.
- Fix incorrect font use for code blocks. They were coming out way
smaller than intended.
- Improve the HTML in a variety of ways to make it better for
screen readers.
- Make better use of html semantic elements to help
search & screen readers.
- Add or improve ARIA annotations for accessibility
- Improve print-time formatting.
- Now that the scripts are loaded with 'defer', no need to trigger all
behavior via a DOMContentLoaded event handler as the scripts will all
naturally run after the DOM has been loaded.
- Use a considerably simpler approach to copy to the clipboard in code
blocks. This saves around 10K of script code believe it or not.
This removes two very large dependencies which ends up making
each page load considerably faster, especially on mobile. Plus,
not using bootstrap actually made several things simpler throughout
the site's logic.
- Refactor script code into smaller more manageable files.
- Use consistent naming style in script code.
- Stop using Bootstrap's dropdowns and popovers in favor of custom implementation.
There are only a few uses of Bootstrap to purge before I can ditch
the dependency on the Bootstrap & JQuery libraries, which will speed
up page loads.
- Find a few more static strings that should come from the xlation
dictionary instead.
When you select a different version of the site from the gear menu,
we now try to put you on the same page in the other version if that
page exists. If the same page can't be found, then you land at the
root of the other site, like you did before.
- Upgrade from UglifyJS to Babel as a JS preprocessor. This lets me use modern ES6 syntax
in the JS code.
- Update JS code to leverage ES6.
- Remove most dependencies on JQuery for faster & smaller code. Once I remove the
dependency on the Bootstrap library, then the dependency on JQuery will also completely
go away.