npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

eleventy-plugin-future-post

v0.0.2

Published

Hides all posts with a future date (from build date)

Downloads

4

Readme

Eleventy Plugin Future Post

An Eleventy Plugin that allows you to set a future publishing date for one or more posts and not generate (publish) them until you build the site after the selected date.

The Eleventy Base Blog project has a drafts feather that allows you to work on a post within an Eleventy project without publishing it. You essentially assign a draft state to the post and Eleventy doesn't publish it during the build process until you remove the draft state.

For my use case, I wanted something different, I didn't want to manage the state of the document, I wanted the document to publish based on metadata in the post (the post date property). The Joomla CMS has this feature, you simply set the publish date and time in the post and it miraculously appears at the selected date and time. WordPress allows you to do both, set a published state and a date to publish it.

To accomplish this, I created this plugin; you can read more about it in Hiding Future Posts in Eleventy.

Processing Scope

The plugin processes all the files in an Eleventy site (Home, About, etc.); I could have added code to ignore them, but as long as those pages don't have a date front matter property since none of those pages should have a future save date, the plugin will automatically publish them (they won't be ignored during the Eleventy site build process).

Installation

To install the plugin, open a terminal window or command prompt to an Eleventy project and execute the following command:

npm install eleventy-plugin-future-post

At the top of the project's eleventy.config.js file, add the following line:

const futurePost = require('eleventy-plugin-future-post');

Inside the module.exports section of the file, load the plugin as shown in the following example:

module.exports = eleventyConfig => {

  // stuff

  eleventyConfig.addPlugin(futurePost);  

  // other stuff
  
};

You can also configure the plugin to send a bunch of extra data to the console as it executes by enabling debugMode:

eleventyConfig.addPlugin(futurePost, { debugMode: true });

With that in place, console output looks something like the following:

[Eleventy-Plugin-Future-Post] Debug mode enabled
[Eleventy-Plugin-Future-Post] Current Date: Wed Jan 10 2024 20:38:07 GMT-0500 (Eastern Standard Time), Offset: 18000000
[Eleventy-Plugin-Future-Post] Blunderer Molasses Deviant: Date: Thu Jan 11 2024 00:00:00 GMT-0500 (Eastern Standard Time)
[Eleventy-Plugin-Future-Post] Clause Ecosystem Deluxe: Date: Wed Jan 31 2024 00:00:00 GMT-0500 (Eastern Standard Time)
[Eleventy-Plugin-Future-Post] Coeditor Recess Senior Bonanza: Date: Wed Jan 10 2024 00:00:00 GMT-0500 (Eastern Standard Time)
[Eleventy-Plugin-Future-Post] Modified Crayfish Ending: Date: Sun Dec 03 2023 00:00:00 GMT-0500 (Eastern Standard Time)
[Eleventy-Plugin-Future-Post] Placate Reacquire: Date: Tue Nov 14 2023 00:00:00 GMT-0500 (Eastern Standard Time)
[Eleventy-Plugin-Future-Post] Home: Date: Mon Jan 08 2024 03:12:08 GMT-0500 (Eastern Standard Time)

For some reason, and I haven't spent any time looking into this, each post entry logs to the console twice. Perhaps I'll fix that some day.


If this code helps you, please consider buying me a coffee.