Skip to content
This repository has been archived by the owner on Feb 24, 2019. It is now read-only.
/ square-parameters Public archive

Embed frontmatter-like config at the beginning of a string

License

Notifications You must be signed in to change notification settings

rreusser/square-parameters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

square-parameters Build Status npm version Dependency Status

Embed really simple parameters at the beginning of a string

Introduction

For my gulp-markdown-equations module, I need a very quick and easy way to embed config at the beginning of an inline string. It needs to be kinda like a query string, not as verbose or flexible as JSON, sorta like frontmatter... but not quite any of those. Specifically it needs to satisfy these criteria:

  1. Requires no encoding
  2. Requires minimal escaping
  3. Is easy to separate from content
  4. Is very concise
  5. Takes like three seconds to comprehend everything
  6. Is not easily confused with any well-known format so people don't make incorrect assumptions about which syntax it does/doesn't support and so I'm not on the hook for supporting a specific format.

And so we get square-parameters. Perhaps not worthy of its own module, but I felt weird to hard-code it into another. Let me know if you have a better idea.

Examples

var sp = require('square-parameters')

// Pretty straightforward:
sp("[foo=bar][baz=bop]sample string")
  // => { content: "sample string", params: {foo: "bar", baz: "bop"} }

// Whitespace is fine
sp("[a parameter=some value]sample string")
  // => { content: "sample string", params: {"a parameter": "some value"} }

// Leading whitespace not allowed:
sp(" [foo=bar]sample string")
  // => { content: " [foo=bar]sample string", params: {} }

API

require('square-parameters')( string )

Extracts config from a string and returns two parts: content and params. content is a string with the parameters chopped off, and params is an object containing key/value pairs.

Returns: Content and parameters, i.e. {content: "...", params: {...}}

Credits

(c) 2015 Ricky Reusser. MIT License

About

Embed frontmatter-like config at the beginning of a string

Resources

License

Stars

Watchers

Forks

Packages

No packages published