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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published