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

@thesharks/jagtag-js

v2.0.0

Published

A JavaScript port of https://github.com/jagrosh/JagTag.

Downloads

28

Readme

JagTag-JS

Codecov License

A JavaScript port of the JagTag text parsing language, originally written in Java by @jagrosh.

What is JagTag?

JagTag is, in the author's own words, a simple yet powerful and customisable interpreted text parsing language. In practice, JagTag notation is used to customise user input with tags which use the format {name:arg1|arg2}.

How does this differ?

First of all, the implementation of JagTag has been ported to JavaScript. The key thing to note here is that the actual code has not been ported due to language limitations. Instead, this system is essentially JagTag notation implemented in JavaScript with a slightly different methodology.

Due to language-level limitations, some of the methods are also not fully compatible. This project has been developed with maximum compatibility in mind, but some minor changes have been made. More details can be found in the documentation.

It's worth noting that the Discord-related tag functions have been developed to suit Eris and have not been tested with other libraries. For now it's recommended to use Eris in conjunction with the Discord-related tags, if you wish to use those.

Installation and usage

JagTag-JS is available on NPM and you can install it with npm i @thesharks/jagtag-js. Make sure you have Node.js >= 8 installed.

Basic syntax:

const JagTagParser = require('@thesharks/jagtag-js')

JagTagParser('string to parse', argsObject)

For more information about the args object, see the API reference.

Simple example

At its most basic level, JagTag-JS can be used to perform simple string-related operations without any complications.

const JagTagParser = require('@thesharks/jagtag-js')

JagTagParser('change {upper:this} to uppercase')
// Returns 'change THIS to uppercase'

Advanced example

More advanced operations may require you to pass arguments to the parser in order to function correctly. Please check the documentation for information on what parser-level arguments need to be passed for which method.

const JagTagParser = require('@thesharks/jagtag-js')

JagTagParser('{argslen} arguments were passed to this tag', { tagArgs: [ 'item1', 'item2', 'item3' ] })
// Returns '3 arguments were passed to this tag'

String interpolation

Since Javascript will attempt to interpret strings such as '\d' as character escapes, it's recommended to call the parser using String.raw.

const JagTagParser = require('@thesharks/jagtag-js')

JagTagParser('{replaceregex:\d|with:#|in:I have 5 cats and 23 shirts}')
// Returns: "I have 5 cats an# 23 shirts"
// Probably not what you wanted!

JagTagParser(String.raw`{replaceregex:\d|with:#|in:I have 5 cats and 23 shirts}`)
// Returns: "I have # cats and ## shirts"

Contributing

See CONTRIBUTING.md.