FORGE-214 - Add oembed support to our markdown extension

This commit includes oembed support via the following syntaxes:
[embed#URL]
[embed#(WIDTH,HEIGHT)URL]
where URL, WIDTH, and HEIGHT are user-provided and the rest are literal.

All oembedded objects are served from an iframe on the host specified in the
.ini file. For development.ini, for instance, this is oembed.localhost.localdomain:8080.
This is in order to prevent cross-site-scripting attacks. This commit provides support
for a number of different OEmbed providers; see oembed.ini for more details.

This commit also moves support for WikiWords into a separate Markdown instance
with an extension that handles the CamelCase recognition and auto-linking.

Rick Copeland Rick Copeland 2010-02-05

added pyforge/pyforge/controllers/oembed.py
added pyforge/pyforge/templates/oembed/link.html
added pyforge/pyforge/templates/oembed/html.html
added pyforge/pyforge/templates/oembed/photo.html
added pyforge/pyforge/templates/oembed/__init__.py
added pyforge/pyforge/templates/oembed/link_twitter.html
added pyforge/pyforge/templates/oembed/link_opera.html
added pyforge/pyforge/templates/oembed/generic.html
added pyforge/pyforge/tests/functional/test_oembed.py
added pyforge/oembed.ini
changed ForgeWiki/forgewiki/model/__init__.py
changed ForgeWiki/forgewiki/model/wiki.py
changed pyforge/pyforge/controllers/root.py
changed pyforge/pyforge/controllers/test.py
changed pyforge/pyforge/lib/app_globals.py
changed pyforge/pyforge/lib/markdown_extensions.py
changed pyforge/pyforge/model/artifact.py
changed pyforge/pyforge/tests/functional/test_admin.py
changed pyforge/pyforge/tests/test_globals.py
changed pyforge/development.ini
changed pyforge/sandbox.ini
changed pyforge/setup.py
pyforge/pyforge/controllers/oembed.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/link.html Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/html.html Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/photo.html Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/__init__.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/link_twitter.html Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/link_opera.html Diff Switch to side-by-side view
Loading...
pyforge/pyforge/templates/oembed/generic.html Diff Switch to side-by-side view
Loading...
pyforge/pyforge/tests/functional/test_oembed.py Diff Switch to side-by-side view
Loading...
pyforge/oembed.ini Diff Switch to side-by-side view
Loading...
ForgeWiki/forgewiki/model/__init__.py Diff Switch to side-by-side view
Loading...
ForgeWiki/forgewiki/model/wiki.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/controllers/root.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/controllers/test.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/lib/app_globals.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/lib/markdown_extensions.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/model/artifact.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/tests/functional/test_admin.py Diff Switch to side-by-side view
Loading...
pyforge/pyforge/tests/test_globals.py Diff Switch to side-by-side view
Loading...
pyforge/development.ini Diff Switch to side-by-side view
Loading...
pyforge/sandbox.ini Diff Switch to side-by-side view
Loading...
pyforge/setup.py Diff Switch to side-by-side view
Loading...