npm install --global defence-cliFilter a README file, retaining fenced code blocks with JavaScript code, piping to Node.js for execution:
defence --info javascript,js README.md | nodeAlong with assert and replace-require-self, this can make for very readable npm test scripts that run code examples in your README files:
{
  "scripts": {
    "test": "defence README.md | replace-require-self | node"
  }
}boolean-json-cnf is an example.
Without a file argument, read from standard input:
cat README.md | defence --info javascript,js | nodeRetain just fenced code blocks without info strings:
cat INSTALLING.md | defence --no-info | lessSource lines outside of matching fenced code blocks are retained as blank lines, so line numbering doesn't change:
echo "\n\n\n\n\n~~~js\nthrow new Error()\n~~~" | defence | node
[stdin]:7
throw new Error()
      ^
Error
    at [stdin]:7:7
    [ ... ]