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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&#039;TextPositionSelector&#039;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&#039;TextQuoteSelector&#039;</span><span style="color: #000000">, 
</span><span style="color: #001080">exact:</span><span style="color: #000000"> 
</span><span style="color: #A31515">&#039;banana&#039;</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">&lt;</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">&gt;</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">&lt;</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">&#039;targetelement&#039;</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: &#039;CssSelector&#039;,</span>
+<span style="color: #008000">//   value: &#039;#targetelement &gt; 
:nth-child(1)&#039;</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">&lt;</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">&gt;</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">&lt;</span><a 
href="../interfaces/selector.cssselector.html" class="tsd-signature-type" 
data-tsd-kind="Interface">CssSelector</a><span 
class="tsd-signature-symbol">&gt;</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">&lt;</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">&lt;</span><a 
href="../interfaces/selector.textpositionselector.html" 
class="tsd-signature-type" 
data-tsd-kind="Interface">TextPositionSelector</a><span 
class="tsd-signature-symbol">&gt;</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">&lt;</span><a 
href="../interfaces/selector.textquoteselector.html" class="tsd-signature-type" 
data-tsd-kind="Interface">TextQuoteSelector</a><span 
class="tsd-signature-symbol">&gt;</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>&lt;T&gt;<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"> =&gt; 
</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>&lt;T, TMatch&gt;<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"> =&gt; 
</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 &amp; 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">&#039;TextQuoteSelector&#039;</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">&#039;&#039;</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">&#039; amet,&#039;</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: &lt;T&gt;<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"> =&gt; 
</span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" 
data-tsd-kind="Interface">Matcher</a><span 
class="tsd-signature-symbol">&lt;</span><span 
class="tsd-signature-type">Range</span><span class="tsd-signatur [...]
+                                                                               
<h5>createMatcher: &lt;T, TMatch&gt;<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"> =&gt; 
</span><a href="../interfaces/selector.matcher.html" class="tsd-signature-type" 
data-tsd-kind="Interface">Matcher</a><span 
class="tsd-signature-symbol">&lt;</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">&lt;T&gt;<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">&lt;</span><span 
class="tsd-signature-type">Range</span><span  [...]
+                                                                               
                        <li class="tsd-signature tsd-kind-icon">&lt;T, 
TMatch&gt;<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">&lt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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"> =&gt; 
</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"> =&gt; 
</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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 &amp; 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 () 
=&gt; {
-  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>

Reply via email to