Initial support for shortcodes.
Merge shortcodes branch