Ever wanted to just add a link to a YouTube or Vimeo video in your content and have the system convert it to the right embed code? How about a Tweet, or a Gist? If the embed changes (or your design changes!) how cool would it be to just update a central location and have all your embeds update?
Oh, and ever tried to man handle a large embed in a rich text editor like tinyMCE? It can be more than a bit messy. One seriously cool solution is to post-process your content. Have contributors add URLs or “ShortCodes” into their content and then let the view automatically determine what the right embed should be.
For example, simple URLs for a YouTube video and a Tweet in the body content…
get transformed into a beautiful embed for your page
Post processing can be added to a webskin using the
@@postprocess webskin decorator, and those transformations will be applied before the webskin is cached:
<!--- @@postprocess: youtube(width=720,height=405);gist;twitter --->
This can be applied more selectively with a function or a tag:
<!--- using a function call ---> <cfset result = application.fc.lib.postprocess.apply(stObj.body,"youtube(width=720,height=405);gist")> <!--- using a custom tag call from the ./tags/webskin library ---> <skin:postprocess functions="youtube(width=720,height=405);gist">#stObj.body#</skin:postprocess>
The function strings must be a semi-colon ( ; ) separated list of functions in the form:
- an optional library name (this is the name of a component in the lib package in core, your project, or any plugin)
- optional arguments (must be named)
These embed functions have been included in core by default:
youtube([width],[height])recognises standard and shortform YouTube video URLs
- vimeo([width],[height]) for the Vimeo video service http://vimeo.com/
gistembeds GitHub code Gists https://gist.github.com/
removewhitespaceto deal with excessive whitespace
rewriteImagesto help with legacy image sources if you are migrating to a CDN
vine([width],[height],[type])looping video embeds https://vine.co/
polldaddysurveys and polls http://polldaddy.com/
You can add your own project specific post-processing functions by creating a
./packages/lib/postprocess.cfc component and extending
./core/packages/lib/postprocess.cfc from the core framework.
View post processing functions were added in the FarCry 6.2.3 release, and is available in every release since