aboutsummaryrefslogtreecommitdiffstats
path: root/docs/wiki_widgets.js
diff options
context:
space:
mode:
authorMisko Hevery2010-10-27 15:31:10 -0700
committerIgor Minar2010-11-03 09:47:22 -0700
commit659af29adbd041fbbbaf041ead53266210a61f4e (patch)
tree32a9ecff4482ae883321e2975fe74057795b21d1 /docs/wiki_widgets.js
parent1fe7e3a1302e948a31ab80d02ede6975c3bddd58 (diff)
downloadangular.js-659af29adbd041fbbbaf041ead53266210a61f4e.tar.bz2
jsdoc parser + generator + viewer + scenario runner
- parse jsdocs from source code - generate prerendered (markdown + mustache) partials - generate json - generate scenario runner for examples in docs - basic angular doc viewer
Diffstat (limited to 'docs/wiki_widgets.js')
-rw-r--r--docs/wiki_widgets.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/wiki_widgets.js b/docs/wiki_widgets.js
new file mode 100644
index 00000000..0147536b
--- /dev/null
+++ b/docs/wiki_widgets.js
@@ -0,0 +1,51 @@
+(function(){
+ var HTML_TEMPLATE =
+ '<!DOCTYPE HTML>\n' +
+ '<html xmlns:ng="http://angularjs.org">\n' +
+ ' <head>\n' +
+ ' <script type="text/javascript"\n' +
+ ' src="http://angularjs.org/ng/js/angular-debug.js" ng:autobind></script>\n' +
+ ' </head>\n' +
+ ' <body>\n' +
+ '_HTML_SOURCE_\n' +
+ ' </body>\n' +
+ '</html>';
+
+ angular.widget('WIKI:SOURCE', function(element){
+ this.descend(true);
+ var html = element.text();
+ element.show();
+ var tabs = angular.element(
+ '<ul class="tabs">' +
+ '<li class="tab selected" to="angular">&lt;angular/&gt;</li>' +
+ '<li class="tab" to="plain">plain</li>' +
+ '<li class="tab" to="source">source</li>' +
+ '<li class="pane selected angular">' + html + '</li>' +
+ '<li class="pane plain" ng:non-bindable>' + html + '</li>' +
+ '<li class="pane source" ng:non-bindable><pre class="brush: js; html-script: true"></pre></li>' +
+ '</ul>');
+ var pre = tabs.
+ find('>li.source>pre').
+ text(HTML_TEMPLATE.replace('_HTML_SOURCE_', html));
+ var color = element.attr('color') || 'white';
+ element.html('');
+ element.append(tabs);
+ element.find('>ul.tabs>li.pane').css('background-color', color);
+ var script = (html.match(/<script[^\>]*>([\s\S]*)<\/script>/) || [])[1] || '';
+ try {
+ eval(script);
+ } catch (e) {
+ alert(e);
+ }
+ return function(element){
+ element.find('>ul.tabs>li.tab').click(function(){
+ if ($(this).is(".selected")) return;
+ element.
+ find('>ul.tabs>li.selected').
+ add(this).
+ add(element.find('>ul>li.pane.' + angular.element(this).attr('to'))).
+ toggleClass('selected');
+ });
+ };
+ });
+})(); \ No newline at end of file