Skip to content

Instantly share code, notes, and snippets.

@savage69kr
Created January 27, 2011 09:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save savage69kr/798297 to your computer and use it in GitHub Desktop.
Save savage69kr/798297 to your computer and use it in GitHub Desktop.
var html =
<form>
<input type="text">
</form>;
var data = function()
{
/*!
{"embed":{ "id":"form" } }
<form>
<input type="text" name="user"/>
<input type="text" name="password"/>
</form>
*/
/*!
{"embed":{ "id":"button"} }
<button value="Send">
*/
}
var parsedData = window.parseEmbeds(data);
alert( parsedData.form )
alert( parsedData.button );
(function(window)
{
window.parseEmbeds = function( fn, opt )
{
var dataObj = {}
var regex_comments = /\*(.|[\r\n])*?\*/gi;
var code = fn.toString().match( regex_comments );
var comment;
var lines;
var outputString;
var trim11 =function(str){str = str.replace(/^\s+/, '');for (var i = str.length - 1; i >= 0; i--) {if (/\S/.test(str.charAt(i))) {str = str.substring(0, i + 1);break;}}return str;};
for( var i=0; i<code.length; i++ )
{
comment = code[ i ];
if( comment.indexOf('{"embed":')!=-1 )
{
lines = comment.split('\n');
outputString = "";
for( var e=2; e
<lines.length-1; e++ )
{
outputString+=trim11(lines[e]);
}
dataObj[ JSON.parse( lines[ 1 ] ).embed.id ] = outputString;
}
}
return dataObj;
}
})(window);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment