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

diffhtml-static-sync

v1.0.0-beta.18

Published

A static HTTP server that hot reloads HTML on save

Downloads

21

Readme

<±/> diffHTML Static Sync

Static server that livereloads using VDOM on the entire page along with CSS.

Stable Version: 1.0.0-beta.18

Provides a static HTTP server that monitors the folder it was executed in for changes. Whenever a file changes, it is read from disk and sent to the page using WebSockets. This server injects a client-side handler which responds to this WebSocket event, and using diffHTML, diffs the contents seamlessly without needing to reload. This includes all <HTML>, <HEAD>, and <BODY> tag changes. Provides smart CSS reloading, that instantly updates.

Takes a "just works" approach by automatically injecting the synchronization code.

Installation

You can install via yarn or npm, below you will see commands to install globally which is what is most commonly used for command line tools.

With npm:

npm install -g diffhtml-static-sync

With yarn:

yarn global add diffhtml-static-sync

Usage

If all goes well, you should now have a diffhtml-static-sync command in your PATH which means you can execute it in the command line. Open an existing folder with HTML files or make a new one and run this command in it. You shouldn't see any output just yet, but the command should appear to hang.

Once you open your browser to: http://localhost:8000/ you should see the index.html file or a directory listing to chose from.

Basic usage:

λ diffhtml-static-sync .
Open http://localhost:8000

Waiting for changes ⣻ Socket connection established

Pass --quiet to prevent verbose logging in the browser console and terminal.

Markdown

Markdown is supported out-of-the-box, browse them as you would normal HTML files. Name your markdown files with index.markdown or index.md to be picked up automatically in folders.

LiveReload

By default any other file types are treated as a full page reload.

Static Handler

You can define your own handlers to respond to file changes. These are set up as a global Set. Like so:

window.staticSyncHandlers = new Set();

You can add your own function hooks into the Set, but calling add:

staticSyncHandlers.add(({ file, markup /*, quiet */ }) => {
  if (file === 'some/file') {
    // Do something with the contents
  }
});

There is an optional argument quiet, shown above, that you can use to silence logging output to prevent clutter in the console. This is toggled from the --quiet CLI flag.