1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-21 22:27:59 +01:00
Kris Maglione a59d88fee7 Basic Songbird 1.9a support.
--HG--
rename : xulmus/AUTHORS => melodactyl/AUTHORS
rename : xulmus/Makefile => melodactyl/Makefile
rename : xulmus/NEWS => melodactyl/NEWS
rename : xulmus/TODO => melodactyl/TODO
rename : xulmus/chrome.manifest => melodactyl/chrome.manifest
rename : xulmus/components/commandline-handler.js => melodactyl/components/commandline-handler.js
rename : xulmus/components/protocols.js => melodactyl/components/protocols.js
rename : xulmus/content/config.js => melodactyl/content/config.js
rename : xulmus/content/dactyl.dtd => melodactyl/content/dactyl.dtd
rename : xulmus/content/library.js => melodactyl/content/library.js
rename : xulmus/content/logo.png => melodactyl/content/logo.png
rename : xulmus/content/xulmus.xul => melodactyl/content/melodactyl.xul
rename : xulmus/content/player.js => melodactyl/content/player.js
rename : xulmus/content/xulmus.svg => melodactyl/content/xulmus.svg
rename : xulmus/contrib/vim/Makefile => melodactyl/contrib/vim/Makefile
rename : xulmus/contrib/vim/ftdetect/xulmus.vim => melodactyl/contrib/vim/ftdetect/melodactyl.vim
rename : xulmus/contrib/vim/mkvimball.txt => melodactyl/contrib/vim/mkvimball.txt
rename : xulmus/contrib/vim/syntax/xulmus.vim => melodactyl/contrib/vim/syntax/melodactyl.vim
rename : xulmus/defaults/preferences/dactyl.js => melodactyl/defaults/preferences/dactyl.js
rename : xulmus/install.rdf => melodactyl/install.rdf
rename : xulmus/locale/en-US/all.xml => melodactyl/locale/en-US/all.xml
rename : xulmus/locale/en-US/autocommands.xml => melodactyl/locale/en-US/autocommands.xml
rename : xulmus/locale/en-US/browsing.xml => melodactyl/locale/en-US/browsing.xml
rename : xulmus/locale/en-US/dactyl.dtd => melodactyl/locale/en-US/dactyl.dtd
rename : xulmus/locale/en-US/gui.xml => melodactyl/locale/en-US/gui.xml
rename : xulmus/locale/en-US/intro.xml => melodactyl/locale/en-US/intro.xml
rename : xulmus/locale/en-US/player.xml => melodactyl/locale/en-US/player.xml
rename : xulmus/locale/en-US/tabs.xml => melodactyl/locale/en-US/tabs.xml
rename : xulmus/skin/icon.png => melodactyl/skin/icon.png
2010-10-02 10:44:19 -04:00
2010-10-02 10:44:19 -04:00
2010-10-02 10:44:19 -04:00
2010-10-02 10:44:19 -04:00
2010-10-02 10:44:19 -04:00
2010-08-28 18:02:03 -04:00
2010-10-02 17:49:55 +10:00
2010-09-22 22:00:14 +09:00
2009-01-12 15:32:52 +11:00

               A terse introduction to E4X
                      Public Domain

The inline XML literals in this code are part of E4X, a standard
XML processing interface for ECMAScript. In addition to syntax
for XML literals, E4X provides a new kind of native object,
"xml", and a syntax, similar to XPath, for accessing and
modifying the tree. Here is a brief synopsis of the kind of
usage you'll see herein:

> let xml =
        <foo bar="baz" baz="qux">
            <bar>
                <baz id="1"/>
            </bar>
            <baz id="2"/>
        </foo>;

 // Select all bar elements of the root foo element
> xml.bar
 <bar><baz id="1"/></bar>

 // Select all baz elements anywhere beneath the root
> xml..baz
 <baz id="1"/>
 <baz id="2"/>

 // Select all of the immediate children of the root
> xml.*
 <bar><baz id="1"/></bar>
 <baz id="2"/>

 // Select the bar attribute of the root node
> xml.@bar
 baz

 // Select all id attributes in the tree
> xml..@id
 1
 2

 // Select all attributes of the root node
> xml.@*
 baz
 quz

// Add a quux elemend beneath the first baz
> xml..baz[0] += <quux/>
  <baz id="1"/>
  <quux/>
> xml
  <foo bar="baz" baz="qux">
      <bar>
          <baz id="1"/>
          <quux/>
      </bar>
      <baz id="2"/>
  </foo>

  // and beneath the second
> xml.baz[1] = <quux id="1"/>
> xml
  <foo bar="baz" baz="qux">
      <bar>
          <baz id="1"/>
          <quux/>
      </bar>
      <baz id="2"/>
      <quux id="1"/>
  </foo>

  // Replace bar's subtree with a foo element
> xml.bar.* = <foo id="1"/>
> xml
  <foo bar="baz" baz="qux">
      <bar>
          <foo id="1"/>
      </bar>
      <baz id="2"/>
      <quux id="1"/>
  </foo>

  // Add a bar below bar
> xml.bar.* += <bar id="1"/>
  <foo id="1"/>
  <bar id="1"/>
> xml
  <foo bar="baz" baz="qux">
      <bar>
          <foo id="1"/>
          <bar id="1"/>
      </bar>
      <baz id="2"/>
      <quux id="1"/>
  </foo>

  // Adding a quux attribute to the root
> xml.@quux = "foo"
  foo
> xml
  <foo bar="baz" baz="qux" quux="foo">
      <bar>
          <foo id="1"/>
          <bar id="1"/>
      </bar>
      <baz id="2"/>
      <quux id="1"/>
  </foo>

> xml.bar.@id = "0"
> xml..foo[0] = "Foo"
  Foo
> xml..bar[1] = "Bar"
  Bar
> xml
js> xml
<foo bar="baz" baz="qux" quux="foo" id="0">
    <bar id="0">
        <foo id="1">Foo</foo>
        <bar id="1">Bar</bar>
    </bar>
    <baz id="2"/>
    <quux id="1"/>
</foo>

  // Selecting all bar elements where id="1"
> xml..bar.(@id == 1)
  Bar

  // Literals:
  // XMLList literal. No root node.
> <>Foo<br/>Baz</>
  Foo
  <br/>
  Baz

// Interpolation.
> let x = "<foo/>"
> <foo bar={x}>{x + "<?>"}</foo>
  <foo/><?>
> <foo bar={x}>{x + "<?>"}</foo>.toXMLString()
  <foo bar="&lt;foo/>">&lt;foo/&gt;&lt;?&gt;</foo>

> let x = <foo/>
> <foo bar={x}>{x}</foo>.toXMLString()
  <foo bar="">
      <foo/>
  </foo>

Description
Pentadactyl for Pale Moon
Readme 139 MiB
Languages
JavaScript 93.7%
C++ 1.8%
CSS 1.6%
XSLT 1.3%
Vim script 0.8%
Other 0.6%