Skip to content
Karl Stolley edited this page Apr 16, 2020 · 29 revisions

Ed Version Roadmap

A rough idea of where Ed is headed. Jump to current work.

1.0.3

  • Small fixes, documentation, etc. that I catch while getting up to full speed on the codebase
  • Whitespace normalization (#8)

1.1.0

  • Modernization and simplification of <head> semantics and metadata
  • Include prefix attributes for OpenGraph and Dublin Core metadata
  • <head> metadata better organized in relation to the default theme

1.2.0

  • Semantic HTML rewrite, esp. sectioning semantics (non-semantic <div> elements will remain until 3.0 version)
  • Correct idiosyncrasies/inconsistencies in templates, particularly classes (e.g., .poetry vs. .poem, .byline vs. .citation)
  • Backward-compatible adjustments to CSS only to prevent improved semantics from affecting visual presentation; nothing should look any different in 1.2.x

1.2.1

  • Improvements to README and other supporting files
  • Corrections to example Ed texts
  • Improvements to the gemspec file

1.3.0

  • Clean up CSS formatting
  • Apply more uniform comment styles and spacing
  • Improve organization of styles
  • Reduce style duplication/in-block overrides

1.4.x

  • Non-destructively remove inline JavaScript
  • Refactor JavaScript files to leverage event listeners, etc.

1.5.x

  • Revisit CSS for accessibility and touch-screen friendliness (see for e.g., this issue)
  • Improve keyboard accessibility for navigation (see this pull request)

2.0.x

Design Principles/Ideals

  • Rewrite as necessary to conform to Jekyll 4 release
  • Go all in on Gem-based theme for GitHub-friendly deployment
  • No external dependencies beyond Jekyll's own
  • All core feature customization possible through _config.yml; no need to touch layouts or assets

Repo Organization

  • Move to new jekyll-theme-ed2 repo and Gem (in keeping with the convention for naming Jekyll themes as Gems; see Themes documentation on Jekyll). A separate repo, away from minicomp/ed, is necessary to introduce the breaking changes in 2.x without messing up older sites.
  • GitHub does not appear to respect Bundler version specifiers when building remote_theme sites. So the repo is therefore jekyll-theme-ed2, in anticipation of a possible jekyll-theme-ed3

Setup & Configuration

Deployment Strategies

  • Deployment strategizes integrated or documented for different services (wikify?)
  • One-click deployment strategies? @muziejus

Demo

  • Separate demo repository; clean the demo files from the course jekyll-theme-ed2 repository (could set up on an orphan branch)
  • Improved demos (examples using, perhaps, Gutenberg versions? > script to automatically import?)

_config.yml

  • Facebook/analytics isolation
  • Move inlined content, URLs, identifiers (e.g., Alex’s Facebook stuff) as parameters into _config.yml under an ed namespace
  • Add checks across all includes and layouts for presence of any namespaces parameters

Documentation

  • Rewrite and version (1.0, 2.0) documentation to steer users away from all of the directory copying, etc. Only need to do that when overriding an include, template, etc. that’s part of the gem-based theme
  • Maintain https://minicomp.github.io/ed/ as the project page for Ed., but serve from an orphaned gh-pages branch detailing the project's current and past versions
  • Accommodate advances to the project and also versioned URLs at something like minicomp.github.io/ed/v1/, minicomp.github.io/ed/v2/

HTML

  • Structural template rewrite: semantic structuring elements only
  • Full HTML validation @muziejus
  • Fully unobtrusive CSS and JavaScript (no inlined styles; no calls to deprecated JavaScript event attributes (e.g., onclick or javascript:-prefixed href values
  • Accessibility improvements (ARIA attributes; ARIA in HTML principles) @muziejus

CSS

  • Style sheet rewrite and new look > full departure from the look and code for the Poole/Lanyon theme
  • Use of modern CSS layout modules (Grid and Flexbox, where appropriate)
  • Judicious use of SCSS (again, a core Jekyll dependency)

JavaScript

  • Vanilla JavaScript (no more third-party dependencies)
  • Third-party libraries (e.g., hypothesis) disabled by default; enabled via _config.yml

2.1.x

  • Create a separate ed-starter orphan branch that contains only _texts (using .keep), _config.yml, and Gemfile; perhaps also 404, search, etc. GitHub pages will serve from that branch.
  • Clean up the jekyll-theme-ed2 repo to remove any unnecessary content from the Gem; update the .gemspec file accordingly
  • Unclear at the moment what to do with optional directory and its contents, or the place those have in the Ed project

2.2.x

  • Progressive web app foundations
  • Caching, offline