All Projects → krismuniz → slash-command

krismuniz / slash-command

Licence: MIT license
Simple slash command parsing.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to slash-command

ansicolor
A JavaScript ANSI color/style management. ANSI parsing. ANSI to CSS. Small, clean, no dependencies.
Stars: ✭ 91 (+506.67%)
Mutual labels:  parsing
CoreJSON
Core Foundation, libyajl based JSON support.
Stars: ✭ 48 (+220%)
Mutual labels:  parsing
TeamReference
Team reference for Competitive Programming. Algorithms implementations very used in the ACM-ICPC contests. Latex template to build your own team reference.
Stars: ✭ 29 (+93.33%)
Mutual labels:  parsing
left-recursion
Quick explanation of eliminating left recursion in Haskell parsers
Stars: ✭ 36 (+140%)
Mutual labels:  parsing
comby-rust
Rust refactoring templates for comby, the structural find-and-replace tool.
Stars: ✭ 23 (+53.33%)
Mutual labels:  parsing
tree-hugger
A light-weight, extendable, high level, universal code parser built on top of tree-sitter
Stars: ✭ 96 (+540%)
Mutual labels:  parsing
fyodor
Convert your Amazon Kindle highlights and notes into markdown (or any format).
Stars: ✭ 101 (+573.33%)
Mutual labels:  parsing
Plotty
C language compiler from scratch for a custom architecture, with virtual machine and all
Stars: ✭ 33 (+120%)
Mutual labels:  parsing
sledgehammer
🔨 📶 WiFi-Jammer/DoS toolset
Stars: ✭ 34 (+126.67%)
Mutual labels:  parsing
Deep-NLP-Resources
Curated list of all NLP Resources
Stars: ✭ 65 (+333.33%)
Mutual labels:  parsing
docx2csv
Extracts tables from .docx files and saves them as .csv or .xls files
Stars: ✭ 42 (+180%)
Mutual labels:  parsing
markright
A customizable markdown parser in Elixir: pure pattern matching.
Stars: ✭ 14 (-6.67%)
Mutual labels:  parsing
cppcombinator
parser combinator and AST generator in c++17
Stars: ✭ 20 (+33.33%)
Mutual labels:  parsing
hikari
A Discord API wrapper for Python and asyncio built on good intentions.
Stars: ✭ 631 (+4106.67%)
Mutual labels:  slash-commands
libvcs
⚙️ Lite, typed, pythonic utilities for git, svn, mercurial, etc.
Stars: ✭ 43 (+186.67%)
Mutual labels:  parsing
pe
Fastest general-purpose parsing library for Python with a familiar API
Stars: ✭ 21 (+40%)
Mutual labels:  parsing
StatementParser
Idea behind the StatementParser is, that it would be nice to be able to process financial data from different kind of statements in automatized way. This is often pretty hard as brokers are giving these data only in form of xls/xlst/pdf or other format which is not directly processable and here comes StatmentParser.
Stars: ✭ 21 (+40%)
Mutual labels:  parsing
GreynirPackage
The Greynir NLP parser for Icelandic, packaged for PyPI
Stars: ✭ 49 (+226.67%)
Mutual labels:  parsing
angel.co-companies-list-scraping
No description or website provided.
Stars: ✭ 54 (+260%)
Mutual labels:  parsing
text2tab
TAB-delimited text parser for ABAP
Stars: ✭ 16 (+6.67%)
Mutual labels:  parsing

slash-command

Build Status Coverage Status License:MIT

A simple slash command parsing module written in JavaScript. In other words, a function that parses a string and returns an object which separates the command keyword(s) from the body of the command.

Example:
slashCommand('/mycommand This is the command body');

slashCommand() returns the following object:

{
  slashcommand: '/mycommand', // command(s) as stated
  command: 'mycommand', // main command name (first in string)
  subcommands: null, // array of subcommands; see below for more info.
  body: 'This is the command body', // the body of the command
  original: '/mycommand This is the command body' // the original string
}

Features

This tiny module abstracts away the string-parsing process: string manipulation, matching regular expressions, mapping arrays, replacing strings, etc.

slash-command takes a string, parses it, and returns an object containing the slash command keywords, subcommands (see below), body, and the original string.

Use cases

slash-command is useful when building:

  • chat clients that support slash commands
  • CLI-like software
  • messaging platform chatbots (e.g. for Slack or HipChat)
  • platform-agnostic conversational interfaces and bots (e.g. email, SMS, IRC, etc.)
  • Twitter bots, Tumblr bots, etc.

Installation

Installing the slash-command module is as simple as installing any other npm module:

$ npm install slash-command --save

Usage

slash-command exports a single function, so it is quite to use:

var slashCommand = require('slash-command');
/* OR, some ES6 module-loading love: */
import slashCommand from 'slash-command';

slashCommand('/tweet This is a tweet.');

slashCommand() returns the following object:

{
  slashcommand: '/tweet', // command(s) as stated
  command: 'tweet', // main command (first in string)
  subcommands: null, // array of all subcommands; null if there are none
  body: 'This is a tweet.', // the body of the command
  original: '/tweet This is a tweet.' // the original string
}
Subcommands

Let's suppose there are multiple consecutive slash commands in the string. We could use them!

I call these subcommands, and slash-command supports them very well. It returns all of them in a "subcommands" array inside the result object (in order of appearance; from left to right) so you can do whatever crazy thing you want with them.

var slashCommand = require('slash-command');
/* or, for some ES6 module-loading love */
import slashCommand from 'slash-command';

slashCommand('/google/calendar Meeting with Sarah at 6pm.');

slashCommand() returns the following object:

{
  slashcommand: '/google/calendar', // command(s) as stated
  command: 'google', // main command (first in string)
  subcommands: ['calendar'], // array of all subcommands
  body: 'Meeting with Sarah at 6pm.', // the body of the command
  original: '/google/calendar Meeting with Sarah at 6pm.' // the original string
}
Required Parameters:
  • string ([string]): The string argument; contains a slash command.

Testing

Want to run the tests? Go ahead and type the following in your terminal/command prompt:

$ npm install
$ npm test

Contributing

Bug Reports & Feature Requests

Something does not work as expected or perhaps you think this module needs a feature? Please open an issue using GitHub's issue tracker.

Developing

Pull Requests (PRs) are welcome. Just make sure you follow the same basic style conventions as the original code.

License

The MIT License (MIT)


Copyright (c) 2015 Kristian Muñiz [https://krismuniz.com/]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].