Mercurial > hg > digilib-old
changeset 1144:2e79fd535ab6
annotator markdown plugin
author | hertzhaft |
---|---|
date | Fri, 23 Nov 2012 10:04:35 +0100 |
parents | c2b8f777979f |
children | dc66ab520dae |
files | webapp/src/main/webapp/jquery/annotator.markdown.js |
diffstat | 1 files changed, 41 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webapp/src/main/webapp/jquery/annotator.markdown.js Fri Nov 23 10:04:35 2012 +0100 @@ -0,0 +1,41 @@ +// Annotator Plugin that renders annotation comments displayed in the Viewer in Markdown. +// Requires Showdown library (showdown.js) to be present in the page when initialised. +// compiled from markdown.coffee +// https://github.com/okfn/annotator/wiki/Markdown-Plugin + +var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + +Annotator.Plugin.Markdown = (function(_super) { + + __extends(Markdown, _super); + + Markdown.prototype.events = { + 'annotationViewerTextField': 'updateTextField' + }; + + function Markdown(element, options) { + this.updateTextField = __bind(this.updateTextField, this); + if ((typeof Showdown !== "undefined" && Showdown !== null ? Showdown.converter : void 0) != null) { + Markdown.__super__.constructor.apply(this, arguments); + this.converter = new Showdown.converter(); + } else { + console.error(Annotator._t("To use the Markdown plugin, you must include Showdown into the page first.")); + } + } + + Markdown.prototype.updateTextField = function(field, annotation) { + var text; + text = Annotator.$.escape(annotation.text || ''); + return $(field).html(this.convert(text)); + }; + + Markdown.prototype.convert = function(text) { + return this.converter.makeHtml(text); + }; + + return Markdown; + +})(Annotator.Plugin); +