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

metalpress

v0.8.1

Published

Create a blog easily with Metalsmith.

Downloads

15

Readme

metalpress npm Travis Codecov

Create a blog easily with Metalsmith.

A wrapper of Metalsmith plugins for quickly creating a blog with Metalsmith.

Features

  • Liquid Templating
  • Markdown Rendering
  • Permalinks
  • Pagination
  • Firebase Data Integration
  • Webpack Bundling
  • Use NPM Modules
  • SASS Compiling and CSS Fingerprinting
  • RSS & Sitemap Support
  • Imagemin, Code Highlighting, Html Minification
  • robots.txt
  • Post Features
    • Excerpts
    • Tags
    • Drafts

Installation

$ npm install metalpress --save

Structure and Templating

metalpress works from a specific directory structure. It contains a templates and src directory. Within the src directory it will load data from data as yaml or json files. You can create folders for collections and use markdown files for pages. You should store all assets in assets.

For templating, metalpress uses liquid. You can learn more about the syntax here.

Here's an example structure:

├── package.json
├── src
│   ├── data
│       ├── site.yaml
│       ├── projects.json
│   ├── assets
│       ├── sass
│       ├── img
│       ├── fonts
│       ├── js
│           ├── index.js
│   ├── index.md
│   ├── pages
│       ├── about.md
│   └── posts
│       ├── 2016-08-25-how-to-use-metalpress.md
├── templates
│   ├── _includes
│       ├── header.liquid
│       ├── footer.liquid
│   └── _layouts
│       ├── home.liquid

Usage

To get started with metalpress, you can use the API or CLI.

API Usage

metalpress taks a config object and callback. It will process the files in the config, build the site, and return a metalsmith instance. The callback will contain any errors and the file mappings.

import metalpress from 'metalpress';
import config from './metalpress.config';

const m = metalpress(config, (err, files) => {
  console.log('New site build completed.');
});

CLI Usage

Install CLI

npm install metalpress-cli -g

Initialize a New Project

Prompts a series of questions and creates a new .metalpress config.

metalpress init

Start a Browser-sync Server

Serve the project on automatically assigned browser-sync port. (default: http://localhost:3000)

metalpress serve

Deploy a Project

To deploy your site, you'll need to have your aws.json set up. It includes:

{
  "key":"AWS_ACCESS_KEY_HERE",
  "secret":"AWS_SECRET_KEY_HERE",
  "stagingBucket":"staging.example.com",
  "productionBucket":"example.com"
}

Deploy a dist and deployed to AWS S3.

Staging

metalpress deploy

Production

metalpress deploy -p

Webpack Usage

By default, metalpress uses a webpack configuration for both staging and production environments. Within your config, you can specify jquery: true for included support jquery.

If you need to do so, you can override webpack with a custom config. For example, you can use the following options in your .metalpress config. You can add only the parameters you need which will be extended into the defaults, or override the entire file as needed.

{
  "webpack": {
    "dev": "./webpack.config.js",
    "prod": "./webpack.prod.config.js"
  }
}

For Questions, Issues, PRs please refer to @cameronroe

GPL-3 LICENSE