NAME
XUL::App - Nifty XUL apps in a XUL::App
VERSION
This document describes XUL::App 0.09 released on August 13, 2008.
SYNOPSIS
$ xulapp app --name YSearchAll
$ cd YSearchAll
$ xulapp view --name Overlay --type overlay
# Edit lib/YSearchAll/App.pm to add the following lines:
package YSearchAll::App; our $VERSION = '0.09';
use XUL::App::Schema;
use XUL::App schema {
+ xulfile 'overlay.xul' =>
+ generated from 'YSearchAll::View::Overlay',
+ includes qw( xulapp/jquery.js overlay.js ),
+ overlays 'chrome://browser/content/browser.xul';
+
xpifile 'ysearchall.xpi' =>
name is 'YSearchAll',
id is 'ysearchall@agentz.agentz-office',
version is '0.0.1',
targets {
Firefox => ['2.0' => '3.0.*'], # FIXME
Mozilla => ['1.5' => '1.8'], # FIXME
},
creator is 'The YSearchAll development team',
developers are ['agentz'],
contributors are [],
homepageURL is 'http://searchall.agentz.org', # FIXME
iconURL is '', # like 'chrome://helloworld/content/logo.png'
updateURL is ''; # This should not set for AMO extensions.
};
1;
# Add and edit js/ysearchall.js manually
$ xulapp overlay -p dev11
$ xulapp bundle . # generate XPI ready for deployment
DESCRIPTION
XUL::App is a nifty Firefox extension development framework based on Perl. It has a lot of parallels with Jifty. In particular, this framework allows you to build real-world modern Firefox extensions using Perl. But the resulting XPI installation file is completely portable and contains *0* Perl.
This framework has the following highlights:
Currently the module is still in alpha stage and we're in severe lack of
documentation and tests. (Although a real-world fully-fledged Firefox
extension named SearchAll
(<https://addons.mozilla.org/en-US/firefox/addon/5712>) is already
developed atop it.
You can get a lot of information from the slides that I used in the following talk:
<http://agentzh.org/misc/slides/xulapp/xulapp.xul> (a JS-enabled Firefox is required to view these slides)
If you're having problems in displaying the slides given above, please try out the PowerPoint (PPT) version below:
<http://agentzh.org/misc/slides/xulapp.ppt>
or the PDF version:
<http://agentzh.org/misc/slides/xulapp.pdf>
CAVEATS
(BTW, I'm very willing to apply patches for other platforms.)
SOURCE CONTROL
You can always get the latest source of XUL::App from the following SVN
<http://svn.openfoundry.org/xulapp/trunk/>
I really need help in improving this module's docs, tests, and implementation. If you find this thing useful and feel like contributing to it, please write to me and get a commit bit! ;)
SAMPLES
<http://svn.openfoundry.org/searchall/trunk/>
And it's already on the mozilla official site AMO:
<https://addons.mozilla.org/en-US/firefox/addon/5712>
<http://svn.openfoundry.org/xulapp/trunk/demo/ExportReader/>
This extension only costed me about 10 lines of Perl and 20 lines of JavaScript, in addition to a few shell commands. The process is easy and enjoyable.
Because it's mostly for personal use, The usage of this addon deserves some explanation though:
<http://svn.openfoundry.org/xulapp/trunk/demo/ExportReader/expor treader.xpi>
After installation, please remember to restart the browser.
<chrome://exportreader/content/exportreader.xul>
Then you will see the main UI of this extension.
Note that, by defaul, Google Reader lazily loads just the top 5 entries or so. So in order to export all the entries in the subscribed site, say, "chromatic's Journal", you'll have to scroll down the Reader's Expanded View and force it to retrieve more entries.
INSTALLATION
perl Makefile.PL
make
sudo make install
BUGS
Sadly XUL::App does not run on Win32 yet. I've only tested it on Ubuntu Linux so far. If you have any problems or would love to help, please let me know ;)
AUTHOR
Agent Zhang <agentzh@yahoo.cn>
COPYRIGHT AND LICENSE
Copyright 2007, 2008 by Yahoo! China EEEE Works, Alibaba Inc. (<http://www.eeeeworks.org>)
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Artistic or GPL.
SEE ALSO
xulapp, Locale::Maketext::Lexicon, Template::Declare, Jifty.