Giter VIP home page Giter VIP logo

v5.chriskrycho.com's Introduction

v5.chriskrycho.com

The fifth iteration of my website! For details, see the launch post!

Previous versions:

  • v1.chriskrycho.com—my Blogger blog as it was from 2006–2011, originally at blog.chriskrycho.com, but I decided I wanted that domain available to redirect to whatever is my current blog site.
  • v2.chriskrycho.com—a simple site that I used as a portfolio and for some experimentation in 2011.
  • v3.chriskrycho.com—a family of WordPress sites, where I ran my various blogging from 2012–2013.
  • v4.chriskrycho.com—a statically-generated site built in Pelican, from 2014–2018.

v5.chriskrycho.com's People

Contributors

0xadada avatar abel-n avatar alonski avatar avranju avatar boussonkarel avatar chriskrycho avatar christianvuerings avatar deanmarano avatar dependabot-preview[bot] avatar dependabot[bot] avatar diminutivesloop avatar jalexakos avatar jamescdavis avatar jaredgalanis avatar jgwhite avatar joshuariojas avatar jrr avatar lin-ll avatar msilvanbc avatar tcwood avatar timoteostewart avatar tomcharles avatar tylerjdurden avatar zackthehuman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

v5.chriskrycho.com's Issues

Fix Safari layout issues

  1. Apply display: block to pre code, not .hljs.
  2. Use body > header, body > main, body > nav for selectors for grid, not body header etc.: don't want to target the body main article header on accident!
  3. Use align-content: start for body.

I think that combo will resolve the behavior I'm seeing.

But an alternative to 2–3 worth considering is: dropping grid from that section. I don't know that I'm gaining a lot from it other than layout bugs; I can do the same thing with just having a max-width container for body > main, and putting the header inside it:

 main
+-----------------------------------------+
| +-------------------------------------+ |
| |  header                             | |
| |                                     | |
| +-------------------------------------+ |
| +-------------------------------------+ |
| |  article                            | |
| |                                     | |
| |                                     | |
| |                                     | |
| |                                     | |
| |                                     | |
| |                                     | |
| |                                     | |
| |                                     | |
| +-------------------------------------+ |
+-----------------------------------------+
| nav                                     |
|                                         |
|                                         |
+-----------------------------------------+

Design and implement navigation

Nav Content

  • main sections
    • writing
    • podcasts
    • projects (?)
    • speaking
    • ?
  • about
  • subscription options (RSS, email)? Those may just belong on the new dedicated writing page?
  • colophon link (see below)
  • Patreon link?

DNS prep

  • Copy all existing DNS entries to new NS.
  • Update the DNS entries in the new NS as need be to point back to Stablehost for the sites which aren't moving ye, i.e. my archives and jaimiekrycho.com. (This may just fall out of copying the entries?)
  • Switch NS on Hover.
  • Add v4 entries.
  • Add v5 entries.

Build Feeds

  • template others can simply use as a layout
  • main/all
  • posts
  • essays
  • library
  • appearances

Also tag-based? Per series/project?

Design: link items

  • style making it obvious it's an outbound link
  • layout template others can reference trivially
  • RSS rendering (see also #26)

Social graph info

Pull in the Jinja template I made for Winning Slowly. Map it to the correct values. Simplify it by removing all the custom stuff I had there.

Improve CSS loading

  • inline the base CSS, assuming I keep it small enough; otherwise, extract critical CSS and inline that and then do the following with everything else as well
  • Copy Hack subset to local and compress it (done in fcefa22)

Distinguish between page and archive type

The current logic treats pages and archive headings the same because they’re the same basic visual and because they had the same implementation originally. They have since diverged, and the alignment treatment (esp. on small screens) for archive views is wrong for pages. Separate them.

Top-level pages: Writing

Things to integrate:

  • Posts, Essays, Notes, with RSS feeds for each and for All
  • Latest from top-level categories?
  • Publications elsewhere online
  • Newsletters

Extract feed plugin (or upstream?)

The existing plugin didn't quite do what I wanted, in part because it didn't provide any hooks for extensibility, and it didn't have any way to customize the behavior in the ways I needed. Mine may be overly specific, but it may be possible to make it extensible.

Spike: eleventy

I'm pretty unhappy with a bunch of decisions in Zola, and eleventy may do the trick. Spike it out!

Sort archives by date

Currently they're sorted alphabetically. They should be sorted by date in two ways:

  • descending, on standard archive pages
  • ascending, on topic archive pages (because this provides a way of walking through an author's thought on a subject)

Top-level pages: Contact

Do I want to have a Contact Me page, maybe using Netlify's forms or some such? The list of ways to contact me is basically only "send me an email", and I can have that on the home page, the About page, etc.

Style book review container

When post a book review, I would like a nice presentation of the book and its author and any other info I choose to include with it. Adding something like markdown-it-div makes it easy to add custom containers; adding markdown-it-attrs would let me easily style the internals as well—while mostly just writing normally.

  • Needs to set a maximum, but flexible, width and height for the image—maybe in vh so that it never overwhelms the rest of the content
  • Needs to relate the image and supporting text clearly
  • Might make sense to add a container for it that uses the styles of the other content boxes?

Rework date list to support multiple entries per day

Currently, the design assumes there is a single entry per day. For the most part with how I write and publish, that’s fine, but it gets weird when I do publish multiple items in the same section on the same day:

same date

Optimally, this would behave just the same way that the other date entries do: only showing the date once, even if it has multiple items underneath it.

same date 2

Rework publication info

Write it as a bit of text, accounting for both the updated and never-updated variants. Include “suggest an edit” inline there?

Tiny bits of JS

  • typography script from v3—solved by embedding it in the build process! See 82019a7, c65a821 and 831ad1e

  • night mode switch (#58)

  • animations for navigation??? (C.f. HydeJack.)

  • reader mode switch?

    reader mode

JSON Feed

Create a template that every sub-feed can use, and render the base feed.

Stub out theme

Lay out the templates, pulling in some of the things I have in both chriskrycho.com and winningslowly.org for e.g. social media share info.

Support thanks/credits in metadata.

It'd be nice to have a standard way to drop a "Thanks to so-and-so, so-and-so, and so-and-so for their comments on an early draft of this" in the metadata section.

Eleventy type definitions improvements for `addLayoutAlias`

Copied your eleventy.d.ts type definitions of Eleventy to a personal website that I'm slowly converting towards TypeScript. Noticed that there was a missing type signature for addLayoutAlias on the Config part of the file.

Eleventy's official documentation has more details about the layout aliasing feature.
https://www.11ty.io/docs/layouts/#layout-aliasing

Code example

This still lack proper testing, but it got me a bit more forward today while I was doing the JavaScript to TypeScript conversion. Thought to share, as it could help to get a bit wider type coverage for the system.

   /**
    * **TODO:** `addLayoutAlias` is still unfinished, not fully tested!
    * @param name string
    * @param filename string
    */
   addLayoutAlias(name: string, filename: string): string | void

Potential changelog items

  • Improve eleventy.d.ts type definitions
    • Add initial type signature to addLayoutAlias

Edit and History links

I will end up tweaking some of this later when I integrate Netlify, but for now just putting direct GitHub links in place should get the job done!

Top-level pages: About

An extended about – basically an elaboration of the home-page info, but in a way kind of like the way Craig Mod has done on his page, specifically in the Extended about (2019) section. Nice use of photography more generally I'd love to crib from as well.

Include source collection info in items

On post pages, the post meta should change:

- This entry was originally posted on December 10, 2019.
This entry was originally posted in <a href='/journal'>Journal</a> on December 10, 2019.

In feeds, the input should be something like this:

<title>{{item.data.title}} [{{item | sourceCollection}}]</title>

That would yield something like this:

<title>Red Mars [Library]</title>

Extract JSON Feed plugin

There is no existing JSON Feed plugin as far as I can tell. Mine is simple and works well, but (a) has a couple specific-to-my-site things which would need to be factored out to make it more generally useful, and (b) would need a build step since it's written in TypeScript.

Once it exists, ping the relevant folks so it can end up here.

verse markdown-it plugin

Build the equivalent of pandoc's line_blocks feature, so that this:

| poetry
|    is a thing I do
|  sometimes, anyway

Becomes this:

<pre class='verse'>
poetry
    is a thing I do
  sometimes, anyway
</pre>

Add "status" filter

  • create a filter that operates based on a status key on an item, or date of publication
    • default to 'published'
    • treat future date as not-yet-published
    • treat 'draft: true' as do-not-publish
  • exclude all non-published items from the feeds as well as from the main views on the site (honestly, I'd like them just to not end up in collection.all or any others – not sure if that's possible, though)

Top-level pages: Appearances

Multiple things go under this:

  • writing I do elsewhere online, e.g. posts at Mere O and hopefully elsewhere in the future
  • speaking, e.g. at conferences
  • other podcasts I appear on, e.g. the Corecursive ep. coming out today-as-I-write-this

Two big ideas I'd like to capture in the Speaking section:

  • Speaking I have done (in a way that scales; the current way I'm doing it on e.g. Now is not scalable over time) – maybe linking either to videos in a single case or to pages if I end up with talks I give more than once?
  • Having me come speak (contact form?)

Decrease pull quote size on smaller screens

Currently, the quote pull effect over-acts on small screens (or perhaps just on small screens with Cronos?). Make sure it doesn’t!

While working on this, use hanging-punctuation where it's available (read: Safari—because Apple is the only one who cares about this level of typographic detail)!

Top-level pages: Projects

Content to include (preferably in nice sections with nice styles for e.g. podcasts w/art):

  • Podcasts

    • Winning Slowly
    • New Rustacean
    • Sap.py
    • Mass Affection
    • Run With Me
      • rehost so it's useful!
    • Sermons & Teaching
  • Open source:

    • Typed Ember
    • True Myth
  • Newsletter

  • Talks?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.