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

complate-fractal

v1.0.2

Published

Use complate templates with Fractal.

Downloads

98

Readme

complate Adapter for Fractal

Build Status Greenkeeper badge

Note: Because of the security vulnerabilities in the official fractal branch, complate-fractal now uses this fork.

Installation

Add complate-fractal to your Fractal-based styleguide project:

npm install complate-fractal

or

yarn add complate-fractal

Configuring Fractal

In your project's fractal.config.js, you need to register complate as templating engine:

let fractal = module.exports = require('fractal-fork').fractal.create()
let complate = require('complate-fractal')

…

fractal.components.engine(complate({
  rootDir: __dirname,
  generateURI: function(uri) {
    // NB: invocation context is `{ assetPath }`, providing access to
    //     Fractal-specific URI generation
    return this.assetPath(uri)
  }
}));

rootDir specifies which directory component samples' import paths are relative to:

import MyWidget from './components/my-widget'

<MyWidget …>

generateURI implements an application-specific URI helper, provided to components via the application context (via envPath, defaults to env.js):

// application-specific context; this will be populated (i.e. mutated) at
// runtime by the respective application
exports.context = {
  uri: function toBeDefined() {
    throw new Error("application context is not defined");
  }
};
import { context } from '../env'

export default function MyWidget (params, ...children) {
  let uri = context.uri('/path/to/resource')
  …
}

In addition, you need to provide a PreviewLayout component (via previewPath, which defaults to _preview.jsx within the components directory):

export default function PreviewLayout({ context }, ...children) {
  return <html lang="en">
    …
    <body>
      …
      {children}
      …
    </body>
  </html>;
}

Usage with Fractal

Context

You need to reference context values via the context object:

<MyWidget>{context.my_label}</MyWidget>

Referencing components

Fractal (with Handlebars) brings support for including existing components within others:

<div class="my-component">
  {{> @my_other_component }}
</div>

complate has its own way for doing that by using HTML expansion without any special markers or syntax you have to remember:

<MyComponent>
  <MyOtherComponent />
</MyComponent>

Therefore we don’t support Fractal's @-prefixed view handlers for now.

Examples

Development

Release

  1. Increment version number in package.json
  2. Commit as "vX.X.X"
  3. git tag -am "vX.X.X" "vX.X.X"
  4. git push --follow-tags
  5. npm publish