This is an automated email from the ASF dual-hosted git repository. gerben pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-annotator-website.git
commit 7007fd7b77d24bf37be8221ac0ccd7b8eeca68e7 Author: Gerben <[email protected]> AuthorDate: Sun Jun 6 16:15:57 2021 +0200 Build the website content --- annotator | 2 +- content/demo/main.js | 120 ++++++++++-- content/docs/api/assets/js/search.js | 2 +- content/docs/api/index.html | 12 ++ content/docs/api/interfaces/selector.chunk.html | 12 ++ content/docs/api/interfaces/selector.chunker.html | 12 ++ .../docs/api/interfaces/selector.chunkrange.html | 12 ++ .../docs/api/interfaces/selector.cssselector.html | 12 ++ .../selector.describetextquoteoptions.html | 12 ++ content/docs/api/interfaces/selector.matcher.html | 12 ++ .../api/interfaces/selector.rangeselector.html | 12 ++ .../docs/api/interfaces/selector.selector-1.html | 12 ++ .../interfaces/selector.textpositionselector.html | 12 ++ .../api/interfaces/selector.textquoteselector.html | 12 ++ content/docs/api/modules/dom.html | 212 ++++++++++++++------- content/docs/api/modules/selector.html | 12 ++ content/docs/develop/index.html | 24 ++- content/docs/getting-started/index.html | 78 +++----- content/docs/index.html | 27 ++- content/index.html | 10 + 20 files changed, 461 insertions(+), 158 deletions(-) diff --git a/annotator b/annotator index b0413a6..d95ab66 160000 --- a/annotator +++ b/annotator @@ -1 +1 @@ -Subproject commit b0413a6dbf6729ea636ca0cc829121303eb3828e +Subproject commit d95ab66750138a4623f20370871bb3cc70c3f347 diff --git a/content/demo/main.js b/content/demo/main.js index 05196dd..9cdba5d 100644 --- a/content/demo/main.js +++ b/content/demo/main.js @@ -3436,6 +3436,90 @@ eval("__webpack_require__(/*! ./es.array.iterator */ \"../node_modules/core-js-p /***/ }), +/***/ "../node_modules/optimal-select/lib/adapt.js": +/*!***************************************************!*\ + !*** ../node_modules/optimal-select/lib/adapt.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; [...] + +/***/ }), + +/***/ "../node_modules/optimal-select/lib/common.js": +/*!****************************************************!*\ + !*** ../node_modules/optimal-select/lib/common.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCommonAncestor = getCommonAncestor;\nexports.getCommonProperties = getCommonProperties;\n/**\n * # Common\n *\n * Process collections for similarities.\n */\n\n/**\n * Find the last common ancestor of elements\n *\n * @param {Array.<HTMLElements>} elements - [description]\n * @return {HTMLElement} - [description]\n */\nfunction getCommonAncestor(elements) {\n var options = argum [...] + +/***/ }), + +/***/ "../node_modules/optimal-select/lib/index.js": +/*!***************************************************!*\ + !*** ../node_modules/optimal-select/lib/index.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.common = exports.optimize = exports.getMultiSelector = exports.getSingleSelector = exports.select = undefined;\n\nvar _select2 = __webpack_require__(/*! ./select */ \"../node_modules/optimal-select/lib/select.js\");\n\nObject.defineProperty(exports, 'getSingleSelector', {\n enumerable: true,\n get: function get() {\n return _select2.getSingleSelector;\n }\n});\nObject.definePro [...] + +/***/ }), + +/***/ "../node_modules/optimal-select/lib/match.js": +/*!***************************************************!*\ + !*** ../node_modules/optimal-select/lib/match.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = match;\n\nvar _utilities = __webpack_require__(/*! ./utilities */ \"../node_modules/optimal-select/lib/utilities.js\");\n\nvar defaultIgnore = {\n attribute: function attribute(attributeName) {\n return ['style', 'data-reactid', 'data-react-checksum'].indexOf(attributeName) > -1;\n }\n};\n\n/**\n * Get the path of the element\n *\n * @param {HTMLElement} node - [description]\n * @pa [...] + +/***/ }), + +/***/ "../node_modules/optimal-select/lib/optimize.js": +/*!******************************************************!*\ + !*** ../node_modules/optimal-select/lib/optimize.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = optimize;\n\nvar _adapt = __webpack_require__(/*! ./adapt */ \"../node_modules/optimal-select/lib/adapt.js\");\n\nvar _adapt2 = _interopRequireDefault(_adapt);\n\nvar _utilities = __webpack_require__(/*! ./utilities */ \"../node_modules/optimal-select/lib/utilities.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? ob [...] + +/***/ }), + +/***/ "../node_modules/optimal-select/lib/select.js": +/*!****************************************************!*\ + !*** ../node_modules/optimal-select/lib/select.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n [...] + +/***/ }), + +/***/ "../node_modules/optimal-select/lib/utilities.js": +/*!*******************************************************!*\ + !*** ../node_modules/optimal-select/lib/utilities.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.convertNodeList = convertNodeList;\nexports.escapeValue = escapeValue;\n/**\n * # Utilities\n *\n * Convenience helpers.\n */\n\n/**\n * Create an array with the DOM nodes of the list\n *\n * @param {NodeList} nodes - [description]\n * @return {Array.<HTMLElement>} - [description]\n */\nfunction convertNodeList(nodes) {\n var length = nodes.length;\n\n var arr = new Array(length) [...] + +/***/ }), + /***/ "../node_modules/regenerator-runtime/runtime.js": /*!******************************************************!*\ !*** ../node_modules/regenerator-runtime/runtime.js ***! @@ -3462,11 +3546,11 @@ eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn th /*!**********************************!*\ !*** ../packages/dom/src/css.ts ***! \**********************************/ -/*! exports provided: createCssSelectorMatcher */ +/*! exports provided: createCssSelectorMatcher, describeCss */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createCssSelectorMatcher\", function() { return createCssSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/instance/slice */ \"../node_modules/@babel/runtime-corejs3/core-js/instance/slice.js\");\n/* harmony import */ var _babel_runtime [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createCssSelectorMatcher\", function() { return createCssSelectorMatcher; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"describeCss\", function() { return describeCss; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/ [...] /***/ }), @@ -3486,11 +3570,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /*!************************************!*\ !*** ../packages/dom/src/index.ts ***! \************************************/ -/*! exports provided: createCssSelectorMatcher, makeCreateRangeSelectorMatcher, describeTextQuote, createTextQuoteSelectorMatcher, describeTextPosition, createTextPositionSelectorMatcher, highlightRange */ +/*! exports provided: createCssSelectorMatcher, describeCss, makeCreateRangeSelectorMatcher, describeTextQuote, createTextQuoteSelectorMatcher, describeTextPosition, createTextPositionSelectorMatcher, highlightRange */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _css_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css.ts */ \"../packages/dom/src/css.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createCssSelectorMatcher\", function() { return _css_ts__WEBPACK_IMPORTED_MODULE_0__[\"createCssSelectorMatcher\"]; });\n\n/* harmony import */ var _range_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./range/index [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _css_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css.ts */ \"../packages/dom/src/css.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createCssSelectorMatcher\", function() { return _css_ts__WEBPACK_IMPORTED_MODULE_0__[\"createCssSelectorMatcher\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"describeCss\", function() { return [...] /***/ }), @@ -3514,7 +3598,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownerDocument\", function() { return ownerDocument; });\n/**\n * @license\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Versi [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ownerDocument\", function() { return ownerDocument; });\n/**\n * @license\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Versi [...] /***/ }), @@ -3550,7 +3634,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mat /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeCreateRangeSelectorMatcher\", function() { return makeCreateRangeSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/slicedToArray */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArray.js\");\n/* harmony import [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeCreateRangeSelectorMatcher\", function() { return makeCreateRangeSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/slicedToArray */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArray.js\");\n/* harmony import [...] /***/ }), @@ -3562,7 +3646,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptyScopeError\", function() { return EmptyScopeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OutOfScopeError\", function() { return OutOfScopeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TextNodeChunker\", function() { return TextNodeChunker; });\n/* harmony import */ var _babe [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptyScopeError\", function() { return EmptyScopeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OutOfScopeError\", function() { return OutOfScopeError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TextNodeChunker\", function() { return TextNodeChunker; });\n/* harmony import */ var _babe [...] /***/ }), @@ -3574,7 +3658,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"describeTextPosition\", function() { return describeTextPosition; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncToGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _bab [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"describeTextPosition\", function() { return describeTextPosition; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncToGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _bab [...] /***/ }), @@ -3598,7 +3682,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _des /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTextPositionSelectorMatcher\", function() { return createTextPositionSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_awaitAsyncGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTextPositionSelectorMatcher\", function() { return createTextPositionSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_awaitAsyncGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js [...] /***/ }), @@ -3610,7 +3694,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"describeTextQuote\", function() { return describeTextQuote; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncToGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_run [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"describeTextQuote\", function() { return describeTextQuote; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncToGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_run [...] /***/ }), @@ -3634,7 +3718,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _des /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTextQuoteSelectorMatcher\", function() { return createTextQuoteSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_awaitAsyncGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js\");\n [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTextQuoteSelectorMatcher\", function() { return createTextQuoteSelectorMatcher; });\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_awaitAsyncGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js\");\n [...] + +/***/ }), + +/***/ "../packages/dom/src/to-range.ts": +/*!***************************************!*\ + !*** ../packages/dom/src/to-range.ts ***! + \***************************************/ +/*! exports provided: toRange */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toRange\", function() { return toRange; });\n/* harmony import */ var _owner_document_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./owner-document.ts */ \"../packages/dom/src/owner-document.ts\");\n/**\n * @license\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * dist [...] /***/ }), @@ -3766,7 +3862,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncToGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncIterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncIterato [...] +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncToGenerator */ \"../node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_corejs3_helpers_esm_asyncIterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/asyncIterato [...] /***/ }), diff --git a/content/docs/api/assets/js/search.js b/content/docs/api/assets/js/search.js index 16824df..2fcb40e 100644 --- a/content/docs/api/assets/js/search.js +++ b/content/docs/api/assets/js/search.js @@ -1 +1 @@ -window.searchData = {"kinds":{"1":"Module","64":"Function","256":"Interface","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":1,"name":"dom","url":"modules/dom.html","classes":"tsd-kind-module"},{"id":1,"kind":1,"name":"selector","url":"modules/selector.html","classes":"tsd-kind-module"},{"id":2,"kind":64,"name":"createCssSelectorMatcher","url":"modules/dom.html#createcssselectormatcher","classes":"tsd-kind-function tsd-parent-kind-module","parent":"dom"},{"id":3,"kind":64,"name [...] \ No newline at end of file +window.searchData = {"kinds":{"1":"Module","64":"Function","256":"Interface","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":1,"name":"dom","url":"modules/dom.html","classes":"tsd-kind-module"},{"id":1,"kind":1,"name":"selector","url":"modules/selector.html","classes":"tsd-kind-module"},{"id":2,"kind":64,"name":"createCssSelectorMatcher","url":"modules/dom.html#createcssselectormatcher","classes":"tsd-kind-function tsd-parent-kind-module","parent":"dom"},{"id":3,"kind":64,"name [...] \ No newline at end of file diff --git a/content/docs/api/index.html b/content/docs/api/index.html index de3e77f..75949de 100644 --- a/content/docs/api/index.html +++ b/content/docs/api/index.html @@ -28,6 +28,16 @@ <script async src="assets/js/search.js" id="search-script"></script> <script defer src="assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.chunk.html b/content/docs/api/interfaces/selector.chunk.html index 3b57fee..81e9131 100644 --- a/content/docs/api/interfaces/selector.chunk.html +++ b/content/docs/api/interfaces/selector.chunk.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.chunker.html b/content/docs/api/interfaces/selector.chunker.html index c841861..5c919a7 100644 --- a/content/docs/api/interfaces/selector.chunker.html +++ b/content/docs/api/interfaces/selector.chunker.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.chunkrange.html b/content/docs/api/interfaces/selector.chunkrange.html index 04bb16d..e94b0b6 100644 --- a/content/docs/api/interfaces/selector.chunkrange.html +++ b/content/docs/api/interfaces/selector.chunkrange.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.cssselector.html b/content/docs/api/interfaces/selector.cssselector.html index 486b777..dbb6d20 100644 --- a/content/docs/api/interfaces/selector.cssselector.html +++ b/content/docs/api/interfaces/selector.cssselector.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.describetextquoteoptions.html b/content/docs/api/interfaces/selector.describetextquoteoptions.html index 0cb86ac..823a5dc 100644 --- a/content/docs/api/interfaces/selector.describetextquoteoptions.html +++ b/content/docs/api/interfaces/selector.describetextquoteoptions.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.matcher.html b/content/docs/api/interfaces/selector.matcher.html index b30a635..76c3b04 100644 --- a/content/docs/api/interfaces/selector.matcher.html +++ b/content/docs/api/interfaces/selector.matcher.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.rangeselector.html b/content/docs/api/interfaces/selector.rangeselector.html index ba2cc9a..1a1de37 100644 --- a/content/docs/api/interfaces/selector.rangeselector.html +++ b/content/docs/api/interfaces/selector.rangeselector.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.selector-1.html b/content/docs/api/interfaces/selector.selector-1.html index 2e0a77f..f58ee8e 100644 --- a/content/docs/api/interfaces/selector.selector-1.html +++ b/content/docs/api/interfaces/selector.selector-1.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.textpositionselector.html b/content/docs/api/interfaces/selector.textpositionselector.html index 7530b2e..43f95a6 100644 --- a/content/docs/api/interfaces/selector.textpositionselector.html +++ b/content/docs/api/interfaces/selector.textpositionselector.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/interfaces/selector.textquoteselector.html b/content/docs/api/interfaces/selector.textquoteselector.html index 7074dbe..ae190f3 100644 --- a/content/docs/api/interfaces/selector.textquoteselector.html +++ b/content/docs/api/interfaces/selector.textquoteselector.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/api/modules/dom.html b/content/docs/api/modules/dom.html index 1803efc..f2618ba 100644 --- a/content/docs/api/modules/dom.html +++ b/content/docs/api/modules/dom.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> @@ -116,11 +128,10 @@ <div class="tsd-comment tsd-typography"> <div class="lead"> <p>This module provides functions for handling annotations in the context of an - HTML DOM; in other words, a web page.</p> + HTML DOM; in other words, a web page.</p> </div> - <p>The main functionality is finding which selection of the web page a <a href="https://www.w3.org/TR/2017/REC-annotation-model-20170223/#selectors" class="external">Selector</a> refers to; and, vice versa, describing a selection of the page as - a Selector.</p> - <p>The primary way to express selections in the web page is by <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> objects.</p> + <p>The module’s main functionality is <em>matching</em> (or <em>‘anchoring’</em>) a <a href="https://www.w3.org/TR/2017/REC-annotation-model-20170223/#selectors" class="external">Selector</a> to the DOM, i.e. finding which piece of a web page it refers to; + and, vice versa, <em>describing</em> a selection of the page as a Selector.</p> </div> </section> <section class="tsd-panel-group tsd-index-group"> @@ -133,6 +144,7 @@ <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#createcssselectormatcher" class="tsd-kind-icon">create<wbr>Css<wbr>Selector<wbr>Matcher</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#createtextpositionselectormatcher" class="tsd-kind-icon">create<wbr>Text<wbr>Position<wbr>Selector<wbr>Matcher</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#createtextquoteselectormatcher" class="tsd-kind-icon">create<wbr>Text<wbr>Quote<wbr>Selector<wbr>Matcher</a></li> + <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#describecss" class="tsd-kind-icon">describe<wbr>Css</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#describetextposition" class="tsd-kind-icon">describe<wbr>Text<wbr>Position</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#describetextquote" class="tsd-kind-icon">describe<wbr>Text<wbr>Quote</a></li> <li class="tsd-kind-function tsd-parent-kind-module"><a href="dom.html#highlightrange" class="tsd-kind-icon">highlight<wbr>Range</a></li> @@ -148,7 +160,7 @@ <a name="createcssselectormatcher" class="tsd-anchor"></a> <h3>create<wbr>Css<wbr>Selector<wbr>Matcher</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> - <li class="tsd-signature tsd-kind-icon">create<wbr>Css<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.cssselector.html" class="tsd-signature-type" data-tsd-kind="Interface">CssSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher [...] + <li class="tsd-signature tsd-kind-icon">create<wbr>Css<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.cssselector.html" class="tsd-signature-type" data-tsd-kind="Interface">CssSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -163,24 +175,30 @@ <em>(XXX is this intentional, a mistake, or compromise?)</em></p> <p>The function is curried, taking first the selector and then the scope.</p> <p>As there may be multiple matches for a given selector, the matcher will - return an (async) generator that produces each match in the order they are - found in the text.</p> - <p>Each matching element is returned as a <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> surrounding that element. This in order to make its output reusable - as the scope for any subsequents selectors that <a href="../interfaces/selector.selector-1.html#refinedby">refine</a> this CssSelector.</p> + return an (async) iterable that produces each match in the order they are + found in the document.</p> + <p>Note that the Web Annotation specification does not mention whether an + ‘ambiguous’ CssSelector should indeed match all elements that match the + selector value, or perhaps only the first. This implementation returns all + matches to give users the freedom to follow either interpretation. This is + also in line with more clearly defined behaviour of the TextQuoteSelector:</p> + <blockquote> + <p>“If […] the user agent discovers multiple matching text sequences, then the + selection SHOULD be treated as matching all of the matches.”</p> + </blockquote> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>selector: <a href="../interfaces/selector.cssselector.html" class="tsd-signature-type" data-tsd-kind="Interface">CssSelector</a></h5> <div class="tsd-comment tsd-typography"> - <p>The <a href="../interfaces/selector.cssselector.html">CssSelector</a> to be - anchored</p> + <p>The <a href="../interfaces/selector.cssselector.html">CssSelector</a> to be anchored.</p> </div> </li> </ul> - <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> - <p>A <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies - <code>selector</code> to a given <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a></p> + <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Element</span><span class="tsd-signature-symbol">></span></h4> + <p>A <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies <code>selector</code> to a given + <code>scope</code>.</p> </li> </ul> </section> @@ -188,7 +206,7 @@ <a name="createtextpositionselectormatcher" class="tsd-anchor"></a> <h3>create<wbr>Text<wbr>Position<wbr>Selector<wbr>Matcher</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> - <li class="tsd-signature tsd-kind-icon">create<wbr>Text<wbr>Position<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.textpositionselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextPositionSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" d [...] + <li class="tsd-signature tsd-kind-icon">create<wbr>Text<wbr>Position<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.textpositionselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextPositionSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" d [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -201,19 +219,14 @@ <p>The start and end positions are measured relative to the first text character in the given scope.</p> <p>The function is curried, taking first the selector and then the scope.</p> - <p>Its end result is an (async) generator producing a single <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> to represent the match. (unlike a <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a>, a TextPositionSelector cannot have - multiple matches).</p> + <p>Its end result is an (async) generator producing a single <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> to represent the match (unlike e.g. a <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a>, a + TextPositionSelector cannot have multiple matches).</p> <dl class="tsd-comment-tags"> <dt>example</dt> <dd><pre><code><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">selector</span><span style="color: #000000"> = { </span><span style="color: #001080">type:</span><span style="color: #000000"> </span><span style="color: #A31515">'TextPositionSelector'</span><span style="color: #000000">, </span><span style="color: #001080">start:</span><span style="color: #000000"> </span><span style="color: #098658">702</span><s [...] - -<span style="color: #008000">// Search in the whole document.</span> -<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">scope</span><span style="color: #000000"> = </span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #795E26">createRange</span><span style="color: #000000">();</span> -<span style="color: #001080">scope</span><span style="color: #000000">.</span><span style="color: #795E26">selectNodeContents</span><span style="color: #000000">(</span><span style="color: #001080">document</span><span style="color: #000000">);</span> - +<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">scope</span><span style="color: #000000"> = </span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #001080">body</span><span style="color: #000000">;</span> <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">matches</span><span style="color: #000000"> = </span><span style="color: #795E26">textQuoteSelectorMatcher</span><span style="color: #000000">(</span><span style="color: #001080">selector</span><span style="color: #000000">)(</span><span style="color: #001080">scope</span><span style="color: #000000">);</span> <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">match</span><span style="color: #000000"> = (</span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #001080">matches</span><span style="color: #000000">.</span><span style="color: #795E26">next</span><span style="color: #000000">()).</span><span style="color: #001080">value</span><span style="color: #000000">;</span> - <span style="color: #008000">// ⇒ Range { startContainer: #text, startOffset: 64, endContainer: #text,</span> <span style="color: #008000">// endOffset: 98, … }</span> </code></pre> @@ -225,14 +238,13 @@ <li> <h5>selector: <a href="../interfaces/selector.textpositionselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextPositionSelector</a></h5> <div class="tsd-comment tsd-typography"> - <p>The <a href="../interfaces/selector.textpositionselector.html">TextPositionSelector</a> - to be anchored</p> + <p>The <a href="../interfaces/selector.textpositionselector.html">TextPositionSelector</a> to be anchored.</p> </div> </li> </ul> - <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> - <p>A <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies - <code>selector</code> to a given <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a></p> + <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> + <p>A <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies <code>selector</code> within a given + <code>scope</code>.</p> </li> </ul> </section> @@ -240,7 +252,7 @@ <a name="createtextquoteselectormatcher" class="tsd-anchor"></a> <h3>create<wbr>Text<wbr>Quote<wbr>Selector<wbr>Matcher</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> - <li class="tsd-signature tsd-kind-icon">create<wbr>Text<wbr>Quote<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.textquoteselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextQuoteSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-k [...] + <li class="tsd-signature tsd-kind-icon">create<wbr>Text<wbr>Quote<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.textquoteselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextQuoteSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-k [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -263,10 +275,7 @@ <dt>example</dt> <dd><pre><code><span style="color: #008000">// Find the word ‘banana’.</span> <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">selector</span><span style="color: #000000"> = { </span><span style="color: #001080">type:</span><span style="color: #000000"> </span><span style="color: #A31515">'TextQuoteSelector'</span><span style="color: #000000">, </span><span style="color: #001080">exact:</span><span style="color: #000000"> </span><span style="color: #A31515">'banana'</span><span style="co [...] - -<span style="color: #008000">// Search in the document body.</span> -<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">scope</span><span style="color: #000000"> = </span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #795E26">createRange</span><span style="color: #000000">();</span> -<span style="color: #001080">scope</span><span style="color: #000000">.</span><span style="color: #795E26">selectNodeContents</span><span style="color: #000000">(</span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #001080">body</span><span style="color: #000000">);</span> +<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">scope</span><span style="color: #000000"> = </span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #001080">body</span><span style="color: #000000">;</span> <span style="color: #008000">// Read all matches.</span> <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">matches</span><span style="color: #000000"> = </span><span style="color: #795E26">textQuoteSelectorMatcher</span><span style="color: #000000">(</span><span style="color: #001080">selector</span><span style="color: #000000">)(</span><span style="color: #001080">scope</span><span style="color: #000000">);</span> @@ -284,14 +293,62 @@ <li> <h5>selector: <a href="../interfaces/selector.textquoteselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextQuoteSelector</a></h5> <div class="tsd-comment tsd-typography"> - <p>The <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a> - to be anchored</p> + <p>The <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a> to be anchored.</p> + </div> + </li> + </ul> + <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> + <p>A <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies <code>selector</code> within a given + <code>scope</code>.</p> + </li> + </ul> + </section> + <section class="tsd-panel tsd-member tsd-kind-function tsd-parent-kind-module"> + <a name="describecss" class="tsd-anchor"></a> + <h3>describe<wbr>Css</h3> + <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> + <li class="tsd-signature tsd-kind-icon">describe<wbr>Css<span class="tsd-signature-symbol">(</span>element<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span>, scope<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href= [...] + </ul> + <ul class="tsd-descriptions"> + <li class="tsd-description"> + <aside class="tsd-sources"> + </aside> + <div class="tsd-comment tsd-typography"> + <div class="lead"> + <p>Returns a <a href="../interfaces/selector.cssselector.html">CssSelector</a> that unambiguously describes the given + element, within the given scope.</p> + </div> + <dl class="tsd-comment-tags"> + <dt>example</dt> + <dd><pre><code><span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">target</span><span style="color: #000000"> = </span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #795E26">getElementById</span><span style="color: #000000">(</span><span style="color: #A31515">'targetelement'</span><span style="color: #000000">).</span><span style="color: #001080">firstElement [...] +<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">selector</span><span style="color: #000000"> = </span><span style="color: #AF00DB">await</span><span style="color: #000000"> </span><span style="color: #795E26">describeCss</span><span style="color: #000000">(</span><span style="color: #001080">target</span><span style="color: #000000">);</span> +<span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">selector</span><span style="color: #000000">);</span> +<span style="color: #008000">// {</span> +<span style="color: #008000">// type: 'CssSelector',</span> +<span style="color: #008000">// value: '#targetelement > :nth-child(1)'</span> +<span style="color: #008000">// }</span> +</code></pre> + </dd> + </dl> + </div> + <h4 class="tsd-parameters-title">Parameters</h4> + <ul class="tsd-parameters"> + <li> + <h5>element: <span class="tsd-signature-type">HTMLElement</span></h5> + <div class="tsd-comment tsd-typography"> + <p>The element that the selector should describe.</p> + </div> + </li> + <li> + <h5><span class="tsd-flag ts-flagOptional">Optional</span> scope: <span class="tsd-signature-type">Node</span></h5> + <div class="tsd-comment tsd-typography"> + <p>The node that serves as the ‘document’ for purposes of finding + a unique selector. Defaults to the full Document that contains <code>element</code>.</p> </div> </li> </ul> - <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> - <p>a <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies - <code>selector</code> to a given <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a></p> + <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/selector.cssselector.html" class="tsd-signature-type" data-tsd-kind="Interface">CssSelector</a><span class="tsd-signature-symbol">></span></h4> + <p>The selector unambiguously describing <code>element</code> within <code>scope</code>.</p> </li> </ul> </section> @@ -299,7 +356,7 @@ <a name="describetextposition" class="tsd-anchor"></a> <h3>describe<wbr>Text<wbr>Position</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> - <li class="tsd-signature tsd-kind-icon">describe<wbr>Text<wbr>Position<span class="tsd-signature-symbol">(</span>range<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Range</span>, maybeScope<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</s [...] + <li class="tsd-signature tsd-kind-icon">describe<wbr>Text<wbr>Position<span class="tsd-signature-symbol">(</span>range<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Range</span>, scope<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -307,8 +364,8 @@ </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> - <p>Returns a <a href="../interfaces/selector.textpositionselector.html">TextPositionSelector</a> that points - at the target text within the given scope.</p> + <p>Returns a <a href="../interfaces/selector.textpositionselector.html">TextPositionSelector</a> that points at the target text within + the given scope.</p> </div> <p>When no scope is given, the position is described relative to the document as a whole. Note this means all the characters in all Text nodes are counted @@ -334,20 +391,20 @@ <li> <h5>range: <span class="tsd-signature-type">Range</span></h5> <div class="tsd-comment tsd-typography"> - <p>The range of characters that the selector should describe</p> + <p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> whose text content will be described.</p> </div> </li> <li> - <h5><span class="tsd-flag ts-flagOptional">Optional</span> maybeScope: <span class="tsd-signature-type">Range</span></h5> + <h5><span class="tsd-flag ts-flagOptional">Optional</span> scope: <span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span></h5> <div class="tsd-comment tsd-typography"> - <p>A <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> that serves as the ‘document’ for purposes of finding occurrences - and determining prefix and suffix. Defaults to span the full Document - containing the range.</p> + <p>A Node or Range that serves as the ‘document’ for purposes of + finding occurrences and determining prefix and suffix. Defaults to the full + Document that contains <code>range</code>.</p> </div> </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/selector.textpositionselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextPositionSelector</a><span class="tsd-signature-symbol">></span></h4> - <p>The selector describing the <code>range</code> relative to <code>scope</code></p> + <p>The selector describing <code>range</code> within <code>scope</code>.</p> </li> </ul> </section> @@ -355,7 +412,7 @@ <a name="describetextquote" class="tsd-anchor"></a> <h3>describe<wbr>Text<wbr>Quote</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> - <li class="tsd-signature tsd-kind-icon">describe<wbr>Text<wbr>Quote<span class="tsd-signature-symbol">(</span>range<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Range</span>, maybeScope<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Range</span>, options<span class="tsd-signature-symbol">?: </span><a href="../interfaces/selector.describetextquoteoptions.html" class="tsd-signature-type" data-tsd-kind="Interface">DescribeT [...] + <li class="tsd-signature tsd-kind-icon">describe<wbr>Text<wbr>Quote<span class="tsd-signature-symbol">(</span>range<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Range</span>, scope<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span>, options<span class="tsd-signature-symbol">?: </span><a href="../interfaces/selector.describet [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -363,8 +420,8 @@ </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> - <p>Create a <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a> that - unambiguously describes the given range.</p> + <p>Returns a <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a> that unambiguously describes the given + range of text, within the given scope.</p> </div> <p>The selector will contain the <em>exact</em> target quote, and in case this quote appears multiple times in the text, sufficient context around the quote will @@ -396,11 +453,11 @@ </div> </li> <li> - <h5><span class="tsd-flag ts-flagOptional">Optional</span> maybeScope: <span class="tsd-signature-type">Range</span></h5> + <h5><span class="tsd-flag ts-flagOptional">Optional</span> scope: <span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span></h5> <div class="tsd-comment tsd-typography"> - <p>A <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a> that serves as the ‘document’ for purposes of finding occurrences - and determining prefix and suffix. Defaults to span the full Document - containing the range.</p> + <p>A Node or Range that serves as the ‘document’ for purposes of + finding occurrences and determining prefix and suffix. Defaults to the full + Document that contains <code>range</code>.</p> </div> </li> <li> @@ -411,7 +468,7 @@ </li> </ul> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/selector.textquoteselector.html" class="tsd-signature-type" data-tsd-kind="Interface">TextQuoteSelector</a><span class="tsd-signature-symbol">></span></h4> - <p>The selector unambiguously describing the <code>range</code> in <code>scope</code>.</p> + <p>The selector unambiguously describing <code>range</code> within <code>scope</code>.</p> </li> </ul> </section> @@ -481,7 +538,7 @@ <a name="makecreaterangeselectormatcher" class="tsd-anchor"></a> <h3>make<wbr>Create<wbr>Range<wbr>Selector<wbr>Matcher</h3> <ul class="tsd-signatures tsd-kind-function tsd-parent-kind-module"> - <li class="tsd-signature tsd-kind-icon">make<wbr>Create<wbr>Range<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>createMatcher<span class="tsd-signature-symbol">: </span><T><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><a href="../interfaces/selector.matcher.html" class="tsd-s [...] + <li class="tsd-signature tsd-kind-icon">make<wbr>Create<wbr>Range<wbr>Selector<wbr>Matcher<span class="tsd-signature-symbol">(</span>createMatcher<span class="tsd-signature-symbol">: </span><T, TMatch><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><a href="../interfaces/selector.matcher.html" clas [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -495,13 +552,12 @@ <code>createMatcher</code> function that will be used to process those nested selectors.</p> <p>The function is curried, taking first the <code>createMatcher</code> function, then the selector, and then the scope.</p> - <p>As there may be multiple matches for a given selector, the matcher will - return an (async) generator that produces each match in the order they are - found in the text. If both its nested selectors produce multiple matches, the - RangeSelector matches each possible pair among those in which the order of - start and end are respected. <em>(Note this behaviour is a rather free - interpretation — the Web Annotation Data Model spec is silent about multiple - matches for RangeSelectors)</em></p> + <p>As there may be multiple matches for the start & end selectors, the resulting + matcher will return an (async) iterable, that produces a match for each + possible pair of matches of the nested selectors (except those where its end + would precede its start). <em>(Note that this behaviour is a rather free + interpretation of the Web Annotation Data Model spec, which is silent about + the possibility of multiple matches for RangeSelectors)</em></p> <dl class="tsd-comment-tags"> <dt>example</dt> <dd><p>By using a matcher for <a href="../interfaces/selector.textquoteselector.html">TextQuoteSelector</a>s, one @@ -515,13 +571,15 @@ <span style="color: #000000"> },</span> <span style="color: #000000"> </span><span style="color: #001080">endSelector:</span><span style="color: #000000"> {</span> <span style="color: #000000"> </span><span style="color: #001080">type:</span><span style="color: #000000"> </span><span style="color: #A31515">'TextQuoteSelector'</span><span style="color: #000000">,</span> -<span style="color: #000000"> </span><span style="color: #008000">// Because the end of a RangeSelector is *exclusive*, we’ll present the</span> -<span style="color: #000000"> </span><span style="color: #008000">// latter part of the quote as the *prefix* so it will part of the match.</span> +<span style="color: #000000"> </span><span style="color: #008000">// Because the end of a RangeSelector is *exclusive*, we will present the</span> +<span style="color: #000000"> </span><span style="color: #008000">// latter part of the quote as the *prefix* so it will be part of the</span> +<span style="color: #000000"> </span><span style="color: #008000">// match.</span> <span style="color: #000000"> </span><span style="color: #001080">exact:</span><span style="color: #000000"> </span><span style="color: #A31515">''</span><span style="color: #000000">,</span> <span style="color: #000000"> </span><span style="color: #001080">prefix:</span><span style="color: #000000"> </span><span style="color: #A31515">' amet,'</span><span style="color: #000000">,</span> <span style="color: #000000"> }</span> -<span style="color: #000000">}}</span> -<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">createRangeSelectorMatcher</span><span style="color: #000000"> = </span><span style="color: #795E26">makeCreateRangeSelectorMatcher</span><span style="color: #000000">(</span><span style="color: #001080">createTextQuoteMatcher</span><span style="color: #000000">);</span> +<span style="color: #000000">};</span> +<span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">createRangeSelectorMatcher</span><span style="color: #000000"> =</span> +<span style="color: #000000"> </span><span style="color: #795E26">makeCreateRangeSelectorMatcher</span><span style="color: #000000">(</span><span style="color: #001080">createTextQuoteMatcher</span><span style="color: #000000">);</span> <span style="color: #0000FF">const</span><span style="color: #000000"> </span><span style="color: #0070C1">match</span><span style="color: #000000"> = </span><span style="color: #795E26">createRangeSelectorMatcher</span><span style="color: #000000">(</span><span style="color: #001080">selector</span><span style="color: #000000">)(</span><span style="color: #001080">document</span><span style="color: #000000">.</span><span style="color: #001080">body</span><span style="color: #000000">);</span> <span style="color: #001080">console</span><span style="color: #000000">.</span><span style="color: #795E26">log</span><span style="color: #000000">(</span><span style="color: #001080">match</span><span style="color: #000000">)</span> <span style="color: #008000">// ⇒ Range { startContainer: #text, startOffset: 6, endContainer: #text,</span> @@ -547,14 +605,14 @@ <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> - <h5>createMatcher: <T><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span class="tsd-signatur [...] + <h5>createMatcher: <T, TMatch><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span><span class="tsd-s [...] <div class="tsd-comment tsd-typography"> <p>The function used to process nested selectors.</p> </div> <ul class="tsd-parameters"> <li class="tsd-parameter-signature"> <ul class="tsd-signatures tsd-kind-type-literal tsd-has-type-parameter"> - <li class="tsd-signature tsd-kind-icon"><T><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span [...] + <li class="tsd-signature tsd-kind-icon"><T, TMatch><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">T</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -563,6 +621,9 @@ <li> <h4>T<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.selector-1.html" class="tsd-signature-type" data-tsd-kind="Interface">Selector</a></h4> </li> + <li> + <h4>TMatch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span></h4> + </li> </ul> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> @@ -570,19 +631,19 @@ <h5>selector: <span class="tsd-signature-type">T</span></h5> </li> </ul> - <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> + <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">TMatch</span><span class="tsd-signature-symbol">></span></h4> </li> </ul> </li> </ul> </li> </ul> - <h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.rangeselector.html" class="tsd-signature-type" data-tsd-kind="Interface">RangeSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature- [...] - <p>A function that, given a RangeSelector, creates a <a href="../interfaces/selector.matcher.html">Matcher</a> function that applies it to a given <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range" class="external">Range</a></p> + <h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.rangeselector.html" class="tsd-signature-type" data-tsd-kind="Interface">RangeSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature- [...] + <p>A function that, given a RangeSelector <code>selector</code>, creates a <a href="../interfaces/selector.matcher.html">Matcher</a> function that can apply it to a given <code>scope</code>.</p> <ul class="tsd-parameters"> <li class="tsd-parameter-signature"> <ul class="tsd-signatures tsd-kind-type-literal"> - <li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.rangeselector.html" class="tsd-signature-type" data-tsd-kind="Interface">RangeSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature- [...] + <li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>selector<span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.rangeselector.html" class="tsd-signature-type" data-tsd-kind="Interface">RangeSelector</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature- [...] </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> @@ -592,7 +653,7 @@ <h5>selector: <a href="../interfaces/selector.rangeselector.html" class="tsd-signature-type" data-tsd-kind="Interface">RangeSelector</a></h5> </li> </ul> - <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> + <h4 class="tsd-returns-title">Returns <a href="../interfaces/selector.matcher.html" class="tsd-signature-type" data-tsd-kind="Interface">Matcher</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Node</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Range</span><span class="tsd-signature-symbol">></span></h4> </li> </ul> </li> @@ -628,6 +689,9 @@ <a href="dom.html#createtextquoteselectormatcher" class="tsd-kind-icon">create<wbr>Text<wbr>Quote<wbr>Selector<wbr>Matcher</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> + <a href="dom.html#describecss" class="tsd-kind-icon">describe<wbr>Css</a> + </li> + <li class=" tsd-kind-function tsd-parent-kind-module"> <a href="dom.html#describetextposition" class="tsd-kind-icon">describe<wbr>Text<wbr>Position</a> </li> <li class=" tsd-kind-function tsd-parent-kind-module"> diff --git a/content/docs/api/modules/selector.html b/content/docs/api/modules/selector.html index 666afe5..640d277 100644 --- a/content/docs/api/modules/selector.html +++ b/content/docs/api/modules/selector.html @@ -28,6 +28,16 @@ <script async src="../assets/js/search.js" id="search-script"></script> <script defer src="../assets/js/main.js"></script> <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> <div class="ui borderless stackable top attached main menu"> @@ -46,6 +56,8 @@ </div> <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> diff --git a/content/docs/develop/index.html b/content/docs/develop/index.html index ee1fca0..2d11497 100644 --- a/content/docs/develop/index.html +++ b/content/docs/develop/index.html @@ -24,6 +24,16 @@ <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> @@ -45,6 +55,8 @@ <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="active item">Develop</a> @@ -61,7 +73,7 @@ <p>If you’d like to code on the project, you will need the following:</p> <ul> <li><a href="https://git-scm.com/">git</a></li> -<li><a href="https://nodejs.org">node</a> version ^12.20 || ^14.15 || ^15.4</li> +<li><a href="https://nodejs.org">node</a> version ^12.20 || ^14.15 || ^15.4 || ^16.0</li> <li><a href="https://www.yarnpkg.com/">yarn</a> version ^1.5</li> </ul> <h3 id="install">Install</h3> @@ -69,13 +81,10 @@ <pre><code>$ git clone https://gitbox.apache.org/repos/asf/incubator-annotator.git apache-annotator </code></pre> <p>Then install dependencies using yarn:</p> -<pre><code class="language-sh">$ cd apache-annotator -$ yarn install -</code></pre> +<pre class="language-shell"><code class="language-shell">$ <span class="token builtin class-name">cd</span> apache-annotator<br>$ <span class="token function">yarn</span> <span class="token function">install</span></code></pre> <h2 id="build">Build</h2> <p>To compile (‘transpile’) the code:</p> -<pre><code class="language-sh">$ yarn build -</code></pre> +<pre class="language-shell"><code class="language-shell">$ <span class="token function">yarn</span> build</code></pre> <p>For each module, the TypeScript source code is in <code>packages/…/src</code> and the Javascript is output in <code>packages/…/lib</code>.</p> <p>To use your local build of the code in an application that depends on annotator, have a look at the <a href="https://yarnpkg.com/cli/link"><code>yarn link</code></a> or <a href="https://docs.npmjs.com/cli/v7/commands/npm-link"><code>npm link</code></a> command.</p> <h2 id="play">Play</h2> @@ -85,8 +94,7 @@ $ yarn install <p>Now open <code>http://localhost:8080/</code> (or whichever address the command prints) in your web browser to play with the demo. The server continuously rebuilds and hot-reloads to the source code after any edits, so you can directly try out any changes you make to the features it demonstrates.</p> <h2 id="run-tests">Run tests</h2> <p>This runs the tests for all packages and reports their code coverage:</p> -<pre><code class="language-sh">$ yarn test -</code></pre> +<pre class="language-shell"><code class="language-shell">$ <span class="token function">yarn</span> <span class="token builtin class-name">test</span></code></pre> </div> <aside class="ui four wide column"> diff --git a/content/docs/getting-started/index.html b/content/docs/getting-started/index.html index c6e25a3..82258ef 100644 --- a/content/docs/getting-started/index.html +++ b/content/docs/getting-started/index.html @@ -24,6 +24,16 @@ <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> @@ -45,6 +55,8 @@ <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="item">Overview</a> <a href="/docs/getting-started/" class="active item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> @@ -58,68 +70,26 @@ <h2 id="install-via-npm">Install via NPM</h2> <p>Currently we only support installation through NPM packages. You will need to use a bundler (such as <a href="https://webpack.js.org/">webpack</a>) to use the modules in a web browser.</p> <p>The project is made up of multiple modules. Each module is <a href="https://www.npmjs.com/org/apache-annotator">available on the NPM registry</a> as individual packages in the <code>@apache-annotator</code> scope, and all of them together in the <a href="https://www.npmjs.com/package/apache-annotator"><code>apache-annotator</code></a> ‘meta-package’. You can install either and then import packages in your code as <code>@apache-annotator/package</code> or <code>apache-annotator/package [...] -<p>For example:</p> -<pre><code class="language-sh">$ yarn add @apache-annotator/dom -</code></pre> -<p>…with in your code:</p> -<pre><code class="language-js">import { highlightRange } from '@apache-annotator/dom'; -</code></pre> +<p>For example, for the latest official release:</p> +<pre class="language-shell"><code class="language-shell">$ <span class="token function">yarn</span> <span class="token function">add</span> @apache-annotator/dom</code></pre> +<p>For the latest development version, get the <code>dev</code> tag. For example:</p> +<pre class="language-shell"><code class="language-shell">$ <span class="token function">yarn</span> <span class="token function">add</span> @apache-annotator/dom@dev</code></pre> +<p>And in your code import what you need:</p> +<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> highlightRange <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@apache-annotator/dom'</span><span class="token punctuation">;</span></code></pre> <h2 id="install-from-source">Install from source</h2> <p>See <a href="/docs/develop/">Develop</a>.</p> <h2 id="usage-example%3A-a-text-quote-highlighter">Usage example: a text quote highlighter</h2> -<p>A typical goal of web annotation is to let users highlight a phrase of text in a web page, and perhaps add a note to it. The example code below enables this use case.</p> -<p>First, we define the way to describe the user’s selection as a TextQuoteSelector.</p> -<pre><code class="language-js">import { describeTextQuote } from '@apache-annotator/dom'; - -async function describeCurrentSelection() { - const userSelection = window.getSelection()?.getRangeAt(0); - if (!userSelection || userSelection.isCollapsed) return; - return describeTextQuote(userSelection); -} -</code></pre> +<p>A typical goal of web annotation is to let users highlight a phrase of text in a web page, and perhaps add a note to it. The example code below creates such a highlighter (without note-taking functionality).</p> +<p>First, we define the way to describe the user’s selection as a <a href="https://www.w3.org/TR/2017/REC-annotation-model-20170223/#text-quote-selector">TextQuoteSelector</a>.</p> +<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> describeTextQuote <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@apache-annotator/dom'</span><span class="token punctuation">;</span><br><br><span class="token keyword">async</span> <span class="token keyword">function</span> <span class="token function">describeCurrentSelection</span><span cla [...] <p>If the user had selected the word <em>“ipsum”</em> in the befamed <em>“Lorem ipsum dolor amet …”</em>, the return value of describeCurrentSelection() might resolve to this:</p> -<pre><code>{ - type: 'TextQuoteSelector', - exact: 'ipsum', - prefix: 'Lorem ', - suffix: ' dolor' -} -</code></pre> +<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span><br> type<span class="token operator">:</span> 'TextQuoteSelector'<span class="token punctuation">,</span><br> exact<span class="token operator">:</span> 'ipsum'<span class="token punctuation">,</span><br> prefix<span class="token operator">:</span> 'Lorem '<span class="token punctuation">,</span><br> suffix<span class="token operator">:</span> ' dolor'<br><span class="token punctuation">}< [...] <p>The <em>prefix</em> and <em>suffix</em> attributes are there to know which of multiple occurrences of <em>“ipsum”</em> the Selector points to. They will include just enough surrounding words to make the selector unambiguous.</p> <p>Next, we define roughly the inverse function: given a TextQuoteSelector, we highlight the text it points to.</p> -<pre><code class="language-js">import { createTextQuoteSelectorMatcher, highlightRange } from '@apache-annotator/dom'; - -async function highlightSelectorTarget(textQuoteSelector) { - // Search in the whole document - const scope = document.createRange(); - scope.selectNodeContents(document); - - const matches = createTextQuoteSelectorMatcher(textQuoteSelector)(scope); - for await (const match of matches) { - highlightRange(match); - } -} -</code></pre> +<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> createTextQuoteSelectorMatcher<span class="token punctuation">,</span> highlightRange <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@apache-annotator/dom'</span><span class="token punctuation">;</span><br><br><span class="token keyword">async</span> <span class="token keyword">function</span> < [...] <p>As the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of"><code>for await … of</code></a> statement suggests, the matcher does not return just one match, but a stream (an async iterable) of matches. This is because it cannot be certain that a selector only has a single match (even when it includes a prefix & suffix, perhaps the document changed!).</p> <p>We could use the functions defined above in many ways; keeping highlighted quotes in local storage, or in one’s bookmarks, or sharing them with others, and so on. For this example, we keep it simple and highlight each selection upon release of the mouse button; and store the selector to make it appear again after a page reload.</p> -<pre><code class="language-js">document.addEventListener('mouseup', async () => { - const selector = await describeCurrentSelection(); - const existingSelectors = JSON.parse(localStorage[document.URL] || '[]'); - localStorage[document.URL] = JSON.stringify([...existingSelectors, selector]); - await highlightSelectorTarget(selector); -}); - -// Highlight the last selection that was stored, if any. -async function highlightStoredSelectors() { - if (localStorage[document.URL]) { - const selectors = JSON.parse(localStorage[document.URL]); - for (const selector of selectors) { - await highlightSelectorTarget(selector); - } - } -} -highlightStoredSelectors(); -</code></pre> +<pre class="language-js"><code class="language-js">document<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'mouseup'</span><span class="token punctuation">,</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span clas [...] <p>To see similar pieces of code in action, have a look at <a href="/demo/">the demo</a>.</p> </div> diff --git a/content/docs/index.html b/content/docs/index.html index 9fcb7b6..561173a 100644 --- a/content/docs/index.html +++ b/content/docs/index.html @@ -24,6 +24,16 @@ <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body> @@ -45,6 +55,8 @@ <div class="ui basic segment container"> <nav class="ui secondary stackable pointing menu" style="justify-content: center;"> + <span class="item" style="background: #ff08">This documentation is for v0.2 (in development)</span> + <span class="item"></span> <a href="/docs/" class="active item">Overview</a> <a href="/docs/getting-started/" class="item">Getting Started</a> <a href="/docs/develop/" class="item">Develop</a> @@ -78,7 +90,7 @@ <tr> <td><a href="https://www.w3.org/TR/annotation-model/#css-selector">CSS</a></td> <td>CSS Selectors allow for a wide variety of well supported ways to describe the path to an element in a web page.</td> -<td><a href="/docs/api/modules/dom.html#createcssselectormatcher">Partly</a></td> +<td>Yes (<a href="/docs/api/modules/dom.html#createcssselectormatcher">for DOM</a>)</td> </tr> <tr> <td><a href="https://www.w3.org/TR/annotation-model/#xpath-selector">XPath</a></td> @@ -88,12 +100,12 @@ <tr> <td><a href="https://www.w3.org/TR/annotation-model/#text-quote-selector">Text Quote</a></td> <td>This Selector describes a range of text, including some of the text immediately before (a prefix) and after (a suffix) it to distinguish between multiple copies of the same sequence of characters.</td> -<td>Yes, both <a href="/docs/api/modules/dom.html#describetextquote">for DOM</a> and <a href="/docs/api/modules/selector.html#textquoteselectormatcher">generic</a></td> +<td>Yes (<a href="/docs/api/modules/dom.html#createtextquoteselectormatcher">for DOM</a> and <a href="/docs/api/modules/selector.html#textquoteselectormatcher">on any text</a>)</td> </tr> <tr> <td><a href="https://www.w3.org/TR/annotation-model/#text-position-selector">Text Position</a></td> <td>This Selector describes a range of text by recording the start and end positions of the selection in the stream.</td> -<td>Yes, both <a href="/docs/api/modules/dom.html#describetextposition">for DOM</a> and <a href="/docs/api/modules/selector.html#textpositionselectormatcher">generic</a></td> +<td>Yes (<a href="/docs/api/modules/dom.html#createtextpositionselectormatcher">for DOM</a> and <a href="/docs/api/modules/selector.html#textpositionselectormatcher">on any text</a>)</td> </tr> <tr> <td><a href="https://www.w3.org/TR/annotation-model/#data-position-selector">Data Position</a></td> @@ -108,7 +120,7 @@ <tr> <td><a href="https://www.w3.org/TR/annotation-model/#range-selector">Range</a></td> <td>A Range Selector can be used to identify the beginning and the end of the selection by using other Selectors.</td> -<td>Yes, <a href="/docs/api/modules/dom.html#makecreaterangeselectormatcher">for DOM</a></td> +<td>Yes (<a href="/docs/api/modules/dom.html#makecreaterangeselectormatcher">for DOM</a>)</td> </tr> <tr> <td><a href="https://www.w3.org/TR/annotation-model/#refinement-of-selection">Refinement</a></td> @@ -119,11 +131,10 @@ </table> <h3 id="web-annotation-json-validator">Web Annotation JSON validator</h3> <p>The source code also includes a script for validating Web Annotation Data Model JSON documents against the data model schema. Having <a href="/docs/develop/#install-from-source">installed from source</a>, one can run:</p> -<pre><code class="language-sh">$ yarn validate --url https://raw.githubusercontent.com/w3c/web-annotation-tests/master/tools/samples/correct/anno1.json -</code></pre> +<pre class="language-shell"><code class="language-shell">$ <span class="token function">yarn</span> validate --url https://raw.githubusercontent.com/w3c/web-annotation-tests/master/tools/samples/correct/anno1.json</code></pre> <p>With the <code>--url</code> option you can pass in a URL or a local path to a JSON file.</p> <p>See some <a href="https://github.com/w3c/web-annotation-tests/tree/master/tools/samples">example JSON files</a> from the W3C. Note that this validator only tests the data model is followed, and not e.g. whether its target actually exists.</p> -<h2 id="what-apache-annotator-it-not">What Apache Annotator it not</h2> +<h2 id="what-apache-annotator-is-not">What Apache Annotator is not</h2> <p>Apache Annotator is <strong>not an all-in-one annotation tool</strong>; rather, it <em>helps others create</em> annotation tools. It does not have opinions regarding in which database on which computer annotations are stored, nor how they are made, exchanged or displayed. Those questions are considered application-specific and left to the developer. Our goal is that the developer can focus on exactly those questions, and forget about issues that are common among annotation tools: find [...] </div> @@ -139,7 +150,7 @@ </style> <h1 class="ui small dividing header" style="margin: 0;">Contents</h1> <nav class="toc"> - <ol><li><a href="#what-is-in-the-box">What is in the box</a><ol><li><a href="#selector-tools">Selector tools</a></li><li><a href="#web-annotation-json-validator">Web Annotation JSON validator</a></li></ol></li><li><a href="#what-apache-annotator-it-not">What Apache Annotator it not</a></li></ol></nav> + <ol><li><a href="#what-is-in-the-box">What is in the box</a><ol><li><a href="#selector-tools">Selector tools</a></li><li><a href="#web-annotation-json-validator">Web Annotation JSON validator</a></li></ol></li><li><a href="#what-apache-annotator-is-not">What Apache Annotator is not</a></li></ol></nav> </aside> </div> </main> diff --git a/content/index.html b/content/index.html index 4c48de0..10e7244 100644 --- a/content/index.html +++ b/content/index.html @@ -24,6 +24,16 @@ <link rel="stylesheet" href="//semantic-ui.com/dist/semantic.min.css" /> + <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/prism-themes/themes/prism-vs.css" /> + <style> + html { + font-size: 17px; + } + + p, pre[class*="language-"] { + margin: .8em 0 1.25em; + } + </style> </head> <body>
