summaryrefslogtreecommitdiff
path: root/doc/todo
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-08-14 20:17:12 -0400
committerJoey Hess <joey@kitenet.net>2010-08-14 20:17:12 -0400
commit52e3f698bc8fafdab4d911d925d214981ebd8d25 (patch)
tree31886f89c3dbda77b1f41a0be802a0e9fcc41494 /doc/todo
parent8591fa48633375aab0e2ff4dbef940984dc7c381 (diff)
respond, open wishlist todo item with design
Diffstat (limited to 'doc/todo')
-rw-r--r--doc/todo/generic_insert_links24
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/todo/generic_insert_links b/doc/todo/generic_insert_links
new file mode 100644
index 000000000..050f32ee7
--- /dev/null
+++ b/doc/todo/generic_insert_links
@@ -0,0 +1,24 @@
+The attachment plugin's Insert Links button currently only knows
+how to insert plain wikilinks and img directives (for images).
+
+[[wishlist]]: Generalize this, so a plugin can cause arbitrary text
+to be inserted for a particular file. --[[Joey]]
+
+Design:
+
+Add an insertlinks hook. Each plugin using the hook would be called,
+and passed the filename of the attachment. If it knows how to handle
+the file type, it returns a the text that should be inserted on the page.
+If not, it returns undef, and the next plugin is tried.
+
+This would mean writing plugins in order to handle links for
+special kinds of attachments. To avoid that for simple stuff,
+a fallback plugin could run last and look for a template
+named like `templates/embed_$extension`, and insert a directive like:
+
+ \[[!template id=embed_vp8 file=my_movie.vp8]]
+
+Then to handle a new file type, a user could just make a template
+that expands to some relevant html. In the example above,
+`templates/embed_vp8` could make a html5 video tag, possibly with some
+flash fallback code even.