- We haven't been checking external links for months now due to a script error
when someone added an option that didn't work as expected. I'm fixing a bunch
of resulting broken links. I can't turn on the link checker yet since there are
some bad links in reference docs which I have to address first.
- Add a bunch of links to yaml files in our code examples using the @@ syntax.
- 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.
- Reshuffle the floating icons to put the most common thing on top
- In the sidebar, if a card has only top-level items (no subsections)
then move the text to the left to soak up the unused room normally
reserved for the chevron. This improves the look for blog-related cards
- Put a wee bit more spacing between the links in the header on mobile
to make 'em easier to hit with fat fingers.
- Add linter support to detect internal links to aliases. Those are now flagged as
bad links so the source needs to be updated to point to the real destination,
avoiding the user a redirect.
- Fixed occurences of links to aliases.
- Now only load popper.js on pages that use popups in order to improve
load times.
- 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.
- We now display an "Edit this Page" and a "Report Bugs" button on every page
when rendering the preliminary mode site.
- Optimized the SVG imagery for smaller size and thus faster download & parsing.
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.
- Fix ordering of the new "Older Notes" entry in the release notes
area to ensure it is always last.
- Fix layout issue with narrow widths clipping a few characters off the left
edge of the page.
- Remove offending href syntax leading to bogus complaints from htmlproofer.
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.
- Switch from the Bootstrap grid system to the CSS grid. Much cleaner and faster.
- Add "See also" and "Links" to the list of translation strings
- Prevent the breadcrumb line from being included in the link endnotes when printing a page.
- Cleanup/rename several of the CSS and layout files for clarity.
- Switch the community page from using clumsy tables to a much cleaner approach
with shortcodes.
- Don't show buttons in the link endnotes when printing a page.
- Don't render the link endnotes section at all if the page has no links to include
- You can now mark a word as being a glossary term. This will trigger special rendering inviting the
user to click on the item in order to get a popup window showing the glossary text for the term. This
is very nice when introducing a new term within a page.
- Updated our dependency on Bootstrap and ClipboardJS to the latest versions.
- The width value now defaults to 100%, so it doesn't need to be specified explicitly
in many cases.
- The ratio value can now be computed automatically for PNG and JPG files, so it doesn't need
to be specified explicitly.
- Address rendering issue with text blocks nested in a tab that use
the magic @@ linking sequence.
- Made it so when selecting a tab in a particular tab set, other tabset
sharing the same cookie name on the current page will also switch to their
corresponding tab.
- The release note index page is now rendered as a simple list rather than the normal gallery mode.
- Fix use of toc: front-matter, which should be skip_toc instead.
- Readds the language selection menu choices.
- Enable default language choice based on browser setting. This is used before the menu
forces a particular choice.
- Auto-generate tables of template->adapters and adapter->templates
- Make the "Edit this page on GitHub" menu option track the branch correctly instead of always pointing to master.
- Update the reference docs.
Partner components (adapters not controlled by the Istio org) are now
called out as such on their page. Component authors have a chance to put
all sorts of info about their component to make it easy for customers
to find and use their component.
* Site improvements.
- For SVG images, authors no longer need to specify image ratios
(which is a constant source of errors)
- Move more icons into the new icons.svg file to further reduce
average page load times.
- Rationalize Istio logo file names.
- Improve underlining behavior for sidebar headers and the RSS feed
Subscribe link.
- Made the RSS feed subscribe link open in a new tab.
- Increase the constract ratio for some elements in dark mode
text blocks (namely, YAML field names)
- Reduce the "brightness" of the light bulb icon which helps it
not pop so much in dark mode.
- Optimize the fonts we load and the order we load them in so as to improve page load time and
reduce the initial render time.
* Sadly, embedding SVGs into the HTML results in duplicate element ids, which is invalid HTML :-(
- Use a new approach to managing icons. This has two primary benefits:
- It makes it possible to color the icons such that they look good in the
dark theme. Previously, the icons were rendered in black on dark grey when
using the dark theme.
- The average payload size for our web pages is reduced and we better use the
browser cache.
- The new icon approach makes it possible to remove our dependency on the fontawesome
package, which further slims down our payload requirement
- Refresh our iconography for a slightly lighter look.
- Remove the extra thick left-hand border of text blocks to lighten the
look.
- Added a "NN minutes to read" indication on top of each page. This is
only displayed if the count is > 1 minute.
- Added a calendar icon next to the blog post date.
- Exposed a bunch of strings that were buried in CSS/JS to translation.
- Add the 'keywords:' front-matter fields to the Hugo archetypes.
- When displaying a "Changes" button, we now display a diff from the previous patch to the current
patch, instead of a diff from the base release to the current patch.
- Properly localize the release note buttons so these can be translated.
- Move some strings from the footer to the translation table so they can be translated.
- Use a custom search engine for the preliminary site, so the preliminary site can actually be searched.
- Improve a few shortcodes to improve how they work when nested in tabs.
- Move a few constants out of the layouts and into args.yml for cleanliness.
- Change how the RSS feed is generated in order to avoid a crashing bug in Hugo when
used in server mode.
- Prevent the OWNERS file from leaking into the generated site.
- Remove the release-specific wording on the main release note page and on the docs page. This
ends up being hard to keep correct and not really useful.
- Add a full_version variable in args.yml which contains the 3 part release version
such as 1.0.1. When we release a new patch, we need to update this number in the current
release branch.
- Apply the full_version variable to the download button on the home page. It will now say "DOWNLOAD 1.0.1".
- Correct the use of OpenGraph annotations. I used the wrong attribute name, so the
annotations were never recognized.
- Added support for Twitter cards to our site, improving the experience of referencing
the site from Twitter posts.
- Added support for the twitter: front matter field for use in blog posts. Specifying this
front-matter entry will show the author's twitter address on the blog post, and will
add a Twitter card entry to the page noting the author's address.
- Renamed the page_icon front matter field to just icon to be consistent with other
entries.
- Made it so the subtitle front matter field can be used anywhere, not just on blog posts.
- Added a lint check to ensure subtitles don't end with a period.
- We now insert an "author" metadata entry whenever the attribution: front matter
field is used.
Currently, only the short description of each post is included in the RSS feed. This change will update the feed to include the whole text of each blog post.
Hugo is unable to report accurate GitHub information for a certain
percentage of our files. Instead of displayed a last mod time of
"January 1, 0001" we omit display a last modification date at all.
https://github.com/gohugoio/hugo/issues/5054
- We now detect text blocks that are incorrectly indented.
- We now detect image captions that end in a period.
- We now detect page descriptions that don't end in a period.
- CircleCi now runs linting without minifying HTML first, improving perf and
improving error output.
- In CircleCi, we now have a per-build cache for HTML proofer output. This
helps reduce the frequency of link timeout errors.
- Fix errors flagged by the above new lint checks.
- Increase the size of the Copy button in preformatted blocks to make it stand out since it is the
most common used button.
- Shift the copy/download/print buttons in PRE blocks towards the left so they don't overlap the
scroll bar in large text blocks.
- Switch to new fonts.
- Instead of underlining <H2> headers, we now draw a blue bar above them.
- Add an "up level" button at the top of pages.
- Streamline the appearance of the next/previous page links at the bottom of most pages.
- Remove the right pointing arrows from index pages and see also sections. They were just
confusing.
- Add icons to the main pages.
- Slightly change the layout of the glossary page, more to come here.
- Prevent See Also sections from showing up on index pages.
- Clean up and simplify some JavaScript & CSS.
- Set a height for the idea and warning icons in order to prevent
screen flicker when loading pages with these icons.
- If an explicit downloadas filename is not supplied in markdown, it is
now derived from the document title, with a proper extension based on the
content syntax.
- Made things work correctly for PRE blocks introduced with normal markdown
``` instead of our magic {{< text >}} sequences.
- Add <github_file> <github_blob> and <github_tree> to make it simpler to link to the right
place on GitHub.
- Use these new sequences throughout the docs.
- Also, fix bad HTML generated for the TOC in certain cirsumstances.
- Fix extra blank line inserted at the bottom of indented code blocks.
- Workaround the fact some of the styles for code blocks were being overriden by
Bootstrap.
- Align table indent and code indent so things look nicer.
- Fix missing "sidebar button" when on mobile in the help and about sections. I forgot to set a
variable to trigger the thing to be present in those cases.
- Improve footer layout for mobile.
- Get a nicer looking light bulb icon.
- Add the {{< text >}} shortcode as a way to declare code blocks. This shortcode
is intended to hide the subtleties around code blocks. More specifically, it
provides a transparent workaround for the Hugo bug around converting indented
code blocks with lines starting with dashes. It also deals with the special
formatting case we have around command-lines that start with `cat <<EOF`.
- Rename the {{< file_content >}} shortcode to {{< text_file >}} and the
{{< fetch_content >}} shortcode to {{< text_dynamic >}} for consistency in naming.
- You can now use {{< file_content >}} to pull in files from the doc repo
into generated documentation. If you include the `snippet` attribute, you can
pull in only pieces of the file instead. This makes it possible to annotate
scripts and yaml files and extract those annotated bits and pieces into the
docs. This should let us have fully tested examples which are then incorporated
into the docs
- The previous {{< file_content >}} feature that lets you dynamically pull
content from a URL has been renamed to {{< fetch_content >}} instead.
- List items in reverse order of publication
- Fix the publication date format to match what the RSS spec says.
- Include <category> elements for each post, derived from any keywords specified in the post front-matter.
- Make "See also" show up in the TOC.
- When inlining the TOC at the top of a page, surround it with a pair of <hr> tags to get a line on the screen
- Fix rendering bug with TOC when specific characters showed up in section titles.
- Fix extra indent in the TOC in certain cases.
- Rename "See Also" to "See also" to follow our naming guidelines.
- Make "make serve" actually work.
- Eliminate superfluous "scroll left nav into view" button on screens that don't have a sidebar
(community & search result). Only matters on mobile.
- Fix unpleasant wrapping in the footer when on mobile.
- Move common stuff for the landing page and search page from the content to the
layout such that the stuff only exists once instead of being cut & pasted into
each translation.
- Fixed the Chinese search page so it works and displays correctly.
- Correctly set the "lang" attribute on the <html> element to
reflect the correct language instead of being hardcoded to "en".
- We now automatically generate a See Also section on pages when possible.
The links are determined by a reverse index based on the keywords
assigned to each page in its front-matter.
- Do a pass to assign keywords to all our pages to populate the See Also
links.
- Leverage the keywords in the front-matter to generate a keyword metadata entry for each
generated page.
- Within a code block, you can now surround a relative file path with @@. This will
cause the path to be rendered as a link to raw.githubusercontent.com/istio/istio/<path>.
This lets the user click on the link to see the content of the file, which is mighty
handy.
- Updated all code blocks to take advantage of the above.
- Introduce support for {{< branch_name >}} which returns the source code branch
name associated with the current doc site.
- Use {{< branch_name >}} in all our references to content in istio/istio on GitHub. This thus
pins our references to the correct version of the content in GitHub. This prevents errors from
gradually appearing in our doc set as content in GitHub starts to diverge from the expectation
in the site content.
I didn't realize the Hugo's TOC support features only work for markdown files.
Since our reference pages are HTML, none of these were getting TOCs. I now roll
my own TOC functionality in that case, to bring up back TOCs for our reference
pages.
* Experiment with page bundles to fix image location issues.
(cherry picked from commit 6da31e2)
* Turn image URls into absolute references so they work consistently with page URLS with or without a trailing /
(cherry picked from commit da42e92)
* Add FAQ section regarding naming port convention (#1393)
(cherry picked from commit 1811057)
* Another experiment for image links.
(cherry picked from commit 61a4a6a)
* Fix the table format in expression-language.md (#1396)
Add `|` to make the table correct and use `\` to escape the `|` character inside the table. Not sure if this is the right way to fix but the preview page looks good.
(cherry picked from commit e45ae98)
* Really fix formatting of expression table.
(cherry picked from commit abb4b52)
* Add svc to the spelling table.
(cherry picked from commit 525c626)
- The privacy link in the footer is now actually visible and uses the same coloring as the rest of the
text in the footer.
- The gear menu in the top right now actually looks like a real menu instead of a panel of links. Highlights behave as expected and
visuals are cleaner.
- The :before hack to cause proper scrolling in the face of our header is now more selective. It's only applied to
header items instead of all items that have an id attribute. This is more surgical in nature and avoids
potential issues such as was worked around by a counter-hack for tables. The counter hack is no longer
needed.
- Don't show the Edit This Pages on GitHub menu items for pages that are generated outside of the main doc process
(reference pages mainly). This won't kick in until I regenerate the reference docs, at which point they'll
gain the 'generated' front-matter entry, which will trigger the removal of the menu item.
- Apply a number of script improvements suggested by my editor.
- Remove some leftover toc:false front matter from a few pages. The site now generally
figures out automatically that a TOC is not necessary.
- Enable a Hugo feature that queries Git for a last modified date on files. As a result,
instead of having the site build date in the footer, we now have a "this page was last modified"
date.
- Move the landing page's content out of the layouts directory and into the content directory
where it belongs.
- Use Hugo shortcodes for our embedded icon imagery. And make those icons scale with the
font size rather than being fixed sizes.
- Enable support for emojis in our content. Just use ⛵
and you'll get a sailboat for example.