Skip to content

A collection of shortcodes, filters and tags that make blogging on 11ty more fun

Notifications You must be signed in to change notification settings

brob/eleventy-plugin-blog-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog Tools for 11ty

This plugin is a series of shortcodes and filters that aim to help you write and organize your blog

Install instructions

Available on npm.

npm install eleventy-plugin-blog-tools --save

Open up your Eleventy config file (probably .eleventy.js) and add the plugin:

const blogTools = require("eleventy-plugin-blog-tools");
module.exports = function(eleventyConfig) {
  eleventyConfig.addPlugin(blogTools);
};

Usage

There are multiple shortcodes and filters in this plugin. Each has its own usage.

Excerpt

This custom tag creates an excerpt from a page with front matter and/or standard markdown.

Main Usage:

    {% excerpt post %}

Where post is an instance of a markdown file being pulled in via an 11ty template engine.

The Excerpt is built from one of three options:

  1. Excerpt first looks for a singular <!-- excerpt --> tag in the markdown.
  2. Then, Excerpt looks for a pair of HTML comments in your markdown specifying a start and end point for the excerpt. <!-- excerpt start --> and <!-- excerpt end --> (capitalization not important)
  3. If no start and end specified, the Excerpt tag will then look for the excerpt property in your MD file's frontmatter.
  4. If no excerpt is found in frontmatter, the tag will pull the first paragraph of the post.

YouTube

The YouTube shortcode takes a YouTube video ID and creates the markup for a fluidly-responsive YouTube embed.

{% youtube "idstring" %}

Vimeo

The Vimeo shortcode takes a Vimeo video ID and creates the markup for a fluidly-responsive Vimeo embed.

{% vimeo "idstring" %}

CodePen

The CodePen shortcode takes multiple values to customize your embed.

{% codepen "URL", "codepen tabs string", "unitlessHeight", "theme ID" %}

{% codepen "https://codepen.io/url/path" %}
{% codepen "http://codepen.io/brob/pen/vGRBeQ/", "css,result", "900", "26704"  %}

The various options have a required order (hopefully that will change in the future):

  • url: The full URL to your pen
  • tabs: String of the tabs of your codepen to display (default: "html,result")
  • height: A unitless value of the height in pixels (default: "300")
  • theme: If you have a saved theme in your Pens, you can use them with the id of the theme (default: "");

The first argument is the only required argument and it's the Pen's full URL. In Nunjucks, they need to be comma separated, in Liquid commas are optional.

Related Filter

The related filter will pull items from a list based on parameters passed to the function.

Usage

The basic usage is to filter a collection based on an array of items and a threshold.

Syntax: {{ collections.posts | related(<sort-field-key>, <sort-field-data>, <threshold-integer Defaults to 1>, <URL-to-Exclude-optional>)}}

The threshold integer is meant to force a number of array items in common. Defaults to 1.

{% for post in collections.posts | related("sortField", sortField, 1) %}
  {{ post.data.title }}
{% endfor %}

About

A collection of shortcodes, filters and tags that make blogging on 11ty more fun

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published