Permalink
Browse files

Fixup markdown linting issues

Ref #607
  • Loading branch information...
devth committed Jan 6, 2017
1 parent 831f004 commit 00df6a678d4a9afc8e96d076ccb229390cb5c92d
Showing with 37 additions and 38 deletions.
  1. +1 βˆ’0 .mdlrc
  2. +9 βˆ’8 CONTRIBUTING.md
  3. +27 βˆ’29 README.md
  4. +0 βˆ’1 doc/EXAMPLES.md
View
1 .mdlrc
@@ -0,0 +1 @@
rules "~MD013", "~MD033", "~MD024"
View
@@ -4,22 +4,23 @@ Before adding to Yetibot you might want to check with the author first to see
if:
1. the feature makes sense for Yetibot
2. whether it should be in `yetibot` or `yetibot.core`
3. no one is [working on it already](https://waffle.io/devth/yetibot)
1. whether it should be in `yetibot` or `yetibot.core`
1. no one is [working on it already](https://waffle.io/devth/yetibot)
When ready to contribute:
1. Fork the repo
2. Add your contributions on the `master` branch of your fork as logically grouped commits with
[well-formed commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
3. Rebase on upstream master if it changed
4. Open a PR
1. Add your contributions on the `master` branch of your fork as logically
grouped commits with [well-formed commit
messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
1. Rebase on upstream master if it changed
1. Open a PR
### Tests
## Tests
Tests are appreciated, especially when there's logic beyond a simple API call.
### Style
## Style
Please adhere to yetibot's existing conventions:
View
@@ -19,12 +19,12 @@
You can think of Yetibot as a **communal command line**. It excels at:
- **teaching**: how to run internal automation, language evaluation for JS,
Scala, Clojure, and Haskell
- **productivity**: automating things around Jenkins, JIRA, running SSH
commands on various servers, and interacting with internal APIs via private
Yetibot plugins
- **fun**: Google image search, gif lookups, meme generation
- **teaching**: how to run internal automation, language evaluation for JS,
Scala, Clojure, and Haskell
- **productivity**: automating things around Jenkins, JIRA, running SSH
commands on various servers, and interacting with internal APIs via private
Yetibot plugins
- **fun**: Google image search, gif lookups, meme generation
Features that make Yetibot powerful and great, which is to say *fun*:
@@ -93,12 +93,12 @@ contributions are very welcome!
There are three primary ways of installing Yetibot:
0. **Follow the [Docker instructions](doc/DOCKER.md)**: the fastest way if you're
1. **Follow the [Docker instructions](doc/DOCKER.md)**: the fastest way if you're
already using Docker.
0. **Clone this repo**: this gives you a standard Yetibot installation and
1. **Clone this repo**: this gives you a standard Yetibot installation and
provides a git-ignored place to store configuration. Run from the root dir
with `lein run`.
0. **Make your own repo and depend on Yetibot**: this gives you ultimate
1. **Make your own repo and depend on Yetibot**: this gives you ultimate
customizability, allowing you to depend on custom Yetibot plugins or define
your own commands in-project, and gives you control over where you store
your config (manual management, commit to private git repo, etc...)
@@ -145,7 +145,6 @@ nested.
<img src="http://cdn.memegenerator.net/instances/500x/33734863.jpg" />
### Nested sub-expressions
For arbitrarily-nested sub-expressions, use `$(expr)` syntax, which
@@ -157,7 +156,6 @@ disambiguates the open and closing of an expressions.
<img src="http://i.imgflip.com/z4d45.jpg" />
### Combo
```
@@ -166,7 +164,6 @@ disambiguates the open and closing of an expressions.
<img src="http://i.imgflip.com/z4d6f.jpg" />
### Aliases
You can build your own aliases at runtime. These are stored in the configured
@@ -263,33 +260,34 @@ vals, weather, wiki, wolfram, wordnik, words, xargs, xkcd, zen
## Plugins
Yetibot has a plugin-based architecture. Its core which all plugins depend on
lives at https://github.com/devth/yetibot.core.
[<img src="https://img.shields.io/clojars/v/yetibot.core.svg" />](https://clojars.org/yetibot.core)
is [yetibot.core](https://github.com/devth/yetibot.core).
[![yetibot.core](https://img.shields.io/clojars/v/yetibot.core.svg)](https://clojars.org/yetibot.core)
Yetibot will load all commands and observers with namespaces on the classpath
matching the regexes at:
https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/loader.clj#L12-16
matching [these
regexes](https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/loader.clj#L12-16).
This lets you build any number of independent plugin projects and combine them
via standard leiningen dependencies.
via standard Leiningen dependencies.
## How it works
Curious how the internals of Yetibot works? At a high level:
0. commands are run through a parser built on
[InstaParse](https://github.com/Engelberg/instaparse):
https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/parser.clj
0. an InstaParse transformer is configured to evaluate expressions through the
interpreter, which handles things like nested sub-expressions and piped
commands:
https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/interpreter.clj
0. [command namespaces](https://github.com/devth/yetibot/tree/master/src/yetibot/commands)
are `hook`ed into the interpreter's `handle-cmd` function using a `cmd-hook`
macro and triggered via regex prefix matching:
https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/hooks.clj
1. commands are run through a
[parser](https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/parser.clj)
built on [InstaParse](https://github.com/Engelberg/instaparse):
1. an [InstaParse
transformer](https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/interpreter.clj)
is configured to evaluate expressions through the interpreter, which handles
things like nested sub-expressions and piped commands
1. [command
namespaces](https://github.com/devth/yetibot/tree/master/src/yetibot/commands)
are
[`hook`ed](https://github.com/devth/yetibot.core/blob/master/src/yetibot/core/hooks.clj)
into the interpreter's `handle-cmd` function using a `cmd-hook` macro and
triggered via regex prefix matching
## Getting help
View
@@ -8,7 +8,6 @@ We use an alias to store the list of zip codes for all members of our
distributed team, which we then feed to another alias which outputs a short
single-line description of current weather for a location.
```
!alias locs = list 59101 98101 94101

0 comments on commit 00df6a6

Please sign in to comment.