paperpress v1.2.1
Paperpress
Paperpress is a static pages generator for Nodejs.
This library will allow you to have a blog or static pages in markdown/html on top of any application with express, koa or any other Node.js http server.
For feature request, contact @Siedrix on twitter or github.
TL;DR
Paperpress will convert a directory structure of markdown files into items that you can use in your application. This items will be sorted in collections.
Install
npm install paperpress
Basic usage
Create a Paperpress instance
var Paperpress = require('paperpress')
var paperpress = new Paperpress({
baseDirectory: 'static'
})
paperpress.load()
Use baseDirectory
to specify where are your Paperpress files. Default value is static
Then you can use the items in a express app like this:
app.get('/blog', function (req, res) {
var articles = paperpress.getCollection('articles')
res.render({articles:articles})
})
For more information check the examples.
Warning: Load function is a sync function.
Markdown parser
Paperpress use Remarkable
to parse the markdown files. You can use remarkableOptions
to specify your custom options.
var Paperpress = require('paperpress')
var paperpress = new Paperpress({
remarkableOptions: {/* Your Remarkable options */}
})
The default value is:
{
html: true,
linkify: true,
highlight: function (code) {
return highlighter.highlightAuto(code).value
}
}
Paperpress structure
Paperpress has 3 concepts: Collections, Items and Hooks.
Collections
This are folders located directly under the baseDirectory
and help organice our items in diferent groups.
Suggested directories:
- /articles this folder will contain all the blog posts of the application.
- /pages this folder will contain all the pages of the application.
- /snippers this folder will contain all the snippets of the application, usually single files.
Items
Inside each of your collection folders you can have 2 diferent types of items, the once based on a directory structure and the once based on a single markdown file.
Items as directory
- info.json This file needs to have title and date.
- content.md This is the main content of the article, it should be written in mark up.
Items as file
- ITEM_NAME.md This file will be converted into an item with title, slug, path and content.
The reason to have a the directory style is to allow more configuration, since you can add any atributes that you want to the info.json file and to modify a path or slug in a particular way.
Hooks
You can declare hooks to modify the items after they are loaded.
var paperpress = new Paperpress({})
paperpress.addHook(function (item) {
item.loadDate = new Date()
})
Useful snippets for paperpress
Find all items in a collection
var articles = paperpress.getCollection('articles')
Find all items in multiple collections
var pagesAndSnippets = paperpress.getCollections(['pages', 'snippets'])
Find one item in paperpress
var items = paperpress.items.find(function(item){
return item.path === '/home'
})
Collaborators
License
Released under the MIT license.
5 months ago
5 months ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago