-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Features Wishlist #1
Comments
Working list....Primary
Secondary (things we need, but can come in round two)
|
I haven't fully fleshed this out yet, but right now we're using frontmatter for the markdown files. We could ship default url-generation rules with content types and allow overriding urls per-file in the frontmatter. Requires more thought. Any insight from "how a user should use the url generation functionality" would be great here. On the same topic, We need dirty urls too. For example, I need to import my wordpress posts which all have urls associated with them that I don't want to break, so I need to be able to override them in the frontmatter.
A frontmatter attribute I would think. We'll need to provide some optional filters when querying the data and default them to "published or not specified". We'll also need a "build site with drafts" option I would think, but that can come a bit later.
This could be a killer feature if we nail it right. Between the preview photo functionality and being able to spit out Optimization is currently handled by img-loader. This allows us to optimize gifs, jpegs, pngs, and svgs with varying settings. It's important that the compression is on by default so people can drop in files that are way too big and it will "just work" efficiently. This is similar to the functionality provided by imagecache, except we have to do all of the work up front since we won't have a webserver, etc. I'd imagine that the image resizing functionality of imagecache would be provided as part of a content-type plugin. IE:
The content-type will provide hooks for filtering based on any provided attributes. For example a blogpost might end up looking like this "in the database": {
attributes: {
title: 'An Awesome Post',
category: 'haskell',
tags: ['functional-programming', 'docker'],
lastUpdated: '12/19/2015',
excerpt: 'really long...'
},
body: '<p>really long content</p>'
} The blogpost plugin should provide hooks which allow querying based on these attributes.
which would result in getting an array of data like: [{
title: 'An Awesome Post',
excerpt: 'really long...'
}, {
title: 'Another Haskell Post',
excerpt: 'this one is longer than the other, but...'
}] URL generation for pagination could be more effort than it's worth at this time, so we should skip that. Instead you could run one of the above queries, returning all possible matches, for a rollup "all posts in category" page. You should be able to do the same thing for a homepage, but the query will presumably be limited to 5 results or something similar so the homepage gets just the posts you want to render.
Default starter kits should come with an opinionated analytics implementation. This will basically just be a React component included at the bottom of the html template or similar. <GoogleAnalytics uuid='somethingsdkltu849i0hgs' />
We are using markdown-it (demo link) for markdown parsing right now; this is for our markdown-it is CommonMark compliant with a plugin system. This is how I imagine we implement shortcodes such as video. We can also use the ecosystem of markdown-it plugins to add functionality like footnotes, abbr and the ever critical emoji |
For |
Closing this since all of the infrastructure is in place. #6 currently stands for the image handling. Search indexes/implementation and RSS feeds need their own tickets. |
We want to use this for blogging. What features should we prioritize?
Killer Features
We should "launch" with it
Secondary
Image
Componentrequire
statements with query strings so the images are optimized in the loader.If we get to it
Default Content Type Features
The default content types will be
leo-markdown
andleo-blogpost
.Ping @jsouth for your list
The text was updated successfully, but these errors were encountered: