(function() { var angularJsUrl; var scripts = document.getElementsByTagName("script"); var angularJsRegex = /^(|.*\/)angular(-.*?)?(\.min)?.js(\?[^#]*)?(#(.*))?$/; for(var j = 0; j < scripts.length; j++) { var src = scripts[j].src; if (src && src.match(angularJsRegex)) { angularJsUrl = src.replace('docs.angularjs.org', 'code.angularjs.org'); continue; } } var HTML_TEMPLATE = '\n' + '\n' + ' \n' + '_SCRIPT_SOURCE_' + '
\n' + '_HTML_SOURCE_\n' + ' \n' + ''; angular.widget('doc:example', ['$injector', '$element', function($injector, element){ this.descend(true); //compile the example code var module = element.attr('module') || ''; //jQuery find() methods in this widget contain primitive selectors on purpose so that we can use //jqlite instead. jqlite's find() method currently supports onlt getElementsByTagName! var example = element.find('pre').eq(0), //doc-source scriptSrc = '', htmlSrc = example.text().replace(/\n' : ''). replace('_HTML_SOURCE_', indent(htmlSrc, ' ')). replace('_MODULE_', module ? '="' + module + '"' : '')); element.html(''); element.append(tabs); try { if (window.execScript) { // IE window.execScript(scriptSrc || '"stupid IE!"'); // IE complains when evaling empty string } else { window.eval(scriptSrc); } } catch (e) { alert(e); } if (module) { $injector.invoke(null, angular.module[module]); } function jsFiddleButton(jsfiddle) { var fixJsFiddleIssue132 = true; if (jsfiddle !== 'false') { if(jsfiddle === true) { //dynamically generate a fiddle var fiddleUrl = 'http://jsfiddle.net/api/post/library/pure/'; function jsFiddleEscape(text, prefix) { return indent(text.replace(/<\/textarea>/gi,'</textarea>'), prefix); } return '