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

@nycopportunity/pttrn-plugin-twig

v1.0.2

Published

A plugin command script for the https://github.com/CityOfNewYork/patterns-cli that will compile Twig view templates. Replaces the default Slm compiler.

Downloads

4

Readme

Patterns CLI Twig Plugin

This plugin command script for the Patterns CLI will compile Twig view templates using Twig.js. It is essentially a copy of the Slm command script that replaces the Slm compiler with Twig. It supports the same command flags, NODE_ENV constant, include function, and variables. Configuration is also the same, however, the config file it will look for is named config/views.js as opposed to config/slm.js.

What is Twig?

Twig is a template engine for PHP. Twig.js is an implementation of the same engine for JavaScript.

Usage

Install as a development dependency in a project that uses the Patterns CLI.

$ npm install @nycopportunity/pttrn-plugin-twig -D

Add a proxy command script in the ./bin/ directory:

$ touch bin/twig.js
$ echo "module.exports = require('@nycopportunity/pttrn-plugin-twig');"

This will make the command available to the CLI. Then, Twig files in the source directory can be used in place of Slm files.

├ 📂 src/            - Source directory
  ├ 📂 twig/          - Twig extras
    ├ 📁 partials/
    └ 📁 layouts/
  ├ 📂 views/         - Twig views
    ├ 📂 newsletter   - Sub-directory
      └ index.twig
    ├ index.twig      - Homepage
    ├ accordion.twig  - Accordion demo page
    └ buttons.twig    - Buttons demo page
    └ ...
  └ ...

Views can then be compiled by running the following command:

$ npx pttrn twig
✨ Twig in ./src/views/accordion.twig out ./dist/accordion.html
✨ Twig in ./src/views/buttons.twig out ./dist/buttons.html
✨ Twig in ./src/views/index.twig out ./dist/index.html
✨ Twig in ./src/views/newsletter/index.twig out ./dist/newsletter/index.html

The script supports the same ./config/slm.js options as the slm command, however, it will look for a file named ./config/views.js. To use the default configuration create a proxy configuration file and export the default Slm config.

$ touch config/views.js
$ echo "module.exports = require('@nycopportunity/pttrn/config/slm');"

Or export your own configuration for the command.

Namespace

The script adds the namespace @src (alternatively, src::) for referencing the source directory to extend layouts and includ partials from the ./src/twig/ directory.

Extending Layouts

{% extends "@src/twig/layouts/default.twig" %}

Including Partials

{% include '@src/twig/partials/head.twig' %}