Features+Todo§

Features are just todos with an       !
Unfinished/untested todos are marked with dev.
Questionable todos are marked with ???.


quilt (package-level)§


  • command-line interface
  • print progress
  • passes pylint
  • profiled and optimized
  • w3 validator
  • pass user site vars (from config.json) to page vars
  • ??? warnings for unused files css, js, maybe html
  • generate blank site

QuiltingRoom class (site-level)§


  • takes a source directory and generates a site
  • site wide configuration in config.json
  • quilts all pages in pages/ directory
  • allow unique quilt.html and patches/ in each directory
  • auto includes all resources in assets/ directory
  • css vendor prefixing
    • skip files already containing -webkit-, -moz-, -ms-, or -o-
  • minimize css
    • skip on filenames containing .min.
  • minimize js
    • skip on filenames containing .min.
  • combine to one css
    • only combine top level js/ files, js in deeper down will be included directly
  • combine to one js
  • generate blank index for empty directories
  • generate sitemap
  • build keyword search index for whole site search (e.g. with typeahead)
  • dev relative/root path handling
  • favicon image creator (with multiple sizes)
  • spell checking
    • user specific correct word list correct_words.txt
    • suggest words for errors
  • generate 404.html page if not found

Blog class (blog-level)§


  • dynamic blog abilities for pages under pages/posts/
  • reverse chronological order home page
  • category pages
  • tag pages
  • top sentences (summary ???) for post links
  • rss/atom for blog
  • folder structure is YYYY/MM/DD
  • hierarchical view from each post, tag or category page
  • pagination
  • handle, dates, title, authors
  • dev handle space in names
  • dev handle capitalization
  • add featured pages that gathers posts with featured pagevar boolean
  • ??? git based timestamps for posts

Quilter class (page-level)§


  • starts with a quilt.html file defining <patch> tags
  • replace all <patch id="x"> tags with patches/x.html files
  • allows page variables with {{***}} braces wrapping
  • dev ??? pretty or minimized html
  • page file contains json header, content (html or .md), and script
  • parse json
  • parse page
  • auto markdown for files ending in .md or .markdown
    • markdown original syntax with markdown python module
    • markdown syntax extensions:
      • markdown.extensions.extra = abbreviations, attribute lists, definitions, fenced code, footnotes, tables, smart strong
      • markdown.extensions.nl2br = newlines make <br>
      • markdown.extensions.sane_lists = new list for list type change
      • markdown.extensions.codehilite = syntax highlighting
      • markdown.extensions.wikilinks = auto wikipedia linking with [[.*]]
      • markdown.extensions.toc = auto table of contents with [toc]
      • locally defined ChecklistExtension() = checkbox in list ([x] or [ ])
      • \(\LaTeX\) support
  • copy over original markdown
  • markdown container wrapping patch
  • parse script
  • fill in blank alt and title attributes for a and img tags
  • auto remove href anchors without matching ids
  • auto remove empty tags
  • tag and category links
  • insert permalinks for headers
  • add markdown source link

This list is not exhaustive and somewhat of a scratch pad. It is also a living list, it may be updated without notice.

markdown