annotate doc/html/guide/06-plugin/01-intro.md @ 0:1158cffe5a5e

Initial import
author David Demelier <markand@malikania.fr>
date Mon, 08 Feb 2016 16:43:14 +0100
parents
children 8384df86e195
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # Plugins
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 Irccd can be extended with JavaScript plugins. This chapter will tell you how plugins work within irccd and how to
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 create your first plugin.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 This chapter covers also some things to do and to avoid in plugins.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 ## Why JavaScript?
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 You may wonder why JavaScript was chosen in irccd. Originally, irccd used Lua as the scripting language but for many
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 reasons, it has been replaced with JavaScript.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 However, many aspects between Lua and JavaScript are similar:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 - Both languages are extremly small with very light API,
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 - It is easy to sandbox the interpreter for security reasons,
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 - It is very easy to implement your own API from C++ code.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 The current JavaScript interpreter is powered by [Duktape][duktape].
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 [duktape]: http://duktape.org