103 |

104 |

105 |
109 |
Extendables is a developers' framework for Adobe ExtendScript. Writing heavy-duty automations for InDesign, or anything more than just a throwaway script? This is for you.
110 |
111 | - Javascript goodies: we've added in as much features from Javascript 1.6+ as we could, like the
.forEach() and .filter() methods on arrays.
112 | - Helpful shortcuts make your code less verbose. We've monkeypatched a bunch of additional methods on DOM objects like
Document and XMLElement.
113 | - (Some) batteries included, like an HTTP library and a UI mini-framework.
114 | - Keep your sanity with support for logging and unit testing (using the excellent Jasmine framework). And we've got CommonJS-inspired namespaced modules. Because namespaces are one honking great idea.
115 | - Free as in freedom. Extendables comes with a very permissive MIT license. Feel free to use this framework in commercial closed-source projects — it's totally okay.
116 |
117 |
→ Come on now, show me a code sample!
118 |
Check out the documentation. Just include extendables.jsx at the top of your script to get started. Porting an existing library to an Extendables library is easy too.
119 |
A few caveats. Extendables is still pretty young. Any Creative Suite scripter will find a lot to like, but the framework was created with InDesign scripting in mind. There's a ton of potential cool stuff that's not in there right now.
120 |
But maybe, just maybe, even in its current incarnation, you'll like what you see.
121 |
122 |
123 |
150 |
151 |
152 |
--------------------------------------------------------------------------------
/doc/conf.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Extendables documentation build configuration file, created by
4 | # sphinx-quickstart on Thu Sep 23 17:42:30 2010.
5 | #
6 | # This file is execfile()d with the current directory set to its containing dir.
7 | #
8 | # Note that not all possible configuration values are present in this
9 | # autogenerated file.
10 | #
11 | # All configuration values have a default; values that are commented out
12 | # serve to show the default.
13 |
14 | import sys, os
15 |
16 | # If extensions (or modules to document with autodoc) are in another directory,
17 | # add these directories to sys.path here. If the directory is relative to the
18 | # documentation root, use os.path.abspath to make it absolute, like shown here.
19 | sys.path.insert(0, os.path.abspath('./_ext'))
20 |
21 | # -- General configuration -----------------------------------------------------
22 |
23 | # If your documentation needs a minimal Sphinx version, state it here.
24 | #needs_sphinx = '1.0'
25 |
26 | # Add any Sphinx extension module names here, as strings. They can be extensions
27 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
28 | extensions = ['glob_include', 'sphinxcontrib.googleanalytics']
29 | googleanalytics_id = 'UA-19440923-1'
30 |
31 | # Add any paths that contain templates here, relative to this directory.
32 | templates_path = ['_templates']
33 |
34 | # The suffix of source filenames.
35 | source_suffix = '.rst'
36 |
37 | # The encoding of source files.
38 | #source_encoding = 'utf-8-sig'
39 |
40 | # The master toctree document.
41 | master_doc = 'index'
42 |
43 | # General information about the project.
44 | project = u'Extendables'
45 | copyright = u'2010, Stijn Debrouwere'
46 |
47 | # The version info for the project you're documenting, acts as replacement for
48 | # |version| and |release|, also used in various other places throughout the
49 | # built documents.
50 | #
51 | # The short X.Y version.
52 | version = '0.3'
53 | # The full version, including alpha/beta/rc tags.
54 | release = '0.3a'
55 |
56 | # The language for content autogenerated by Sphinx. Refer to documentation
57 | # for a list of supported languages.
58 | #language = None
59 |
60 | # There are two options for replacing |today|: either, you set today to some
61 | # non-false value, then it is used:
62 | #today = ''
63 | # Else, today_fmt is used as the format for a strftime call.
64 | #today_fmt = '%B %d, %Y'
65 |
66 | # List of patterns, relative to source directory, that match files and
67 | # directories to ignore when looking for source files.
68 | exclude_patterns = ['_build']
69 |
70 | # The reST default role (used for this markup: `text`) to use for all documents.
71 | #default_role = None
72 |
73 | # If true, '()' will be appended to :func: etc. cross-reference text.
74 | #add_function_parentheses = True
75 |
76 | # If true, the current module name will be prepended to all description
77 | # unit titles (such as .. function::).
78 | #add_module_names = True
79 |
80 | # If true, sectionauthor and moduleauthor directives will be shown in the
81 | # output. They are ignored by default.
82 | #show_authors = False
83 |
84 | # The name of the Pygments (syntax highlighting) style to use.
85 | pygments_style = 'sphinx'
86 |
87 | # A list of ignored prefixes for module index sorting.
88 | #modindex_common_prefix = []
89 |
90 |
91 | # -- Options for HTML output ---------------------------------------------------
92 |
93 | # The theme to use for HTML and HTML Help pages. See the documentation for
94 | # a list of builtin themes.
95 | html_theme = 'nature-fixedwidth'
96 |
97 | # Theme options are theme-specific and customize the look and feel of a theme
98 | # further. For a list of options available for each theme, see the
99 | # documentation.
100 | #html_theme_options = {}
101 |
102 | # Add any paths that contain custom themes here, relative to this directory.
103 | html_theme_path = ["_themes"]
104 |
105 | # The name for this set of Sphinx documents. If None, it defaults to
106 | # "