├── .gitignore ├── static ├── mirador │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── MaterialIcons-Regular.eot │ │ ├── MaterialIcons-Regular.ttf │ │ ├── MaterialIcons-Regular.woff │ │ ├── MaterialIcons-Regular.woff2 │ │ └── fontawesome-webfont.woff2 │ ├── images │ │ ├── debut_dark.png │ │ ├── border_type_1.png │ │ ├── border_type_2.png │ │ ├── border_type_3.png │ │ ├── border_type_4.png │ │ └── border_type_5.png │ ├── plugins │ │ ├── help │ │ │ ├── img │ │ │ │ └── logo.png │ │ │ └── index.js │ │ ├── emoticons │ │ │ ├── img │ │ │ │ ├── smiley-cool.gif │ │ │ │ ├── smiley-cry.gif │ │ │ │ ├── smiley-frown.gif │ │ │ │ ├── smiley-kiss.gif │ │ │ │ ├── smiley-smile.gif │ │ │ │ ├── smiley-wink.gif │ │ │ │ ├── smiley-yell.gif │ │ │ │ ├── smiley-sealed.gif │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ ├── smiley-innocent.gif │ │ │ │ ├── smiley-laughing.gif │ │ │ │ ├── smiley-surprised.gif │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ ├── smiley-undecided.gif │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ └── smiley-foot-in-mouth.gif │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── hr │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── toc │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── code │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── link │ │ │ └── index.js │ │ ├── save │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── image │ │ │ └── index.js │ │ ├── lists │ │ │ └── index.js │ │ ├── media │ │ │ └── index.js │ │ ├── paste │ │ │ └── index.js │ │ ├── print │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── table │ │ │ └── index.js │ │ ├── advlist │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── anchor │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── bbcode │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── charmap │ │ │ └── index.js │ │ ├── preview │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── autolink │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── autosave │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── fullpage │ │ │ └── index.js │ │ ├── tabfocus │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── template │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── importcss │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── pagebreak │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── textcolor │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── wordcount │ │ │ └── index.js │ │ ├── autoresize │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── codesample │ │ │ ├── index.js │ │ │ └── css │ │ │ │ └── prism.css │ │ ├── fullscreen │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── imagetools │ │ │ └── index.js │ │ ├── colorpicker │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── contextmenu │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── legacyoutput │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── nonbreaking │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── noneditable │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── spellchecker │ │ │ └── index.js │ │ ├── textpattern │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── visualblocks │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ ├── visualchars │ │ │ ├── index.js │ │ │ └── plugin.min.js │ │ ├── searchreplace │ │ │ └── index.js │ │ ├── directionality │ │ │ ├── index.js │ │ │ ├── plugin.min.js │ │ │ └── plugin.js │ │ └── insertdatetime │ │ │ ├── index.js │ │ │ └── plugin.min.js │ ├── skins │ │ └── lightgray │ │ │ ├── img │ │ │ ├── anchor.gif │ │ │ ├── loader.gif │ │ │ ├── object.gif │ │ │ └── trans.gif │ │ │ ├── fonts │ │ │ ├── tinymce.eot │ │ │ ├── tinymce.ttf │ │ │ ├── tinymce.woff │ │ │ ├── tinymce-small.eot │ │ │ ├── tinymce-small.ttf │ │ │ ├── tinymce-small.woff │ │ │ └── tinymce-mobile.woff │ │ │ ├── content.mobile.min.css │ │ │ ├── content.inline.min.css │ │ │ └── content.min.css │ ├── themes │ │ ├── inlite │ │ │ └── index.js │ │ ├── mobile │ │ │ └── index.js │ │ └── modern │ │ │ └── index.js │ └── locales │ │ ├── nl │ │ └── translation.json │ │ ├── zh │ │ └── translation.json │ │ ├── zh-CN │ │ └── translation.json │ │ ├── zh-TW │ │ └── translation.json │ │ ├── ko │ │ └── translation.json │ │ ├── ja │ │ └── translation.json │ │ ├── es │ │ └── translation.json │ │ ├── ga │ │ └── translation.json │ │ ├── en │ │ └── translation.json │ │ ├── ar │ │ └── translation.json │ │ ├── de │ │ └── translation.json │ │ └── fr │ │ └── translation.json ├── index.html └── annotationEndpoint.js ├── Makefile ├── go.mod ├── db.go ├── annotation.go ├── go.sum ├── main.go ├── README.md └── handlers.go /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | bindata.go 3 | vendor 4 | build/macos/IIIF\ Annotation\ Studio.app/Contents/MacOS/IIIF\ Annotation\ Studio.app 5 | -------------------------------------------------------------------------------- /static/mirador/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/mirador/images/debut_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/images/debut_dark.png -------------------------------------------------------------------------------- /static/mirador/images/border_type_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/images/border_type_1.png -------------------------------------------------------------------------------- /static/mirador/images/border_type_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/images/border_type_2.png -------------------------------------------------------------------------------- /static/mirador/images/border_type_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/images/border_type_3.png -------------------------------------------------------------------------------- /static/mirador/images/border_type_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/images/border_type_4.png -------------------------------------------------------------------------------- /static/mirador/images/border_type_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/images/border_type_5.png -------------------------------------------------------------------------------- /static/mirador/plugins/help/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/help/img/logo.png -------------------------------------------------------------------------------- /static/mirador/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/mirador/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/mirador/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /static/mirador/fonts/MaterialIcons-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/MaterialIcons-Regular.eot -------------------------------------------------------------------------------- /static/mirador/fonts/MaterialIcons-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/MaterialIcons-Regular.ttf -------------------------------------------------------------------------------- /static/mirador/fonts/MaterialIcons-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/MaterialIcons-Regular.woff -------------------------------------------------------------------------------- /static/mirador/fonts/MaterialIcons-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/MaterialIcons-Regular.woff2 -------------------------------------------------------------------------------- /static/mirador/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | bindata: 2 | go-bindata-assetfs static/... 3 | 4 | build-macos: 5 | go build -o "build/macos/IIIF Annotation Studio.app/Contents/MacOS/IIIF Annotation Studio.app" -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atomotic/iiif-annotation-studio/HEAD/static/mirador/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /static/mirador/plugins/hr/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "hr" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/hr') 5 | // ES2015: 6 | // import 'tinymce/plugins/hr' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/toc/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "toc" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/toc') 5 | // ES2015: 6 | // import 'tinymce/plugins/toc' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/code/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "code" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/code') 5 | // ES2015: 6 | // import 'tinymce/plugins/code' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/help/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "help" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/help') 5 | // ES2015: 6 | // import 'tinymce/plugins/help' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/link/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "link" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/link') 5 | // ES2015: 6 | // import 'tinymce/plugins/link' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/save/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "save" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/save') 5 | // ES2015: 6 | // import 'tinymce/plugins/save' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/image/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "image" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/image') 5 | // ES2015: 6 | // import 'tinymce/plugins/image' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/lists/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "lists" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/lists') 5 | // ES2015: 6 | // import 'tinymce/plugins/lists' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/media/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "media" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/media') 5 | // ES2015: 6 | // import 'tinymce/plugins/media' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/paste/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "paste" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/paste') 5 | // ES2015: 6 | // import 'tinymce/plugins/paste' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/print/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "print" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/print') 5 | // ES2015: 6 | // import 'tinymce/plugins/print' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/table/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "table" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/table') 5 | // ES2015: 6 | // import 'tinymce/plugins/table' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/themes/inlite/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "inlite" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/inlite') 5 | // ES2015: 6 | // import 'tinymce/themes/inlite' 7 | require('./theme.js'); -------------------------------------------------------------------------------- /static/mirador/themes/mobile/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "mobile" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/mobile') 5 | // ES2015: 6 | // import 'tinymce/themes/mobile' 7 | require('./theme.js'); -------------------------------------------------------------------------------- /static/mirador/themes/modern/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "modern" theme for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/themes/modern') 5 | // ES2015: 6 | // import 'tinymce/themes/modern' 7 | require('./theme.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/advlist/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "advlist" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/advlist') 5 | // ES2015: 6 | // import 'tinymce/plugins/advlist' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/anchor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "anchor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/anchor') 5 | // ES2015: 6 | // import 'tinymce/plugins/anchor' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/bbcode/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "bbcode" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/bbcode') 5 | // ES2015: 6 | // import 'tinymce/plugins/bbcode' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/charmap/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "charmap" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/charmap') 5 | // ES2015: 6 | // import 'tinymce/plugins/charmap' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/preview/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "preview" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/preview') 5 | // ES2015: 6 | // import 'tinymce/plugins/preview' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/autolink/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autolink" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autolink') 5 | // ES2015: 6 | // import 'tinymce/plugins/autolink' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/autosave/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autosave" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autosave') 5 | // ES2015: 6 | // import 'tinymce/plugins/autosave' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/fullpage/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullpage" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullpage') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullpage' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/tabfocus/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "tabfocus" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/tabfocus') 5 | // ES2015: 6 | // import 'tinymce/plugins/tabfocus' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/template/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "template" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/template') 5 | // ES2015: 6 | // import 'tinymce/plugins/template' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/emoticons/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "emoticons" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/emoticons') 5 | // ES2015: 6 | // import 'tinymce/plugins/emoticons' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/importcss/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "importcss" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/importcss') 5 | // ES2015: 6 | // import 'tinymce/plugins/importcss' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/pagebreak/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "pagebreak" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/pagebreak') 5 | // ES2015: 6 | // import 'tinymce/plugins/pagebreak' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/textcolor/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "textcolor" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/textcolor') 5 | // ES2015: 6 | // import 'tinymce/plugins/textcolor' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/wordcount/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "wordcount" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/wordcount') 5 | // ES2015: 6 | // import 'tinymce/plugins/wordcount' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/autoresize/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "autoresize" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/autoresize') 5 | // ES2015: 6 | // import 'tinymce/plugins/autoresize' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/codesample/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "codesample" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/codesample') 5 | // ES2015: 6 | // import 'tinymce/plugins/codesample' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/fullscreen/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "fullscreen" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/fullscreen') 5 | // ES2015: 6 | // import 'tinymce/plugins/fullscreen' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/imagetools/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "imagetools" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/imagetools') 5 | // ES2015: 6 | // import 'tinymce/plugins/imagetools' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/colorpicker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "colorpicker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/colorpicker') 5 | // ES2015: 6 | // import 'tinymce/plugins/colorpicker' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/contextmenu/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "contextmenu" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/contextmenu') 5 | // ES2015: 6 | // import 'tinymce/plugins/contextmenu' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/legacyoutput/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "legacyoutput" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/legacyoutput') 5 | // ES2015: 6 | // import 'tinymce/plugins/legacyoutput' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/nonbreaking/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "nonbreaking" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/nonbreaking') 5 | // ES2015: 6 | // import 'tinymce/plugins/nonbreaking' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/noneditable/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "noneditable" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/noneditable') 5 | // ES2015: 6 | // import 'tinymce/plugins/noneditable' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/spellchecker/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "spellchecker" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/spellchecker') 5 | // ES2015: 6 | // import 'tinymce/plugins/spellchecker' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/textpattern/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "textpattern" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/textpattern') 5 | // ES2015: 6 | // import 'tinymce/plugins/textpattern' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/visualblocks/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "visualblocks" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/visualblocks') 5 | // ES2015: 6 | // import 'tinymce/plugins/visualblocks' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/visualchars/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "visualchars" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/visualchars') 5 | // ES2015: 6 | // import 'tinymce/plugins/visualchars' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/skins/lightgray/content.mobile.min.css: -------------------------------------------------------------------------------- 1 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%} -------------------------------------------------------------------------------- /static/mirador/plugins/searchreplace/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "searchreplace" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/searchreplace') 5 | // ES2015: 6 | // import 'tinymce/plugins/searchreplace' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/directionality/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "directionality" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/directionality') 5 | // ES2015: 6 | // import 'tinymce/plugins/directionality' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/insertdatetime/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "insertdatetime" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/insertdatetime') 5 | // ES2015: 6 | // import 'tinymce/plugins/insertdatetime' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /static/mirador/plugins/print/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t){t.addCommand("mcePrint",function(){t.getWin().print()})},i=function(t){t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print"})};t.add("print",function(t){n(t),i(t),t.addShortcut("Meta+P","","mcePrint")})}(); -------------------------------------------------------------------------------- /static/mirador/plugins/hr/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
"+o()+"
"):e.insertContent(o())})},m=function(a){a.on("ResolveName",function(e){"IMG"===e.target.nodeName&&a.dom.hasClass(e.target,g())&&(e.name="pagebreak")})},s=function(e){e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"})};e.add("pagebreak",function(e){u(e),s(e),c(e),m(e)})}(); -------------------------------------------------------------------------------- /static/mirador/locales/nl/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "addItem": "Voeg item toe", 3 | "changeLayout": "Pas layout aan", 4 | "selectGrid": "Kies een grid hieronder", 5 | "bookmark": "Favoriet", 6 | "close": "Sluiten", 7 | "bookmarkTitle": "Favoriet of deel uw werkset", 8 | "filterObjects": "Filter objecten", 9 | "addNewObject": "Voeg nieuw object toe via URL", 10 | "more": "meer", 11 | "item": "item", 12 | "items": "items", 13 | "details": "Details", 14 | "rights": "Copyright", 15 | "rightsStatus": "Copyright Status", 16 | "unspecified": "Niet gespecifieerd", 17 | "links": "Links", 18 | "addSlotRight": "Voeg Slot toe rechts", 19 | "addSlotLeft": "Voeg Slot toe links", 20 | "addSlotAbove": "Voeg Slot toe bovenaan", 21 | "addSlotBelow": "Voeg Slot toe onderaan", 22 | "imageView": "Beeld presentatie", 23 | "bookView": "Boek presentatie", 24 | "scrollView": "Scroll view", 25 | "thumbnailsView": "Bekijk thumbnail", 26 | "comments": "Commentaar", 27 | "addTagsHere": "Voeg hier tags toe", 28 | "save": "Opslaan", 29 | "cancel": "Annuleren", 30 | "edit": "Bewerken", 31 | "delete": "Verwijderen", 32 | "url": "URL", 33 | "newObject": "Nieuw Object", 34 | "objectMetadata": "Object Metadata", 35 | "fullScreen": "Volledig scherm", 36 | "logo": "Logo", 37 | "load": "Laad", 38 | "dropToLoad": "Drop hier om the laden" 39 | } 40 | -------------------------------------------------------------------------------- /annotation.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "encoding/json" 4 | 5 | // Annotation struct 6 | type Annotation struct { 7 | Context string `json:"@context"` 8 | Type string `json:"@type"` 9 | ID string `json:"@id"` 10 | Motivation []string `json:"motivation"` 11 | On []struct { 12 | Type string `json:"@type"` 13 | Full string `json:"full"` 14 | Selector struct { 15 | Type string `json:"@type"` 16 | Default struct { 17 | Type string `json:"@type"` 18 | Value string `json:"value"` 19 | } `json:"default"` 20 | Item struct { 21 | Type string `json:"@type"` 22 | Value string `json:"value"` 23 | } `json:"item"` 24 | } `json:"selector"` 25 | Within struct { 26 | ID string `json:"@id"` 27 | Type string `json:"@type"` 28 | } `json:"within"` 29 | } `json:"on"` 30 | Resource []struct { 31 | Type string `json:"@type"` 32 | Chars string `json:"chars"` 33 | 34 | Format string `json:"format"` 35 | } `json:"resource"` 36 | } 37 | 38 | // Manifest of the annotation 39 | func (a *Annotation) Manifest() string { 40 | return a.On[0].Within.ID 41 | } 42 | 43 | // Canvas of the annotation 44 | func (a *Annotation) Canvas() string { 45 | return a.On[0].Full 46 | } 47 | 48 | // AnnotationList is a list of annotation 49 | type AnnotationList struct { 50 | Context string `json:"@context"` 51 | ID string `json:"@id"` 52 | Type string `json:"@type"` 53 | Resources []json.RawMessage `json:"resources"` 54 | } 55 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk= 2 | github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= 3 | github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= 4 | github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 5 | github.com/julienschmidt/httprouter v1.2.0 h1:TDTW5Yz1mjftljbcKqRcrYhd4XeOoI98t+9HbQbYf7g= 6 | github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= 7 | github.com/lithammer/shortuuid v3.0.0+incompatible h1:NcD0xWW/MZYXEHa6ITy6kaXN5nwm/V115vj2YXfhS0w= 8 | github.com/lithammer/shortuuid v3.0.0+incompatible/go.mod h1:FR74pbAuElzOUuenUHTK2Tciko1/vKuIKS9dSkDrA4w= 9 | github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= 10 | github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= 11 | github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= 12 | github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= 13 | github.com/rs/zerolog v1.12.0 h1:aqZ1XRadoS8IBknR5IDFvGzbHly1X9ApIqOroooQF/c= 14 | github.com/rs/zerolog v1.12.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= 15 | github.com/zserge/webview v0.0.0-20190123072648-16c93bcaeaeb h1:zVjnyZIM7UtkG3dNckiudIm+TUHkZqi5xlVQPd3J6/c= 16 | github.com/zserge/webview v0.0.0-20190123072648-16c93bcaeaeb/go.mod h1:a1CV8KR4Dd1eP2g+mEijGOp+HKczwdKHWyx0aPHKvo4= 17 | -------------------------------------------------------------------------------- /static/mirador/plugins/noneditable/plugin.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(t){return t.getParam("noneditable_noneditable_class","mceNonEditable")},u=function(t){return t.getParam("noneditable_editable_class","mceEditable")},f=function(t){var n=t.getParam("noneditable_regexp",[]);return n&&n.constructor===RegExp?[n]:n},s=function(n){return function(t){return-1!==(" "+t.attr("class")+" ").indexOf(n)}},d=function(i,o,c){return function(t){var n=arguments,e=n[n.length-2],r=0