06b9de0132c8653afc3c2d91cbc386c2f3967e72
lrnassar
  Tue Apr 28 12:05:20 2026 -0700
QA cleanup of /docs/ landing page and staticPage.lua writer. refs #36894

docs/index.md: fix /docs/contacts.html -> /contacts.html (was 404), correct
"Hubs Basics" -> "Hub Basics", drop stray "?" in fragment-only URLs
(/cgi-bin/hgHubConnect?#hubDeveloper etc.), convert section headings to
sentence case per GB convention, rewrite tutorial-table descriptions in a
consistent imperative voice, and replace the fragmented "Checked using our
hub development tools" bullet with "Validate your hub with our hub
development tools".

docs/staticPage.lua: extend Link() to add target="_blank" rel="noopener"
on http(s):// absolute URLs, and stop emitting empty title='' on every
link. Modernize Table() output to drop deprecated HTML4 attributes:
<col width="X%"> -> <col style="width: X%">, and align="left|right|center"
on <th>/<td> replaced with style="text-align: ..." (omitted for the default
left alignment). Renames html_align() -> html_align_style() to reflect the
new return value.

diff --git docs/index.md docs/index.md
index 40c267bd048..b5f0647fb13 100644
--- docs/index.md
+++ docs/index.md
@@ -1,50 +1,50 @@
 ---
 title: "Genome Browser Documentation"
 ---
 
 New to the Genome Browser? Start with our [Genome Browser Basics
 tutorial](/docs/tutorials/gb101.html), a 15-minute walkthrough of the
 interface, navigation, and track display. You can also browse our
 [glossary](/docs/genomeBrowserGlossary.html) to learn common terms used throughout
 this documentation.
 
-## Using the Genome Browser Interface and Tools
+## Using the Genome Browser interface and tools
 
 The Genome Browser offers a dynamic interface for visualizing genomic data on
 a variety of genome assemblies. In addition to visualization, there are several tools
 for extracting data from the current visualization.
 
 ### Tutorials
 We offer detailed step-by-step tutorials for several of our tools:
 
 | Title | Description | Link |
 | - | - | - |
-| Genome Browser Basics | Covers basics of the UCSC Genome Browser track interface | [View Tutorial](/docs/tutorials/gb101.html) |
-| Gateway Page | Learn to find genome assemblies | [View Tutorial](/docs/tutorials/gatewayTutorial.html) |
-| Table Browser | Introduces Table Browser queries | [View Tutorial](/docs/tutorials/tableBrowserTutorial.html) |
-| Custom Tracks | Upload your custom annotations | [View Tutorial](/docs/tutorials/customTrackTutorial.html) |
+| Genome Browser Basics | Learn the basics of the Genome Browser interface | [View tutorial](/docs/tutorials/gb101.html) |
+| Gateway Page | Find and switch between genome assemblies | [View tutorial](/docs/tutorials/gatewayTutorial.html) |
+| Table Browser | Query and download Genome Browser data | [View tutorial](/docs/tutorials/tableBrowserTutorial.html) |
+| Custom Tracks | Display your own annotations on the Genome Browser | [View tutorial](/docs/tutorials/customTrackTutorial.html) |
 
 Navigate to our [Tutorial index](/docs/tutorials/index.html) to see them all.
 
 ### Video tutorials
 Our [training page](/training/index.html) has short how-to videos covering common
 tasks like saving sessions, using BLAT and isPCR, finding SNPs in a gene, and
 using Multi-Region View. We also offer in-person and virtual workshops,
-[contact us](/docs/contacts.html) to host one at your institution.
+[contact us](/contacts.html) to host one at your institution.
 
-## Understanding Genome Browser Assemblies and Annotations
+## Understanding Genome Browser assemblies and annotations
 
 The Genome Browser allows for the visualization of annotations on
 a variety of genome assemblies. A genome assembly is a reconstruction of
 an organism's complete DNA sequence from shorter sequenced fragments. Different
 assemblies of the same species may exist as sequencing technology improves
 (e.g., hg19 vs. hg38 for human).
 
 - Use our [gateway page](/cgi-bin/hgGateway) to access popular assemblies or
   search for an assembly of interest. Learn more from our
   [tutorial](/docs/tutorials/gatewayTutorial.html).
 - If your assembly is not available, [request it](/assemblySearch.html).
 
 The Genome Browser displays annotations as horizontal "tracks" layered beneath
 the genome coordinate ruler. These tracks fall into several major categories:
 
@@ -59,59 +59,59 @@
 - Repeats: repetitive elements (RepeatMasker, Simple Repeats)
 - Mapping and Sequencing: assembly structure, gaps, chromosome bands
 
 Each track has its own description page (accessible by clicking the track name)
 with details on the data source, methods, and display conventions. Human and mouse
 assemblies (e.g. hg38, hg19, mm10, or mm39) will include tracks across nearly
 all of these categories. However, most assemblies may only have a basic set of
 annotations (genes, repeats, assembly mapping).
 
 Relevant FAQs:
 
 - [Gene Tracks](/FAQ/FAQgenes.html)
 - [Genome Browser Tracks](/FAQ/FAQtracks.html)
 
 
-## Visualizing Your Own Data
+## Visualizing your own data
 
 The Genome Browser allows you to visualize your own data alongside the data we host:
 
 - [Custom tracks](/cgi-bin/hgCustom)
     - See our [documentation](/goldenPath/help/customTrack.html) to learn how to load your own
-- [Track hubs](/cgi-bin/hgHubConnect?#unlistedHubs)
-    - See our [Hubs Basics](/docs/hubs/hubBasics.html) page to create your hub
-    - Checked using our [hub development tools](/cgi-bin/hgHubConnect?#hubDeveloper)
+- [Track hubs](/cgi-bin/hgHubConnect#unlistedHubs)
+    - See our [Hub Basics](/docs/hubs/hubBasics.html) page to learn how to build your own
+    - Validate your hub with our [hub development tools](/cgi-bin/hgHubConnect#hubDeveloper)
 
-For both hubs and custom tracks, we provide storage through [hub space](/cgi-bin/hgHubConnect?#hubUpload).
+For both hubs and custom tracks, we provide storage through [hub space](/cgi-bin/hgHubConnect#hubUpload).
 
-## Sharing Your Data
+## Sharing your data
 
 Once you've loaded and configured your data, you can share it with others
 through several means:
 
 - [Links](/FAQ/FAQlink.html)
 - [Sessions](/cgi-bin/hgSession)
-- [Public hubs](/cgi-bin/hgHubConnect?#publicHubs) (to contribute your own, see
+- [Public hubs](/cgi-bin/hgHubConnect#publicHubs) (to contribute your own, see
   our [guidelines](/goldenPath/help/publicHubGuidelines.html))
 - [Contributed tracks](/docs/hubs/contributedTracks.html) for GenArk assemblies
 
 Relevant FAQs:
 
 - [Data File Formats](/FAQ/FAQformat.html) - see the formats supported by the Genome Browser
 
 
-## Downloading Data from the Genome Browser
+## Downloading data from the Genome Browser
 
 Beyond data visualization, the Genome Browser offers a wide variety of ways to access
 and work with the underlying data:
 
 - The [download server](https://hgdownload.gi.ucsc.edu/downloads.html) provides
   access to the data underlying the Genome Browser,
   in addition to pairwise alignment and LiftOver chain files.
 - Our [REST API](/goldenPath/help/api.html) can be used to retrieve data in JSON format.
 - Our [public MySQL server](/goldenPath/help/mysql.html) allows command-line access to underlying data tables.
 - We provide [command-line tools](https://hgdownload.gi.ucsc.edu/downloads.html#utilities_downloads)
   for working with bigBed, bigWig, or other formats,
   and command-line versions of our tools like `liftOver` or `blat`.
 
 We also provide scripts for creating your own
 [mirror](/goldenPath/help/mirror.html) of the Genome Browser software and