praxis 0.19.0 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/CHANGELOG.md +16 -0
- data/lib/api_browser/Gruntfile.js +125 -16
- data/lib/api_browser/app/index.html +5 -1
- data/lib/api_browser/app/js/directives/fixed_if_fits.js +28 -17
- data/lib/api_browser/app/js/directives/highlight.js +14 -0
- data/lib/api_browser/app/js/directives/request_examples.js +29 -0
- data/lib/api_browser/app/js/factories/Documentation.js +6 -0
- data/lib/api_browser/app/js/factories/Example.js +47 -0
- data/lib/api_browser/app/js/factories/prepare_template.js +15 -0
- data/lib/api_browser/app/js/factories/template_for.js +2 -12
- data/lib/api_browser/app/sass/modules/_sidebar.scss +2 -0
- data/lib/api_browser/app/views/action.html +6 -24
- data/lib/api_browser/app/views/examples/general.html +26 -0
- data/lib/api_browser/{bower.json → bower_template.json} +13 -3
- data/lib/api_browser/package.json +3 -1
- data/lib/praxis/application.rb +2 -0
- data/lib/praxis/docs/generator.rb +4 -2
- data/lib/praxis/extensions/field_selection/field_selector.rb +1 -0
- data/lib/praxis/media_type.rb +1 -1
- data/lib/praxis/plugin.rb +4 -0
- data/lib/praxis/plugin_concern.rb +2 -1
- data/lib/praxis/tasks/api_docs.rb +9 -2
- data/lib/praxis/version.rb +1 -1
- data/praxis.gemspec +2 -2
- data/spec/praxis/action_definition_spec.rb +26 -1
- data/spec/praxis/extensions/field_selection/field_selector_spec.rb +4 -0
- data/spec/praxis/media_type_spec.rb +4 -3
- data/spec/support/spec_media_types.rb +5 -1
- metadata +12 -242
- data/lib/api_browser/app/bower_components/angular-mocks/.bower.json +0 -19
- data/lib/api_browser/app/bower_components/angular-mocks/README.md +0 -63
- data/lib/api_browser/app/bower_components/angular-mocks/angular-mocks.js +0 -2452
- data/lib/api_browser/app/bower_components/angular-mocks/bower.json +0 -9
- data/lib/api_browser/app/bower_components/angular-mocks/ngAnimateMock.js +0 -2
- data/lib/api_browser/app/bower_components/angular-mocks/ngMock.js +0 -2
- data/lib/api_browser/app/bower_components/angular-mocks/ngMockE2E.js +0 -2
- data/lib/api_browser/app/bower_components/angular-mocks/package.json +0 -27
- data/lib/api_browser/app/bower_components/angular-sanitize/.bower.json +0 -19
- data/lib/api_browser/app/bower_components/angular-sanitize/README.md +0 -68
- data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.js +0 -683
- data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js +0 -16
- data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js.map +0 -8
- data/lib/api_browser/app/bower_components/angular-sanitize/bower.json +0 -9
- data/lib/api_browser/app/bower_components/angular-sanitize/index.js +0 -2
- data/lib/api_browser/app/bower_components/angular-sanitize/package.json +0 -26
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/.bower.json +0 -31
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/bower.json +0 -19
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-csp.css +0 -6
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.js +0 -4840
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.min.js +0 -10
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.js +0 -4461
- data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.min.js +0 -9
- data/lib/api_browser/app/bower_components/angular-ui-router/.bower.json +0 -33
- data/lib/api_browser/app/bower_components/angular-ui-router/CHANGELOG.md +0 -228
- data/lib/api_browser/app/bower_components/angular-ui-router/CONTRIBUTING.md +0 -65
- data/lib/api_browser/app/bower_components/angular-ui-router/LICENSE +0 -21
- data/lib/api_browser/app/bower_components/angular-ui-router/README.md +0 -245
- data/lib/api_browser/app/bower_components/angular-ui-router/api/angular-ui-router.d.ts +0 -126
- data/lib/api_browser/app/bower_components/angular-ui-router/bower.json +0 -23
- data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.js +0 -4370
- data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.min.js +0 -7
- data/lib/api_browser/app/bower_components/angular-ui-router/src/common.js +0 -292
- data/lib/api_browser/app/bower_components/angular-ui-router/src/resolve.js +0 -252
- data/lib/api_browser/app/bower_components/angular-ui-router/src/state.js +0 -1465
- data/lib/api_browser/app/bower_components/angular-ui-router/src/stateDirectives.js +0 -285
- data/lib/api_browser/app/bower_components/angular-ui-router/src/stateFilters.js +0 -39
- data/lib/api_browser/app/bower_components/angular-ui-router/src/templateFactory.js +0 -110
- data/lib/api_browser/app/bower_components/angular-ui-router/src/urlMatcherFactory.js +0 -1050
- data/lib/api_browser/app/bower_components/angular-ui-router/src/urlRouter.js +0 -427
- data/lib/api_browser/app/bower_components/angular-ui-router/src/view.js +0 -71
- data/lib/api_browser/app/bower_components/angular-ui-router/src/viewDirective.js +0 -303
- data/lib/api_browser/app/bower_components/angular-ui-router/src/viewScroll.js +0 -52
- data/lib/api_browser/app/bower_components/angular/.bower.json +0 -17
- data/lib/api_browser/app/bower_components/angular/README.md +0 -64
- data/lib/api_browser/app/bower_components/angular/angular-csp.css +0 -21
- data/lib/api_browser/app/bower_components/angular/angular.js +0 -28133
- data/lib/api_browser/app/bower_components/angular/angular.min.js +0 -289
- data/lib/api_browser/app/bower_components/angular/angular.min.js.gzip +0 -0
- data/lib/api_browser/app/bower_components/angular/angular.min.js.map +0 -8
- data/lib/api_browser/app/bower_components/angular/bower.json +0 -8
- data/lib/api_browser/app/bower_components/angular/index.js +0 -2
- data/lib/api_browser/app/bower_components/angular/package.json +0 -25
- data/lib/api_browser/app/bower_components/bootstrap-sass/.bower.json +0 -41
- data/lib/api_browser/app/bower_components/bootstrap-sass/CHANGELOG.md +0 -108
- data/lib/api_browser/app/bower_components/bootstrap-sass/CONTRIBUTING.md +0 -79
- data/lib/api_browser/app/bower_components/bootstrap-sass/README.md +0 -218
- data/lib/api_browser/app/bower_components/bootstrap-sass/bower.json +0 -22
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -229
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap.js +0 -12
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/affix.js +0 -126
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/alert.js +0 -98
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/button.js +0 -115
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/carousel.js +0 -217
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/collapse.js +0 -179
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/dropdown.js +0 -154
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/modal.js +0 -246
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/popover.js +0 -117
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/scrollspy.js +0 -158
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/tab.js +0 -135
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/tooltip.js +0 -386
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/transition.js +0 -56
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap.scss +0 -1
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_alerts.scss +0 -67
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_badges.scss +0 -51
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +0 -23
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_button-groups.scss +0 -227
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_buttons.scss +0 -155
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_carousel.scss +0 -232
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_close.scss +0 -35
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_code.scss +0 -53
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_component-animations.scss +0 -29
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +0 -188
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_forms.scss +0 -374
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_glyphicons.scss +0 -237
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_grid.scss +0 -79
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_input-groups.scss +0 -136
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_jumbotron.scss +0 -46
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_labels.scss +0 -64
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_list-group.scss +0 -88
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_media.scss +0 -56
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_mixins.scss +0 -848
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_modals.scss +0 -129
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_navbar.scss +0 -616
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_navs.scss +0 -242
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_normalize.scss +0 -406
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_pager.scss +0 -55
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_pagination.scss +0 -85
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_panels.scss +0 -182
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_popovers.scss +0 -133
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_print.scss +0 -105
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +0 -80
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +0 -198
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +0 -119
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_tables.scss +0 -231
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_theme.scss +0 -247
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +0 -38
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_tooltip.scss +0 -95
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_type.scss +0 -281
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_utilities.scss +0 -56
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_variables.scss +0 -646
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_wells.scss +0 -29
- data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/bootstrap.scss +0 -49
- data/lib/api_browser/app/bower_components/jquery/.bower.json +0 -38
- data/lib/api_browser/app/bower_components/jquery/MIT-LICENSE.txt +0 -21
- data/lib/api_browser/app/bower_components/jquery/bower.json +0 -27
- data/lib/api_browser/app/bower_components/jquery/dist/jquery.js +0 -9190
- data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.map +0 -1
- data/lib/api_browser/app/bower_components/jquery/src/ajax.js +0 -806
- data/lib/api_browser/app/bower_components/jquery/src/ajax/jsonp.js +0 -89
- data/lib/api_browser/app/bower_components/jquery/src/ajax/load.js +0 -75
- data/lib/api_browser/app/bower_components/jquery/src/ajax/parseJSON.js +0 -13
- data/lib/api_browser/app/bower_components/jquery/src/ajax/parseXML.js +0 -28
- data/lib/api_browser/app/bower_components/jquery/src/ajax/script.js +0 -64
- data/lib/api_browser/app/bower_components/jquery/src/ajax/var/nonce.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/ajax/var/rquery.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/ajax/xhr.js +0 -135
- data/lib/api_browser/app/bower_components/jquery/src/attributes.js +0 -11
- data/lib/api_browser/app/bower_components/jquery/src/attributes/attr.js +0 -143
- data/lib/api_browser/app/bower_components/jquery/src/attributes/classes.js +0 -158
- data/lib/api_browser/app/bower_components/jquery/src/attributes/prop.js +0 -96
- data/lib/api_browser/app/bower_components/jquery/src/attributes/support.js +0 -35
- data/lib/api_browser/app/bower_components/jquery/src/attributes/val.js +0 -163
- data/lib/api_browser/app/bower_components/jquery/src/callbacks.js +0 -205
- data/lib/api_browser/app/bower_components/jquery/src/core.js +0 -498
- data/lib/api_browser/app/bower_components/jquery/src/core/access.js +0 -60
- data/lib/api_browser/app/bower_components/jquery/src/core/init.js +0 -123
- data/lib/api_browser/app/bower_components/jquery/src/core/parseHTML.js +0 -39
- data/lib/api_browser/app/bower_components/jquery/src/core/ready.js +0 -97
- data/lib/api_browser/app/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
- data/lib/api_browser/app/bower_components/jquery/src/css.js +0 -451
- data/lib/api_browser/app/bower_components/jquery/src/css/addGetHookIf.js +0 -24
- data/lib/api_browser/app/bower_components/jquery/src/css/curCSS.js +0 -57
- data/lib/api_browser/app/bower_components/jquery/src/css/defaultDisplay.js +0 -70
- data/lib/api_browser/app/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
- data/lib/api_browser/app/bower_components/jquery/src/css/support.js +0 -91
- data/lib/api_browser/app/bower_components/jquery/src/css/swap.js +0 -28
- data/lib/api_browser/app/bower_components/jquery/src/css/var/cssExpand.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/css/var/getStyles.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/css/var/isHidden.js +0 -13
- data/lib/api_browser/app/bower_components/jquery/src/css/var/rmargin.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/data.js +0 -179
- data/lib/api_browser/app/bower_components/jquery/src/data/Data.js +0 -181
- data/lib/api_browser/app/bower_components/jquery/src/data/accepts.js +0 -20
- data/lib/api_browser/app/bower_components/jquery/src/data/var/data_priv.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/data/var/data_user.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/deferred.js +0 -149
- data/lib/api_browser/app/bower_components/jquery/src/deprecated.js +0 -13
- data/lib/api_browser/app/bower_components/jquery/src/dimensions.js +0 -50
- data/lib/api_browser/app/bower_components/jquery/src/effects.js +0 -649
- data/lib/api_browser/app/bower_components/jquery/src/effects/Tween.js +0 -114
- data/lib/api_browser/app/bower_components/jquery/src/effects/animatedSelector.js +0 -13
- data/lib/api_browser/app/bower_components/jquery/src/event.js +0 -868
- data/lib/api_browser/app/bower_components/jquery/src/event/alias.js +0 -39
- data/lib/api_browser/app/bower_components/jquery/src/event/support.js +0 -9
- data/lib/api_browser/app/bower_components/jquery/src/exports/amd.js +0 -24
- data/lib/api_browser/app/bower_components/jquery/src/exports/global.js +0 -32
- data/lib/api_browser/app/bower_components/jquery/src/intro.js +0 -44
- data/lib/api_browser/app/bower_components/jquery/src/jquery.js +0 -36
- data/lib/api_browser/app/bower_components/jquery/src/manipulation.js +0 -582
- data/lib/api_browser/app/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
- data/lib/api_browser/app/bower_components/jquery/src/manipulation/support.js +0 -31
- data/lib/api_browser/app/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/offset.js +0 -204
- data/lib/api_browser/app/bower_components/jquery/src/outro.js +0 -1
- data/lib/api_browser/app/bower_components/jquery/src/queue.js +0 -142
- data/lib/api_browser/app/bower_components/jquery/src/queue/delay.js +0 -22
- data/lib/api_browser/app/bower_components/jquery/src/selector-native.js +0 -172
- data/lib/api_browser/app/bower_components/jquery/src/selector-sizzle.js +0 -14
- data/lib/api_browser/app/bower_components/jquery/src/selector.js +0 -1
- data/lib/api_browser/app/bower_components/jquery/src/serialize.js +0 -111
- data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2044
- data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
- data/lib/api_browser/app/bower_components/jquery/src/traversing.js +0 -200
- data/lib/api_browser/app/bower_components/jquery/src/traversing/findFilter.js +0 -100
- data/lib/api_browser/app/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
- data/lib/api_browser/app/bower_components/jquery/src/var/arr.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/var/class2type.js +0 -4
- data/lib/api_browser/app/bower_components/jquery/src/var/concat.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/var/hasOwn.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/var/indexOf.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/var/pnum.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/var/push.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/var/rnotwhite.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/var/slice.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/var/strundefined.js +0 -3
- data/lib/api_browser/app/bower_components/jquery/src/var/support.js +0 -4
- data/lib/api_browser/app/bower_components/jquery/src/var/toString.js +0 -5
- data/lib/api_browser/app/bower_components/jquery/src/wrap.js +0 -78
- data/lib/api_browser/app/bower_components/lodash/.bower.json +0 -30
- data/lib/api_browser/app/bower_components/lodash/LICENSE.txt +0 -22
- data/lib/api_browser/app/bower_components/lodash/bower.json +0 -20
- data/lib/api_browser/app/bower_components/lodash/lodash.js +0 -12235
- data/lib/api_browser/app/bower_components/lodash/lodash.min.js +0 -98
- data/lib/api_browser/app/bower_components/showdown/.bower.json +0 -39
- data/lib/api_browser/app/bower_components/showdown/.jshintignore +0 -2
- data/lib/api_browser/app/bower_components/showdown/.travis.yml +0 -8
- data/lib/api_browser/app/bower_components/showdown/Gruntfile.js +0 -100
- data/lib/api_browser/app/bower_components/showdown/README.md +0 -317
- data/lib/api_browser/app/bower_components/showdown/bower.json +0 -26
- data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.js +0 -1606
- data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.js.map +0 -1
- data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.min.js +0 -2
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/github.min.js +0 -2
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/github.min.js.map +0 -1
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js +0 -2
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js.map +0 -1
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/table.min.js +0 -2
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/table.min.js.map +0 -1
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/twitter.min.js +0 -2
- data/lib/api_browser/app/bower_components/showdown/compressed/extensions/twitter.min.js.map +0 -1
- data/lib/api_browser/app/bower_components/showdown/license.txt +0 -34
- data/lib/api_browser/app/bower_components/showdown/package.json +0 -47
- data/lib/api_browser/app/bower_components/showdown/src/extensions/github.js +0 -25
- data/lib/api_browser/app/bower_components/showdown/src/extensions/prettify.js +0 -29
- data/lib/api_browser/app/bower_components/showdown/src/extensions/table.js +0 -106
- data/lib/api_browser/app/bower_components/showdown/src/extensions/twitter.js +0 -42
- data/lib/api_browser/app/bower_components/showdown/src/ng-showdown.js +0 -150
- data/lib/api_browser/app/bower_components/showdown/src/showdown.js +0 -1454
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["..\\src\\showdown.js","..\\src\\ng-showdown.js"],"names":[],"mappings":"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","file":"showdown.js","sourcesContent":["//\r\n// showdown.js -- A javascript port of Markdown.\r\n//\r\n// Copyright (c) 2007 John Fraser.\r\n//\r\n// Original Markdown Copyright (c) 2004-2005 John Gruber\r\n// <http://daringfireball.net/projects/markdown/>\r\n//\r\n// Redistributable under a BSD-style open source license.\r\n// See license.txt for more information.\r\n//\r\n// The full source distribution is at:\r\n//\r\n//\t\t\t\tA A L\r\n//\t\t\t\tT C A\r\n//\t\t\t\tT K B\r\n//\r\n// <http://www.attacklab.net/>\r\n//\r\n\r\n//\r\n// Wherever possible, Showdown is a straight, line-by-line port\r\n// of the Perl version of Markdown.\r\n//\r\n// This is not a normal parser design; it's basically just a\r\n// series of string substitutions. It's hard to read and\r\n// maintain this way, but keeping Showdown close to the original\r\n// design makes it easier to port new features.\r\n//\r\n// More importantly, Showdown behaves like markdown.pl in most\r\n// edge cases. So web applications can do client-side preview\r\n// in Javascript, and then build identical HTML on the server.\r\n//\r\n// This port needs the new RegExp functionality of ECMA 262,\r\n// 3rd Edition (i.e. Javascript 1.5). Most modern web browsers\r\n// should do fine. Even with the new regular expression features,\r\n// We do a lot of work to emulate Perl's regex functionality.\r\n// The tricky changes in this file mostly have the \"attacklab:\"\r\n// label. Major or self-explanatory changes don't.\r\n//\r\n// Smart diff tools like Araxis Merge will be able to match up\r\n// this file with markdown.pl in a useful way. A little tweaking\r\n// helps: in a copy of markdown.pl, replace \"#\" with \"//\" and\r\n// replace \"$text\" with \"text\". Be sure to ignore whitespace\r\n// and line endings.\r\n//\r\n\r\n\r\n//\r\n// Showdown usage:\r\n//\r\n// var text = \"Markdown *rocks*.\";\r\n//\r\n// var converter = new Showdown.converter();\r\n// var html = converter.makeHtml(text);\r\n//\r\n// alert(html);\r\n//\r\n// Note: move the sample code to the bottom of this\r\n// file before uncommenting it.\r\n//\r\n\r\n\r\n//\r\n// Showdown namespace\r\n//\r\nvar Showdown = {extensions: {}};\r\n\r\n//\r\n// forEach\r\n//\r\nvar forEach = Showdown.forEach = function (obj, callback) {\r\n if (typeof obj.forEach === 'function') {\r\n obj.forEach(callback);\r\n } else {\r\n var i, len = obj.length;\r\n for (i = 0; i < len; i++) {\r\n callback(obj[i], i, obj);\r\n }\r\n }\r\n};\r\n\r\n//\r\n// Standard extension naming\r\n//\r\nvar stdExtName = function (s) {\r\n return s.replace(/[_-]||\\s/g, '').toLowerCase();\r\n};\r\n\r\n//\r\n// converter\r\n//\r\n// Wraps all \"globals\" so that the only thing\r\n// exposed is makeHtml().\r\n//\r\nShowdown.converter = function (converter_options) {\r\n\r\n//\r\n// Globals:\r\n//\r\n\r\n// Global hashes, used by various utility routines\r\n var g_urls;\r\n var g_titles;\r\n var g_html_blocks;\r\n\r\n// Used to track when we're inside an ordered or unordered list\r\n// (see _ProcessListItems() for details):\r\n var g_list_level = 0;\r\n\r\n// Global extensions\r\n var g_lang_extensions = [];\r\n var g_output_modifiers = [];\r\n\r\n\r\n//\r\n// Automatic Extension Loading (node only):\r\n//\r\n if (typeof module !== 'undefined' && typeof exports !== 'undefined' && typeof require !== 'undefined') {\r\n var fs = require('fs');\r\n\r\n if (fs) {\r\n // Search extensions folder\r\n var extensions = fs.readdirSync((__dirname || '.') + '/extensions').filter(function (file) {\r\n return ~file.indexOf('.js');\r\n }).map(function (file) {\r\n return file.replace(/\\.js$/, '');\r\n });\r\n // Load extensions into Showdown namespace\r\n Showdown.forEach(extensions, function (ext) {\r\n var name = stdExtName(ext);\r\n Showdown.extensions[name] = require('./extensions/' + ext);\r\n });\r\n }\r\n }\r\n\r\n this.makeHtml = function (text) {\r\n//\r\n// Main function. The order in which other subs are called here is\r\n// essential. Link and image substitutions need to happen before\r\n// _EscapeSpecialCharsWithinTagAttributes(), so that any *'s or _'s in the <a>\r\n// and <img> tags get encoded.\r\n//\r\n\r\n // Clear the global hashes. If we don't clear these, you get conflicts\r\n // from other articles when generating a page which contains more than\r\n // one article (e.g. an index page that shows the N most recent\r\n // articles):\r\n g_urls = {};\r\n g_titles = {};\r\n g_html_blocks = [];\r\n\r\n // attacklab: Replace ~ with ~T\r\n // This lets us use tilde as an escape char to avoid md5 hashes\r\n // The choice of character is arbitray; anything that isn't\r\n // magic in Markdown will work.\r\n text = text.replace(/~/g, \"~T\");\r\n\r\n // attacklab: Replace $ with ~D\r\n // RegExp interprets $ as a special character\r\n // when it's in a replacement string\r\n text = text.replace(/\\$/g, \"~D\");\r\n\r\n // Standardize line endings\r\n text = text.replace(/\\r\\n/g, \"\\n\"); // DOS to Unix\r\n text = text.replace(/\\r/g, \"\\n\"); // Mac to Unix\r\n\r\n // Make sure text begins and ends with a couple of newlines:\r\n text = \"\\n\\n\" + text + \"\\n\\n\";\r\n\r\n // Convert all tabs to spaces.\r\n text = _Detab(text);\r\n\r\n // Strip any lines consisting only of spaces and tabs.\r\n // This makes subsequent regexen easier to write, because we can\r\n // match consecutive blank lines with /\\n+/ instead of something\r\n // contorted like /[ \\t]*\\n+/ .\r\n text = text.replace(/^[ \\t]+$/mg, \"\");\r\n\r\n // Run language extensions\r\n Showdown.forEach(g_lang_extensions, function (x) {\r\n text = _ExecuteExtension(x, text);\r\n });\r\n\r\n // Handle github codeblocks prior to running HashHTML so that\r\n // HTML contained within the codeblock gets escaped propertly\r\n text = _DoGithubCodeBlocks(text);\r\n\r\n // Turn block-level HTML blocks into hash entries\r\n text = _HashHTMLBlocks(text);\r\n\r\n // Strip link definitions, store in hashes.\r\n text = _StripLinkDefinitions(text);\r\n\r\n text = _RunBlockGamut(text);\r\n\r\n text = _UnescapeSpecialChars(text);\r\n\r\n // attacklab: Restore dollar signs\r\n text = text.replace(/~D/g, \"$$\");\r\n\r\n // attacklab: Restore tildes\r\n text = text.replace(/~T/g, \"~\");\r\n\r\n // Run output modifiers\r\n Showdown.forEach(g_output_modifiers, function (x) {\r\n text = _ExecuteExtension(x, text);\r\n });\r\n\r\n return text;\r\n };\r\n\r\n\r\n//\r\n// Options:\r\n//\r\n\r\n// Parse extensions options into separate arrays\r\n if (converter_options && converter_options.extensions) {\r\n\r\n var self = this;\r\n\r\n // Iterate over each plugin\r\n Showdown.forEach(converter_options.extensions, function (plugin) {\r\n\r\n // Assume it's a bundled plugin if a string is given\r\n if (typeof plugin === 'string') {\r\n plugin = Showdown.extensions[stdExtName(plugin)];\r\n }\r\n\r\n if (typeof plugin === 'function') {\r\n // Iterate over each extension within that plugin\r\n Showdown.forEach(plugin(self), function (ext) {\r\n // Sort extensions by type\r\n if (ext.type) {\r\n if (ext.type === 'language' || ext.type === 'lang') {\r\n g_lang_extensions.push(ext);\r\n } else if (ext.type === 'output' || ext.type === 'html') {\r\n g_output_modifiers.push(ext);\r\n }\r\n } else {\r\n // Assume language extension\r\n g_output_modifiers.push(ext);\r\n }\r\n });\r\n } else {\r\n throw \"Extension '\" + plugin + \"' could not be loaded. It was either not found or is not a valid extension.\";\r\n }\r\n });\r\n }\r\n\r\n\r\n var _ExecuteExtension = function (ext, text) {\r\n if (ext.regex) {\r\n var re = new RegExp(ext.regex, 'g');\r\n return text.replace(re, ext.replace);\r\n } else if (ext.filter) {\r\n return ext.filter(text);\r\n }\r\n };\r\n\r\n var _StripLinkDefinitions = function (text) {\r\n//\r\n// Strips link definitions from text, stores the URLs and titles in\r\n// hash references.\r\n//\r\n\r\n // Link defs are in the form: ^[id]: url \"optional title\"\r\n\r\n /*\r\n var text = text.replace(/\r\n ^[ ]{0,3}\\[(.+)\\]: // id = $1 attacklab: g_tab_width - 1\r\n [ \\t]*\r\n \\n?\t\t\t\t// maybe *one* newline\r\n [ \\t]*\r\n <?(\\S+?)>?\t\t\t// url = $2\r\n [ \\t]*\r\n \\n?\t\t\t\t// maybe one newline\r\n [ \\t]*\r\n (?:\r\n (\\n*)\t\t\t\t// any lines skipped = $3 attacklab: lookbehind removed\r\n [\"(]\r\n (.+?)\t\t\t\t// title = $4\r\n [\")]\r\n [ \\t]*\r\n )?\t\t\t\t\t// title is optional\r\n (?:\\n+|$)\r\n /gm,\r\n function(){...});\r\n */\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/^[ ]{0,3}\\[(.+)\\]:[ \\t]*\\n?[ \\t]*<?(\\S+?)>?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n m1 = m1.toLowerCase();\r\n g_urls[m1] = _EncodeAmpsAndAngles(m2); // Link IDs are case-insensitive\r\n if (m3) {\r\n // Oops, found blank lines, so it's not a title.\r\n // Put back the parenthetical statement we stole.\r\n return m3 + m4;\r\n } else if (m4) {\r\n g_titles[m1] = m4.replace(/\"/g, \""\");\r\n }\r\n\r\n // Completely remove the definition from the text\r\n return \"\";\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n }\r\n\r\n var _HashHTMLBlocks = function (text) {\r\n // attacklab: Double up blank lines to reduce lookaround\r\n text = text.replace(/\\n/g, \"\\n\\n\");\r\n\r\n // Hashify HTML blocks:\r\n // We only want to do this for block-level HTML tags, such as headers,\r\n // lists, and tables. That's because we still want to wrap <p>s around\r\n // \"paragraphs\" that are wrapped in non-block-level tags, such as anchors,\r\n // phrase emphasis, and spans. The list of tags we're looking for is\r\n // hard-coded:\r\n var block_tags_a = \"p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside\";\r\n var block_tags_b = \"p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside\";\r\n\r\n // First, look for nested blocks, e.g.:\r\n // <div>\r\n // <div>\r\n // tags for inner block must be indented.\r\n // </div>\r\n // </div>\r\n //\r\n // The outermost tags must start at the left margin for this to match, and\r\n // the inner nested divs must be indented.\r\n // We need to do this before the next, more liberal match, because the next\r\n // match will start at the first `<div>` and stop at the first `</div>`.\r\n\r\n // attacklab: This regex can be expensive when it fails.\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_a)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\\n\t\t\t// any number of lines, minimally matching\r\n </\\2>\t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b[^\\r]*?\\n<\\/\\2>[ \\t]*(?=\\n+))/gm, hashElement);\r\n\r\n //\r\n // Now match more liberally, simply from `\\n<tag>` to `</tag>\\n`\r\n //\r\n\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_b)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\t\t\t\t// any number of lines, minimally matching\r\n </\\2>\t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\\b[^\\r]*?<\\/\\2>[ \\t]*(?=\\n+)\\n)/gm, hashElement);\r\n\r\n // Special case just for <hr />. It was easier to make a special case than\r\n // to make the other regex more complicated.\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n [ ]{0,3}\r\n (<(hr)\t\t\t\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n ([^<>])*?\t\t\t//\r\n \\/?>)\t\t\t\t// the matching end tag\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,hashElement);\r\n */\r\n text = text.replace(/(\\n[ ]{0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g, hashElement);\r\n\r\n // Special case for standalone HTML comments:\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n [ ]{0,3}\t\t\t// attacklab: g_tab_width - 1\r\n <!\r\n (--[^\\r]*?--\\s*)+\r\n >\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,hashElement);\r\n */\r\n text = text.replace(/(\\n\\n[ ]{0,3}<!(--[^\\r]*?--\\s*)+>[ \\t]*(?=\\n{2,}))/g, hashElement);\r\n\r\n // PHP and ASP-style processor instructions (<?...?> and <%...%>)\r\n\r\n /*\r\n text = text.replace(/\r\n (?:\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n )\r\n (\t\t\t\t\t\t// save in $1\r\n [ ]{0,3}\t\t\t// attacklab: g_tab_width - 1\r\n (?:\r\n <([?%])\t\t\t// $2\r\n [^\\r]*?\r\n \\2>\r\n )\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,hashElement);\r\n */\r\n text = text.replace(/(?:\\n\\n)([ ]{0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g, hashElement);\r\n\r\n // attacklab: Undo double lines (see comment at top of this function)\r\n text = text.replace(/\\n\\n/g, \"\\n\");\r\n return text;\r\n }\r\n\r\n var hashElement = function (wholeMatch, m1) {\r\n var blockText = m1;\r\n\r\n // Undo double lines\r\n blockText = blockText.replace(/\\n\\n/g, \"\\n\");\r\n blockText = blockText.replace(/^\\n/, \"\");\r\n\r\n // strip trailing blank lines\r\n blockText = blockText.replace(/\\n+$/g, \"\");\r\n\r\n // Replace the element text with a marker (\"~KxK\" where x is its key)\r\n blockText = \"\\n\\n~K\" + (g_html_blocks.push(blockText) - 1) + \"K\\n\\n\";\r\n\r\n return blockText;\r\n };\r\n\r\n var _RunBlockGamut = function (text) {\r\n//\r\n// These are all the transformations that form block-level\r\n// tags like paragraphs, headers, and list items.\r\n//\r\n text = _DoHeaders(text);\r\n\r\n // Do Horizontal Rules:\r\n var key = hashBlock(\"<hr />\");\r\n text = text.replace(/^[ ]{0,2}([ ]?\\*[ ]?){3,}[ \\t]*$/gm, key);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\-[ ]?){3,}[ \\t]*$/gm, key);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\_[ ]?){3,}[ \\t]*$/gm, key);\r\n\r\n text = _DoLists(text);\r\n text = _DoCodeBlocks(text);\r\n text = _DoBlockQuotes(text);\r\n\r\n // We already ran _HashHTMLBlocks() before, in Markdown(), but that\r\n // was to escape raw HTML in the original Markdown source. This time,\r\n // we're escaping the markup we've just created, so that we don't wrap\r\n // <p> tags around block-level tags.\r\n text = _HashHTMLBlocks(text);\r\n text = _FormParagraphs(text);\r\n\r\n return text;\r\n };\r\n\r\n var _RunSpanGamut = function (text) {\r\n//\r\n// These are all the transformations that occur *within* block-level\r\n// tags like paragraphs, headers, and list items.\r\n//\r\n\r\n text = _DoCodeSpans(text);\r\n text = _EscapeSpecialCharsWithinTagAttributes(text);\r\n text = _EncodeBackslashEscapes(text);\r\n\r\n // Process anchor and image tags. Images must come first,\r\n // because ![foo][f] looks like an anchor.\r\n text = _DoImages(text);\r\n text = _DoAnchors(text);\r\n\r\n // Make links out of things like `<http://example.com/>`\r\n // Must come after _DoAnchors(), because you can use < and >\r\n // delimiters in inline links like [this](<url>).\r\n text = _DoAutoLinks(text);\r\n text = _EncodeAmpsAndAngles(text);\r\n text = _DoItalicsAndBold(text);\r\n\r\n // Do hard breaks:\r\n text = text.replace(/ +\\n/g, \" <br />\\n\");\r\n\r\n return text;\r\n }\r\n\r\n var _EscapeSpecialCharsWithinTagAttributes = function (text) {\r\n//\r\n// Within tags -- meaning between < and > -- encode [\\ ` * _] so they\r\n// don't conflict with their use in Markdown for code, italics and strong.\r\n//\r\n\r\n // Build a regex to find HTML tags and comments. See Friedl's\r\n // \"Mastering Regular Expressions\", 2nd Ed., pp. 200-201.\r\n var regex = /(<[a-z\\/!$](\"[^\"]*\"|'[^']*'|[^'\">])*>|<!(--.*?--\\s*)+>)/gi;\r\n\r\n text = text.replace(regex, function (wholeMatch) {\r\n var tag = wholeMatch.replace(/(.)<\\/?code>(?=.)/g, \"$1`\");\r\n tag = escapeCharacters(tag, \"\\\\`*_\");\r\n return tag;\r\n });\r\n\r\n return text;\r\n }\r\n\r\n var _DoAnchors = function (text) {\r\n//\r\n// Turn Markdown link shortcuts into XHTML <a> tags.\r\n//\r\n //\r\n // First, handle reference-style links: [link text] [id]\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t\t// allow brackets nested one level\r\n |\r\n [^\\[]\t\t\t// or anything else\r\n )*\r\n )\r\n \\]\r\n\r\n [ ]?\t\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t\t// pad remaining backreferences\r\n /g,_DoAnchors_callback);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeAnchorTag);\r\n\r\n //\r\n // Next, inline-style links: [link text](url \"optional title\")\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t// allow brackets nested one level\r\n |\r\n [^\\[\\]]\t\t\t// or anything else\r\n )\r\n )\r\n \\]\r\n \\(\t\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t\t// no id, so leave $3 empty\r\n <?(.*?)>?\t\t\t\t// href = $4\r\n [ \\t]*\r\n (\t\t\t\t\t\t// $5\r\n (['\"])\t\t\t\t// quote char = $6\r\n (.*?)\t\t\t\t// Title = $7\r\n \\6\t\t\t\t\t// matching quote\r\n [ \\t]*\t\t\t\t// ignore any spaces/tabs between closing quote and )\r\n )?\t\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\]\\([ \\t]*()<?(.*?(?:\\(.*?\\).*?)?)>?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeAnchorTag);\r\n\r\n //\r\n // Last, handle reference-style shortcuts: [link text]\r\n // These must come last in case you've also got [link test][1]\r\n // or [link test](/foo)\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t \t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n ([^\\[\\]]+)\t\t\t\t// link text = $2; can't contain '[' or ']'\r\n \\]\r\n )()()()()()\t\t\t\t\t// pad rest of backreferences\r\n /g, writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[([^\\[\\]]+)\\])()()()()()/g, writeAnchorTag);\r\n\r\n return text;\r\n }\r\n\r\n var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n if (m7 == undefined) m7 = \"\";\r\n var whole_match = m1;\r\n var link_text = m2;\r\n var link_id = m3.toLowerCase();\r\n var url = m4;\r\n var title = m7;\r\n\r\n if (url == \"\") {\r\n if (link_id == \"\") {\r\n // lower-case and turn embedded newlines into spaces\r\n link_id = link_text.toLowerCase().replace(/ ?\\n/g, \" \");\r\n }\r\n url = \"#\" + link_id;\r\n\r\n if (g_urls[link_id] != undefined) {\r\n url = g_urls[link_id];\r\n if (g_titles[link_id] != undefined) {\r\n title = g_titles[link_id];\r\n }\r\n }\r\n else {\r\n if (whole_match.search(/\\(\\s*\\)$/m) > -1) {\r\n // Special case for explicit empty url\r\n url = \"\";\r\n } else {\r\n return whole_match;\r\n }\r\n }\r\n }\r\n\r\n url = escapeCharacters(url, \"*_\");\r\n var result = \"<a href=\\\"\" + url + \"\\\"\";\r\n\r\n if (title != \"\") {\r\n title = title.replace(/\"/g, \""\");\r\n title = escapeCharacters(title, \"*_\");\r\n result += \" title=\\\"\" + title + \"\\\"\";\r\n }\r\n\r\n result += \">\" + link_text + \"</a>\";\r\n\r\n return result;\r\n }\r\n\r\n var _DoImages = function (text) {\r\n//\r\n// Turn Markdown image shortcuts into <img> tags.\r\n//\r\n\r\n //\r\n // First, handle reference-style labeled images: ![alt text][id]\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n !\\[\r\n (.*?)\t\t\t\t// alt text = $2\r\n \\]\r\n\r\n [ ]?\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t// pad rest of backreferences\r\n /g,writeImageTag);\r\n */\r\n text = text.replace(/(!\\[(.*?)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeImageTag);\r\n\r\n //\r\n // Next, handle inline images: ![alt text](url \"optional title\")\r\n // Don't forget: encode * and _\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n !\\[\r\n (.*?)\t\t\t\t// alt text = $2\r\n \\]\r\n \\s?\t\t\t\t\t// One optional whitespace character\r\n \\(\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t// no id, so leave $3 empty\r\n <?(\\S+?)>?\t\t\t// src url = $4\r\n [ \\t]*\r\n (\t\t\t\t\t// $5\r\n (['\"])\t\t\t// quote char = $6\r\n (.*?)\t\t\t// title = $7\r\n \\6\t\t\t\t// matching quote\r\n [ \\t]*\r\n )?\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeImageTag);\r\n */\r\n text = text.replace(/(!\\[(.*?)\\]\\s?\\([ \\t]*()<?(\\S+?)>?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeImageTag);\r\n\r\n return text;\r\n }\r\n\r\n var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n var whole_match = m1;\r\n var alt_text = m2;\r\n var link_id = m3.toLowerCase();\r\n var url = m4;\r\n var title = m7;\r\n\r\n if (!title) title = \"\";\r\n\r\n if (url == \"\") {\r\n if (link_id == \"\") {\r\n // lower-case and turn embedded newlines into spaces\r\n link_id = alt_text.toLowerCase().replace(/ ?\\n/g, \" \");\r\n }\r\n url = \"#\" + link_id;\r\n\r\n if (g_urls[link_id] != undefined) {\r\n url = g_urls[link_id];\r\n if (g_titles[link_id] != undefined) {\r\n title = g_titles[link_id];\r\n }\r\n }\r\n else {\r\n return whole_match;\r\n }\r\n }\r\n\r\n alt_text = alt_text.replace(/\"/g, \""\");\r\n url = escapeCharacters(url, \"*_\");\r\n var result = \"<img src=\\\"\" + url + \"\\\" alt=\\\"\" + alt_text + \"\\\"\";\r\n\r\n // attacklab: Markdown.pl adds empty title attributes to images.\r\n // Replicate this bug.\r\n\r\n //if (title != \"\") {\r\n title = title.replace(/\"/g, \""\");\r\n title = escapeCharacters(title, \"*_\");\r\n result += \" title=\\\"\" + title + \"\\\"\";\r\n //}\r\n\r\n result += \" />\";\r\n\r\n return result;\r\n }\r\n\r\n var _DoHeaders = function (text) {\r\n\r\n // Setext-style headers:\r\n //\tHeader 1\r\n //\t========\r\n //\r\n //\tHeader 2\r\n //\t--------\r\n //\r\n text = text.replace(/^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\r\n function (wholeMatch, m1) {\r\n return hashBlock('<h1 id=\"' + headerId(m1) + '\">' + _RunSpanGamut(m1) + \"</h1>\");\r\n });\r\n\r\n text = text.replace(/^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm,\r\n function (matchFound, m1) {\r\n return hashBlock('<h2 id=\"' + headerId(m1) + '\">' + _RunSpanGamut(m1) + \"</h2>\");\r\n });\r\n\r\n // atx-style headers:\r\n // # Header 1\r\n // ## Header 2\r\n // ## Header 2 with closing hashes ##\r\n // ...\r\n // ###### Header 6\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n ^(\\#{1,6})\t\t\t\t// $1 = string of #'s\r\n [ \\t]*\r\n (.+?)\t\t\t\t\t// $2 = Header text\r\n [ \\t]*\r\n \\#*\t\t\t\t\t\t// optional closing #'s (not counted)\r\n \\n+\r\n /gm, function() {...});\r\n */\r\n\r\n text = text.replace(/^(\\#{1,6})[ \\t]*(.+?)[ \\t]*\\#*\\n+/gm,\r\n function (wholeMatch, m1, m2) {\r\n var h_level = m1.length;\r\n return hashBlock(\"<h\" + h_level + ' id=\"' + headerId(m2) + '\">' + _RunSpanGamut(m2) + \"</h\" + h_level + \">\");\r\n });\r\n\r\n function headerId(m) {\r\n return m.replace(/[^\\w]/g, '').toLowerCase();\r\n }\r\n\r\n return text;\r\n }\r\n\r\n// This declaration keeps Dojo compressor from outputting garbage:\r\n var _ProcessListItems;\r\n\r\n var _DoLists = function (text) {\r\n//\r\n// Form HTML ordered (numbered) and unordered (bulleted) lists.\r\n//\r\n\r\n // attacklab: add sentinel to hack around khtml/safari bug:\r\n // http://bugs.webkit.org/show_bug.cgi?id=11231\r\n text += \"~0\";\r\n\r\n // Re-usable pattern to match any entirel ul or ol list:\r\n\r\n /*\r\n var whole_list = /\r\n (\t\t\t\t\t\t\t\t\t// $1 = whole list\r\n (\t\t\t\t\t\t\t\t// $2\r\n [ ]{0,3}\t\t\t\t\t// attacklab: g_tab_width - 1\r\n ([*+-]|\\d+[.])\t\t\t\t// $3 = first list item marker\r\n [ \\t]+\r\n )\r\n [^\\r]+?\r\n (\t\t\t\t\t\t\t\t// $4\r\n ~0\t\t\t\t\t\t\t// sentinel for workaround; should be $\r\n |\r\n \\n{2,}\r\n (?=\\S)\r\n (?!\t\t\t\t\t\t\t// Negative lookahead for another list item marker\r\n [ \\t]*\r\n (?:[*+-]|\\d+[.])[ \\t]+\r\n )\r\n )\r\n )/g\r\n */\r\n var whole_list = /^(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm;\r\n\r\n if (g_list_level) {\r\n text = text.replace(whole_list, function (wholeMatch, m1, m2) {\r\n var list = m1;\r\n var list_type = (m2.search(/[*+-]/g) > -1) ? \"ul\" : \"ol\";\r\n\r\n // Turn double returns into triple returns, so that we can make a\r\n // paragraph for the last item in a list, if necessary:\r\n list = list.replace(/\\n{2,}/g, \"\\n\\n\\n\");\r\n ;\r\n var result = _ProcessListItems(list);\r\n\r\n // Trim any trailing whitespace, to put the closing `</$list_type>`\r\n // up on the preceding line, to get it past the current stupid\r\n // HTML block parser. This is a hack to work around the terrible\r\n // hack that is the HTML block parser.\r\n result = result.replace(/\\s+$/, \"\");\r\n result = \"<\" + list_type + \">\" + result + \"</\" + list_type + \">\\n\";\r\n return result;\r\n });\r\n } else {\r\n whole_list = /(\\n\\n|^\\n?)(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/g;\r\n text = text.replace(whole_list, function (wholeMatch, m1, m2, m3) {\r\n var runup = m1;\r\n var list = m2;\r\n\r\n var list_type = (m3.search(/[*+-]/g) > -1) ? \"ul\" : \"ol\";\r\n // Turn double returns into triple returns, so that we can make a\r\n // paragraph for the last item in a list, if necessary:\r\n var list = list.replace(/\\n{2,}/g, \"\\n\\n\\n\");\r\n ;\r\n var result = _ProcessListItems(list);\r\n result = runup + \"<\" + list_type + \">\\n\" + result + \"</\" + list_type + \">\\n\";\r\n return result;\r\n });\r\n }\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n }\r\n\r\n _ProcessListItems = function (list_str) {\r\n//\r\n// Process the contents of a single ordered or unordered list, splitting it\r\n// into individual list items.\r\n//\r\n // The $g_list_level global keeps track of when we're inside a list.\r\n // Each time we enter a list, we increment it; when we leave a list,\r\n // we decrement. If it's zero, we're not in a list anymore.\r\n //\r\n // We do this because when we're not inside a list, we want to treat\r\n // something like this:\r\n //\r\n // I recommend upgrading to version\r\n // 8. Oops, now this line is treated\r\n // as a sub-list.\r\n //\r\n // As a single paragraph, despite the fact that the second line starts\r\n // with a digit-period-space sequence.\r\n //\r\n // Whereas when we're inside a list (or sub-list), that line will be\r\n // treated as the start of a sub-list. What a kludge, huh? This is\r\n // an aspect of Markdown's syntax that's hard to parse perfectly\r\n // without resorting to mind-reading. Perhaps the solution is to\r\n // change the syntax rules such that sub-lists must start with a\r\n // starting cardinal number; e.g. \"1.\" or \"a.\".\r\n\r\n g_list_level++;\r\n\r\n // trim trailing blank lines:\r\n list_str = list_str.replace(/\\n{2,}$/, \"\\n\");\r\n\r\n // attacklab: add sentinel to emulate \\z\r\n list_str += \"~0\";\r\n\r\n /*\r\n list_str = list_str.replace(/\r\n (\\n)?\t\t\t\t\t\t\t// leading line = $1\r\n (^[ \\t]*)\t\t\t\t\t\t// leading whitespace = $2\r\n ([*+-]|\\d+[.]) [ \\t]+\t\t\t// list marker = $3\r\n ([^\\r]+?\t\t\t\t\t\t// list item text = $4\r\n (\\n{1,2}))\r\n (?= \\n* (~0 | \\2 ([*+-]|\\d+[.]) [ \\t]+))\r\n /gm, function(){...});\r\n */\r\n list_str = list_str.replace(/(\\n)?(^[ \\t]*)([*+-]|\\d+[.])[ \\t]+([^\\r]+?(\\n{1,2}))(?=\\n*(~0|\\2([*+-]|\\d+[.])[ \\t]+))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n var item = m4;\r\n var leading_line = m1;\r\n var leading_space = m2;\r\n\r\n if (leading_line || (item.search(/\\n{2,}/) > -1)) {\r\n item = _RunBlockGamut(_Outdent(item));\r\n }\r\n else {\r\n // Recursion for sub-lists:\r\n item = _DoLists(_Outdent(item));\r\n item = item.replace(/\\n$/, \"\"); // chomp(item)\r\n item = _RunSpanGamut(item);\r\n }\r\n\r\n return \"<li>\" + item + \"</li>\\n\";\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n list_str = list_str.replace(/~0/g, \"\");\r\n\r\n g_list_level--;\r\n return list_str;\r\n }\r\n\r\n var _DoCodeBlocks = function (text) {\r\n//\r\n// Process Markdown `<pre><code>` blocks.\r\n//\r\n\r\n /*\r\n text = text.replace(text,\r\n /(?:\\n\\n|^)\r\n (\t\t\t\t\t\t\t\t// $1 = the code block -- one or more lines, starting with a space/tab\r\n (?:\r\n (?:[ ]{4}|\\t)\t\t\t// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width\r\n .*\\n+\r\n )+\r\n )\r\n (\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))\t// attacklab: g_tab_width\r\n /g,function(){...});\r\n */\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g,\r\n function (wholeMatch, m1, m2) {\r\n var codeblock = m1;\r\n var nextChar = m2;\r\n\r\n codeblock = _EncodeCode(_Outdent(codeblock));\r\n codeblock = _Detab(codeblock);\r\n codeblock = codeblock.replace(/^\\n+/g, \"\"); // trim leading newlines\r\n codeblock = codeblock.replace(/\\n+$/g, \"\"); // trim trailing whitespace\r\n\r\n codeblock = \"<pre><code>\" + codeblock + \"\\n</code></pre>\";\r\n\r\n return hashBlock(codeblock) + nextChar;\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n };\r\n\r\n var _DoGithubCodeBlocks = function (text) {\r\n//\r\n// Process Github-style code blocks\r\n// Example:\r\n// ```ruby\r\n// def hello_world(x)\r\n// puts \"Hello, #{x}\"\r\n// end\r\n// ```\r\n//\r\n\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g,\r\n function (wholeMatch, m1, m2) {\r\n var language = m1;\r\n var codeblock = m2;\r\n\r\n codeblock = _EncodeCode(codeblock);\r\n codeblock = _Detab(codeblock);\r\n codeblock = codeblock.replace(/^\\n+/g, \"\"); // trim leading newlines\r\n codeblock = codeblock.replace(/\\n+$/g, \"\"); // trim trailing whitespace\r\n\r\n codeblock = \"<pre><code\" + (language ? \" class=\\\"\" + language + '\"' : \"\") + \">\" + codeblock + \"\\n</code></pre>\";\r\n\r\n return hashBlock(codeblock);\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n }\r\n\r\n var hashBlock = function (text) {\r\n text = text.replace(/(^\\n+|\\n+$)/g, \"\");\r\n return \"\\n\\n~K\" + (g_html_blocks.push(text) - 1) + \"K\\n\\n\";\r\n }\r\n\r\n var _DoCodeSpans = function (text) {\r\n//\r\n// * Backtick quotes are used for <code></code> spans.\r\n//\r\n// * You can use multiple backticks as the delimiters if you want to\r\n//\t include literal backticks in the code span. So, this input:\r\n//\r\n//\t\t Just type ``foo `bar` baz`` at the prompt.\r\n//\r\n//\t Will translate to:\r\n//\r\n//\t\t <p>Just type <code>foo `bar` baz</code> at the prompt.</p>\r\n//\r\n//\tThere's no arbitrary limit to the number of backticks you\r\n//\tcan use as delimters. If you need three consecutive backticks\r\n//\tin your code, use four for delimiters, etc.\r\n//\r\n// * You can use spaces to get literal backticks at the edges:\r\n//\r\n//\t\t ... type `` `bar` `` ...\r\n//\r\n//\t Turns to:\r\n//\r\n//\t\t ... type <code>`bar`</code> ...\r\n//\r\n\r\n /*\r\n text = text.replace(/\r\n (^|[^\\\\])\t\t\t\t\t// Character before opening ` can't be a backslash\r\n (`+)\t\t\t\t\t\t// $2 = Opening run of `\r\n (\t\t\t\t\t\t\t// $3 = The code block\r\n [^\\r]*?\r\n [^`]\t\t\t\t\t// attacklab: work around lack of lookbehind\r\n )\r\n \\2\t\t\t\t\t\t\t// Matching closer\r\n (?!`)\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n var c = m3;\r\n c = c.replace(/^([ \\t]*)/g, \"\");\t// leading whitespace\r\n c = c.replace(/[ \\t]*$/g, \"\");\t// trailing whitespace\r\n c = _EncodeCode(c);\r\n return m1 + \"<code>\" + c + \"</code>\";\r\n });\r\n\r\n return text;\r\n }\r\n\r\n var _EncodeCode = function (text) {\r\n//\r\n// Encode/escape certain characters inside Markdown code runs.\r\n// The point is that in code, these characters are literals,\r\n// and lose their special Markdown meanings.\r\n//\r\n // Encode all ampersands; HTML entities are not\r\n // entities within a Markdown code span.\r\n text = text.replace(/&/g, \"&\");\r\n\r\n // Do the angle bracket song and dance:\r\n text = text.replace(/</g, \"<\");\r\n text = text.replace(/>/g, \">\");\r\n\r\n // Now, escape characters that are magic in Markdown:\r\n text = escapeCharacters(text, \"\\*_{}[]\\\\\", false);\r\n\r\n// jj the line above breaks this:\r\n//---\r\n\r\n//* Item\r\n\r\n// 1. Subitem\r\n\r\n// special char: *\r\n//---\r\n\r\n return text;\r\n }\r\n\r\n var _DoItalicsAndBold = function (text) {\r\n\r\n // <strong> must go first:\r\n text = text.replace(/(\\*\\*|__)(?=\\S)([^\\r]*?\\S[*_]*)\\1/g,\r\n \"<strong>$2</strong>\");\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g,\r\n \"<em>$2</em>\");\r\n\r\n return text;\r\n }\r\n\r\n var _DoBlockQuotes = function (text) {\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t\t// Wrap whole match in $1\r\n (\r\n ^[ \\t]*>[ \\t]?\t\t\t// '>' at the start of a line\r\n .+\\n\t\t\t\t\t// rest of the first line\r\n (.+\\n)*\t\t\t\t\t// subsequent consecutive lines\r\n \\n*\t\t\t\t\t\t// blanks\r\n )+\r\n )\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/((^[ \\t]*>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,\r\n function (wholeMatch, m1) {\r\n var bq = m1;\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n\r\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, \"~0\");\t// trim one level of quoting\r\n\r\n // attacklab: clean up hack\r\n bq = bq.replace(/~0/g, \"\");\r\n\r\n bq = bq.replace(/^[ \\t]+$/gm, \"\");\t\t// trim whitespace-only lines\r\n bq = _RunBlockGamut(bq);\t\t\t\t// recurse\r\n\r\n bq = bq.replace(/(^|\\n)/g, \"$1 \");\r\n // These leading spaces screw with <pre> content, so we need to fix that:\r\n bq = bq.replace(\r\n /(\\s*<pre>[^\\r]+?<\\/pre>)/gm,\r\n function (wholeMatch, m1) {\r\n var pre = m1;\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n pre = pre.replace(/^ /mg, \"~0\");\r\n pre = pre.replace(/~0/g, \"\");\r\n return pre;\r\n });\r\n\r\n return hashBlock(\"<blockquote>\\n\" + bq + \"\\n</blockquote>\");\r\n });\r\n return text;\r\n }\r\n\r\n var _FormParagraphs = function (text) {\r\n//\r\n// Params:\r\n// $text - string to process with html <p> tags\r\n//\r\n\r\n // Strip leading and trailing lines:\r\n text = text.replace(/^\\n+/g, \"\");\r\n text = text.replace(/\\n+$/g, \"\");\r\n\r\n var grafs = text.split(/\\n{2,}/g);\r\n var grafsOut = [];\r\n\r\n //\r\n // Wrap <p> tags.\r\n //\r\n var end = grafs.length;\r\n for (var i = 0; i < end; i++) {\r\n var str = grafs[i];\r\n\r\n // if this is an HTML marker, copy it\r\n if (str.search(/~K(\\d+)K/g) >= 0) {\r\n grafsOut.push(str);\r\n }\r\n else if (str.search(/\\S/) >= 0) {\r\n str = _RunSpanGamut(str);\r\n str = str.replace(/^([ \\t]*)/g, \"<p>\");\r\n str += \"</p>\"\r\n grafsOut.push(str);\r\n }\r\n\r\n }\r\n\r\n //\r\n // Unhashify HTML blocks\r\n //\r\n end = grafsOut.length;\r\n for (var i = 0; i < end; i++) {\r\n // if this is a marker for an html block...\r\n while (grafsOut[i].search(/~K(\\d+)K/) >= 0) {\r\n var blockText = g_html_blocks[RegExp.$1];\r\n blockText = blockText.replace(/\\$/g, \"$$$$\"); // Escape any dollar signs\r\n grafsOut[i] = grafsOut[i].replace(/~K\\d+K/, blockText);\r\n }\r\n }\r\n\r\n return grafsOut.join(\"\\n\\n\");\r\n }\r\n\r\n var _EncodeAmpsAndAngles = function (text) {\r\n// Smart processing for ampersands and angle brackets that need to be encoded.\r\n\r\n // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\r\n // http://bumppo.net/projects/amputator/\r\n text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, \"&\");\r\n\r\n // Encode naked <'s\r\n text = text.replace(/<(?![a-z\\/?\\$!])/gi, \"<\");\r\n\r\n return text;\r\n }\r\n\r\n var _EncodeBackslashEscapes = function (text) {\r\n//\r\n// Parameter: String.\r\n// Returns:\tThe string, with after processing the following backslash\r\n//\t\t\t escape sequences.\r\n//\r\n\r\n // attacklab: The polite way to do this is with the new\r\n // escapeCharacters() function:\r\n //\r\n // \ttext = escapeCharacters(text,\"\\\\\",true);\r\n // \ttext = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\r\n //\r\n // ...but we're sidestepping its use of the (slow) RegExp constructor\r\n // as an optimization for Firefox. This function gets called a LOT.\r\n\r\n text = text.replace(/\\\\(\\\\)/g, escapeCharacters_callback);\r\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+-.!])/g, escapeCharacters_callback);\r\n return text;\r\n }\r\n\r\n var _DoAutoLinks = function (text) {\r\n\r\n text = text.replace(/<((https?|ftp|dict):[^'\">\\s]+)>/gi, \"<a href=\\\"$1\\\">$1</a>\");\r\n\r\n // Email addresses: <address@domain.foo>\r\n\r\n /*\r\n text = text.replace(/\r\n <\r\n (?:mailto:)?\r\n (\r\n [-.\\w]+\r\n \\@\r\n [-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+\r\n )\r\n >\r\n /gi, _DoAutoLinks_callback());\r\n */\r\n text = text.replace(/<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\r\n function (wholeMatch, m1) {\r\n return _EncodeEmailAddress(_UnescapeSpecialChars(m1));\r\n }\r\n );\r\n\r\n return text;\r\n }\r\n\r\n var _EncodeEmailAddress = function (addr) {\r\n//\r\n// Input: an email address, e.g. \"foo@example.com\"\r\n//\r\n// Output: the email address as a mailto link, with each character\r\n//\tof the address encoded as either a decimal or hex entity, in\r\n//\tthe hopes of foiling most address harvesting spam bots. E.g.:\r\n//\r\n//\t<a href=\"mailto:foo@e\r\n//\t xample.com\">foo\r\n//\t @example.com</a>\r\n//\r\n// Based on a filter by Matthew Wickline, posted to the BBEdit-Talk\r\n// mailing list: <http://tinyurl.com/yu7ue>\r\n//\r\n\r\n var encode = [\r\n function (ch) {\r\n return \"&#\" + ch.charCodeAt(0) + \";\";\r\n },\r\n function (ch) {\r\n return \"&#x\" + ch.charCodeAt(0).toString(16) + \";\";\r\n },\r\n function (ch) {\r\n return ch;\r\n }\r\n ];\r\n\r\n addr = \"mailto:\" + addr;\r\n\r\n addr = addr.replace(/./g, function (ch) {\r\n if (ch == \"@\") {\r\n // this *must* be encoded. I insist.\r\n ch = encode[Math.floor(Math.random() * 2)](ch);\r\n } else if (ch != \":\") {\r\n // leave ':' alone (to spot mailto: later)\r\n var r = Math.random();\r\n // roughly 10% raw, 45% hex, 45% dec\r\n ch = (\r\n r > .9 ? encode[2](ch) :\r\n r > .45 ? encode[1](ch) :\r\n encode[0](ch)\r\n );\r\n }\r\n return ch;\r\n });\r\n\r\n addr = \"<a href=\\\"\" + addr + \"\\\">\" + addr + \"</a>\";\r\n addr = addr.replace(/\">.+:/g, \"\\\">\"); // strip the mailto: from the visible part\r\n\r\n return addr;\r\n }\r\n\r\n var _UnescapeSpecialChars = function (text) {\r\n//\r\n// Swap back in all the special characters we've hidden.\r\n//\r\n text = text.replace(/~E(\\d+)E/g,\r\n function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\r\n }\r\n );\r\n return text;\r\n }\r\n\r\n var _Outdent = function (text) {\r\n//\r\n// Remove one level of line-leading tabs or spaces\r\n//\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n\r\n text = text.replace(/^(\\t|[ ]{1,4})/gm, \"~0\"); // attacklab: g_tab_width\r\n\r\n // attacklab: clean up hack\r\n text = text.replace(/~0/g, \"\")\r\n\r\n return text;\r\n }\r\n\r\n var _Detab = function (text) {\r\n// attacklab: Detab's completely rewritten for speed.\r\n// In perl we could fix it by anchoring the regexp with \\G.\r\n// In javascript we're less fortunate.\r\n\r\n // expand first n-1 tabs\r\n text = text.replace(/\\t(?=\\t)/g, \" \"); // attacklab: g_tab_width\r\n\r\n // replace the nth with two sentinels\r\n text = text.replace(/\\t/g, \"~A~B\");\r\n\r\n // use the sentinel to anchor our regex so it doesn't explode\r\n text = text.replace(/~B(.+?)~A/g,\r\n function (wholeMatch, m1, m2) {\r\n var leadingText = m1;\r\n var numSpaces = 4 - leadingText.length % 4; // attacklab: g_tab_width\r\n\r\n // there *must* be a better way to do this:\r\n for (var i = 0; i < numSpaces; i++) leadingText += \" \";\r\n\r\n return leadingText;\r\n }\r\n );\r\n\r\n // clean up sentinels\r\n text = text.replace(/~A/g, \" \"); // attacklab: g_tab_width\r\n text = text.replace(/~B/g, \"\");\r\n\r\n return text;\r\n }\r\n\r\n\r\n//\r\n// attacklab: Utility functions\r\n//\r\n\r\n\r\n var escapeCharacters = function (text, charsToEscape, afterBackslash) {\r\n // First we have to escape the escape characters so that\r\n // we can build a character class out of them\r\n var regexString = \"([\" + charsToEscape.replace(/([\\[\\]\\\\])/g, \"\\\\$1\") + \"])\";\r\n\r\n if (afterBackslash) {\r\n regexString = \"\\\\\\\\\" + regexString;\r\n }\r\n\r\n var regex = new RegExp(regexString, \"g\");\r\n text = text.replace(regex, escapeCharacters_callback);\r\n\r\n return text;\r\n }\r\n\r\n\r\n var escapeCharacters_callback = function (wholeMatch, m1) {\r\n var charCodeToEscape = m1.charCodeAt(0);\r\n return \"~E\" + charCodeToEscape + \"E\";\r\n }\r\n\r\n} // end of Showdown.converter\r\n\r\n\r\n// export\r\nif (typeof module !== 'undefined') module.exports = Showdown;\r\n\r\n// stolen from AMD branch of underscore\r\n// AMD define happens at the end for compatibility with AMD loaders\r\n// that don't enforce next-turn semantics on modules.\r\nif (typeof define === 'function' && define.amd) {\r\n define('showdown', function () {\r\n return Showdown;\r\n });\r\n}\r\n","/**\r\n * Created by Tivie on 04-11-2014.\r\n */\r\n\r\n\r\n//Check if AngularJs and Showdown is defined and only load ng-Showdown if both are present\r\nif (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') {\r\n\r\n (function (module, Showdown) {\r\n\r\n module\r\n .provider('$Showdown', provider)\r\n .directive('sdModelToHtml', ['$Showdown', markdownToHtmlDirective])\r\n .filter('sdStripHtml', stripHtmlFilter);\r\n\r\n /**\r\n * Angular Provider\r\n * Enables configuration of showdown via angular.config and Dependency Injection into controllers, views\r\n * directives, etc... This assures the directives and filters provided by the library itself stay consistent\r\n * with the user configurations.\r\n * If the user wants to use a different configuration in a determined context, he can use the \"classic\" Showdown\r\n * object instead.\r\n *\r\n */\r\n function provider() {\r\n\r\n // Configuration parameters for Showdown\r\n var config = {\r\n extensions: [],\r\n stripHtml: true\r\n };\r\n\r\n /**\r\n * Sets a configuration option\r\n *\r\n * @param {string} key Config parameter key\r\n * @param {string} value Config parameter value\r\n */\r\n this.setOption = function (key, value) {\r\n config.key = value;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the value of the configuration parameter specified by key\r\n *\r\n * @param {string} key The config parameter key\r\n * @returns {string|null} Returns the value of the config parameter. (or null if the config parameter is not set)\r\n */\r\n this.getOption = function (key) {\r\n if (config.hasOwnProperty(key)) {\r\n return config.key;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n /**\r\n * Loads a Showdown Extension\r\n *\r\n * @param {string} extensionName The name of the extension to load\r\n */\r\n this.loadExtension = function (extensionName) {\r\n config.extensions.push(extensionName);\r\n\r\n return this;\r\n };\r\n\r\n function SDObject() {\r\n var converter = new Showdown.converter(config);\r\n\r\n /**\r\n * Converts a markdown text into HTML\r\n *\r\n * @param {string} markdown The markdown string to be converted to HTML\r\n * @returns {string} The converted HTML\r\n */\r\n this.makeHtml = function (markdown) {\r\n return converter.makeHtml(markdown);\r\n };\r\n\r\n /**\r\n * Strips a text of it's HTML tags\r\n *\r\n * @param {string} text\r\n * @returns {string}\r\n */\r\n this.stripHtml = function (text) {\r\n return String(text).replace(/<[^>]+>/gm, '');\r\n };\r\n }\r\n\r\n // The object returned by service provider\r\n this.$get = function () {\r\n return new SDObject();\r\n };\r\n }\r\n\r\n /**\r\n * AngularJS Directive to Md to HTML transformation\r\n *\r\n * Usage example:\r\n * <div sd-md-to-html-model=\"markdownText\" ></div>\r\n *\r\n * @param $Showdown\r\n * @returns {*}\r\n */\r\n function markdownToHtmlDirective($Showdown) {\r\n\r\n var link = function (scope, element) {\r\n scope.$watch('model', function (newValue) {\r\n var val;\r\n if (typeof newValue === 'string') {\r\n val = $Showdown.makeHtml(newValue);\r\n } else {\r\n val = typeof newValue;\r\n }\r\n element.html(val);\r\n });\r\n };\r\n\r\n return {\r\n restrict: 'A',\r\n link: link,\r\n scope: {\r\n model: '=sdModelToHtml'\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * AngularJS Filter to Strip HTML tags from text\r\n *\r\n * @returns {Function}\r\n */\r\n function stripHtmlFilter() {\r\n return function (text) {\r\n return String(text).replace(/<[^>]+>/gm, '');\r\n };\r\n }\r\n\r\n })(angular.module('Showdown', []), Showdown);\r\n\r\n} else {\r\n\r\n /** TODO Since this library is opt out, maybe we should not throw an error so we can concatenate this\r\n script with the main lib */\r\n // throw new Error(\"ng-showdown was not loaded because one of it's dependencies (AngularJS or Showdown) wasn't met\");\r\n}\r\n"]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
/*! showdown 01-03-2015 */
|
2
|
-
var Showdown={extensions:{}},forEach=Showdown.forEach=function(a,b){if("function"==typeof a.forEach)a.forEach(b);else{var c,d=a.length;for(c=0;d>c;c++)b(a[c],c,a)}},stdExtName=function(a){return a.replace(/[_-]||\s/g,"").toLowerCase()};Showdown.converter=function(a){var b,c,d,e=0,f=[],g=[];if("undefined"!=typeof module&&"undefined"!=typeof exports&&"undefined"!=typeof require){var h=require("fs");if(h){var i=h.readdirSync((__dirname||".")+"/extensions").filter(function(a){return~a.indexOf(".js")}).map(function(a){return a.replace(/\.js$/,"")});Showdown.forEach(i,function(a){var b=stdExtName(a);Showdown.extensions[b]=require("./extensions/"+a)})}}if(this.makeHtml=function(a){return b={},c={},d=[],a=a.replace(/~/g,"~T"),a=a.replace(/\$/g,"~D"),a=a.replace(/\r\n/g,"\n"),a=a.replace(/\r/g,"\n"),a="\n\n"+a+"\n\n",a=M(a),a=a.replace(/^[ \t]+$/gm,""),Showdown.forEach(f,function(b){a=l(b,a)}),a=z(a),a=n(a),a=m(a),a=p(a),a=K(a),a=a.replace(/~D/g,"$$"),a=a.replace(/~T/g,"~"),Showdown.forEach(g,function(b){a=l(b,a)}),a},a&&a.extensions){var j=this;Showdown.forEach(a.extensions,function(a){if("string"==typeof a&&(a=Showdown.extensions[stdExtName(a)]),"function"!=typeof a)throw"Extension '"+a+"' could not be loaded. It was either not found or is not a valid extension.";Showdown.forEach(a(j),function(a){a.type?"language"===a.type||"lang"===a.type?f.push(a):("output"===a.type||"html"===a.type)&&g.push(a):g.push(a)})})}var k,l=function(a,b){if(a.regex){var c=new RegExp(a.regex,"g");return b.replace(c,a.replace)}return a.filter?a.filter(b):void 0},m=function(a){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,d,e,f,g){return d=d.toLowerCase(),b[d]=G(e),f?f+g:(g&&(c[d]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")},n=function(a){a=a.replace(/\n/g,"\n\n");return a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,o),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?<\/\2>[ \t]*(?=\n+)\n)/gm,o),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/\n\n/g,"\n")},o=function(a,b){var c=b;return c=c.replace(/\n\n/g,"\n"),c=c.replace(/^\n/,""),c=c.replace(/\n+$/g,""),c="\n\n~K"+(d.push(c)-1)+"K\n\n"},p=function(a){a=w(a);var b=A("<hr />");return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,b),a=x(a),a=y(a),a=E(a),a=n(a),a=F(a)},q=function(a){return a=B(a),a=r(a),a=H(a),a=u(a),a=s(a),a=I(a),a=G(a),a=D(a),a=a.replace(/ +\n/g," <br />\n")},r=function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=N(b,"\\`*_")})},s=function(a){return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,t),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?(?:\(.*?\).*?)?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,t),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,t)},t=function(a,d,e,f,g,h,i,j){void 0==j&&(j="");var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(""==n)if(""==m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0!=b[m])n=b[m],void 0!=c[m]&&(o=c[m]);else{if(!(k.search(/\(\s*\)$/m)>-1))return k;n=""}n=N(n,"*_");var p='<a href="'+n+'"';return""!=o&&(o=o.replace(/"/g,"""),o=N(o,"*_"),p+=' title="'+o+'"'),p+=">"+l+"</a>"},u=function(a){return a=a.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,v),a=a.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,v)},v=function(a,d,e,f,g,h,i,j){var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(o||(o=""),""==n){if(""==m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0==b[m])return k;n=b[m],void 0!=c[m]&&(o=c[m])}l=l.replace(/"/g,"""),n=N(n,"*_");var p='<img src="'+n+'" alt="'+l+'"';return o=o.replace(/"/g,"""),o=N(o,"*_"),p+=' title="'+o+'"',p+=" />"},w=function(a){function b(a){return a.replace(/[^\w]/g,"").toLowerCase()}return a=a.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(a,c){return A('<h1 id="'+b(c)+'">'+q(c)+"</h1>")}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,c){return A('<h2 id="'+b(c)+'">'+q(c)+"</h2>")}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,c,d){var e=c.length;return A("<h"+e+' id="'+b(d)+'">'+q(d)+"</h"+e+">")})},x=function(a){a+="~0";var b=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return e?a=a.replace(b,function(a,b,c){var d=b,e=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var f=k(d);return f=f.replace(/\s+$/,""),f="<"+e+">"+f+"</"+e+">\n"}):(b=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(b,function(a,b,c,d){var e=b,f=c,g=d.search(/[*+-]/g)>-1?"ul":"ol",f=f.replace(/\n{2,}/g,"\n\n\n"),h=k(f);return h=e+"<"+g+">\n"+h+"</"+g+">\n"})),a=a.replace(/~0/,"")};k=function(a){return e++,a=a.replace(/\n{2,}$/,"\n"),a+="~0",a=a.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(a,b,c,d,e){var f=e,g=b;return g||f.search(/\n{2,}/)>-1?f=p(L(f)):(f=x(L(f)),f=f.replace(/\n$/,""),f=q(f)),"<li>"+f+"</li>\n"}),a=a.replace(/~0/g,""),e--,a};var y=function(a){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,b,c){var d=b,e=c;return d=C(L(d)),d=M(d),d=d.replace(/^\n+/g,""),d=d.replace(/\n+$/g,""),d="<pre><code>"+d+"\n</code></pre>",A(d)+e}),a=a.replace(/~0/,"")},z=function(a){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,b,c){var d=b,e=c;return e=C(e),e=M(e),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),e="<pre><code"+(d?' class="'+d+'"':"")+">"+e+"\n</code></pre>",A(e)}),a=a.replace(/~0/,"")},A=function(a){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(d.push(a)-1)+"K\n\n"},B=function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d){var e=d;return e=e.replace(/^([ \t]*)/g,""),e=e.replace(/[ \t]*$/g,""),e=C(e),b+"<code>"+e+"</code>"})},C=function(a){return a=a.replace(/&/g,"&"),a=a.replace(/</g,"<"),a=a.replace(/>/g,">"),a=N(a,"*_{}[]\\",!1)},D=function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"<strong>$2</strong>"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>")},E=function(a){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,b){var c=b;return c=c.replace(/^[ \t]*>[ \t]?/gm,"~0"),c=c.replace(/~0/g,""),c=c.replace(/^[ \t]+$/gm,""),c=p(c),c=c.replace(/(^|\n)/g,"$1 "),c=c.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^ /gm,"~0"),c=c.replace(/~0/g,"")}),A("<blockquote>\n"+c+"\n</blockquote>")})},F=function(a){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var b=a.split(/\n{2,}/g),c=[],e=b.length,f=0;e>f;f++){var g=b[f];g.search(/~K(\d+)K/g)>=0?c.push(g):g.search(/\S/)>=0&&(g=q(g),g=g.replace(/^([ \t]*)/g,"<p>"),g+="</p>",c.push(g))}e=c.length;for(var f=0;e>f;f++)for(;c[f].search(/~K(\d+)K/)>=0;){var h=d[RegExp.$1];h=h.replace(/\$/g,"$$$$"),c[f]=c[f].replace(/~K\d+K/,h)}return c.join("\n\n")},G=function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")},H=function(a){return a=a.replace(/\\(\\)/g,O),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,O)},I=function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'<a href="$1">$1</a>'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){return J(K(b))})},J=function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"==a)a=b[Math.floor(2*Math.random())](a);else if(":"!=a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a='<a href="'+a+'">'+a+"</a>",a=a.replace(/">.+:/g,'">')},K=function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})},L=function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")},M=function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b){for(var c=b,d=4-c.length%4,e=0;d>e;e++)c+=" ";return c}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")},N=function(a,b,c){var d="(["+b.replace(/([\[\]\\])/g,"\\$1")+"])";c&&(d="\\\\"+d);var e=new RegExp(d,"g");return a=a.replace(e,O)},O=function(a,b){var c=b.charCodeAt(0);return"~E"+c+"E"}},"undefined"!=typeof module&&(module.exports=Showdown),"function"==typeof define&&define.amd&&define("showdown",function(){return Showdown}),"undefined"!=typeof angular&&"undefined"!=typeof Showdown&&!function(a,b){function c(){function a(){var a=new b.converter(c);this.makeHtml=function(b){return a.makeHtml(b)},this.stripHtml=function(a){return String(a).replace(/<[^>]+>/gm,"")}}var c={extensions:[],stripHtml:!0};this.setOption=function(a,b){return c.key=b,this},this.getOption=function(a){return c.hasOwnProperty(a)?c.key:null},this.loadExtension=function(a){return c.extensions.push(a),this},this.$get=function(){return new a}}function d(a){var b=function(b,c){b.$watch("model",function(b){var d;d="string"==typeof b?a.makeHtml(b):typeof b,c.html(d)})};return{restrict:"A",link:b,scope:{model:"=sdModelToHtml"}}}function e(){return function(a){return String(a).replace(/<[^>]+>/gm,"")}}a.provider("$Showdown",c).directive("sdModelToHtml",["$Showdown",d]).filter("sdStripHtml",e)}(angular.module("Showdown",[]),Showdown);
|
@@ -1,2 +0,0 @@
|
|
1
|
-
/*! showdown 01-03-2015 */
|
2
|
-
!function(){var a=function(){return[{type:"lang",regex:"(~T){2}([^~]+)(~T){2}",replace:function(a,b,c){return"<del>"+c+"</del>"}}]};"undefined"!=typeof window&&window.Showdown&&window.Showdown.extensions&&(window.Showdown.extensions.github=a),"undefined"!=typeof module&&(module.exports=a)}();
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["..\\..\\src\\extensions\\github.js"],"names":[],"mappings":"AAAA;AAAA,IACI,MAAM,CAAC,SAAS,EAAE,GAAG;AAAA,MACnB,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG;AAAA;AAAA;AAAA,CAGpD,QAAQ;AAAA,IACL,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS;AAAA,QAC3B,MAAM;AAAA;AAAA,iBAEG,MAAM,CAAC,OAAO;AAAA,iBACd,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AAAA,cAClF,IAAI,OAAO,IAAI;AAAA,cACf,KAAK,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAAA,cAC/B,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;AAAA,kBAC7C,MAAM,GAAG,GAAG,KAAK,OAAO,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAM5C,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM;AAAA,OAC7H,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM;AAAA","file":"github.min.js","sourcesContent":["//\r\n// Github Extension (WIP)\r\n// ~~strike-through~~ -> <del>strike-through</del>\r\n//\r\n\r\n(function(){\r\n var github = function(converter) {\r\n return [\r\n {\r\n // strike-through\r\n // NOTE: showdown already replaced \"~\" with \"~T\", so we need to adjust accordingly.\r\n type : 'lang',\r\n regex : '(~T){2}([^~]+)(~T){2}',\r\n replace : function(match, prefix, content, suffix) {\r\n return '<del>' + content + '</del>';\r\n }\r\n }\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.github = github; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') module.exports = github;\r\n}());\r\n"]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
/*! showdown 01-03-2015 */
|
2
|
-
!function(){var a=function(){return[{type:"output",filter:function(a){return a.replace(/(<pre>)?<code>/gi,function(a,b){return b?'<pre class="prettyprint linenums" tabIndex="0"><code data-inner="1">':'<code class="prettyprint">'})}}]};"undefined"!=typeof window&&window.Showdown&&window.Showdown.extensions&&(window.Showdown.extensions.prettify=a),"undefined"!=typeof module&&(module.exports=a)}();
|
data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["..\\..\\src\\extensions\\prettify.js"],"names":[],"mappings":"AAAA;AAAA,IACI,MAAM,CAAC,QAAQ;AAAA,IACf,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AAAA,IAC1F,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AAAA;AAAA;AAAA,CAGlC,QAAQ;AAAA;AAAA,IAEL,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAAA,QAC7B,MAAM;AAAA,cACA,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM;AAAA;AAAA,gBAErC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG;AAAA,oBACzD,EAAE,EAAE,GAAG;AAAA,wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAAA,sBAC5E,IAAI;AAAA,wBACF,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOjD,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ;AAAA,OACjI,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ;AAAA;AAAA","file":"prettify.min.js","sourcesContent":["//\r\n// Google Prettify\r\n// A showdown extension to add Google Prettify (http://code.google.com/p/google-code-prettify/)\r\n// hints to showdown's HTML output.\r\n//\r\n\r\n(function(){\r\n\r\n var prettify = function(converter) {\r\n return [\r\n { type: 'output', filter: function(source){\r\n\r\n return source.replace(/(<pre>)?<code>/gi, function(match, pre) {\r\n if (pre) {\r\n return '<pre class=\"prettyprint linenums\" tabIndex=\"0\"><code data-inner=\"1\">';\r\n } else {\r\n return '<code class=\"prettyprint\">';\r\n }\r\n });\r\n }}\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.prettify = prettify; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') module.exports = prettify;\r\n\r\n}());\r\n"]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
/*! showdown 01-03-2015 */
|
2
|
-
!function(){var a=function(a){var b,c={},d="text-align:left;";return c.th=function(a){if(""===a.trim())return"";var b=a.trim().replace(/ /g,"_").toLowerCase();return'<th id="'+b+'" style="'+d+'">'+a+"</th>"},c.td=function(b){return'<td style="'+d+'">'+a.makeHtml(b)+"</td>"},c.ths=function(){var a="",b=0,d=[].slice.apply(arguments);for(b;b<d.length;b+=1)a+=c.th(d[b])+"\n";return a},c.tds=function(){var a="",b=0,d=[].slice.apply(arguments);for(b;b<d.length;b+=1)a+=c.td(d[b])+"\n";return a},c.thead=function(){var a,b=[].slice.apply(arguments);return a="<thead>\n",a+="<tr>\n",a+=c.ths.apply(this,b),a+="</tr>\n",a+="</thead>\n"},c.tr=function(){var a,b=[].slice.apply(arguments);return a="<tr>\n",a+=c.tds.apply(this,b),a+="</tr>\n"},b=function(a){var b,d,e=0,f=a.split("\n"),g=[];for(e;e<f.length;e+=1){if(b=f[e],b.trim().match(/^[|]{1}.*[|]{1}$/)){b=b.trim();var h=[];if(h.push("<table>"),d=b.substring(1,b.length-1).split("|"),h.push(c.thead.apply(this,d)),b=f[++e],b.trim().match(/^[|]{1}[-=|: ]+[|]{1}$/)){for(b=f[++e],h.push("<tbody>");b.trim().match(/^[|]{1}.*[|]{1}$/);)b=b.trim(),h.push(c.tr.apply(this,b.substring(1,b.length-1).split("|"))),b=f[++e];h.push("</tbody>"),h.push("</table>"),g.push(h.join("\n"));continue}b=f[--e]}g.push(b)}return g.join("\n")},[{type:"lang",filter:b}]};"undefined"!=typeof window&&window.Showdown&&window.Showdown.extensions&&(window.Showdown.extensions.table=a),"undefined"!=typeof module&&(module.exports=a)}();
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["..\\..\\src\\extensions\\table.js"],"names":[],"mappings":"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","file":"table.min.js","sourcesContent":["/*global module:true*/\r\n/*\r\n * Basic table support with re-entrant parsing, where cell content\r\n * can also specify markdown.\r\n *\r\n * Tables\r\n * ======\r\n *\r\n * | Col 1 | Col 2 |\r\n * |======== |====================================================|\r\n * |**bold** | ![Valid XHTML] (http://w3.org/Icons/valid-xhtml10) |\r\n * | Plain | Value |\r\n *\r\n */\r\n\r\n(function(){\r\n var table = function(converter) {\r\n var tables = {}, style = 'text-align:left;', filter;\r\n tables.th = function(header){\r\n if (header.trim() === \"\") { return \"\";}\r\n var id = header.trim().replace(/ /g, '_').toLowerCase();\r\n return '<th id=\"' + id + '\" style=\"'+style+'\">' + header + '</th>';\r\n };\r\n tables.td = function(cell) {\r\n return '<td style=\"'+style+'\">' + converter.makeHtml(cell) + '</td>';\r\n };\r\n tables.ths = function(){\r\n var out = \"\", i = 0, hs = [].slice.apply(arguments);\r\n for (i;i<hs.length;i+=1) {\r\n out += tables.th(hs[i]) + '\\n';\r\n }\r\n return out;\r\n };\r\n tables.tds = function(){\r\n var out = \"\", i = 0, ds = [].slice.apply(arguments);\r\n for (i;i<ds.length;i+=1) {\r\n out += tables.td(ds[i]) + '\\n';\r\n }\r\n return out;\r\n };\r\n tables.thead = function() {\r\n var out, i = 0, hs = [].slice.apply(arguments);\r\n out = \"<thead>\\n\";\r\n out += \"<tr>\\n\";\r\n out += tables.ths.apply(this, hs);\r\n out += \"</tr>\\n\";\r\n out += \"</thead>\\n\";\r\n return out;\r\n };\r\n tables.tr = function() {\r\n var out, i = 0, cs = [].slice.apply(arguments);\r\n out = \"<tr>\\n\";\r\n out += tables.tds.apply(this, cs);\r\n out += \"</tr>\\n\";\r\n return out;\r\n };\r\n filter = function(text) {\r\n var i=0, lines = text.split('\\n'), line, hs, rows, out = [];\r\n for (i; i<lines.length;i+=1) {\r\n line = lines[i];\r\n // looks like a table heading\r\n if (line.trim().match(/^[|]{1}.*[|]{1}$/)) {\r\n line = line.trim();\r\n var tbl = [];\r\n tbl.push('<table>');\r\n hs = line.substring(1, line.length -1).split('|');\r\n tbl.push(tables.thead.apply(this, hs));\r\n line = lines[++i];\r\n if (!line.trim().match(/^[|]{1}[-=|: ]+[|]{1}$/)) {\r\n // not a table rolling back\r\n line = lines[--i];\r\n }\r\n else {\r\n line = lines[++i];\r\n tbl.push('<tbody>');\r\n while (line.trim().match(/^[|]{1}.*[|]{1}$/)) {\r\n line = line.trim();\r\n tbl.push(tables.tr.apply(this, line.substring(1, line.length -1).split('|')));\r\n line = lines[++i];\r\n }\r\n tbl.push('</tbody>');\r\n tbl.push('</table>');\r\n // we are done with this table and we move along\r\n out.push(tbl.join('\\n'));\r\n continue;\r\n }\r\n }\r\n out.push(line);\r\n }\r\n return out.join('\\n');\r\n };\r\n return [\r\n {\r\n type: 'lang',\r\n filter: filter\r\n }\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.table = table; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') {\r\n module.exports = table;\r\n }\r\n}());\r\n"]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
/*! showdown 01-03-2015 */
|
2
|
-
!function(){var a=function(){return[{type:"lang",regex:"\\B(\\\\)?@([\\S]+)\\b",replace:function(a,b,c){return"\\"===b?a:'<a href="http://twitter.com/'+c+'">@'+c+"</a>"}},{type:"lang",regex:"\\B(\\\\)?#([\\S]+)\\b",replace:function(a,b,c){return"\\"===b?a:'<a href="http://twitter.com/search/%23'+c+'">#'+c+"</a>"}},{type:"lang",regex:"\\\\@",replace:"@"}]};"undefined"!=typeof window&&window.Showdown&&window.Showdown.extensions&&(window.Showdown.extensions.twitter=a),"undefined"!=typeof module&&(module.exports=a)}();
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sources":["..\\..\\src\\extensions\\twitter.js"],"names":[],"mappings":"AAAA;AAAA,IACI,OAAO,CAAC,SAAS;AAAA,KAChB,QAAQ,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAAA,KACjE,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CAAC;AAAA;AAAA;AAAA,CAG7E,QAAQ;AAAA;AAAA,IAEL,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS;AAAA,QAC5B,MAAM;AAAA;AAAA,gBAEE,QAAQ,CAAC,MAAM;AAAA,cACjB,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ;AAAA,mBACzF,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAAA,gBACrE,EAAE,EAAE,YAAY;AAAA,oBACZ,MAAM,CAAC,KAAK;AAAA,kBACd,IAAI;AAAA,oBACF,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,KAAK,QAAQ,WAAW,QAAQ,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,gBAI9E,OAAO,CAAC,MAAM;AAAA,cAChB,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;AAAA,mBACpF,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAAA,gBACrE,EAAE,EAAE,YAAY;AAAA,oBACZ,MAAM,CAAC,KAAK;AAAA,kBACd,IAAI;AAAA,oBACF,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,eAI/E,OAAO,GAAG,CAAC;AAAA,cACZ,IAAI,GAAG,IAAI,GAAG,KAAK,WAAW,OAAO;AAAA;AAAA;AAAA;AAAA,OAI5C,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;AAAA,OAC/H,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,OAAO;AAAA;AAAA","file":"twitter.min.js","sourcesContent":["//\r\n// Twitter Extension\r\n// @username -> <a href=\"http://twitter.com/username\">@username</a>\r\n// #hashtag -> <a href=\"http://twitter.com/search/%23hashtag\">#hashtag</a>\r\n//\r\n\r\n(function(){\r\n\r\n var twitter = function(converter) {\r\n return [\r\n\r\n // @username syntax\r\n { type: 'lang', regex: '\\\\B(\\\\\\\\)?@([\\\\S]+)\\\\b', replace: function(match, leadingSlash, username) {\r\n // Check if we matched the leading \\ and return nothing changed if so\r\n if (leadingSlash === '\\\\') {\r\n return match;\r\n } else {\r\n return '<a href=\"http://twitter.com/' + username + '\">@' + username + '</a>';\r\n }\r\n }},\r\n\r\n // #hashtag syntax\r\n { type: 'lang', regex: '\\\\B(\\\\\\\\)?#([\\\\S]+)\\\\b', replace: function(match, leadingSlash, tag) {\r\n // Check if we matched the leading \\ and return nothing changed if so\r\n if (leadingSlash === '\\\\') {\r\n return match;\r\n } else {\r\n return '<a href=\"http://twitter.com/search/%23' + tag + '\">#' + tag + '</a>';\r\n }\r\n }},\r\n\r\n // Escaped @'s\r\n { type: 'lang', regex: '\\\\\\\\@', replace: '@' }\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.twitter = twitter; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') module.exports = twitter;\r\n\r\n}());\r\n"]}
|
@@ -1,34 +0,0 @@
|
|
1
|
-
Copyright (c) 2007, John Fraser
|
2
|
-
<http://www.attacklab.net/>
|
3
|
-
All rights reserved.
|
4
|
-
|
5
|
-
Original Markdown copyright (c) 2004, John Gruber
|
6
|
-
<http://daringfireball.net/>
|
7
|
-
All rights reserved.
|
8
|
-
|
9
|
-
Redistribution and use in source and binary forms, with or without
|
10
|
-
modification, are permitted provided that the following conditions are
|
11
|
-
met:
|
12
|
-
|
13
|
-
* Redistributions of source code must retain the above copyright notice,
|
14
|
-
this list of conditions and the following disclaimer.
|
15
|
-
|
16
|
-
* Redistributions in binary form must reproduce the above copyright
|
17
|
-
notice, this list of conditions and the following disclaimer in the
|
18
|
-
documentation and/or other materials provided with the distribution.
|
19
|
-
|
20
|
-
* Neither the name "Markdown" nor the names of its contributors may
|
21
|
-
be used to endorse or promote products derived from this software
|
22
|
-
without specific prior written permission.
|
23
|
-
|
24
|
-
This software is provided by the copyright holders and contributors "as
|
25
|
-
is" and any express or implied warranties, including, but not limited
|
26
|
-
to, the implied warranties of merchantability and fitness for a
|
27
|
-
particular purpose are disclaimed. In no event shall the copyright owner
|
28
|
-
or contributors be liable for any direct, indirect, incidental, special,
|
29
|
-
exemplary, or consequential damages (including, but not limited to,
|
30
|
-
procurement of substitute goods or services; loss of use, data, or
|
31
|
-
profits; or business interruption) however caused and on any theory of
|
32
|
-
liability, whether in contract, strict liability, or tort (including
|
33
|
-
negligence or otherwise) arising in any way out of the use of this
|
34
|
-
software, even if advised of the possibility of such damage.
|
@@ -1,47 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "showdown",
|
3
|
-
"version": "0.4.0",
|
4
|
-
"author": "John Fraser",
|
5
|
-
"contributors": [
|
6
|
-
"John Gruber",
|
7
|
-
"John Fraser",
|
8
|
-
"Corey Innis",
|
9
|
-
"Remy Sharp",
|
10
|
-
"Konstantin Käfer",
|
11
|
-
"Roger Braun",
|
12
|
-
"Dominic Tarr",
|
13
|
-
"Cat Chen",
|
14
|
-
"Titus Stone",
|
15
|
-
"Rob Sutherland",
|
16
|
-
"Pavel Lang",
|
17
|
-
"Ben Combee",
|
18
|
-
"Adam Backstrom",
|
19
|
-
"Pascal Deschênes",
|
20
|
-
"Estevão Santos"
|
21
|
-
],
|
22
|
-
"repository": {
|
23
|
-
"type": "git",
|
24
|
-
"url": "https://github.com/showdownjs/showdown.git",
|
25
|
-
"web": "https://github.com/showdownjs/showdown"
|
26
|
-
},
|
27
|
-
"licenses": [
|
28
|
-
{
|
29
|
-
"type": "BSD",
|
30
|
-
"url": "https://github.com/coreyti/showdown/raw/master/license.txt"
|
31
|
-
}
|
32
|
-
],
|
33
|
-
"main": "./src/showdown",
|
34
|
-
"scripts": {
|
35
|
-
"test": "mocha ./test/run.js"
|
36
|
-
},
|
37
|
-
"devDependencies": {
|
38
|
-
"angular": "^1.3.2",
|
39
|
-
"grunt": "^0.4.5",
|
40
|
-
"grunt-contrib-concat": "^0.5.0",
|
41
|
-
"grunt-contrib-jshint": "^0.10.0",
|
42
|
-
"grunt-contrib-uglify": "^0.6.0",
|
43
|
-
"grunt-simple-mocha": "^0.4.0",
|
44
|
-
"mocha": "*",
|
45
|
-
"should": "^4.4.2"
|
46
|
-
}
|
47
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Github Extension (WIP)
|
3
|
-
// ~~strike-through~~ -> <del>strike-through</del>
|
4
|
-
//
|
5
|
-
|
6
|
-
(function(){
|
7
|
-
var github = function(converter) {
|
8
|
-
return [
|
9
|
-
{
|
10
|
-
// strike-through
|
11
|
-
// NOTE: showdown already replaced "~" with "~T", so we need to adjust accordingly.
|
12
|
-
type : 'lang',
|
13
|
-
regex : '(~T){2}([^~]+)(~T){2}',
|
14
|
-
replace : function(match, prefix, content, suffix) {
|
15
|
-
return '<del>' + content + '</del>';
|
16
|
-
}
|
17
|
-
}
|
18
|
-
];
|
19
|
-
};
|
20
|
-
|
21
|
-
// Client-side export
|
22
|
-
if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.github = github; }
|
23
|
-
// Server-side export
|
24
|
-
if (typeof module !== 'undefined') module.exports = github;
|
25
|
-
}());
|
@@ -1,29 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Google Prettify
|
3
|
-
// A showdown extension to add Google Prettify (http://code.google.com/p/google-code-prettify/)
|
4
|
-
// hints to showdown's HTML output.
|
5
|
-
//
|
6
|
-
|
7
|
-
(function(){
|
8
|
-
|
9
|
-
var prettify = function(converter) {
|
10
|
-
return [
|
11
|
-
{ type: 'output', filter: function(source){
|
12
|
-
|
13
|
-
return source.replace(/(<pre>)?<code>/gi, function(match, pre) {
|
14
|
-
if (pre) {
|
15
|
-
return '<pre class="prettyprint linenums" tabIndex="0"><code data-inner="1">';
|
16
|
-
} else {
|
17
|
-
return '<code class="prettyprint">';
|
18
|
-
}
|
19
|
-
});
|
20
|
-
}}
|
21
|
-
];
|
22
|
-
};
|
23
|
-
|
24
|
-
// Client-side export
|
25
|
-
if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.prettify = prettify; }
|
26
|
-
// Server-side export
|
27
|
-
if (typeof module !== 'undefined') module.exports = prettify;
|
28
|
-
|
29
|
-
}());
|
@@ -1,106 +0,0 @@
|
|
1
|
-
/*global module:true*/
|
2
|
-
/*
|
3
|
-
* Basic table support with re-entrant parsing, where cell content
|
4
|
-
* can also specify markdown.
|
5
|
-
*
|
6
|
-
* Tables
|
7
|
-
* ======
|
8
|
-
*
|
9
|
-
* | Col 1 | Col 2 |
|
10
|
-
* |======== |====================================================|
|
11
|
-
* |**bold** | ![Valid XHTML] (http://w3.org/Icons/valid-xhtml10) |
|
12
|
-
* | Plain | Value |
|
13
|
-
*
|
14
|
-
*/
|
15
|
-
|
16
|
-
(function(){
|
17
|
-
var table = function(converter) {
|
18
|
-
var tables = {}, style = 'text-align:left;', filter;
|
19
|
-
tables.th = function(header){
|
20
|
-
if (header.trim() === "") { return "";}
|
21
|
-
var id = header.trim().replace(/ /g, '_').toLowerCase();
|
22
|
-
return '<th id="' + id + '" style="'+style+'">' + header + '</th>';
|
23
|
-
};
|
24
|
-
tables.td = function(cell) {
|
25
|
-
return '<td style="'+style+'">' + converter.makeHtml(cell) + '</td>';
|
26
|
-
};
|
27
|
-
tables.ths = function(){
|
28
|
-
var out = "", i = 0, hs = [].slice.apply(arguments);
|
29
|
-
for (i;i<hs.length;i+=1) {
|
30
|
-
out += tables.th(hs[i]) + '\n';
|
31
|
-
}
|
32
|
-
return out;
|
33
|
-
};
|
34
|
-
tables.tds = function(){
|
35
|
-
var out = "", i = 0, ds = [].slice.apply(arguments);
|
36
|
-
for (i;i<ds.length;i+=1) {
|
37
|
-
out += tables.td(ds[i]) + '\n';
|
38
|
-
}
|
39
|
-
return out;
|
40
|
-
};
|
41
|
-
tables.thead = function() {
|
42
|
-
var out, i = 0, hs = [].slice.apply(arguments);
|
43
|
-
out = "<thead>\n";
|
44
|
-
out += "<tr>\n";
|
45
|
-
out += tables.ths.apply(this, hs);
|
46
|
-
out += "</tr>\n";
|
47
|
-
out += "</thead>\n";
|
48
|
-
return out;
|
49
|
-
};
|
50
|
-
tables.tr = function() {
|
51
|
-
var out, i = 0, cs = [].slice.apply(arguments);
|
52
|
-
out = "<tr>\n";
|
53
|
-
out += tables.tds.apply(this, cs);
|
54
|
-
out += "</tr>\n";
|
55
|
-
return out;
|
56
|
-
};
|
57
|
-
filter = function(text) {
|
58
|
-
var i=0, lines = text.split('\n'), line, hs, rows, out = [];
|
59
|
-
for (i; i<lines.length;i+=1) {
|
60
|
-
line = lines[i];
|
61
|
-
// looks like a table heading
|
62
|
-
if (line.trim().match(/^[|]{1}.*[|]{1}$/)) {
|
63
|
-
line = line.trim();
|
64
|
-
var tbl = [];
|
65
|
-
tbl.push('<table>');
|
66
|
-
hs = line.substring(1, line.length -1).split('|');
|
67
|
-
tbl.push(tables.thead.apply(this, hs));
|
68
|
-
line = lines[++i];
|
69
|
-
if (!line.trim().match(/^[|]{1}[-=|: ]+[|]{1}$/)) {
|
70
|
-
// not a table rolling back
|
71
|
-
line = lines[--i];
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
line = lines[++i];
|
75
|
-
tbl.push('<tbody>');
|
76
|
-
while (line.trim().match(/^[|]{1}.*[|]{1}$/)) {
|
77
|
-
line = line.trim();
|
78
|
-
tbl.push(tables.tr.apply(this, line.substring(1, line.length -1).split('|')));
|
79
|
-
line = lines[++i];
|
80
|
-
}
|
81
|
-
tbl.push('</tbody>');
|
82
|
-
tbl.push('</table>');
|
83
|
-
// we are done with this table and we move along
|
84
|
-
out.push(tbl.join('\n'));
|
85
|
-
continue;
|
86
|
-
}
|
87
|
-
}
|
88
|
-
out.push(line);
|
89
|
-
}
|
90
|
-
return out.join('\n');
|
91
|
-
};
|
92
|
-
return [
|
93
|
-
{
|
94
|
-
type: 'lang',
|
95
|
-
filter: filter
|
96
|
-
}
|
97
|
-
];
|
98
|
-
};
|
99
|
-
|
100
|
-
// Client-side export
|
101
|
-
if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.table = table; }
|
102
|
-
// Server-side export
|
103
|
-
if (typeof module !== 'undefined') {
|
104
|
-
module.exports = table;
|
105
|
-
}
|
106
|
-
}());
|
@@ -1,42 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Twitter Extension
|
3
|
-
// @username -> <a href="http://twitter.com/username">@username</a>
|
4
|
-
// #hashtag -> <a href="http://twitter.com/search/%23hashtag">#hashtag</a>
|
5
|
-
//
|
6
|
-
|
7
|
-
(function(){
|
8
|
-
|
9
|
-
var twitter = function(converter) {
|
10
|
-
return [
|
11
|
-
|
12
|
-
// @username syntax
|
13
|
-
{ type: 'lang', regex: '\\B(\\\\)?@([\\S]+)\\b', replace: function(match, leadingSlash, username) {
|
14
|
-
// Check if we matched the leading \ and return nothing changed if so
|
15
|
-
if (leadingSlash === '\\') {
|
16
|
-
return match;
|
17
|
-
} else {
|
18
|
-
return '<a href="http://twitter.com/' + username + '">@' + username + '</a>';
|
19
|
-
}
|
20
|
-
}},
|
21
|
-
|
22
|
-
// #hashtag syntax
|
23
|
-
{ type: 'lang', regex: '\\B(\\\\)?#([\\S]+)\\b', replace: function(match, leadingSlash, tag) {
|
24
|
-
// Check if we matched the leading \ and return nothing changed if so
|
25
|
-
if (leadingSlash === '\\') {
|
26
|
-
return match;
|
27
|
-
} else {
|
28
|
-
return '<a href="http://twitter.com/search/%23' + tag + '">#' + tag + '</a>';
|
29
|
-
}
|
30
|
-
}},
|
31
|
-
|
32
|
-
// Escaped @'s
|
33
|
-
{ type: 'lang', regex: '\\\\@', replace: '@' }
|
34
|
-
];
|
35
|
-
};
|
36
|
-
|
37
|
-
// Client-side export
|
38
|
-
if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.twitter = twitter; }
|
39
|
-
// Server-side export
|
40
|
-
if (typeof module !== 'undefined') module.exports = twitter;
|
41
|
-
|
42
|
-
}());
|
@@ -1,150 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Created by Tivie on 04-11-2014.
|
3
|
-
*/
|
4
|
-
|
5
|
-
|
6
|
-
//Check if AngularJs and Showdown is defined and only load ng-Showdown if both are present
|
7
|
-
if (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') {
|
8
|
-
|
9
|
-
(function (module, Showdown) {
|
10
|
-
|
11
|
-
module
|
12
|
-
.provider('$Showdown', provider)
|
13
|
-
.directive('sdModelToHtml', ['$Showdown', markdownToHtmlDirective])
|
14
|
-
.filter('sdStripHtml', stripHtmlFilter);
|
15
|
-
|
16
|
-
/**
|
17
|
-
* Angular Provider
|
18
|
-
* Enables configuration of showdown via angular.config and Dependency Injection into controllers, views
|
19
|
-
* directives, etc... This assures the directives and filters provided by the library itself stay consistent
|
20
|
-
* with the user configurations.
|
21
|
-
* If the user wants to use a different configuration in a determined context, he can use the "classic" Showdown
|
22
|
-
* object instead.
|
23
|
-
*
|
24
|
-
*/
|
25
|
-
function provider() {
|
26
|
-
|
27
|
-
// Configuration parameters for Showdown
|
28
|
-
var config = {
|
29
|
-
extensions: [],
|
30
|
-
stripHtml: true
|
31
|
-
};
|
32
|
-
|
33
|
-
/**
|
34
|
-
* Sets a configuration option
|
35
|
-
*
|
36
|
-
* @param {string} key Config parameter key
|
37
|
-
* @param {string} value Config parameter value
|
38
|
-
*/
|
39
|
-
this.setOption = function (key, value) {
|
40
|
-
config.key = value;
|
41
|
-
|
42
|
-
return this;
|
43
|
-
};
|
44
|
-
|
45
|
-
/**
|
46
|
-
* Gets the value of the configuration parameter specified by key
|
47
|
-
*
|
48
|
-
* @param {string} key The config parameter key
|
49
|
-
* @returns {string|null} Returns the value of the config parameter. (or null if the config parameter is not set)
|
50
|
-
*/
|
51
|
-
this.getOption = function (key) {
|
52
|
-
if (config.hasOwnProperty(key)) {
|
53
|
-
return config.key;
|
54
|
-
} else {
|
55
|
-
return null;
|
56
|
-
}
|
57
|
-
};
|
58
|
-
|
59
|
-
/**
|
60
|
-
* Loads a Showdown Extension
|
61
|
-
*
|
62
|
-
* @param {string} extensionName The name of the extension to load
|
63
|
-
*/
|
64
|
-
this.loadExtension = function (extensionName) {
|
65
|
-
config.extensions.push(extensionName);
|
66
|
-
|
67
|
-
return this;
|
68
|
-
};
|
69
|
-
|
70
|
-
function SDObject() {
|
71
|
-
var converter = new Showdown.converter(config);
|
72
|
-
|
73
|
-
/**
|
74
|
-
* Converts a markdown text into HTML
|
75
|
-
*
|
76
|
-
* @param {string} markdown The markdown string to be converted to HTML
|
77
|
-
* @returns {string} The converted HTML
|
78
|
-
*/
|
79
|
-
this.makeHtml = function (markdown) {
|
80
|
-
return converter.makeHtml(markdown);
|
81
|
-
};
|
82
|
-
|
83
|
-
/**
|
84
|
-
* Strips a text of it's HTML tags
|
85
|
-
*
|
86
|
-
* @param {string} text
|
87
|
-
* @returns {string}
|
88
|
-
*/
|
89
|
-
this.stripHtml = function (text) {
|
90
|
-
return String(text).replace(/<[^>]+>/gm, '');
|
91
|
-
};
|
92
|
-
}
|
93
|
-
|
94
|
-
// The object returned by service provider
|
95
|
-
this.$get = function () {
|
96
|
-
return new SDObject();
|
97
|
-
};
|
98
|
-
}
|
99
|
-
|
100
|
-
/**
|
101
|
-
* AngularJS Directive to Md to HTML transformation
|
102
|
-
*
|
103
|
-
* Usage example:
|
104
|
-
* <div sd-md-to-html-model="markdownText" ></div>
|
105
|
-
*
|
106
|
-
* @param $Showdown
|
107
|
-
* @returns {*}
|
108
|
-
*/
|
109
|
-
function markdownToHtmlDirective($Showdown) {
|
110
|
-
|
111
|
-
var link = function (scope, element) {
|
112
|
-
scope.$watch('model', function (newValue) {
|
113
|
-
var val;
|
114
|
-
if (typeof newValue === 'string') {
|
115
|
-
val = $Showdown.makeHtml(newValue);
|
116
|
-
} else {
|
117
|
-
val = typeof newValue;
|
118
|
-
}
|
119
|
-
element.html(val);
|
120
|
-
});
|
121
|
-
};
|
122
|
-
|
123
|
-
return {
|
124
|
-
restrict: 'A',
|
125
|
-
link: link,
|
126
|
-
scope: {
|
127
|
-
model: '=sdModelToHtml'
|
128
|
-
}
|
129
|
-
}
|
130
|
-
}
|
131
|
-
|
132
|
-
/**
|
133
|
-
* AngularJS Filter to Strip HTML tags from text
|
134
|
-
*
|
135
|
-
* @returns {Function}
|
136
|
-
*/
|
137
|
-
function stripHtmlFilter() {
|
138
|
-
return function (text) {
|
139
|
-
return String(text).replace(/<[^>]+>/gm, '');
|
140
|
-
};
|
141
|
-
}
|
142
|
-
|
143
|
-
})(angular.module('Showdown', []), Showdown);
|
144
|
-
|
145
|
-
} else {
|
146
|
-
|
147
|
-
/** TODO Since this library is opt out, maybe we should not throw an error so we can concatenate this
|
148
|
-
script with the main lib */
|
149
|
-
// throw new Error("ng-showdown was not loaded because one of it's dependencies (AngularJS or Showdown) wasn't met");
|
150
|
-
}
|