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

@codeblock/languages

v2.0.7

Published

available prism languages for @codeblock packages

Downloads

24

Readme

@codeblock/languages

Prismjs languages for @codeblock.

providers

This package contains prismjs/components providers for @codeblock:

Each provider is an object with a key for each supported language, and a function that requires or imports the corresponding language file.

The functions do not return anything! They merely ensure that the corresponding language module is available.

import languages from '@codeblock/languages/lib/async';

async function demo() {
  await languages.jsx();
  await languages.tsx();
  // the languages `jsx` and `tsx` are available to prismjs now
}

Note that none of these providers will work correctly for languages that depend on another language.

For example, the tsx language requires the jsx language to be available. If you load only tsx, the highlighting will not work. Another example would be cpp which requires clike to be loaded.

Currently, the mechanism for resolving these dependencies is not exposed by prismjs.

The only way to reliably resolve the languages is by using the autoloader mechanism via @codeblock/core/lib/autoload

empty

A dummy provider object where each language loader is effectively a noop.

Useful when you want to have exact control over what gets loaded.

import emptyLanguageProvider from '@codeblock/languages/lib/empty';

export const config: Partial<ProviderConfig> = {
  languages: {
    ...emptyLanguageProvider,
    jsx: () => require('prismjs/components/prism-jsx'),
    tsx: () => require('prismjs/components/prism-tsx')
  }
};

async

A provider object where each language is dynamically imported via import() on demand.

Defines webpack chunk names via /* webpackChunkName: 'codeblock/language.prism-{langName}' */. When bundled with webpack, an additional output folder codeblock would be created, along with a separate chunk for each language.

import asyncLanguageProvider from '@codeblock/languages/lib/async';

export const config: Partial<ProviderConfig> = {
  languages: asyncLanguageProvider
};

static

A provider object where each language is statically required via require() at compile-time.

import staticLanguageProvider from '@codeblock/languages/lib/static';

export const config: Partial<ProviderConfig> = {
  languages: staticLanguageProvider
};
@codeblock