Skip to content

Schaltstelle/simple-site-aggregate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simple-site-aggregate

Build Status codecov License

A simple-site plugin that aggregates html snippets from other pages.

Installation

Install with npm install -g simple-site-aggregate.

Add _plugins/index.js containing the line require('simple-site-aggregate');.

Usage

Aggregate a page using a handlebars tag:

{{{aggregate "http://my-site/my-page.html" "_parsers/my-site.yaml" "_templates/output.html" 300}}}

http://my-site/my-page.html is the page that should be aggregated.

_parsers/my-site.yaml defines how to extract data from the HTML file:

selectors:
    title: header.post-header h1
    content: article.post-content
    image: .blog-meta img [src]
    published:
        - parseDate
        - span.date
        - DD.MM.YYYY
static:
    name: My Name

The values in selectors are CSS selectors that are applied to the HTML file. The first matching tag is processed as follows:

  • If the value ends with a bracketed value (.blog-meta img [src]) the result is the value of an attribute (src).
  • If the value ends with a bracketed dot value (div [.left]) the result is if the tag has the given CSS class.
  • If the value is an array, the first entry is a parser function and the second entry a CSS selector. The remaining entries are parameters to the parser function. The result is the tag's content applied to the parser function.
  • Otherwise, the result is the content of the tag.

static contains static strings.

_templates/output.html is the template to be used to generate output.

300 is an optional value defining the maximum length of the values.