Giter VIP home page Giter VIP logo

metalpress's Introduction

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

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.