Skip to content

Lyrics/lyrics-website-generator

Repository files navigation

Open Lyrics Database website generator

Suite capable of building static HTML website out of Open Lyrics Database.

How to run in development mode (requires Docker or Podman):

make all

How to run in production mode:

sudo apt-get install python3-setuptools sassc
make INSTALL_DEPENDENCIES
make BUILD
make SERVE

Checklist

General

  • all pages should render and be accessible without JavaScript (Unobtrusive JS)
  • should be possible to switch between light and dark color schemes using a global color mode toggle switch that retains state between pages
  • 404 page should redirect to search with a query constructed out of the requested URL's path
  • there should be extra margin at the bottom of each page to let the user center the content without having to move their eyes down when fully scrolled
  • the website should contain no remote assets (such as web fonts or script files)
  • web browser reader mode should correctly work on all pages
  • pages with breadcrumbs should use breadcrumb schema
  • every page passes W3M HTML5 test
  • every page passes W3M CSS3 test
  • website should never have full-page horizontal scroll

Accessibility

  • light and dark color modes should be available and support prefers-color-scheme CSS media query
  • AAA contrasts
  • should be possible to navigate through the website using only keyboard
  • should be possible to fully use the website via text-based browsers (e.g. w3m, lynx)

Mobile

  • it should be possible to navigate the website and read lyrics using tablet or smartphone
  • while on mobile, all clickable items should be at least 40px wide/tall

Lyrics page

  • lyrics sheet should preserve newline characters, but wrap onto the next line if wider than the viewport (to avoid having a horizontal scroll bar)
  • lyrics sheet should have visible but very light full-width horizontal separators between lines (to make lyrics readable when wrapped)
  • when copied, lyrics text should retain the same amount newlines when pasted into a plaintext environment as seen in the browser

Search

  • search should return list of recordings found using GitHub search API

SEO

  • must have a valid sitemap.xml file that contains all website URLs

Credits

Favicon design by @defanor