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

xemplate

v1.1.1

Published

<div align="center"> <p> <img width="80" src="https://gist.githubusercontent.com/ImportProgram/ebcfad1a28b7a74f63069cf498f00ee4/raw/b3d5aaadd3b680d36d6d3638f2594afc55e56153/xemplate.svg?sanitize=true"> </p> <h1>Xemplate</h1> A HTML template compon

Downloads

4

Readme



Example

<template id="Text">
    <p class="@class">$children</p>
</template>

<html>
    <body>
        <Text class="blue">Hello World<Text>
    </body>
<html>

Installation

To use Xemplate, we need to install it globally: npm install xemplate -g

Then to use xemplate we just use the xem command:

  • xem dev <files>
  • xem build <files>

Building (TypeScript)

To modify or add additional features, clone the repo https://github.com/ImportProgram/xemplate

Then install all dependencies npm install

And finally, to start the development server npm run dev

Build

To build the project (out within /build): npm run build


Features

Xemplate by default is a plugin supported CLI. It also forces cache on all HTML Abstract Syntax Tree's (AST) by default, and if any plugin supports it.

Currently Xemplate includes these plugins:

  • Components: Templating components
    • All template ID must start with a capital letter
    • You can not have multiple of the same name in a single file
<template id="Whatever">
    <p>$children</p>
    <p></p
></template>

<Whatever>Hello</Whatever>
  • Imports: Import components from other files
    • Importing changes the component syntax by added the as attribute, which specifies where that component came from.
    • Both attributes are required as shown below
<import src="file.html" as="Library" />

<Library-Whatever>Hello</Library-Whatever>
  • HMR: Hot Module Reloading
    • Web Server for development, with default port of 7500 (WebSocket at 7501)
    • Replaces HTML document on save
    • Supports multiple file editing

Contributing

Make a pull request, add/modify a feature, pretty simple


Team

| ImportProgram | | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | ImportProgram | | github.com/ImportProgram |


FAQ

  • Mulitline comments break the compiler!

    • Yeah this can happen, as currently html-parse-stringify2 doesn't support this, so a fork in the future may happen
  • The TypeScript sucks!

    • This is my first project using typescript, so its not perfect. If you want to help fix my inexperience please make a pull request!
  • Why are files being read sync, and not async?

    • Because of the order which parsing, running plugins and etc was being annoying. This doesn't affect performance.

License

License

  • MIT license
  • Copyright 2020 © ImportProgram (Brendann Fuller).