Explorations
Some things I’m thinking about and playing with.
Content
Design Pages
- Migrate the Design pages to notes
Notes
- Rename “TODO” to something like “Explorations” to deemphasize the productivity of it; add a redirect.
Ink
Commonmark
- Support wiki-style cross references (see Ink’s CommonMark Extensions: Cross-References). #high
- Support for fragment identifiers
- Note identifiers should resolve irregardless of folder hierarchy
- Support replacement text
- Drop support for path-based cross references to keep things simple #cleanup
- Update Ink’s CommonMark Extensions: Cross-References #documentation
- Support intra-document links without an identifier:
[[#header-identifier]]
- Support for definition lists (see Ink’s CommonMark Extensions: Definition Lists). #high
- Some definition list items should generate fragments for cross references
Notes
- Allow for private notes (as opposed to just private sections in a note) #high
- Maybe even private directories? This would be great for the daily folder, possibly others.
- Backlinks from private notes shouldn’t be shown
- Links to private notes should be redacted in some way
- Backlinks
- Backlinks should include some contextual content, ideally a couple of sentences.
- #question Should there be another kind of navigation layered on top of notes? An index of all notes, or tag or folder listing
Structured Content
- Ability to use the same structred content in multiple notes.
- Ability to bind stuctured data to another name in a template.
Code
- Fenced code blocks should be formatted and highlighted like other code blocks
Metadata
- Allow titles to be specified using Markdown
<h1>
syntax #high
Tags
- Allow tags to be specified using #hashtag syntax. See Ink’s CommonMark Extensions: Tags. #high
- Tags at the top level should be interpreted as page metadata tags
- Task list’s special handling for tags should use this mechanism instead
Mentions
- Support a syntax for mentioning a person:
@person
. See Ink’s CommonMark Extensions: Mentions. - Should mentions have a specific styling, possibly similar to private block placeholders?
- Mentions within tasklists should be styled like tags
Sidenotes
- What would a syntax shortcut for sidenotes look like? Ink’s CommonMark Extensions: Sidenotes #high
- Can the accessibility of sidenotes be improved?
- Margin notes are currently super awkward. Can they be improved too?
- Support images in margin notes
Citations
- Add a shortcut syntax for
<cite>
elements.
Accessibility
- Stop using
::before
and::after
for anything that should appear in plain text. - Use an audit step to warn about too-long
alt
text strings (150ish seems like a good upper bound)
Structure
- Move the page title into the main element
- (This also means that postprocess units should work on the page title)
- And consider using an
<article>
instead of a<div>
Layout
- Improve mobile and tablet reading
- Stop scaling the viewport to 80% on mobile
- Support 1024w as a multi column layout
- Rationalize the
col6
andbgrid
layouts- Prefer using
span
s overarea
s? - Consider a 12-column grid?
- Consider adjusting container widths so columns are whole integer widths?
- Prefer using
Colors
- Consider avoiding
#ffffff
and#000000
.- May need a filter in light mode to produce figures that match the background and body text.
- Run colors through the new WCAG contrast algorithm.
Figures
- Need a better way of attaching captions to images, so that I don’t have to write single line HTML for reasons. #high
- Support vector figures, and run the colors through the site’s color palette #high
- Process figures in parallel, to speed up building pages with lots of images
- #cleanup Clean up the filter system.
- Filters may apply to light mode content too.
- #cleanup Remove the video subsystem until it can be revisited?
Epigraphs and Blockquotes
- Use a
footer
element inside ablockquote
to source the quote.
Task Lists
- #question When a task links to a note, should the backlink be marked up in a special way? Or perhaps it should go the other way: tasks on Notes should be aggregated into the Todo note?
- #question Do placeholder notes generate task items automatically?
Citations and Bibliographies
- #bug Items without authors should be sorted by their title in bibliography listings
- #bug The external link icon for archive links are too small (inheriting the size of the archive URL)
- Informal citation style improvements
- Include containers
- Include notes
- #bug Why are the person and cite parser rules conflicting?
Content Warnings
- Adopt bibliographic content warning system for pages
Private Blocks
- Option to suppress the replacement notice
Math
- Consider adding
$$
as a syntax shortcut.- Need a way to differentiate inline and display contexts.
Tables
- #low Table style with tall braces around
rowspan
cells - A sans-serif style for tables that benefit from quicker reading / scanning (rather than looking nice)
Typography
- Optical margin alignment for body text.
hanging-punctuation
should not apply to code blocks. (Implementing a custom optical margin alignment scheme may be the best way forward.) #bug- Use the italic ampersand in headers
- Contextual multiplication symbol replacement
- Contextual
->
to arrow replacement #low - Contextual spacing around some punctuation like
:/[](){}
- Revisit ligatures.
- Figure out a way to move some ligatures between the different feature sets.
- Which would then open up the possibility of using quaint ligatures in headers only, and other ligatures in body text.
- Revisit figures; consider eliminating the extra letter spacing.
- Restructure how point sizes are managed
- Consider a modern modular scale, rather than a traditional printer’s scale?
- #cleanup Metrics for monospaced code blocks should be calculated from fonts instead of hardcoded
- #bug
letter-spacing
should not include an extra space after the letterspaced text. - Add additional spacing around quoted “CAPITALS” #low
- #question Consider bumping the size of side notes a point or two
- #question Is inline code disrupting the line height of text?
- #question How difficult is it to modify the kerning table for a font? Can it be scripted, e.g. like a patch? Would be nice to fix “Ja”, others.
- #question What’s the right way to improve spacing around punctuation, especially brackets, parentheses, and dashes?
- Icon font cleanup
- Build the icons font ourselves rather than using an online tool
- Adopt the new icon font across the site
- Revisit using a Japanese webfont using a different subsetting strategy
- Remove most of the Garamond ordinals that aren’t being used
- #bug #cleanup The FontProcessor should not emit package info (like the CSS file) if working only a subset of the fonts specified via command line options
- Expand the
GSUB
substitution dropping code to handle more complex substituions, allowing us to reenable Inter’scalt
table with only a couple of the rules that position symbols vertically.
Transclusions
- Consider a mechansim for transclusions. Could be useful for snippets of text included in multiple notes. See Ink’s CommonMark Extensions: Transclusions
Admonitions
- Consider a mechansism for admonition blocks. Could be used to break up a long document, providing callouts or other ways to highlight content. See Ink’s CommonMark Extensions: Admonition Blocks
Server
- Consider migrating away from Apache, since it’s all just static files with some other rules
- Run stylesheets through an optimization pass
- #question Consider pre-compressing resources with Zopfli and Brotli
- #question Does this make sense for all HTML files too? Or just e.g. CSS?
- Add
Cross-Origin-Embedder-Policy
andCross-Origin-Resource-Policy
headers
Feed
- Figure out how to handle formatted source code; should the original text be copied without all of the spans or should color styles be inlined?
- The indentation doesn’t seem to be carried over correctly either; 2ch indented lines are indented 4ch?
- Code blocks seem to have an extra newline at the end.
- Sidenote numbers should be replaced with superscript digits?
- (Should they be replaced in the main generated content as well? What do screenreaders do with superscript digits?)
- External links don’t need both the accessibility text and the external link arrow.
Cleanup
- #cleanup
PathUtilities.mkdirpSync
should be replaced with directfs
calls - #cleanup
fs.rm
should be used instead offs.rmdir
- Get rid of Moment.js and use built-in types
Recipes
- #bug Ingredients should be in an
ol
instead oful
, since there’s an implied order to the their use? - #bug Ingredients should not spread out to the height of the group when the steps are longer (may need a container element to take up space in the parent grid’s layout)
- Implements should use the
span.name
element for a consistent structure? - Make prep steps stand out more. Maybe they get some kind of label?
- Consider Barlow for subrecipe headers, to match the step numbers.
- Make subrecipe sections stand out more somehow? (background color?)
- Group recipe sections into a wrapper element to eliminate the
lastgroup
class. - Recipes should print nicely (using the grid style, probably).
- Additional kinds of content
- Images
- Recipe description
- Notes that apply to the recipe rather than a single step