deploy: ebd4cc0010
This commit is contained in:
9
node_modules/mark.js/.editorconfig
generated
vendored
9
node_modules/mark.js/.editorconfig
generated
vendored
@@ -1,9 +0,0 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = LF
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
120
node_modules/mark.js/.eslintrc
generated
vendored
120
node_modules/mark.js/.eslintrc
generated
vendored
@@ -1,120 +0,0 @@
|
||||
{
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:jasmine-jquery/recommended"
|
||||
],
|
||||
"plugins": [
|
||||
"jasmine-jquery"
|
||||
],
|
||||
"env": {
|
||||
"commonjs": true,
|
||||
"amd": true,
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"browser": true,
|
||||
"jasmine": true,
|
||||
"jquery": true
|
||||
},
|
||||
"globals": {
|
||||
"Mark": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"ecmaFeatures": {
|
||||
"experimentalObjectRestSpread": true
|
||||
},
|
||||
"sourceType": "module"
|
||||
},
|
||||
"rules": {
|
||||
"no-template-curly-in-string": "error",
|
||||
"array-callback-return": "error",
|
||||
"block-scoped-var": "error",
|
||||
"default-case": "error",
|
||||
"no-fallthrough": "error",
|
||||
"no-global-assign": "error",
|
||||
"no-extend-native": "error",
|
||||
"no-invalid-this": "warn",
|
||||
"eqeqeq": "warn",
|
||||
"no-alert": "error",
|
||||
"no-eval": "error",
|
||||
"no-with": "error",
|
||||
"consistent-return": "warn",
|
||||
"curly": "warn",
|
||||
"no-tabs": "error",
|
||||
"arrow-spacing": "error",
|
||||
"no-undefined": "error",
|
||||
"global-require": "error",
|
||||
"no-var": "error",
|
||||
"no-useless-escape": "warn",
|
||||
"indent": [
|
||||
"error",
|
||||
2
|
||||
],
|
||||
"linebreak-style": [
|
||||
"error",
|
||||
"unix"
|
||||
],
|
||||
"max-len": [
|
||||
"error",
|
||||
{
|
||||
"ignoreStrings": false,
|
||||
"ignoreTrailingComments": false,
|
||||
"ignoreComments": false,
|
||||
"code": 80
|
||||
}
|
||||
],
|
||||
"quotes": [
|
||||
"error",
|
||||
"single"
|
||||
],
|
||||
"semi": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"dot-location": [
|
||||
"error",
|
||||
"property"
|
||||
],
|
||||
"brace-style": [
|
||||
"error",
|
||||
"1tbs"
|
||||
],
|
||||
"camelcase": [
|
||||
"error",
|
||||
{
|
||||
"properties": "always"
|
||||
}
|
||||
],
|
||||
"no-console": 0,
|
||||
"space-before-function-paren": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"keyword-spacing": [
|
||||
"error",
|
||||
{
|
||||
"before": true,
|
||||
"after": true
|
||||
}
|
||||
],
|
||||
"array-bracket-spacing": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"comma-spacing": [
|
||||
"error",
|
||||
{
|
||||
"before": false,
|
||||
"after": true
|
||||
}
|
||||
],
|
||||
"complexity": [
|
||||
"error",
|
||||
10
|
||||
],
|
||||
"max-depth": [
|
||||
"error",
|
||||
8
|
||||
]
|
||||
}
|
||||
}
|
||||
173
node_modules/mark.js/.gitattributes
generated
vendored
173
node_modules/mark.js/.gitattributes
generated
vendored
@@ -1,173 +0,0 @@
|
||||
## GITATTRIBUTES FOR WEB PROJECTS
|
||||
#
|
||||
# These settings are for any web project.
|
||||
#
|
||||
# Details per file setting:
|
||||
# text These files should be normalized (i.e. convert CRLF to LF).
|
||||
# binary These files are binary and should be left untouched.
|
||||
#
|
||||
# Note that binary is a macro for -text -diff.
|
||||
######################################################################
|
||||
|
||||
## AUTO-DETECT - Handle line endings automatically for files detected
|
||||
## as text and leave all files detected as binary untouched.
|
||||
## This will handle all files NOT defined below.
|
||||
* text=auto
|
||||
|
||||
## SOURCE CODE
|
||||
*.bat text
|
||||
*.coffee text
|
||||
*.css text
|
||||
*.htm text
|
||||
*.html text
|
||||
*.inc text
|
||||
*.ini text
|
||||
*.js text
|
||||
*.jsx text
|
||||
*.json text
|
||||
*.less text
|
||||
*.php text
|
||||
*.pl text
|
||||
*.py text
|
||||
*.rb text
|
||||
*.sass text
|
||||
*.scm text
|
||||
*.scss text
|
||||
*.sh text
|
||||
*.sql text
|
||||
*.styl text
|
||||
*.ts text
|
||||
*.xml text
|
||||
*.xhtml text
|
||||
|
||||
## DOCUMENTATION
|
||||
*.markdown text
|
||||
*.md text
|
||||
*.mdwn text
|
||||
*.mdown text
|
||||
*.mkd text
|
||||
*.mkdn text
|
||||
*.mdtxt text
|
||||
*.mdtext text
|
||||
*.txt text
|
||||
AUTHORS text
|
||||
CHANGELOG text
|
||||
CHANGES text
|
||||
CONTRIBUTING text
|
||||
COPYING text
|
||||
INSTALL text
|
||||
license text
|
||||
LICENSE text
|
||||
NEWS text
|
||||
readme text
|
||||
*README* text
|
||||
TODO text
|
||||
|
||||
## TEMPLATES
|
||||
*.dot text
|
||||
*.ejs text
|
||||
*.haml text
|
||||
*.handlebars text
|
||||
*.hbs text
|
||||
*.hbt text
|
||||
*.jade text
|
||||
*.latte text
|
||||
*.mustache text
|
||||
*.phtml text
|
||||
*.tmpl text
|
||||
|
||||
## LINTERS
|
||||
.csslintrc text
|
||||
.eslintrc text
|
||||
.jscsrc text
|
||||
.jshintrc text
|
||||
.jshintignore text
|
||||
.stylelintrc text
|
||||
|
||||
## CONFIGS
|
||||
*.bowerrc text
|
||||
*.cnf text
|
||||
*.conf text
|
||||
*.config text
|
||||
.editorconfig text
|
||||
.gitattributes text
|
||||
.gitconfig text
|
||||
.gitignore text
|
||||
.htaccess text
|
||||
*.npmignore text
|
||||
*.yaml text
|
||||
*.yml text
|
||||
Makefile text
|
||||
makefile text
|
||||
|
||||
## HEROKU
|
||||
Procfile text
|
||||
.slugignore text
|
||||
|
||||
## GRAPHICS
|
||||
*.ai binary
|
||||
*.bmp binary
|
||||
*.eps binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.jng binary
|
||||
*.jp2 binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.jpx binary
|
||||
*.jxr binary
|
||||
*.pdf binary
|
||||
*.png binary
|
||||
*.psb binary
|
||||
*.psd binary
|
||||
*.svg text
|
||||
*.svgz binary
|
||||
*.tif binary
|
||||
*.tiff binary
|
||||
*.wbmp binary
|
||||
*.webp binary
|
||||
|
||||
## AUDIO
|
||||
*.kar binary
|
||||
*.m4a binary
|
||||
*.mid binary
|
||||
*.midi binary
|
||||
*.mp3 binary
|
||||
*.ogg binary
|
||||
*.ra binary
|
||||
|
||||
## VIDEO
|
||||
*.3gpp binary
|
||||
*.3gp binary
|
||||
*.as binary
|
||||
*.asf binary
|
||||
*.asx binary
|
||||
*.fla binary
|
||||
*.flv binary
|
||||
*.m4v binary
|
||||
*.mng binary
|
||||
*.mov binary
|
||||
*.mp4 binary
|
||||
*.mpeg binary
|
||||
*.mpg binary
|
||||
*.swc binary
|
||||
*.swf binary
|
||||
*.webm binary
|
||||
|
||||
## ARCHIVES
|
||||
*.7z binary
|
||||
*.gz binary
|
||||
*.rar binary
|
||||
*.tar binary
|
||||
*.zip binary
|
||||
|
||||
## FONTS
|
||||
*.ttf binary
|
||||
*.eot binary
|
||||
*.otf binary
|
||||
*.woff binary
|
||||
*.woff2 binary
|
||||
|
||||
## EXECUTABLES
|
||||
*.exe binary
|
||||
*.pyc binary
|
||||
36
node_modules/mark.js/.jsbeautifyrc
generated
vendored
36
node_modules/mark.js/.jsbeautifyrc
generated
vendored
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"js": {
|
||||
"indent_char": " ",
|
||||
"indent_level": 0,
|
||||
"indent_with_tabs": false,
|
||||
"wrap_line_length": 120,
|
||||
"indent_size": 2,
|
||||
"keep_array_indentation": false,
|
||||
"jslint_happy": true,
|
||||
"end_with_newline": true,
|
||||
"preserve_newlines": true
|
||||
},
|
||||
"html": {
|
||||
"indent_char": " ",
|
||||
"indent_level": 0,
|
||||
"indent_with_tabs": false,
|
||||
"indent_size": 2,
|
||||
"extra_liners": [],
|
||||
"unformatted": [],
|
||||
"wrap_line_length": 0,
|
||||
"end_with_newline": false,
|
||||
"preserve_newlines": true,
|
||||
"max_preserve_newlines": 0,
|
||||
"indent_inner_html": false
|
||||
},
|
||||
"css": {
|
||||
"indent_char": " ",
|
||||
"indent_level": 0,
|
||||
"indent_with_tabs": false,
|
||||
"indent_size": 2,
|
||||
"align_assignments": false,
|
||||
"convert_quotes": "double",
|
||||
"preserve_newlines": true,
|
||||
"newline_between_rules": false
|
||||
}
|
||||
}
|
||||
19
node_modules/mark.js/.npmignore
generated
vendored
19
node_modules/mark.js/.npmignore
generated
vendored
@@ -1,19 +0,0 @@
|
||||
# Eclipse
|
||||
.settings/
|
||||
.project
|
||||
.buildpath
|
||||
|
||||
# Webstorm
|
||||
.idea/
|
||||
|
||||
# Dependencies
|
||||
node_modules/
|
||||
|
||||
# Personal
|
||||
TODO
|
||||
npm-debug.log*
|
||||
sc-karma*.log
|
||||
|
||||
# Build
|
||||
build/doc/
|
||||
build/coverage/
|
||||
6
node_modules/mark.js/.travis.yml
generated
vendored
6
node_modules/mark.js/.travis.yml
generated
vendored
@@ -1,6 +0,0 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "stable"
|
||||
script:
|
||||
- npm run build
|
||||
- npm run karma-ci
|
||||
99
node_modules/mark.js/CONTRIBUTING.md
generated
vendored
99
node_modules/mark.js/CONTRIBUTING.md
generated
vendored
@@ -1,99 +0,0 @@
|
||||
# Contributing to mark.js
|
||||
|
||||
These are the contributing guidelines of mark.js. If you are interested in contributing to the website of mark.js, please head over to the [mark.js website contributing guidelines][markjs-website-contributing].
|
||||
|
||||
## 1. Issues
|
||||
|
||||
If you have a question, problem, feature request or found a bug please open an [issue][issue].
|
||||
|
||||
### 1.1 Questions, Problems and Bugs
|
||||
|
||||
For each issue please provide:
|
||||
|
||||
1. What kind of browser and version you are using
|
||||
2. What kind of mark.js version you are using
|
||||
3. A detailed description
|
||||
4. The exact steps to reproduce (bugs and problems)
|
||||
5. A [fiddle][jsfiddle] that demonstrates your issue (if possible)
|
||||
|
||||
### 1.2 Feature Requests
|
||||
|
||||
Please provide the following information:
|
||||
|
||||
1. Your use case, why your enhancement is necessary
|
||||
2. How to solve it in your opinion
|
||||
|
||||
## 2. Development
|
||||
|
||||
### 2.1 General
|
||||
|
||||
_Requirements: Latest [NodeJS][nodejs] (including npm) installed._
|
||||
|
||||
Before you start developing, you should clone or download this repository and run:
|
||||
|
||||
```bash
|
||||
$ npm install
|
||||
```
|
||||
|
||||
Now you are ready for development.
|
||||
|
||||
### 2.2 ES6 (ES2015) Information
|
||||
|
||||
mark.js was developed in ECMAScript 6. But as most browsers don't fully support ES6 yet, it has only those features implemented that can be converted "locally" to ES5 using [Babel][babel] without making a [polyfill][babel-polyfill] necessary. This means to forgo using generators, Set, Map, for...of loops etc..
|
||||
|
||||
### 2.3 Build
|
||||
|
||||
The project is using [rollup][rollup] as a bundler, [Karma][karma] as a task runner and [Jasmine][jasmine] (with [jasmine-jquery][jasmine-jquery]) as a testing framework.
|
||||
|
||||
To lint, test and compile the project and also generate a documentation (see 2.4) please run:
|
||||
|
||||
```bash
|
||||
$ npm run build
|
||||
```
|
||||
|
||||
### 2.4 Source Code Documentation
|
||||
|
||||
[JSDoc][jsdoc] is being used as an API documentation generator. If you want to extend mark.js it might be helpful for you to view the documentation first, to learn more about the internal structure. Simply run the build and open the file `./build/doc/`.
|
||||
|
||||
During development, please also add the corresponding JSDoc comments.
|
||||
|
||||
### 2.5 Pull Requests
|
||||
|
||||
Pull requests are very much appreciated! :thumbsup:
|
||||
|
||||
Please note the following things when doing a pull request:
|
||||
|
||||
- If your pull request is implementing a feature, please open a new issue first.
|
||||
Therein we can discuss about it and determine if it brings a benefit
|
||||
- Do not change any version
|
||||
- Always include a test if possible. Please avoid referencing existing test
|
||||
files to keep flexibility
|
||||
- Add a new fixture (test/fixtures/)
|
||||
- Add a new spec (test/specs/)
|
||||
- Reference related issues in the pull request description
|
||||
- Describe your changes and why they are necessary
|
||||
(if not stated in referenced issues)
|
||||
- When changing something in the source code, please run the build afterwards
|
||||
- Make sure that you format code to fit the [code style][code-style]. If something isn't covered, please see existing code for orientation. The maximum line length for JavaScript files is 80 characters. You'll be notified if something is wrong with the code style when running the build
|
||||
- Pull requests will not be accepted if they worsen test coverage significantly. You can view test coverage in `./build/coverage/` after running the build
|
||||
|
||||
### 2.6 Contribution and License Agreement
|
||||
|
||||
If you contribute to this project, you are implicitly allowing your code to be distributed under [this license][license]. You are also implicitly verifying that all code is your original work.
|
||||
|
||||
__Thank you for contributing!__
|
||||
|
||||
[markjs-website-contributing]: https://github.com/julmot/mark.js/blob/website/CONTRIBUTING.md
|
||||
[issue]: https://github.com/julmot/mark.js/issues/new
|
||||
[jsfiddle]: https://jsfiddle.net
|
||||
[nodejs]: https://nodejs.org/en/
|
||||
[bower]: http://bower.io/
|
||||
[rollup]: https://rollupjs.org/
|
||||
[karma]: http://karma-runner.github.io/latest/index.html
|
||||
[jasmine]: http://jasmine.github.io/
|
||||
[jasmine-jquery]: https://github.com/velesin/jasmine-jquery
|
||||
[jsdoc]: http://usejsdoc.org/about-getting-started.html
|
||||
[babel-polyfill]: https://babeljs.io/docs/usage/polyfill/
|
||||
[babel]: https://babeljs.io/
|
||||
[code-style]: https://github.com/julmot/mark.js/blob/master/.jsbeautifyrc
|
||||
[license]: https://raw.githubusercontent.com/julmot/mark.js/master/LICENSE
|
||||
11
node_modules/mark.js/ISSUE_TEMPLATE.md
generated
vendored
11
node_modules/mark.js/ISSUE_TEMPLATE.md
generated
vendored
@@ -1,11 +0,0 @@
|
||||
Describe your issue here.
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
Describe how to reproduce the issue. Provide a [fiddle](https://jsfiddle.net) if possible.
|
||||
__Note: Please do not provide a full website as example!__
|
||||
|
||||
### Environment
|
||||
|
||||
- Browser name and version
|
||||
- mark.js version
|
||||
21
node_modules/mark.js/LICENSE
generated
vendored
21
node_modules/mark.js/LICENSE
generated
vendored
@@ -1,21 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014–2018 Julian Kühnel
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
54
node_modules/mark.js/README.md
generated
vendored
54
node_modules/mark.js/README.md
generated
vendored
@@ -1,54 +0,0 @@
|
||||
# mark.js
|
||||
|
||||
#### :sparkles: formerly known as jquery.mark or jmHighlight :sparkles:
|
||||
|
||||
##### Highlight keywords using JavaScript. Intended for every use case. <br> Can e.g. be used to mark text in search results.
|
||||
|
||||
[![Build Status][build-status-image]][build-status]
|
||||
[![Code quality][code-quality-image]][code-quality]
|
||||
[![npm Version][npm-version-image]][npm-version]
|
||||
[![Bower Version][bower-version-image]][bower-version]
|
||||
[![License][license-image]][license]
|
||||
[![jsDelivr Hits][jsdelivr-image]][jsdelivr]
|
||||
[![Greenkeeper][greenkeeper-image]][greenkeeper]
|
||||
<a href="https://saucelabs.com/u/markjs">
|
||||
<img src="https://saucelabs.com/browser-matrix/markjs.svg" alt="Sauce Test Status" width="741" />
|
||||
</a>
|
||||
|
||||
## Documentation and Further Information
|
||||
|
||||
**Please view the [website][website] for documentation and further information!**
|
||||
|
||||
## Contributing
|
||||
|
||||
See the [contribution guidelines][contributing].
|
||||
|
||||
## Changelog
|
||||
Changes are documented in [release][releases] descriptions.
|
||||
You want to be notified about new releases? Click the "Subscribe to releases"
|
||||
button on [libraries.io][libraries].
|
||||
|
||||
---
|
||||
|
||||
Happy hacking!
|
||||
|
||||
[build-status]: https://travis-ci.org/julmot/mark.js
|
||||
[code-quality]: https://www.codacy.com/app/julmot/mark.js
|
||||
[npm-version]: https://www.npmjs.com/package/mark.js
|
||||
[bower-version]: https://github.com/julmot/mark.js
|
||||
[license]: https://raw.githubusercontent.com/julmot/mark.js/master/LICENSE
|
||||
[jsdelivr]: https://www.jsdelivr.com/package/npm/mark.js
|
||||
[greenkeeper]: https://github.com/julmot/mark.js
|
||||
|
||||
[build-status-image]: https://img.shields.io/travis/julmot/mark.js/master.svg?label=test
|
||||
[code-quality-image]:https://img.shields.io/codacy/27a3ed45370f41e89b02073b214c18a7.svg
|
||||
[npm-version-image]: https://img.shields.io/npm/v/mark.js.svg
|
||||
[bower-version-image]: https://img.shields.io/bower/v/mark.js.svg
|
||||
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg
|
||||
[jsdelivr-image]: https://data.jsdelivr.com/v1/package/npm/mark.js/badge?style=rounded
|
||||
[greenkeeper-image]: https://badges.greenkeeper.io/julmot/mark.js.svg
|
||||
|
||||
[website]: https://markjs.io/
|
||||
[contributing]: https://github.com/julmot/mark.js/blob/master/CONTRIBUTING.md
|
||||
[releases]: https://github.com/julmot/mark.js/releases
|
||||
[libraries]: https://libraries.io/bower/mark.js/
|
||||
42
node_modules/mark.js/bower.json
generated
vendored
42
node_modules/mark.js/bower.json
generated
vendored
@@ -1,42 +0,0 @@
|
||||
{
|
||||
"name": "mark.js",
|
||||
"version": "8.11.1",
|
||||
"keywords": [
|
||||
"mark.js",
|
||||
"markjs",
|
||||
"mark",
|
||||
"jquery.mark",
|
||||
"jmHighlight",
|
||||
"highlight",
|
||||
"search",
|
||||
"jquery",
|
||||
"javascript",
|
||||
"text",
|
||||
"keyword"
|
||||
],
|
||||
"license": "MIT",
|
||||
"homepage": "https://markjs.io/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Julian Kühnel",
|
||||
"homepage": "https://github.com/julmot"
|
||||
}
|
||||
],
|
||||
"description": "Highlight keywords using JavaScript. Intended for every use case. Can e.g. be used to mark text in search results.",
|
||||
"main": "dist/mark.js",
|
||||
"moduleType": [
|
||||
"global", "amd"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/julmot/mark.js.git"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {},
|
||||
"ignore": [
|
||||
"*",
|
||||
"!dist/*",
|
||||
"!LICENSE",
|
||||
"!README.md"
|
||||
]
|
||||
}
|
||||
226
node_modules/mark.js/build/karma.config-ci.js
generated
vendored
226
node_modules/mark.js/build/karma.config-ci.js
generated
vendored
@@ -1,226 +0,0 @@
|
||||
'use strict';
|
||||
module.exports = config => {
|
||||
// Define Sauce Labs browsers
|
||||
var customLaunchers = {
|
||||
'SL_Win_Chrome_30': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'chrome',
|
||||
platform: 'Windows 10',
|
||||
version: '30'
|
||||
},
|
||||
'SL_Win_Chrome_40': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'chrome',
|
||||
platform: 'Windows 10',
|
||||
version: '40'
|
||||
},
|
||||
'SL_Win_Chrome_50': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'chrome',
|
||||
platform: 'Windows 10',
|
||||
version: '50'
|
||||
},
|
||||
'SL_Win_Chrome_60': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'chrome',
|
||||
platform: 'Windows 10',
|
||||
version: '60'
|
||||
},
|
||||
'SL_Win_Chrome_Latest': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'chrome',
|
||||
platform: 'Windows 10',
|
||||
version: 'latest'
|
||||
},
|
||||
'SL_Win_Firefox_30': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'firefox',
|
||||
platform: 'Windows 10',
|
||||
version: '30'
|
||||
},
|
||||
'SL_Win_Firefox_40': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'firefox',
|
||||
platform: 'Windows 10',
|
||||
version: '40'
|
||||
},
|
||||
'SL_Win_Firefox_50': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'firefox',
|
||||
platform: 'Windows 10',
|
||||
version: '50'
|
||||
},
|
||||
'SL_Win_Firefox_Latest': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'firefox',
|
||||
platform: 'Windows 10',
|
||||
version: 'latest'
|
||||
},
|
||||
'SL_OS_X_Safari_8': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'safari',
|
||||
platform: 'OS X 10.10',
|
||||
version: '8.0'
|
||||
},
|
||||
'SL_OS_X_Safari_9': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'safari',
|
||||
platform: 'OS X 10.11',
|
||||
version: '9.0'
|
||||
},
|
||||
'SL_OS_X_Safari_10': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'safari',
|
||||
platform: 'OS X 10.11',
|
||||
version: '10.0'
|
||||
},
|
||||
'SL_macOS_Safari_11': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'safari',
|
||||
platform: 'macOS 10.13',
|
||||
version: '11.0'
|
||||
},
|
||||
'SL_Win_IE_9': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'internet explorer',
|
||||
platform: 'Windows 7',
|
||||
version: '9'
|
||||
},
|
||||
'SL_Win_IE_10': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'internet explorer',
|
||||
platform: 'Windows 7',
|
||||
version: '10'
|
||||
},
|
||||
'SL_Win_IE_11': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'internet explorer',
|
||||
platform: 'Windows 7',
|
||||
version: '11'
|
||||
},
|
||||
'SL_Win_Edge_13': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'microsoftedge',
|
||||
platform: 'Windows 10',
|
||||
version: '13.10586'
|
||||
},
|
||||
'SL_Win_Edge_Latest': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'microsoftedge',
|
||||
platform: 'Windows 10',
|
||||
version: 'latest'
|
||||
},
|
||||
'SL_iOS_8': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'iphone',
|
||||
version: '8.4'
|
||||
},
|
||||
'SL_iOS_9': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'iphone',
|
||||
version: '9.3'
|
||||
},
|
||||
'SL_iOS_10': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'iphone',
|
||||
version: '10.0'
|
||||
},
|
||||
'SL_iOS_11': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'iphone',
|
||||
version: '11.1'
|
||||
},
|
||||
'SL_Android_4': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'android',
|
||||
version: '4.4'
|
||||
},
|
||||
'SL_Android_5': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'android',
|
||||
version: '5.1'
|
||||
},
|
||||
'SL_Android_6': {
|
||||
base: 'SauceLabs',
|
||||
browserName: 'android',
|
||||
version: '6.0'
|
||||
},
|
||||
};
|
||||
config.set({
|
||||
basePath: '../',
|
||||
frameworks: ['jasmine-jquery', 'jasmine'],
|
||||
files: [
|
||||
'node_modules/jquery/dist/jquery.min.js',
|
||||
'dist/!(*.es6|*.min).js',
|
||||
'test/specs/configuration.js',
|
||||
'test/specs/basic/done.js',
|
||||
'test/specs/basic/each.js',
|
||||
'test/specs/basic/no-match.js',
|
||||
'test/specs/basic/debug.js',
|
||||
'test/specs/basic/main.js',
|
||||
'test/specs/basic/unmark.js',
|
||||
'test/specs/basic/context-array.js',
|
||||
'test/specs/basic/context-nodelist.js',
|
||||
'test/specs/basic/context-direct.js',
|
||||
'test/specs/basic/context-string.js',
|
||||
'test/specs/basic/array-keyword.js',
|
||||
'test/specs/basic/custom-element-class.js',
|
||||
'test/specs/basic/!(accuracy|no-options|case-sensitive|ignore-joiners|ignore-punctuation|wildcards)*.js',
|
||||
// depends on diacritics, separateWordSearch or synonyms:
|
||||
'test/specs/basic/accuracy*.js',
|
||||
'test/specs/basic/case-sensitive*.js',
|
||||
'test/specs/basic/ignore-joiners*.js',
|
||||
'test/specs/basic/ignore-punctuation*.js',
|
||||
'test/specs/basic/wildcards*.js',
|
||||
'test/specs/iframes/main.js',
|
||||
'test/specs/iframes/unmark.js',
|
||||
'test/specs/**/!(no-options).js', {
|
||||
pattern: 'test/fixtures/**/*.html',
|
||||
included: false,
|
||||
served: true
|
||||
},
|
||||
'test/specs/basic/no-options.js'
|
||||
],
|
||||
exclude: [],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: false,
|
||||
failOnEmptyTestSuite: false,
|
||||
plugins: [
|
||||
'karma-jasmine',
|
||||
'karma-jasmine-jquery',
|
||||
'karma-sauce-launcher',
|
||||
'karma-summary-reporter',
|
||||
'karma-coverage'
|
||||
],
|
||||
sauceLabs: {
|
||||
testName: 'mark.js unit tests',
|
||||
recordVideo: true,
|
||||
recordScreenshots: true,
|
||||
connectOptions: {
|
||||
noSslBumpDomains: 'all'
|
||||
}
|
||||
},
|
||||
customLaunchers: customLaunchers,
|
||||
browsers: Object.keys(customLaunchers),
|
||||
reporters: ['summary', 'saucelabs', 'coverage'],
|
||||
// in case Sauce Labs or the browser is slow
|
||||
captureTimeout: 300000, // 5 min
|
||||
browserDisconnectTimeout: 180000, // 3 min
|
||||
browserNoActivityTimeout: 180000, // 3 min
|
||||
browserDisconnectTolerance: 15,
|
||||
singleRun: true,
|
||||
preprocessors: {
|
||||
'dist/mark.js': ['coverage']
|
||||
},
|
||||
coverageReporter: {
|
||||
dir: './build/coverage/',
|
||||
reporters: [{
|
||||
type: 'html'
|
||||
}, {
|
||||
type: 'text'
|
||||
}]
|
||||
}
|
||||
});
|
||||
};
|
||||
68
node_modules/mark.js/build/karma.config.js
generated
vendored
68
node_modules/mark.js/build/karma.config.js
generated
vendored
@@ -1,68 +0,0 @@
|
||||
'use strict';
|
||||
module.exports = config => {
|
||||
config.set({
|
||||
basePath: '../',
|
||||
frameworks: ['jasmine-jquery', 'jasmine'],
|
||||
files: [
|
||||
'node_modules/jquery/dist/jquery.min.js',
|
||||
'dist/!(*.es6|*.min).js',
|
||||
'test/specs/configuration.js',
|
||||
'test/specs/basic/done.js',
|
||||
'test/specs/basic/each.js',
|
||||
'test/specs/basic/no-match.js',
|
||||
'test/specs/basic/debug.js',
|
||||
'test/specs/basic/main.js',
|
||||
'test/specs/basic/unmark.js',
|
||||
'test/specs/basic/context-array.js',
|
||||
'test/specs/basic/context-nodelist.js',
|
||||
'test/specs/basic/context-direct.js',
|
||||
'test/specs/basic/context-string.js',
|
||||
'test/specs/basic/array-keyword.js',
|
||||
'test/specs/basic/custom-element-class.js',
|
||||
'test/specs/basic/!(accuracy|no-options|case-sensitive|ignore-joiners|ignore-punctuation|wildcards)*.js',
|
||||
// depends on diacritics, separateWordSearch or synonyms:
|
||||
'test/specs/basic/accuracy*.js',
|
||||
'test/specs/basic/case-sensitive*.js',
|
||||
'test/specs/basic/ignore-joiners*.js',
|
||||
'test/specs/basic/ignore-punctuation*.js',
|
||||
'test/specs/basic/wildcards*.js',
|
||||
'test/specs/iframes/main.js',
|
||||
'test/specs/iframes/unmark.js',
|
||||
'test/specs/**/!(no-options).js', {
|
||||
pattern: 'test/fixtures/**/*.html',
|
||||
included: false,
|
||||
served: true
|
||||
},
|
||||
'test/specs/basic/no-options.js'
|
||||
],
|
||||
exclude: [],
|
||||
reporters: ['spec', 'coverage'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: false,
|
||||
failOnEmptyTestSuite: false,
|
||||
plugins: [
|
||||
'karma-jasmine',
|
||||
'karma-jasmine-jquery',
|
||||
'karma-phantomjs-launcher',
|
||||
'karma-spec-reporter',
|
||||
'karma-coverage'
|
||||
],
|
||||
browsers: ['PhantomJS'],
|
||||
captureTimeout: 30000,
|
||||
browserNoActivityTimeout: 60000, // 60 sec
|
||||
singleRun: true,
|
||||
preprocessors: {
|
||||
'dist/mark.js': ['coverage']
|
||||
},
|
||||
coverageReporter: {
|
||||
dir: './build/coverage/',
|
||||
reporters: [{
|
||||
type: 'html'
|
||||
}, {
|
||||
type: 'text'
|
||||
}]
|
||||
}
|
||||
});
|
||||
};
|
||||
143
node_modules/mark.js/build/rollup.config.js
generated
vendored
143
node_modules/mark.js/build/rollup.config.js
generated
vendored
@@ -1,143 +0,0 @@
|
||||
import pkg from '../package.json';
|
||||
import handlebars from 'handlebars';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import resolve from 'rollup-plugin-node-resolve';
|
||||
import commonjs from 'rollup-plugin-commonjs';
|
||||
import cleanup from 'rollup-plugin-cleanup';
|
||||
import babel from 'rollup-plugin-babel';
|
||||
import uglify from 'rollup-plugin-uglify';
|
||||
import {minify} from 'uglify-es';
|
||||
|
||||
// Shared config
|
||||
const output = {
|
||||
name: (() => {
|
||||
const str = pkg.name.split('/').pop().replace('.js', '');
|
||||
return str.charAt(0).toUpperCase() + str.slice(1);
|
||||
})(),
|
||||
file: pkg.main,
|
||||
format: 'umd',
|
||||
extend: true,
|
||||
banner: handlebars.compile(fs.readFileSync(path.join(
|
||||
__dirname, 'templates/copyright.hbs'
|
||||
), 'utf8'))({
|
||||
name: pkg.name.split('/').pop(),
|
||||
version: `v${pkg.version}`,
|
||||
homepage: pkg.homepage,
|
||||
author: pkg.author.name,
|
||||
license: pkg.license,
|
||||
year: (() => {
|
||||
const startYear = 2014,
|
||||
year = new Date().getFullYear();
|
||||
return year > startYear ? `${startYear}–${year}` : year;
|
||||
})()
|
||||
})
|
||||
},
|
||||
outputJquery = Object.assign({}, output, {
|
||||
file: (() => {
|
||||
const spl = pkg.main.split('/');
|
||||
spl[spl.length - 1] = `jquery.${spl[spl.length - 1]}`;
|
||||
return spl.join('/');
|
||||
})(),
|
||||
globals: {
|
||||
'jquery': 'jQuery'
|
||||
}
|
||||
}),
|
||||
externalJquery = ['jquery'],
|
||||
plugins = [
|
||||
// for external dependencies (just in case)
|
||||
resolve(),
|
||||
commonjs(),
|
||||
// remove non-license comments
|
||||
cleanup({
|
||||
comments: /^!/,
|
||||
maxEmptyLines: 0
|
||||
})
|
||||
],
|
||||
pluginsES5 = (() => {
|
||||
const newPlugins = plugins.slice();
|
||||
newPlugins.push(babel({
|
||||
exclude: 'node_modules/**',
|
||||
'presets': [
|
||||
['env', {
|
||||
'modules': false
|
||||
}]
|
||||
],
|
||||
'plugins': [
|
||||
'external-helpers',
|
||||
'transform-object-assign'
|
||||
]
|
||||
}));
|
||||
return newPlugins;
|
||||
})(),
|
||||
minifyPlugins = (() => {
|
||||
const newPlugins = plugins.slice();
|
||||
newPlugins.push(uglify({
|
||||
warnings: true,
|
||||
output: {
|
||||
comments: /^!/
|
||||
}
|
||||
}, minify));
|
||||
return newPlugins;
|
||||
})(),
|
||||
minifyPluginsES5 = (() => {
|
||||
const newPlugins = pluginsES5.slice();
|
||||
newPlugins.push(uglify({
|
||||
warnings: true,
|
||||
output: {
|
||||
comments: /^!/
|
||||
}
|
||||
}, minify));
|
||||
return newPlugins;
|
||||
})();
|
||||
|
||||
// Actual config export
|
||||
export default [{
|
||||
input: 'src/vanilla.js',
|
||||
output: Object.assign({}, output, {
|
||||
file: output.file.replace('.js', '.es6.js')
|
||||
}),
|
||||
plugins
|
||||
}, {
|
||||
input: 'src/jquery.js',
|
||||
output: Object.assign({}, outputJquery, {
|
||||
file: outputJquery.file.replace('.js', '.es6.js')
|
||||
}),
|
||||
plugins,
|
||||
external: externalJquery
|
||||
}, {
|
||||
input: 'src/vanilla.js',
|
||||
output,
|
||||
plugins: pluginsES5
|
||||
}, {
|
||||
input: 'src/jquery.js',
|
||||
output: outputJquery,
|
||||
plugins: pluginsES5,
|
||||
external: externalJquery
|
||||
}, {
|
||||
input: 'src/vanilla.js',
|
||||
output: Object.assign({}, output, {
|
||||
file: output.file.replace('.js', '.es6.min.js')
|
||||
}),
|
||||
plugins: minifyPlugins,
|
||||
}, {
|
||||
input: 'src/jquery.js',
|
||||
output: Object.assign({}, outputJquery, {
|
||||
file: outputJquery.file.replace('.js', '.es6.min.js')
|
||||
}),
|
||||
plugins: minifyPlugins,
|
||||
external: externalJquery
|
||||
}, {
|
||||
input: 'src/vanilla.js',
|
||||
output: Object.assign({}, output, {
|
||||
file: output.file.replace('.js', '.min.js')
|
||||
}),
|
||||
plugins: minifyPluginsES5
|
||||
}, {
|
||||
input: 'src/jquery.js',
|
||||
output: Object.assign({}, outputJquery, {
|
||||
file: outputJquery.file.replace('.js', '.min.js')
|
||||
}),
|
||||
plugins: minifyPluginsES5,
|
||||
external: externalJquery
|
||||
}];
|
||||
6
node_modules/mark.js/build/templates/copyright.hbs
generated
vendored
6
node_modules/mark.js/build/templates/copyright.hbs
generated
vendored
@@ -1,6 +0,0 @@
|
||||
/*!***************************************************
|
||||
* {{name}} {{version}}
|
||||
* {{homepage}}
|
||||
* Copyright (c) {{year}}, {{author}}
|
||||
* Released under the {{license}} license https://git.io/vwTVl
|
||||
*****************************************************/
|
||||
925
node_modules/mark.js/dist/jquery.mark.es6.js
generated
vendored
925
node_modules/mark.js/dist/jquery.mark.es6.js
generated
vendored
@@ -1,925 +0,0 @@
|
||||
/*!***************************************************
|
||||
* mark.js v8.11.1
|
||||
* https://markjs.io/
|
||||
* Copyright (c) 2014–2018, Julian Kühnel
|
||||
* Released under the MIT license https://git.io/vwTVl
|
||||
*****************************************************/
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
|
||||
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
|
||||
(global.Mark = factory(global.jQuery));
|
||||
}(this, (function ($) { 'use strict';
|
||||
|
||||
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||
|
||||
class DOMIterator {
|
||||
constructor(ctx, iframes = true, exclude = [], iframesTimeout = 5000) {
|
||||
this.ctx = ctx;
|
||||
this.iframes = iframes;
|
||||
this.exclude = exclude;
|
||||
this.iframesTimeout = iframesTimeout;
|
||||
}
|
||||
static matches(element, selector) {
|
||||
const selectors = typeof selector === 'string' ? [selector] : selector,
|
||||
fn = (
|
||||
element.matches ||
|
||||
element.matchesSelector ||
|
||||
element.msMatchesSelector ||
|
||||
element.mozMatchesSelector ||
|
||||
element.oMatchesSelector ||
|
||||
element.webkitMatchesSelector
|
||||
);
|
||||
if (fn) {
|
||||
let match = false;
|
||||
selectors.every(sel => {
|
||||
if (fn.call(element, sel)) {
|
||||
match = true;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
return match;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
getContexts() {
|
||||
let ctx,
|
||||
filteredCtx = [];
|
||||
if (typeof this.ctx === 'undefined' || !this.ctx) {
|
||||
ctx = [];
|
||||
} else if (NodeList.prototype.isPrototypeOf(this.ctx)) {
|
||||
ctx = Array.prototype.slice.call(this.ctx);
|
||||
} else if (Array.isArray(this.ctx)) {
|
||||
ctx = this.ctx;
|
||||
} else if (typeof this.ctx === 'string') {
|
||||
ctx = Array.prototype.slice.call(
|
||||
document.querySelectorAll(this.ctx)
|
||||
);
|
||||
} else {
|
||||
ctx = [this.ctx];
|
||||
}
|
||||
ctx.forEach(ctx => {
|
||||
const isDescendant = filteredCtx.filter(contexts => {
|
||||
return contexts.contains(ctx);
|
||||
}).length > 0;
|
||||
if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {
|
||||
filteredCtx.push(ctx);
|
||||
}
|
||||
});
|
||||
return filteredCtx;
|
||||
}
|
||||
getIframeContents(ifr, successFn, errorFn = () => {}) {
|
||||
let doc;
|
||||
try {
|
||||
const ifrWin = ifr.contentWindow;
|
||||
doc = ifrWin.document;
|
||||
if (!ifrWin || !doc) {
|
||||
throw new Error('iframe inaccessible');
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
if (doc) {
|
||||
successFn(doc);
|
||||
}
|
||||
}
|
||||
isIframeBlank(ifr) {
|
||||
const bl = 'about:blank',
|
||||
src = ifr.getAttribute('src').trim(),
|
||||
href = ifr.contentWindow.location.href;
|
||||
return href === bl && src !== bl && src;
|
||||
}
|
||||
observeIframeLoad(ifr, successFn, errorFn) {
|
||||
let called = false,
|
||||
tout = null;
|
||||
const listener = () => {
|
||||
if (called) {
|
||||
return;
|
||||
}
|
||||
called = true;
|
||||
clearTimeout(tout);
|
||||
try {
|
||||
if (!this.isIframeBlank(ifr)) {
|
||||
ifr.removeEventListener('load', listener);
|
||||
this.getIframeContents(ifr, successFn, errorFn);
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
};
|
||||
ifr.addEventListener('load', listener);
|
||||
tout = setTimeout(listener, this.iframesTimeout);
|
||||
}
|
||||
onIframeReady(ifr, successFn, errorFn) {
|
||||
try {
|
||||
if (ifr.contentWindow.document.readyState === 'complete') {
|
||||
if (this.isIframeBlank(ifr)) {
|
||||
this.observeIframeLoad(ifr, successFn, errorFn);
|
||||
} else {
|
||||
this.getIframeContents(ifr, successFn, errorFn);
|
||||
}
|
||||
} else {
|
||||
this.observeIframeLoad(ifr, successFn, errorFn);
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
}
|
||||
waitForIframes(ctx, done) {
|
||||
let eachCalled = 0;
|
||||
this.forEachIframe(ctx, () => true, ifr => {
|
||||
eachCalled++;
|
||||
this.waitForIframes(ifr.querySelector('html'), () => {
|
||||
if (!(--eachCalled)) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}, handled => {
|
||||
if (!handled) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}
|
||||
forEachIframe(ctx, filter, each, end = () => {}) {
|
||||
let ifr = ctx.querySelectorAll('iframe'),
|
||||
open = ifr.length,
|
||||
handled = 0;
|
||||
ifr = Array.prototype.slice.call(ifr);
|
||||
const checkEnd = () => {
|
||||
if (--open <= 0) {
|
||||
end(handled);
|
||||
}
|
||||
};
|
||||
if (!open) {
|
||||
checkEnd();
|
||||
}
|
||||
ifr.forEach(ifr => {
|
||||
if (DOMIterator.matches(ifr, this.exclude)) {
|
||||
checkEnd();
|
||||
} else {
|
||||
this.onIframeReady(ifr, con => {
|
||||
if (filter(ifr)) {
|
||||
handled++;
|
||||
each(con);
|
||||
}
|
||||
checkEnd();
|
||||
}, checkEnd);
|
||||
}
|
||||
});
|
||||
}
|
||||
createIterator(ctx, whatToShow, filter) {
|
||||
return document.createNodeIterator(ctx, whatToShow, filter, false);
|
||||
}
|
||||
createInstanceOnIframe(contents) {
|
||||
return new DOMIterator(contents.querySelector('html'), this.iframes);
|
||||
}
|
||||
compareNodeIframe(node, prevNode, ifr) {
|
||||
const compCurr = node.compareDocumentPosition(ifr),
|
||||
prev = Node.DOCUMENT_POSITION_PRECEDING;
|
||||
if (compCurr & prev) {
|
||||
if (prevNode !== null) {
|
||||
const compPrev = prevNode.compareDocumentPosition(ifr),
|
||||
after = Node.DOCUMENT_POSITION_FOLLOWING;
|
||||
if (compPrev & after) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
getIteratorNode(itr) {
|
||||
const prevNode = itr.previousNode();
|
||||
let node;
|
||||
if (prevNode === null) {
|
||||
node = itr.nextNode();
|
||||
} else {
|
||||
node = itr.nextNode() && itr.nextNode();
|
||||
}
|
||||
return {
|
||||
prevNode,
|
||||
node
|
||||
};
|
||||
}
|
||||
checkIframeFilter(node, prevNode, currIfr, ifr) {
|
||||
let key = false,
|
||||
handled = false;
|
||||
ifr.forEach((ifrDict, i) => {
|
||||
if (ifrDict.val === currIfr) {
|
||||
key = i;
|
||||
handled = ifrDict.handled;
|
||||
}
|
||||
});
|
||||
if (this.compareNodeIframe(node, prevNode, currIfr)) {
|
||||
if (key === false && !handled) {
|
||||
ifr.push({
|
||||
val: currIfr,
|
||||
handled: true
|
||||
});
|
||||
} else if (key !== false && !handled) {
|
||||
ifr[key].handled = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (key === false) {
|
||||
ifr.push({
|
||||
val: currIfr,
|
||||
handled: false
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
handleOpenIframes(ifr, whatToShow, eCb, fCb) {
|
||||
ifr.forEach(ifrDict => {
|
||||
if (!ifrDict.handled) {
|
||||
this.getIframeContents(ifrDict.val, con => {
|
||||
this.createInstanceOnIframe(con).forEachNode(
|
||||
whatToShow, eCb, fCb
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {
|
||||
const itr = this.createIterator(ctx, whatToShow, filterCb);
|
||||
let ifr = [],
|
||||
elements = [],
|
||||
node, prevNode, retrieveNodes = () => {
|
||||
({
|
||||
prevNode,
|
||||
node
|
||||
} = this.getIteratorNode(itr));
|
||||
return node;
|
||||
};
|
||||
while (retrieveNodes()) {
|
||||
if (this.iframes) {
|
||||
this.forEachIframe(ctx, currIfr => {
|
||||
return this.checkIframeFilter(node, prevNode, currIfr, ifr);
|
||||
}, con => {
|
||||
this.createInstanceOnIframe(con).forEachNode(
|
||||
whatToShow, ifrNode => elements.push(ifrNode), filterCb
|
||||
);
|
||||
});
|
||||
}
|
||||
elements.push(node);
|
||||
}
|
||||
elements.forEach(node => {
|
||||
eachCb(node);
|
||||
});
|
||||
if (this.iframes) {
|
||||
this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);
|
||||
}
|
||||
doneCb();
|
||||
}
|
||||
forEachNode(whatToShow, each, filter, done = () => {}) {
|
||||
const contexts = this.getContexts();
|
||||
let open = contexts.length;
|
||||
if (!open) {
|
||||
done();
|
||||
}
|
||||
contexts.forEach(ctx => {
|
||||
const ready = () => {
|
||||
this.iterateThroughNodes(whatToShow, ctx, each, filter, () => {
|
||||
if (--open <= 0) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
};
|
||||
if (this.iframes) {
|
||||
this.waitForIframes(ctx, ready);
|
||||
} else {
|
||||
ready();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class Mark {
|
||||
constructor(ctx) {
|
||||
this.ctx = ctx;
|
||||
this.ie = false;
|
||||
const ua = window.navigator.userAgent;
|
||||
if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {
|
||||
this.ie = true;
|
||||
}
|
||||
}
|
||||
set opt(val) {
|
||||
this._opt = Object.assign({}, {
|
||||
'element': '',
|
||||
'className': '',
|
||||
'exclude': [],
|
||||
'iframes': false,
|
||||
'iframesTimeout': 5000,
|
||||
'separateWordSearch': true,
|
||||
'diacritics': true,
|
||||
'synonyms': {},
|
||||
'accuracy': 'partially',
|
||||
'acrossElements': false,
|
||||
'caseSensitive': false,
|
||||
'ignoreJoiners': false,
|
||||
'ignoreGroups': 0,
|
||||
'ignorePunctuation': [],
|
||||
'wildcards': 'disabled',
|
||||
'each': () => {},
|
||||
'noMatch': () => {},
|
||||
'filter': () => true,
|
||||
'done': () => {},
|
||||
'debug': false,
|
||||
'log': window.console
|
||||
}, val);
|
||||
}
|
||||
get opt() {
|
||||
return this._opt;
|
||||
}
|
||||
get iterator() {
|
||||
return new DOMIterator(
|
||||
this.ctx,
|
||||
this.opt.iframes,
|
||||
this.opt.exclude,
|
||||
this.opt.iframesTimeout
|
||||
);
|
||||
}
|
||||
log(msg, level = 'debug') {
|
||||
const log = this.opt.log;
|
||||
if (!this.opt.debug) {
|
||||
return;
|
||||
}
|
||||
if (typeof log === 'object' && typeof log[level] === 'function') {
|
||||
log[level](`mark.js: ${msg}`);
|
||||
}
|
||||
}
|
||||
escapeStr(str) {
|
||||
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
|
||||
}
|
||||
createRegExp(str) {
|
||||
if (this.opt.wildcards !== 'disabled') {
|
||||
str = this.setupWildcardsRegExp(str);
|
||||
}
|
||||
str = this.escapeStr(str);
|
||||
if (Object.keys(this.opt.synonyms).length) {
|
||||
str = this.createSynonymsRegExp(str);
|
||||
}
|
||||
if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
|
||||
str = this.setupIgnoreJoinersRegExp(str);
|
||||
}
|
||||
if (this.opt.diacritics) {
|
||||
str = this.createDiacriticsRegExp(str);
|
||||
}
|
||||
str = this.createMergedBlanksRegExp(str);
|
||||
if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
|
||||
str = this.createJoinersRegExp(str);
|
||||
}
|
||||
if (this.opt.wildcards !== 'disabled') {
|
||||
str = this.createWildcardsRegExp(str);
|
||||
}
|
||||
str = this.createAccuracyRegExp(str);
|
||||
return str;
|
||||
}
|
||||
createSynonymsRegExp(str) {
|
||||
const syn = this.opt.synonyms,
|
||||
sens = this.opt.caseSensitive ? '' : 'i',
|
||||
joinerPlaceholder = this.opt.ignoreJoiners ||
|
||||
this.opt.ignorePunctuation.length ? '\u0000' : '';
|
||||
for (let index in syn) {
|
||||
if (syn.hasOwnProperty(index)) {
|
||||
const value = syn[index],
|
||||
k1 = this.opt.wildcards !== 'disabled' ?
|
||||
this.setupWildcardsRegExp(index) :
|
||||
this.escapeStr(index),
|
||||
k2 = this.opt.wildcards !== 'disabled' ?
|
||||
this.setupWildcardsRegExp(value) :
|
||||
this.escapeStr(value);
|
||||
if (k1 !== '' && k2 !== '') {
|
||||
str = str.replace(
|
||||
new RegExp(
|
||||
`(${this.escapeStr(k1)}|${this.escapeStr(k2)})`,
|
||||
`gm${sens}`
|
||||
),
|
||||
joinerPlaceholder +
|
||||
`(${this.processSynomyms(k1)}|` +
|
||||
`${this.processSynomyms(k2)})` +
|
||||
joinerPlaceholder
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
processSynomyms(str) {
|
||||
if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
|
||||
str = this.setupIgnoreJoinersRegExp(str);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
setupWildcardsRegExp(str) {
|
||||
str = str.replace(/(?:\\)*\?/g, val => {
|
||||
return val.charAt(0) === '\\' ? '?' : '\u0001';
|
||||
});
|
||||
return str.replace(/(?:\\)*\*/g, val => {
|
||||
return val.charAt(0) === '\\' ? '*' : '\u0002';
|
||||
});
|
||||
}
|
||||
createWildcardsRegExp(str) {
|
||||
let spaces = this.opt.wildcards === 'withSpaces';
|
||||
return str
|
||||
.replace(/\u0001/g, spaces ? '[\\S\\s]?' : '\\S?')
|
||||
.replace(/\u0002/g, spaces ? '[\\S\\s]*?' : '\\S*');
|
||||
}
|
||||
setupIgnoreJoinersRegExp(str) {
|
||||
return str.replace(/[^(|)\\]/g, (val, indx, original) => {
|
||||
let nextChar = original.charAt(indx + 1);
|
||||
if (/[(|)\\]/.test(nextChar) || nextChar === '') {
|
||||
return val;
|
||||
} else {
|
||||
return val + '\u0000';
|
||||
}
|
||||
});
|
||||
}
|
||||
createJoinersRegExp(str) {
|
||||
let joiner = [];
|
||||
const ignorePunctuation = this.opt.ignorePunctuation;
|
||||
if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {
|
||||
joiner.push(this.escapeStr(ignorePunctuation.join('')));
|
||||
}
|
||||
if (this.opt.ignoreJoiners) {
|
||||
joiner.push('\\u00ad\\u200b\\u200c\\u200d');
|
||||
}
|
||||
return joiner.length ?
|
||||
str.split(/\u0000+/).join(`[${joiner.join('')}]*`) :
|
||||
str;
|
||||
}
|
||||
createDiacriticsRegExp(str) {
|
||||
const sens = this.opt.caseSensitive ? '' : 'i',
|
||||
dct = this.opt.caseSensitive ? [
|
||||
'aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ',
|
||||
'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ',
|
||||
'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ',
|
||||
'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń',
|
||||
'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ',
|
||||
'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ',
|
||||
'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ',
|
||||
'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'
|
||||
] : [
|
||||
'aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ',
|
||||
'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ',
|
||||
'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ',
|
||||
'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ',
|
||||
'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ',
|
||||
'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'
|
||||
];
|
||||
let handled = [];
|
||||
str.split('').forEach(ch => {
|
||||
dct.every(dct => {
|
||||
if (dct.indexOf(ch) !== -1) {
|
||||
if (handled.indexOf(dct) > -1) {
|
||||
return false;
|
||||
}
|
||||
str = str.replace(
|
||||
new RegExp(`[${dct}]`, `gm${sens}`), `[${dct}]`
|
||||
);
|
||||
handled.push(dct);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
});
|
||||
return str;
|
||||
}
|
||||
createMergedBlanksRegExp(str) {
|
||||
return str.replace(/[\s]+/gmi, '[\\s]+');
|
||||
}
|
||||
createAccuracyRegExp(str) {
|
||||
const chars = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~¡¿';
|
||||
let acc = this.opt.accuracy,
|
||||
val = typeof acc === 'string' ? acc : acc.value,
|
||||
ls = typeof acc === 'string' ? [] : acc.limiters,
|
||||
lsJoin = '';
|
||||
ls.forEach(limiter => {
|
||||
lsJoin += `|${this.escapeStr(limiter)}`;
|
||||
});
|
||||
switch (val) {
|
||||
case 'partially':
|
||||
default:
|
||||
return `()(${str})`;
|
||||
case 'complementary':
|
||||
lsJoin = '\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));
|
||||
return `()([^${lsJoin}]*${str}[^${lsJoin}]*)`;
|
||||
case 'exactly':
|
||||
return `(^|\\s${lsJoin})(${str})(?=$|\\s${lsJoin})`;
|
||||
}
|
||||
}
|
||||
getSeparatedKeywords(sv) {
|
||||
let stack = [];
|
||||
sv.forEach(kw => {
|
||||
if (!this.opt.separateWordSearch) {
|
||||
if (kw.trim() && stack.indexOf(kw) === -1) {
|
||||
stack.push(kw);
|
||||
}
|
||||
} else {
|
||||
kw.split(' ').forEach(kwSplitted => {
|
||||
if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {
|
||||
stack.push(kwSplitted);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return {
|
||||
'keywords': stack.sort((a, b) => {
|
||||
return b.length - a.length;
|
||||
}),
|
||||
'length': stack.length
|
||||
};
|
||||
}
|
||||
isNumeric(value) {
|
||||
return Number(parseFloat(value)) == value;
|
||||
}
|
||||
checkRanges(array) {
|
||||
if (
|
||||
!Array.isArray(array) ||
|
||||
Object.prototype.toString.call( array[0] ) !== '[object Object]'
|
||||
) {
|
||||
this.log('markRanges() will only accept an array of objects');
|
||||
this.opt.noMatch(array);
|
||||
return [];
|
||||
}
|
||||
const stack = [];
|
||||
let last = 0;
|
||||
array
|
||||
.sort((a, b) => {
|
||||
return a.start - b.start;
|
||||
})
|
||||
.forEach(item => {
|
||||
let {start, end, valid} = this.callNoMatchOnInvalidRanges(item, last);
|
||||
if (valid) {
|
||||
item.start = start;
|
||||
item.length = end - start;
|
||||
stack.push(item);
|
||||
last = end;
|
||||
}
|
||||
});
|
||||
return stack;
|
||||
}
|
||||
callNoMatchOnInvalidRanges(range, last) {
|
||||
let start, end,
|
||||
valid = false;
|
||||
if (range && typeof range.start !== 'undefined') {
|
||||
start = parseInt(range.start, 10);
|
||||
end = start + parseInt(range.length, 10);
|
||||
if (
|
||||
this.isNumeric(range.start) &&
|
||||
this.isNumeric(range.length) &&
|
||||
end - last > 0 &&
|
||||
end - start > 0
|
||||
) {
|
||||
valid = true;
|
||||
} else {
|
||||
this.log(
|
||||
'Ignoring invalid or overlapping range: ' +
|
||||
`${JSON.stringify(range)}`
|
||||
);
|
||||
this.opt.noMatch(range);
|
||||
}
|
||||
} else {
|
||||
this.log(`Ignoring invalid range: ${JSON.stringify(range)}`);
|
||||
this.opt.noMatch(range);
|
||||
}
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
valid: valid
|
||||
};
|
||||
}
|
||||
checkWhitespaceRanges(range, originalLength, string) {
|
||||
let end,
|
||||
valid = true,
|
||||
max = string.length,
|
||||
offset = originalLength - max,
|
||||
start = parseInt(range.start, 10) - offset;
|
||||
start = start > max ? max : start;
|
||||
end = start + parseInt(range.length, 10);
|
||||
if (end > max) {
|
||||
end = max;
|
||||
this.log(`End range automatically set to the max value of ${max}`);
|
||||
}
|
||||
if (start < 0 || end - start < 0 || start > max || end > max) {
|
||||
valid = false;
|
||||
this.log(`Invalid range: ${JSON.stringify(range)}`);
|
||||
this.opt.noMatch(range);
|
||||
} else if (string.substring(start, end).replace(/\s+/g, '') === '') {
|
||||
valid = false;
|
||||
this.log('Skipping whitespace only range: ' +JSON.stringify(range));
|
||||
this.opt.noMatch(range);
|
||||
}
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
valid: valid
|
||||
};
|
||||
}
|
||||
getTextNodes(cb) {
|
||||
let val = '',
|
||||
nodes = [];
|
||||
this.iterator.forEachNode(NodeFilter.SHOW_TEXT, node => {
|
||||
nodes.push({
|
||||
start: val.length,
|
||||
end: (val += node.textContent).length,
|
||||
node
|
||||
});
|
||||
}, node => {
|
||||
if (this.matchesExclude(node.parentNode)) {
|
||||
return NodeFilter.FILTER_REJECT;
|
||||
} else {
|
||||
return NodeFilter.FILTER_ACCEPT;
|
||||
}
|
||||
}, () => {
|
||||
cb({
|
||||
value: val,
|
||||
nodes: nodes
|
||||
});
|
||||
});
|
||||
}
|
||||
matchesExclude(el) {
|
||||
return DOMIterator.matches(el, this.opt.exclude.concat([
|
||||
'script', 'style', 'title', 'head', 'html'
|
||||
]));
|
||||
}
|
||||
wrapRangeInTextNode(node, start, end) {
|
||||
const hEl = !this.opt.element ? 'mark' : this.opt.element,
|
||||
startNode = node.splitText(start),
|
||||
ret = startNode.splitText(end - start);
|
||||
let repl = document.createElement(hEl);
|
||||
repl.setAttribute('data-markjs', 'true');
|
||||
if (this.opt.className) {
|
||||
repl.setAttribute('class', this.opt.className);
|
||||
}
|
||||
repl.textContent = startNode.textContent;
|
||||
startNode.parentNode.replaceChild(repl, startNode);
|
||||
return ret;
|
||||
}
|
||||
wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {
|
||||
dict.nodes.every((n, i) => {
|
||||
const sibl = dict.nodes[i + 1];
|
||||
if (typeof sibl === 'undefined' || sibl.start > start) {
|
||||
if (!filterCb(n.node)) {
|
||||
return false;
|
||||
}
|
||||
const s = start - n.start,
|
||||
e = (end > n.end ? n.end : end) - n.start,
|
||||
startStr = dict.value.substr(0, n.start),
|
||||
endStr = dict.value.substr(e + n.start);
|
||||
n.node = this.wrapRangeInTextNode(n.node, s, e);
|
||||
dict.value = startStr + endStr;
|
||||
dict.nodes.forEach((k, j) => {
|
||||
if (j >= i) {
|
||||
if (dict.nodes[j].start > 0 && j !== i) {
|
||||
dict.nodes[j].start -= e;
|
||||
}
|
||||
dict.nodes[j].end -= e;
|
||||
}
|
||||
});
|
||||
end -= e;
|
||||
eachCb(n.node.previousSibling, n.start);
|
||||
if (end > n.end) {
|
||||
start = n.end;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {
|
||||
const matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;
|
||||
this.getTextNodes(dict => {
|
||||
dict.nodes.forEach(node => {
|
||||
node = node.node;
|
||||
let match;
|
||||
while (
|
||||
(match = regex.exec(node.textContent)) !== null &&
|
||||
match[matchIdx] !== ''
|
||||
) {
|
||||
if (!filterCb(match[matchIdx], node)) {
|
||||
continue;
|
||||
}
|
||||
let pos = match.index;
|
||||
if (matchIdx !== 0) {
|
||||
for (let i = 1; i < matchIdx; i++) {
|
||||
pos += match[i].length;
|
||||
}
|
||||
}
|
||||
node = this.wrapRangeInTextNode(
|
||||
node,
|
||||
pos,
|
||||
pos + match[matchIdx].length
|
||||
);
|
||||
eachCb(node.previousSibling);
|
||||
regex.lastIndex = 0;
|
||||
}
|
||||
});
|
||||
endCb();
|
||||
});
|
||||
}
|
||||
wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {
|
||||
const matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;
|
||||
this.getTextNodes(dict => {
|
||||
let match;
|
||||
while (
|
||||
(match = regex.exec(dict.value)) !== null &&
|
||||
match[matchIdx] !== ''
|
||||
) {
|
||||
let start = match.index;
|
||||
if (matchIdx !== 0) {
|
||||
for (let i = 1; i < matchIdx; i++) {
|
||||
start += match[i].length;
|
||||
}
|
||||
}
|
||||
const end = start + match[matchIdx].length;
|
||||
this.wrapRangeInMappedTextNode(dict, start, end, node => {
|
||||
return filterCb(match[matchIdx], node);
|
||||
}, (node, lastIndex) => {
|
||||
regex.lastIndex = lastIndex;
|
||||
eachCb(node);
|
||||
});
|
||||
}
|
||||
endCb();
|
||||
});
|
||||
}
|
||||
wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {
|
||||
this.getTextNodes(dict => {
|
||||
const originalLength = dict.value.length;
|
||||
ranges.forEach((range, counter) => {
|
||||
let {start, end, valid} = this.checkWhitespaceRanges(
|
||||
range,
|
||||
originalLength,
|
||||
dict.value
|
||||
);
|
||||
if (valid) {
|
||||
this.wrapRangeInMappedTextNode(dict, start, end, node => {
|
||||
return filterCb(
|
||||
node,
|
||||
range,
|
||||
dict.value.substring(start, end),
|
||||
counter
|
||||
);
|
||||
}, node => {
|
||||
eachCb(node, range);
|
||||
});
|
||||
}
|
||||
});
|
||||
endCb();
|
||||
});
|
||||
}
|
||||
unwrapMatches(node) {
|
||||
const parent = node.parentNode;
|
||||
let docFrag = document.createDocumentFragment();
|
||||
while (node.firstChild) {
|
||||
docFrag.appendChild(node.removeChild(node.firstChild));
|
||||
}
|
||||
parent.replaceChild(docFrag, node);
|
||||
if (!this.ie) {
|
||||
parent.normalize();
|
||||
} else {
|
||||
this.normalizeTextNode(parent);
|
||||
}
|
||||
}
|
||||
normalizeTextNode(node) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
if (node.nodeType === 3) {
|
||||
while (node.nextSibling && node.nextSibling.nodeType === 3) {
|
||||
node.nodeValue += node.nextSibling.nodeValue;
|
||||
node.parentNode.removeChild(node.nextSibling);
|
||||
}
|
||||
} else {
|
||||
this.normalizeTextNode(node.firstChild);
|
||||
}
|
||||
this.normalizeTextNode(node.nextSibling);
|
||||
}
|
||||
markRegExp(regexp, opt) {
|
||||
this.opt = opt;
|
||||
this.log(`Searching with expression "${regexp}"`);
|
||||
let totalMatches = 0,
|
||||
fn = 'wrapMatches';
|
||||
const eachCb = element => {
|
||||
totalMatches++;
|
||||
this.opt.each(element);
|
||||
};
|
||||
if (this.opt.acrossElements) {
|
||||
fn = 'wrapMatchesAcrossElements';
|
||||
}
|
||||
this[fn](regexp, this.opt.ignoreGroups, (match, node) => {
|
||||
return this.opt.filter(node, match, totalMatches);
|
||||
}, eachCb, () => {
|
||||
if (totalMatches === 0) {
|
||||
this.opt.noMatch(regexp);
|
||||
}
|
||||
this.opt.done(totalMatches);
|
||||
});
|
||||
}
|
||||
mark(sv, opt) {
|
||||
this.opt = opt;
|
||||
let totalMatches = 0,
|
||||
fn = 'wrapMatches';
|
||||
const {
|
||||
keywords: kwArr,
|
||||
length: kwArrLen
|
||||
} = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),
|
||||
sens = this.opt.caseSensitive ? '' : 'i',
|
||||
handler = kw => {
|
||||
let regex = new RegExp(this.createRegExp(kw), `gm${sens}`),
|
||||
matches = 0;
|
||||
this.log(`Searching with expression "${regex}"`);
|
||||
this[fn](regex, 1, (term, node) => {
|
||||
return this.opt.filter(node, kw, totalMatches, matches);
|
||||
}, element => {
|
||||
matches++;
|
||||
totalMatches++;
|
||||
this.opt.each(element);
|
||||
}, () => {
|
||||
if (matches === 0) {
|
||||
this.opt.noMatch(kw);
|
||||
}
|
||||
if (kwArr[kwArrLen - 1] === kw) {
|
||||
this.opt.done(totalMatches);
|
||||
} else {
|
||||
handler(kwArr[kwArr.indexOf(kw) + 1]);
|
||||
}
|
||||
});
|
||||
};
|
||||
if (this.opt.acrossElements) {
|
||||
fn = 'wrapMatchesAcrossElements';
|
||||
}
|
||||
if (kwArrLen === 0) {
|
||||
this.opt.done(totalMatches);
|
||||
} else {
|
||||
handler(kwArr[0]);
|
||||
}
|
||||
}
|
||||
markRanges(rawRanges, opt) {
|
||||
this.opt = opt;
|
||||
let totalMatches = 0,
|
||||
ranges = this.checkRanges(rawRanges);
|
||||
if (ranges && ranges.length) {
|
||||
this.log(
|
||||
'Starting to mark with the following ranges: ' +
|
||||
JSON.stringify(ranges)
|
||||
);
|
||||
this.wrapRangeFromIndex(
|
||||
ranges, (node, range, match, counter) => {
|
||||
return this.opt.filter(node, range, match, counter);
|
||||
}, (element, range) => {
|
||||
totalMatches++;
|
||||
this.opt.each(element, range);
|
||||
}, () => {
|
||||
this.opt.done(totalMatches);
|
||||
}
|
||||
);
|
||||
} else {
|
||||
this.opt.done(totalMatches);
|
||||
}
|
||||
}
|
||||
unmark(opt) {
|
||||
this.opt = opt;
|
||||
let sel = this.opt.element ? this.opt.element : '*';
|
||||
sel += '[data-markjs]';
|
||||
if (this.opt.className) {
|
||||
sel += `.${this.opt.className}`;
|
||||
}
|
||||
this.log(`Removal selector "${sel}"`);
|
||||
this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, node => {
|
||||
this.unwrapMatches(node);
|
||||
}, node => {
|
||||
const matchesSel = DOMIterator.matches(node, sel),
|
||||
matchesExclude = this.matchesExclude(node);
|
||||
if (!matchesSel || matchesExclude) {
|
||||
return NodeFilter.FILTER_REJECT;
|
||||
} else {
|
||||
return NodeFilter.FILTER_ACCEPT;
|
||||
}
|
||||
}, this.opt.done);
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.mark = function(sv, opt) {
|
||||
new Mark(this.get()).mark(sv, opt);
|
||||
return this;
|
||||
};
|
||||
$.fn.markRegExp = function(regexp, opt) {
|
||||
new Mark(this.get()).markRegExp(regexp, opt);
|
||||
return this;
|
||||
};
|
||||
$.fn.markRanges = function(ranges, opt) {
|
||||
new Mark(this.get()).markRanges(ranges, opt);
|
||||
return this;
|
||||
};
|
||||
$.fn.unmark = function(opt) {
|
||||
new Mark(this.get()).unmark(opt);
|
||||
return this;
|
||||
};
|
||||
|
||||
return $;
|
||||
|
||||
})));
|
||||
7
node_modules/mark.js/dist/jquery.mark.es6.min.js
generated
vendored
7
node_modules/mark.js/dist/jquery.mark.es6.min.js
generated
vendored
File diff suppressed because one or more lines are too long
1064
node_modules/mark.js/dist/jquery.mark.js
generated
vendored
1064
node_modules/mark.js/dist/jquery.mark.js
generated
vendored
File diff suppressed because it is too large
Load Diff
7
node_modules/mark.js/dist/jquery.mark.min.js
generated
vendored
7
node_modules/mark.js/dist/jquery.mark.min.js
generated
vendored
File diff suppressed because one or more lines are too long
927
node_modules/mark.js/dist/mark.es6.js
generated
vendored
927
node_modules/mark.js/dist/mark.es6.js
generated
vendored
@@ -1,927 +0,0 @@
|
||||
/*!***************************************************
|
||||
* mark.js v8.11.1
|
||||
* https://markjs.io/
|
||||
* Copyright (c) 2014–2018, Julian Kühnel
|
||||
* Released under the MIT license https://git.io/vwTVl
|
||||
*****************************************************/
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global.Mark = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
class DOMIterator {
|
||||
constructor(ctx, iframes = true, exclude = [], iframesTimeout = 5000) {
|
||||
this.ctx = ctx;
|
||||
this.iframes = iframes;
|
||||
this.exclude = exclude;
|
||||
this.iframesTimeout = iframesTimeout;
|
||||
}
|
||||
static matches(element, selector) {
|
||||
const selectors = typeof selector === 'string' ? [selector] : selector,
|
||||
fn = (
|
||||
element.matches ||
|
||||
element.matchesSelector ||
|
||||
element.msMatchesSelector ||
|
||||
element.mozMatchesSelector ||
|
||||
element.oMatchesSelector ||
|
||||
element.webkitMatchesSelector
|
||||
);
|
||||
if (fn) {
|
||||
let match = false;
|
||||
selectors.every(sel => {
|
||||
if (fn.call(element, sel)) {
|
||||
match = true;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
return match;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
getContexts() {
|
||||
let ctx,
|
||||
filteredCtx = [];
|
||||
if (typeof this.ctx === 'undefined' || !this.ctx) {
|
||||
ctx = [];
|
||||
} else if (NodeList.prototype.isPrototypeOf(this.ctx)) {
|
||||
ctx = Array.prototype.slice.call(this.ctx);
|
||||
} else if (Array.isArray(this.ctx)) {
|
||||
ctx = this.ctx;
|
||||
} else if (typeof this.ctx === 'string') {
|
||||
ctx = Array.prototype.slice.call(
|
||||
document.querySelectorAll(this.ctx)
|
||||
);
|
||||
} else {
|
||||
ctx = [this.ctx];
|
||||
}
|
||||
ctx.forEach(ctx => {
|
||||
const isDescendant = filteredCtx.filter(contexts => {
|
||||
return contexts.contains(ctx);
|
||||
}).length > 0;
|
||||
if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {
|
||||
filteredCtx.push(ctx);
|
||||
}
|
||||
});
|
||||
return filteredCtx;
|
||||
}
|
||||
getIframeContents(ifr, successFn, errorFn = () => {}) {
|
||||
let doc;
|
||||
try {
|
||||
const ifrWin = ifr.contentWindow;
|
||||
doc = ifrWin.document;
|
||||
if (!ifrWin || !doc) {
|
||||
throw new Error('iframe inaccessible');
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
if (doc) {
|
||||
successFn(doc);
|
||||
}
|
||||
}
|
||||
isIframeBlank(ifr) {
|
||||
const bl = 'about:blank',
|
||||
src = ifr.getAttribute('src').trim(),
|
||||
href = ifr.contentWindow.location.href;
|
||||
return href === bl && src !== bl && src;
|
||||
}
|
||||
observeIframeLoad(ifr, successFn, errorFn) {
|
||||
let called = false,
|
||||
tout = null;
|
||||
const listener = () => {
|
||||
if (called) {
|
||||
return;
|
||||
}
|
||||
called = true;
|
||||
clearTimeout(tout);
|
||||
try {
|
||||
if (!this.isIframeBlank(ifr)) {
|
||||
ifr.removeEventListener('load', listener);
|
||||
this.getIframeContents(ifr, successFn, errorFn);
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
};
|
||||
ifr.addEventListener('load', listener);
|
||||
tout = setTimeout(listener, this.iframesTimeout);
|
||||
}
|
||||
onIframeReady(ifr, successFn, errorFn) {
|
||||
try {
|
||||
if (ifr.contentWindow.document.readyState === 'complete') {
|
||||
if (this.isIframeBlank(ifr)) {
|
||||
this.observeIframeLoad(ifr, successFn, errorFn);
|
||||
} else {
|
||||
this.getIframeContents(ifr, successFn, errorFn);
|
||||
}
|
||||
} else {
|
||||
this.observeIframeLoad(ifr, successFn, errorFn);
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
}
|
||||
waitForIframes(ctx, done) {
|
||||
let eachCalled = 0;
|
||||
this.forEachIframe(ctx, () => true, ifr => {
|
||||
eachCalled++;
|
||||
this.waitForIframes(ifr.querySelector('html'), () => {
|
||||
if (!(--eachCalled)) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}, handled => {
|
||||
if (!handled) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}
|
||||
forEachIframe(ctx, filter, each, end = () => {}) {
|
||||
let ifr = ctx.querySelectorAll('iframe'),
|
||||
open = ifr.length,
|
||||
handled = 0;
|
||||
ifr = Array.prototype.slice.call(ifr);
|
||||
const checkEnd = () => {
|
||||
if (--open <= 0) {
|
||||
end(handled);
|
||||
}
|
||||
};
|
||||
if (!open) {
|
||||
checkEnd();
|
||||
}
|
||||
ifr.forEach(ifr => {
|
||||
if (DOMIterator.matches(ifr, this.exclude)) {
|
||||
checkEnd();
|
||||
} else {
|
||||
this.onIframeReady(ifr, con => {
|
||||
if (filter(ifr)) {
|
||||
handled++;
|
||||
each(con);
|
||||
}
|
||||
checkEnd();
|
||||
}, checkEnd);
|
||||
}
|
||||
});
|
||||
}
|
||||
createIterator(ctx, whatToShow, filter) {
|
||||
return document.createNodeIterator(ctx, whatToShow, filter, false);
|
||||
}
|
||||
createInstanceOnIframe(contents) {
|
||||
return new DOMIterator(contents.querySelector('html'), this.iframes);
|
||||
}
|
||||
compareNodeIframe(node, prevNode, ifr) {
|
||||
const compCurr = node.compareDocumentPosition(ifr),
|
||||
prev = Node.DOCUMENT_POSITION_PRECEDING;
|
||||
if (compCurr & prev) {
|
||||
if (prevNode !== null) {
|
||||
const compPrev = prevNode.compareDocumentPosition(ifr),
|
||||
after = Node.DOCUMENT_POSITION_FOLLOWING;
|
||||
if (compPrev & after) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
getIteratorNode(itr) {
|
||||
const prevNode = itr.previousNode();
|
||||
let node;
|
||||
if (prevNode === null) {
|
||||
node = itr.nextNode();
|
||||
} else {
|
||||
node = itr.nextNode() && itr.nextNode();
|
||||
}
|
||||
return {
|
||||
prevNode,
|
||||
node
|
||||
};
|
||||
}
|
||||
checkIframeFilter(node, prevNode, currIfr, ifr) {
|
||||
let key = false,
|
||||
handled = false;
|
||||
ifr.forEach((ifrDict, i) => {
|
||||
if (ifrDict.val === currIfr) {
|
||||
key = i;
|
||||
handled = ifrDict.handled;
|
||||
}
|
||||
});
|
||||
if (this.compareNodeIframe(node, prevNode, currIfr)) {
|
||||
if (key === false && !handled) {
|
||||
ifr.push({
|
||||
val: currIfr,
|
||||
handled: true
|
||||
});
|
||||
} else if (key !== false && !handled) {
|
||||
ifr[key].handled = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (key === false) {
|
||||
ifr.push({
|
||||
val: currIfr,
|
||||
handled: false
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
handleOpenIframes(ifr, whatToShow, eCb, fCb) {
|
||||
ifr.forEach(ifrDict => {
|
||||
if (!ifrDict.handled) {
|
||||
this.getIframeContents(ifrDict.val, con => {
|
||||
this.createInstanceOnIframe(con).forEachNode(
|
||||
whatToShow, eCb, fCb
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {
|
||||
const itr = this.createIterator(ctx, whatToShow, filterCb);
|
||||
let ifr = [],
|
||||
elements = [],
|
||||
node, prevNode, retrieveNodes = () => {
|
||||
({
|
||||
prevNode,
|
||||
node
|
||||
} = this.getIteratorNode(itr));
|
||||
return node;
|
||||
};
|
||||
while (retrieveNodes()) {
|
||||
if (this.iframes) {
|
||||
this.forEachIframe(ctx, currIfr => {
|
||||
return this.checkIframeFilter(node, prevNode, currIfr, ifr);
|
||||
}, con => {
|
||||
this.createInstanceOnIframe(con).forEachNode(
|
||||
whatToShow, ifrNode => elements.push(ifrNode), filterCb
|
||||
);
|
||||
});
|
||||
}
|
||||
elements.push(node);
|
||||
}
|
||||
elements.forEach(node => {
|
||||
eachCb(node);
|
||||
});
|
||||
if (this.iframes) {
|
||||
this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);
|
||||
}
|
||||
doneCb();
|
||||
}
|
||||
forEachNode(whatToShow, each, filter, done = () => {}) {
|
||||
const contexts = this.getContexts();
|
||||
let open = contexts.length;
|
||||
if (!open) {
|
||||
done();
|
||||
}
|
||||
contexts.forEach(ctx => {
|
||||
const ready = () => {
|
||||
this.iterateThroughNodes(whatToShow, ctx, each, filter, () => {
|
||||
if (--open <= 0) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
};
|
||||
if (this.iframes) {
|
||||
this.waitForIframes(ctx, ready);
|
||||
} else {
|
||||
ready();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class Mark$1 {
|
||||
constructor(ctx) {
|
||||
this.ctx = ctx;
|
||||
this.ie = false;
|
||||
const ua = window.navigator.userAgent;
|
||||
if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {
|
||||
this.ie = true;
|
||||
}
|
||||
}
|
||||
set opt(val) {
|
||||
this._opt = Object.assign({}, {
|
||||
'element': '',
|
||||
'className': '',
|
||||
'exclude': [],
|
||||
'iframes': false,
|
||||
'iframesTimeout': 5000,
|
||||
'separateWordSearch': true,
|
||||
'diacritics': true,
|
||||
'synonyms': {},
|
||||
'accuracy': 'partially',
|
||||
'acrossElements': false,
|
||||
'caseSensitive': false,
|
||||
'ignoreJoiners': false,
|
||||
'ignoreGroups': 0,
|
||||
'ignorePunctuation': [],
|
||||
'wildcards': 'disabled',
|
||||
'each': () => {},
|
||||
'noMatch': () => {},
|
||||
'filter': () => true,
|
||||
'done': () => {},
|
||||
'debug': false,
|
||||
'log': window.console
|
||||
}, val);
|
||||
}
|
||||
get opt() {
|
||||
return this._opt;
|
||||
}
|
||||
get iterator() {
|
||||
return new DOMIterator(
|
||||
this.ctx,
|
||||
this.opt.iframes,
|
||||
this.opt.exclude,
|
||||
this.opt.iframesTimeout
|
||||
);
|
||||
}
|
||||
log(msg, level = 'debug') {
|
||||
const log = this.opt.log;
|
||||
if (!this.opt.debug) {
|
||||
return;
|
||||
}
|
||||
if (typeof log === 'object' && typeof log[level] === 'function') {
|
||||
log[level](`mark.js: ${msg}`);
|
||||
}
|
||||
}
|
||||
escapeStr(str) {
|
||||
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
|
||||
}
|
||||
createRegExp(str) {
|
||||
if (this.opt.wildcards !== 'disabled') {
|
||||
str = this.setupWildcardsRegExp(str);
|
||||
}
|
||||
str = this.escapeStr(str);
|
||||
if (Object.keys(this.opt.synonyms).length) {
|
||||
str = this.createSynonymsRegExp(str);
|
||||
}
|
||||
if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
|
||||
str = this.setupIgnoreJoinersRegExp(str);
|
||||
}
|
||||
if (this.opt.diacritics) {
|
||||
str = this.createDiacriticsRegExp(str);
|
||||
}
|
||||
str = this.createMergedBlanksRegExp(str);
|
||||
if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
|
||||
str = this.createJoinersRegExp(str);
|
||||
}
|
||||
if (this.opt.wildcards !== 'disabled') {
|
||||
str = this.createWildcardsRegExp(str);
|
||||
}
|
||||
str = this.createAccuracyRegExp(str);
|
||||
return str;
|
||||
}
|
||||
createSynonymsRegExp(str) {
|
||||
const syn = this.opt.synonyms,
|
||||
sens = this.opt.caseSensitive ? '' : 'i',
|
||||
joinerPlaceholder = this.opt.ignoreJoiners ||
|
||||
this.opt.ignorePunctuation.length ? '\u0000' : '';
|
||||
for (let index in syn) {
|
||||
if (syn.hasOwnProperty(index)) {
|
||||
const value = syn[index],
|
||||
k1 = this.opt.wildcards !== 'disabled' ?
|
||||
this.setupWildcardsRegExp(index) :
|
||||
this.escapeStr(index),
|
||||
k2 = this.opt.wildcards !== 'disabled' ?
|
||||
this.setupWildcardsRegExp(value) :
|
||||
this.escapeStr(value);
|
||||
if (k1 !== '' && k2 !== '') {
|
||||
str = str.replace(
|
||||
new RegExp(
|
||||
`(${this.escapeStr(k1)}|${this.escapeStr(k2)})`,
|
||||
`gm${sens}`
|
||||
),
|
||||
joinerPlaceholder +
|
||||
`(${this.processSynomyms(k1)}|` +
|
||||
`${this.processSynomyms(k2)})` +
|
||||
joinerPlaceholder
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
processSynomyms(str) {
|
||||
if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {
|
||||
str = this.setupIgnoreJoinersRegExp(str);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
setupWildcardsRegExp(str) {
|
||||
str = str.replace(/(?:\\)*\?/g, val => {
|
||||
return val.charAt(0) === '\\' ? '?' : '\u0001';
|
||||
});
|
||||
return str.replace(/(?:\\)*\*/g, val => {
|
||||
return val.charAt(0) === '\\' ? '*' : '\u0002';
|
||||
});
|
||||
}
|
||||
createWildcardsRegExp(str) {
|
||||
let spaces = this.opt.wildcards === 'withSpaces';
|
||||
return str
|
||||
.replace(/\u0001/g, spaces ? '[\\S\\s]?' : '\\S?')
|
||||
.replace(/\u0002/g, spaces ? '[\\S\\s]*?' : '\\S*');
|
||||
}
|
||||
setupIgnoreJoinersRegExp(str) {
|
||||
return str.replace(/[^(|)\\]/g, (val, indx, original) => {
|
||||
let nextChar = original.charAt(indx + 1);
|
||||
if (/[(|)\\]/.test(nextChar) || nextChar === '') {
|
||||
return val;
|
||||
} else {
|
||||
return val + '\u0000';
|
||||
}
|
||||
});
|
||||
}
|
||||
createJoinersRegExp(str) {
|
||||
let joiner = [];
|
||||
const ignorePunctuation = this.opt.ignorePunctuation;
|
||||
if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {
|
||||
joiner.push(this.escapeStr(ignorePunctuation.join('')));
|
||||
}
|
||||
if (this.opt.ignoreJoiners) {
|
||||
joiner.push('\\u00ad\\u200b\\u200c\\u200d');
|
||||
}
|
||||
return joiner.length ?
|
||||
str.split(/\u0000+/).join(`[${joiner.join('')}]*`) :
|
||||
str;
|
||||
}
|
||||
createDiacriticsRegExp(str) {
|
||||
const sens = this.opt.caseSensitive ? '' : 'i',
|
||||
dct = this.opt.caseSensitive ? [
|
||||
'aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ',
|
||||
'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ',
|
||||
'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ',
|
||||
'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń',
|
||||
'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ',
|
||||
'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ',
|
||||
'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ',
|
||||
'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'
|
||||
] : [
|
||||
'aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ',
|
||||
'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ',
|
||||
'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ',
|
||||
'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ',
|
||||
'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ',
|
||||
'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'
|
||||
];
|
||||
let handled = [];
|
||||
str.split('').forEach(ch => {
|
||||
dct.every(dct => {
|
||||
if (dct.indexOf(ch) !== -1) {
|
||||
if (handled.indexOf(dct) > -1) {
|
||||
return false;
|
||||
}
|
||||
str = str.replace(
|
||||
new RegExp(`[${dct}]`, `gm${sens}`), `[${dct}]`
|
||||
);
|
||||
handled.push(dct);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
});
|
||||
return str;
|
||||
}
|
||||
createMergedBlanksRegExp(str) {
|
||||
return str.replace(/[\s]+/gmi, '[\\s]+');
|
||||
}
|
||||
createAccuracyRegExp(str) {
|
||||
const chars = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~¡¿';
|
||||
let acc = this.opt.accuracy,
|
||||
val = typeof acc === 'string' ? acc : acc.value,
|
||||
ls = typeof acc === 'string' ? [] : acc.limiters,
|
||||
lsJoin = '';
|
||||
ls.forEach(limiter => {
|
||||
lsJoin += `|${this.escapeStr(limiter)}`;
|
||||
});
|
||||
switch (val) {
|
||||
case 'partially':
|
||||
default:
|
||||
return `()(${str})`;
|
||||
case 'complementary':
|
||||
lsJoin = '\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));
|
||||
return `()([^${lsJoin}]*${str}[^${lsJoin}]*)`;
|
||||
case 'exactly':
|
||||
return `(^|\\s${lsJoin})(${str})(?=$|\\s${lsJoin})`;
|
||||
}
|
||||
}
|
||||
getSeparatedKeywords(sv) {
|
||||
let stack = [];
|
||||
sv.forEach(kw => {
|
||||
if (!this.opt.separateWordSearch) {
|
||||
if (kw.trim() && stack.indexOf(kw) === -1) {
|
||||
stack.push(kw);
|
||||
}
|
||||
} else {
|
||||
kw.split(' ').forEach(kwSplitted => {
|
||||
if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {
|
||||
stack.push(kwSplitted);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return {
|
||||
'keywords': stack.sort((a, b) => {
|
||||
return b.length - a.length;
|
||||
}),
|
||||
'length': stack.length
|
||||
};
|
||||
}
|
||||
isNumeric(value) {
|
||||
return Number(parseFloat(value)) == value;
|
||||
}
|
||||
checkRanges(array) {
|
||||
if (
|
||||
!Array.isArray(array) ||
|
||||
Object.prototype.toString.call( array[0] ) !== '[object Object]'
|
||||
) {
|
||||
this.log('markRanges() will only accept an array of objects');
|
||||
this.opt.noMatch(array);
|
||||
return [];
|
||||
}
|
||||
const stack = [];
|
||||
let last = 0;
|
||||
array
|
||||
.sort((a, b) => {
|
||||
return a.start - b.start;
|
||||
})
|
||||
.forEach(item => {
|
||||
let {start, end, valid} = this.callNoMatchOnInvalidRanges(item, last);
|
||||
if (valid) {
|
||||
item.start = start;
|
||||
item.length = end - start;
|
||||
stack.push(item);
|
||||
last = end;
|
||||
}
|
||||
});
|
||||
return stack;
|
||||
}
|
||||
callNoMatchOnInvalidRanges(range, last) {
|
||||
let start, end,
|
||||
valid = false;
|
||||
if (range && typeof range.start !== 'undefined') {
|
||||
start = parseInt(range.start, 10);
|
||||
end = start + parseInt(range.length, 10);
|
||||
if (
|
||||
this.isNumeric(range.start) &&
|
||||
this.isNumeric(range.length) &&
|
||||
end - last > 0 &&
|
||||
end - start > 0
|
||||
) {
|
||||
valid = true;
|
||||
} else {
|
||||
this.log(
|
||||
'Ignoring invalid or overlapping range: ' +
|
||||
`${JSON.stringify(range)}`
|
||||
);
|
||||
this.opt.noMatch(range);
|
||||
}
|
||||
} else {
|
||||
this.log(`Ignoring invalid range: ${JSON.stringify(range)}`);
|
||||
this.opt.noMatch(range);
|
||||
}
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
valid: valid
|
||||
};
|
||||
}
|
||||
checkWhitespaceRanges(range, originalLength, string) {
|
||||
let end,
|
||||
valid = true,
|
||||
max = string.length,
|
||||
offset = originalLength - max,
|
||||
start = parseInt(range.start, 10) - offset;
|
||||
start = start > max ? max : start;
|
||||
end = start + parseInt(range.length, 10);
|
||||
if (end > max) {
|
||||
end = max;
|
||||
this.log(`End range automatically set to the max value of ${max}`);
|
||||
}
|
||||
if (start < 0 || end - start < 0 || start > max || end > max) {
|
||||
valid = false;
|
||||
this.log(`Invalid range: ${JSON.stringify(range)}`);
|
||||
this.opt.noMatch(range);
|
||||
} else if (string.substring(start, end).replace(/\s+/g, '') === '') {
|
||||
valid = false;
|
||||
this.log('Skipping whitespace only range: ' +JSON.stringify(range));
|
||||
this.opt.noMatch(range);
|
||||
}
|
||||
return {
|
||||
start: start,
|
||||
end: end,
|
||||
valid: valid
|
||||
};
|
||||
}
|
||||
getTextNodes(cb) {
|
||||
let val = '',
|
||||
nodes = [];
|
||||
this.iterator.forEachNode(NodeFilter.SHOW_TEXT, node => {
|
||||
nodes.push({
|
||||
start: val.length,
|
||||
end: (val += node.textContent).length,
|
||||
node
|
||||
});
|
||||
}, node => {
|
||||
if (this.matchesExclude(node.parentNode)) {
|
||||
return NodeFilter.FILTER_REJECT;
|
||||
} else {
|
||||
return NodeFilter.FILTER_ACCEPT;
|
||||
}
|
||||
}, () => {
|
||||
cb({
|
||||
value: val,
|
||||
nodes: nodes
|
||||
});
|
||||
});
|
||||
}
|
||||
matchesExclude(el) {
|
||||
return DOMIterator.matches(el, this.opt.exclude.concat([
|
||||
'script', 'style', 'title', 'head', 'html'
|
||||
]));
|
||||
}
|
||||
wrapRangeInTextNode(node, start, end) {
|
||||
const hEl = !this.opt.element ? 'mark' : this.opt.element,
|
||||
startNode = node.splitText(start),
|
||||
ret = startNode.splitText(end - start);
|
||||
let repl = document.createElement(hEl);
|
||||
repl.setAttribute('data-markjs', 'true');
|
||||
if (this.opt.className) {
|
||||
repl.setAttribute('class', this.opt.className);
|
||||
}
|
||||
repl.textContent = startNode.textContent;
|
||||
startNode.parentNode.replaceChild(repl, startNode);
|
||||
return ret;
|
||||
}
|
||||
wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {
|
||||
dict.nodes.every((n, i) => {
|
||||
const sibl = dict.nodes[i + 1];
|
||||
if (typeof sibl === 'undefined' || sibl.start > start) {
|
||||
if (!filterCb(n.node)) {
|
||||
return false;
|
||||
}
|
||||
const s = start - n.start,
|
||||
e = (end > n.end ? n.end : end) - n.start,
|
||||
startStr = dict.value.substr(0, n.start),
|
||||
endStr = dict.value.substr(e + n.start);
|
||||
n.node = this.wrapRangeInTextNode(n.node, s, e);
|
||||
dict.value = startStr + endStr;
|
||||
dict.nodes.forEach((k, j) => {
|
||||
if (j >= i) {
|
||||
if (dict.nodes[j].start > 0 && j !== i) {
|
||||
dict.nodes[j].start -= e;
|
||||
}
|
||||
dict.nodes[j].end -= e;
|
||||
}
|
||||
});
|
||||
end -= e;
|
||||
eachCb(n.node.previousSibling, n.start);
|
||||
if (end > n.end) {
|
||||
start = n.end;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {
|
||||
const matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;
|
||||
this.getTextNodes(dict => {
|
||||
dict.nodes.forEach(node => {
|
||||
node = node.node;
|
||||
let match;
|
||||
while (
|
||||
(match = regex.exec(node.textContent)) !== null &&
|
||||
match[matchIdx] !== ''
|
||||
) {
|
||||
if (!filterCb(match[matchIdx], node)) {
|
||||
continue;
|
||||
}
|
||||
let pos = match.index;
|
||||
if (matchIdx !== 0) {
|
||||
for (let i = 1; i < matchIdx; i++) {
|
||||
pos += match[i].length;
|
||||
}
|
||||
}
|
||||
node = this.wrapRangeInTextNode(
|
||||
node,
|
||||
pos,
|
||||
pos + match[matchIdx].length
|
||||
);
|
||||
eachCb(node.previousSibling);
|
||||
regex.lastIndex = 0;
|
||||
}
|
||||
});
|
||||
endCb();
|
||||
});
|
||||
}
|
||||
wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {
|
||||
const matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;
|
||||
this.getTextNodes(dict => {
|
||||
let match;
|
||||
while (
|
||||
(match = regex.exec(dict.value)) !== null &&
|
||||
match[matchIdx] !== ''
|
||||
) {
|
||||
let start = match.index;
|
||||
if (matchIdx !== 0) {
|
||||
for (let i = 1; i < matchIdx; i++) {
|
||||
start += match[i].length;
|
||||
}
|
||||
}
|
||||
const end = start + match[matchIdx].length;
|
||||
this.wrapRangeInMappedTextNode(dict, start, end, node => {
|
||||
return filterCb(match[matchIdx], node);
|
||||
}, (node, lastIndex) => {
|
||||
regex.lastIndex = lastIndex;
|
||||
eachCb(node);
|
||||
});
|
||||
}
|
||||
endCb();
|
||||
});
|
||||
}
|
||||
wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {
|
||||
this.getTextNodes(dict => {
|
||||
const originalLength = dict.value.length;
|
||||
ranges.forEach((range, counter) => {
|
||||
let {start, end, valid} = this.checkWhitespaceRanges(
|
||||
range,
|
||||
originalLength,
|
||||
dict.value
|
||||
);
|
||||
if (valid) {
|
||||
this.wrapRangeInMappedTextNode(dict, start, end, node => {
|
||||
return filterCb(
|
||||
node,
|
||||
range,
|
||||
dict.value.substring(start, end),
|
||||
counter
|
||||
);
|
||||
}, node => {
|
||||
eachCb(node, range);
|
||||
});
|
||||
}
|
||||
});
|
||||
endCb();
|
||||
});
|
||||
}
|
||||
unwrapMatches(node) {
|
||||
const parent = node.parentNode;
|
||||
let docFrag = document.createDocumentFragment();
|
||||
while (node.firstChild) {
|
||||
docFrag.appendChild(node.removeChild(node.firstChild));
|
||||
}
|
||||
parent.replaceChild(docFrag, node);
|
||||
if (!this.ie) {
|
||||
parent.normalize();
|
||||
} else {
|
||||
this.normalizeTextNode(parent);
|
||||
}
|
||||
}
|
||||
normalizeTextNode(node) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
if (node.nodeType === 3) {
|
||||
while (node.nextSibling && node.nextSibling.nodeType === 3) {
|
||||
node.nodeValue += node.nextSibling.nodeValue;
|
||||
node.parentNode.removeChild(node.nextSibling);
|
||||
}
|
||||
} else {
|
||||
this.normalizeTextNode(node.firstChild);
|
||||
}
|
||||
this.normalizeTextNode(node.nextSibling);
|
||||
}
|
||||
markRegExp(regexp, opt) {
|
||||
this.opt = opt;
|
||||
this.log(`Searching with expression "${regexp}"`);
|
||||
let totalMatches = 0,
|
||||
fn = 'wrapMatches';
|
||||
const eachCb = element => {
|
||||
totalMatches++;
|
||||
this.opt.each(element);
|
||||
};
|
||||
if (this.opt.acrossElements) {
|
||||
fn = 'wrapMatchesAcrossElements';
|
||||
}
|
||||
this[fn](regexp, this.opt.ignoreGroups, (match, node) => {
|
||||
return this.opt.filter(node, match, totalMatches);
|
||||
}, eachCb, () => {
|
||||
if (totalMatches === 0) {
|
||||
this.opt.noMatch(regexp);
|
||||
}
|
||||
this.opt.done(totalMatches);
|
||||
});
|
||||
}
|
||||
mark(sv, opt) {
|
||||
this.opt = opt;
|
||||
let totalMatches = 0,
|
||||
fn = 'wrapMatches';
|
||||
const {
|
||||
keywords: kwArr,
|
||||
length: kwArrLen
|
||||
} = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),
|
||||
sens = this.opt.caseSensitive ? '' : 'i',
|
||||
handler = kw => {
|
||||
let regex = new RegExp(this.createRegExp(kw), `gm${sens}`),
|
||||
matches = 0;
|
||||
this.log(`Searching with expression "${regex}"`);
|
||||
this[fn](regex, 1, (term, node) => {
|
||||
return this.opt.filter(node, kw, totalMatches, matches);
|
||||
}, element => {
|
||||
matches++;
|
||||
totalMatches++;
|
||||
this.opt.each(element);
|
||||
}, () => {
|
||||
if (matches === 0) {
|
||||
this.opt.noMatch(kw);
|
||||
}
|
||||
if (kwArr[kwArrLen - 1] === kw) {
|
||||
this.opt.done(totalMatches);
|
||||
} else {
|
||||
handler(kwArr[kwArr.indexOf(kw) + 1]);
|
||||
}
|
||||
});
|
||||
};
|
||||
if (this.opt.acrossElements) {
|
||||
fn = 'wrapMatchesAcrossElements';
|
||||
}
|
||||
if (kwArrLen === 0) {
|
||||
this.opt.done(totalMatches);
|
||||
} else {
|
||||
handler(kwArr[0]);
|
||||
}
|
||||
}
|
||||
markRanges(rawRanges, opt) {
|
||||
this.opt = opt;
|
||||
let totalMatches = 0,
|
||||
ranges = this.checkRanges(rawRanges);
|
||||
if (ranges && ranges.length) {
|
||||
this.log(
|
||||
'Starting to mark with the following ranges: ' +
|
||||
JSON.stringify(ranges)
|
||||
);
|
||||
this.wrapRangeFromIndex(
|
||||
ranges, (node, range, match, counter) => {
|
||||
return this.opt.filter(node, range, match, counter);
|
||||
}, (element, range) => {
|
||||
totalMatches++;
|
||||
this.opt.each(element, range);
|
||||
}, () => {
|
||||
this.opt.done(totalMatches);
|
||||
}
|
||||
);
|
||||
} else {
|
||||
this.opt.done(totalMatches);
|
||||
}
|
||||
}
|
||||
unmark(opt) {
|
||||
this.opt = opt;
|
||||
let sel = this.opt.element ? this.opt.element : '*';
|
||||
sel += '[data-markjs]';
|
||||
if (this.opt.className) {
|
||||
sel += `.${this.opt.className}`;
|
||||
}
|
||||
this.log(`Removal selector "${sel}"`);
|
||||
this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, node => {
|
||||
this.unwrapMatches(node);
|
||||
}, node => {
|
||||
const matchesSel = DOMIterator.matches(node, sel),
|
||||
matchesExclude = this.matchesExclude(node);
|
||||
if (!matchesSel || matchesExclude) {
|
||||
return NodeFilter.FILTER_REJECT;
|
||||
} else {
|
||||
return NodeFilter.FILTER_ACCEPT;
|
||||
}
|
||||
}, this.opt.done);
|
||||
}
|
||||
}
|
||||
|
||||
function Mark(ctx) {
|
||||
const instance = new Mark$1(ctx);
|
||||
this.mark = (sv, opt) => {
|
||||
instance.mark(sv, opt);
|
||||
return this;
|
||||
};
|
||||
this.markRegExp = (sv, opt) => {
|
||||
instance.markRegExp(sv, opt);
|
||||
return this;
|
||||
};
|
||||
this.markRanges = (sv, opt) => {
|
||||
instance.markRanges(sv, opt);
|
||||
return this;
|
||||
};
|
||||
this.unmark = (opt) => {
|
||||
instance.unmark(opt);
|
||||
return this;
|
||||
};
|
||||
return this;
|
||||
}
|
||||
|
||||
return Mark;
|
||||
|
||||
})));
|
||||
7
node_modules/mark.js/dist/mark.es6.min.js
generated
vendored
7
node_modules/mark.js/dist/mark.es6.min.js
generated
vendored
File diff suppressed because one or more lines are too long
1068
node_modules/mark.js/dist/mark.js
generated
vendored
1068
node_modules/mark.js/dist/mark.js
generated
vendored
File diff suppressed because it is too large
Load Diff
7
node_modules/mark.js/dist/mark.min.js
generated
vendored
7
node_modules/mark.js/dist/mark.min.js
generated
vendored
File diff suppressed because one or more lines are too long
69
node_modules/mark.js/package.json
generated
vendored
69
node_modules/mark.js/package.json
generated
vendored
@@ -1,69 +0,0 @@
|
||||
{
|
||||
"name": "mark.js",
|
||||
"version": "8.11.1",
|
||||
"keywords": [
|
||||
"mark.js",
|
||||
"markjs",
|
||||
"mark",
|
||||
"jquery.mark",
|
||||
"jmHighlight",
|
||||
"highlight",
|
||||
"search",
|
||||
"jquery",
|
||||
"javascript",
|
||||
"text",
|
||||
"keyword"
|
||||
],
|
||||
"license": "MIT",
|
||||
"homepage": "https://markjs.io/",
|
||||
"author": {
|
||||
"name": "Julian Kühnel",
|
||||
"url": "https://github.com/julmot"
|
||||
},
|
||||
"description": "Highlight keywords using JavaScript. Intended for every use case. Can e.g. be used to mark text in search results.",
|
||||
"main": "dist/mark.js",
|
||||
"repository": "julmot/mark.js",
|
||||
"bugs": {
|
||||
"url": "https://github.com/julmot/mark.js/issues"
|
||||
},
|
||||
"scripts": {
|
||||
"eslint": "eslint src/ test/",
|
||||
"karma": "karma start build/karma.config.js",
|
||||
"karma-ci": "karma start build/karma.config-ci.js",
|
||||
"jsdoc": "jsdoc src/lib/ -d build/doc -R README.md -P package.json -r",
|
||||
"compile": "rollup -c build/rollup.config.js",
|
||||
"build": "npm run eslint && npm run compile && npm run karma && npm run jsdoc",
|
||||
"dev": "nodemon --exec \"npm run eslint && npm run compile\" --watch src/ --watch test/ -e js,html",
|
||||
"test": "npm run build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-plugin-external-helpers": "^6.22.0",
|
||||
"babel-plugin-transform-object-assign": "^6.22.0",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"eslint": "^4.14.0",
|
||||
"eslint-plugin-jasmine-jquery": "^1.0.0",
|
||||
"handlebars": "^4.0.11",
|
||||
"jasmine-core": "^2.8.0",
|
||||
"jquery": "^3.2.1",
|
||||
"jsdoc": "^3.5.5",
|
||||
"karma": "^2.0.0",
|
||||
"karma-cli": "^1.0.1",
|
||||
"karma-coverage": "^1.1.1",
|
||||
"karma-jasmine": "^1.1.1",
|
||||
"karma-jasmine-jquery": "^0.1.1",
|
||||
"karma-phantomjs-launcher": "^1.0.4",
|
||||
"karma-sauce-launcher": "^1.2.0",
|
||||
"karma-spec-reporter": "0.0.32",
|
||||
"karma-summary-reporter": "^1.4.0",
|
||||
"nodemon": "^1.14.10",
|
||||
"phantomjs-prebuilt": "^2.1.16",
|
||||
"rollup": "^0.53.3",
|
||||
"rollup-plugin-babel": "^3.0.3",
|
||||
"rollup-plugin-cleanup": "^2.0.0",
|
||||
"rollup-plugin-commonjs": "^8.2.6",
|
||||
"rollup-plugin-node-resolve": "^3.0.0",
|
||||
"rollup-plugin-uglify": "^2.0.1",
|
||||
"uglify-es": "^3.3.4"
|
||||
}
|
||||
}
|
||||
21
node_modules/mark.js/src/jquery.js
generated
vendored
21
node_modules/mark.js/src/jquery.js
generated
vendored
@@ -1,21 +0,0 @@
|
||||
import Mark from './lib/mark';
|
||||
import $ from 'jquery';
|
||||
|
||||
$.fn.mark = function(sv, opt) {
|
||||
new Mark(this.get()).mark(sv, opt);
|
||||
return this;
|
||||
};
|
||||
$.fn.markRegExp = function(regexp, opt) {
|
||||
new Mark(this.get()).markRegExp(regexp, opt);
|
||||
return this;
|
||||
};
|
||||
$.fn.markRanges = function(ranges, opt) {
|
||||
new Mark(this.get()).markRanges(ranges, opt);
|
||||
return this;
|
||||
};
|
||||
$.fn.unmark = function(opt) {
|
||||
new Mark(this.get()).unmark(opt);
|
||||
return this;
|
||||
};
|
||||
|
||||
export default $;
|
||||
569
node_modules/mark.js/src/lib/domiterator.js
generated
vendored
569
node_modules/mark.js/src/lib/domiterator.js
generated
vendored
@@ -1,569 +0,0 @@
|
||||
/**
|
||||
* A NodeIterator with iframes support and a method to check if an element is
|
||||
* matching a specified selector
|
||||
* @example
|
||||
* const iterator = new DOMIterator(
|
||||
* document.querySelector("#context"), true
|
||||
* );
|
||||
* iterator.forEachNode(NodeFilter.SHOW_TEXT, node => {
|
||||
* console.log(node);
|
||||
* }, node => {
|
||||
* if(DOMIterator.matches(node.parentNode, ".ignore")){
|
||||
* return NodeFilter.FILTER_REJECT;
|
||||
* } else {
|
||||
* return NodeFilter.FILTER_ACCEPT;
|
||||
* }
|
||||
* }, () => {
|
||||
* console.log("DONE");
|
||||
* });
|
||||
* @todo Outsource into separate repository
|
||||
*/
|
||||
export default class DOMIterator {
|
||||
|
||||
/**
|
||||
* @param {HTMLElement|HTMLElement[]|NodeList|string} ctx - The context DOM
|
||||
* element, an array of DOM elements, a NodeList or a selector
|
||||
* @param {boolean} [iframes=true] - A boolean indicating if iframes should
|
||||
* be handled
|
||||
* @param {string[]} [exclude=[]] - An array containing exclusion selectors
|
||||
* for iframes
|
||||
* @param {number} [iframesTimeout=5000] - A number indicating the ms to
|
||||
* wait before an iframe should be skipped, in case the load event isn't
|
||||
* fired. This also applies if the user is offline and the resource of the
|
||||
* iframe is online (either by the browsers "offline" mode or because
|
||||
* there's no internet connection)
|
||||
*/
|
||||
constructor(ctx, iframes = true, exclude = [], iframesTimeout = 5000) {
|
||||
/**
|
||||
* The context of the instance. Either a DOM element, an array of DOM
|
||||
* elements, a NodeList or a selector
|
||||
* @type {HTMLElement|HTMLElement[]|NodeList|string}
|
||||
* @access protected
|
||||
*/
|
||||
this.ctx = ctx;
|
||||
/**
|
||||
* Boolean indicating if iframe support is enabled
|
||||
* @type {boolean}
|
||||
* @access protected
|
||||
*/
|
||||
this.iframes = iframes;
|
||||
/**
|
||||
* An array containing exclusion selectors for iframes
|
||||
* @type {string[]}
|
||||
*/
|
||||
this.exclude = exclude;
|
||||
/**
|
||||
* The maximum ms to wait for a load event before skipping an iframe
|
||||
* @type {number}
|
||||
*/
|
||||
this.iframesTimeout = iframesTimeout;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the specified DOM element matches the selector
|
||||
* @param {HTMLElement} element - The DOM element
|
||||
* @param {string|string[]} selector - The selector or an array with
|
||||
* selectors
|
||||
* @return {boolean}
|
||||
* @access public
|
||||
*/
|
||||
static matches(element, selector) {
|
||||
const selectors = typeof selector === 'string' ? [selector] : selector,
|
||||
fn = (
|
||||
element.matches ||
|
||||
element.matchesSelector ||
|
||||
element.msMatchesSelector ||
|
||||
element.mozMatchesSelector ||
|
||||
element.oMatchesSelector ||
|
||||
element.webkitMatchesSelector
|
||||
);
|
||||
if (fn) {
|
||||
let match = false;
|
||||
selectors.every(sel => {
|
||||
if (fn.call(element, sel)) {
|
||||
match = true;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
return match;
|
||||
} else { // may be false e.g. when el is a textNode
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all contexts filtered by duplicates (even nested)
|
||||
* @return {HTMLElement[]} - An array containing DOM contexts
|
||||
* @access protected
|
||||
*/
|
||||
getContexts() {
|
||||
let ctx,
|
||||
filteredCtx = [];
|
||||
if (typeof this.ctx === 'undefined' || !this.ctx) { // e.g. null
|
||||
ctx = [];
|
||||
} else if (NodeList.prototype.isPrototypeOf(this.ctx)) {
|
||||
ctx = Array.prototype.slice.call(this.ctx);
|
||||
} else if (Array.isArray(this.ctx)) {
|
||||
ctx = this.ctx;
|
||||
} else if (typeof this.ctx === 'string') {
|
||||
ctx = Array.prototype.slice.call(
|
||||
document.querySelectorAll(this.ctx)
|
||||
);
|
||||
} else { // e.g. HTMLElement or element inside iframe
|
||||
ctx = [this.ctx];
|
||||
}
|
||||
// filter duplicate text nodes
|
||||
ctx.forEach(ctx => {
|
||||
const isDescendant = filteredCtx.filter(contexts => {
|
||||
return contexts.contains(ctx);
|
||||
}).length > 0;
|
||||
if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {
|
||||
filteredCtx.push(ctx);
|
||||
}
|
||||
});
|
||||
return filteredCtx;
|
||||
}
|
||||
|
||||
/**
|
||||
* @callback DOMIterator~getIframeContentsSuccessCallback
|
||||
* @param {HTMLDocument} contents - The contentDocument of the iframe
|
||||
*/
|
||||
/**
|
||||
* Calls the success callback function with the iframe document. If it can't
|
||||
* be accessed it calls the error callback function
|
||||
* @param {HTMLElement} ifr - The iframe DOM element
|
||||
* @param {DOMIterator~getIframeContentsSuccessCallback} successFn
|
||||
* @param {function} [errorFn]
|
||||
* @access protected
|
||||
*/
|
||||
getIframeContents(ifr, successFn, errorFn = () => {}) {
|
||||
let doc;
|
||||
try {
|
||||
const ifrWin = ifr.contentWindow;
|
||||
doc = ifrWin.document;
|
||||
if (!ifrWin || !doc) { // no permission = null. Undefined in Phantom
|
||||
throw new Error('iframe inaccessible');
|
||||
}
|
||||
} catch (e) {
|
||||
errorFn();
|
||||
}
|
||||
if (doc) {
|
||||
successFn(doc);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an iframe is empty (if about:blank is the shown page)
|
||||
* @param {HTMLElement} ifr - The iframe DOM element
|
||||
* @return {boolean}
|
||||
* @access protected
|
||||
*/
|
||||
isIframeBlank(ifr) {
|
||||
const bl = 'about:blank',
|
||||
src = ifr.getAttribute('src').trim(),
|
||||
href = ifr.contentWindow.location.href;
|
||||
return href === bl && src !== bl && src;
|
||||
}
|
||||
|
||||
/**
|
||||
* Observes the onload event of an iframe and calls the success callback or
|
||||
* the error callback if the iframe is inaccessible. If the event isn't
|
||||
* fired within the specified {@link DOMIterator#iframesTimeout}, then it'll
|
||||
* call the error callback too
|
||||
* @param {HTMLElement} ifr - The iframe DOM element
|
||||
* @param {DOMIterator~getIframeContentsSuccessCallback} successFn
|
||||
* @param {function} errorFn
|
||||
* @access protected
|
||||
*/
|
||||
observeIframeLoad(ifr, successFn, errorFn) {
|
||||
let called = false,
|
||||
tout = null;
|
||||
const listener = () => {
|
||||
if (called) {
|
||||
return;
|
||||
}
|
||||
called = true;
|
||||
clearTimeout(tout);
|
||||
try {
|
||||
if (!this.isIframeBlank(ifr)) {
|
||||
ifr.removeEventListener('load', listener);
|
||||
this.getIframeContents(ifr, successFn, errorFn);
|
||||
}
|
||||
} catch (e) { // isIframeBlank maybe throws throws an error
|
||||
errorFn();
|
||||
}
|
||||
};
|
||||
ifr.addEventListener('load', listener);
|
||||
tout = setTimeout(listener, this.iframesTimeout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback when the iframe is ready
|
||||
* @callback DOMIterator~onIframeReadySuccessCallback
|
||||
* @param {HTMLDocument} contents - The contentDocument of the iframe
|
||||
*/
|
||||
/**
|
||||
* Callback if the iframe can't be accessed
|
||||
* @callback DOMIterator~onIframeReadyErrorCallback
|
||||
*/
|
||||
/**
|
||||
* Calls the callback if the specified iframe is ready for DOM access
|
||||
* @param {HTMLElement} ifr - The iframe DOM element
|
||||
* @param {DOMIterator~onIframeReadySuccessCallback} successFn - Success
|
||||
* callback
|
||||
* @param {DOMIterator~onIframeReadyErrorCallback} errorFn - Error callback
|
||||
* @see {@link http://stackoverflow.com/a/36155560/3894981} for
|
||||
* background information
|
||||
* @access protected
|
||||
*/
|
||||
onIframeReady(ifr, successFn, errorFn) {
|
||||
try {
|
||||
if (ifr.contentWindow.document.readyState === 'complete') {
|
||||
if (this.isIframeBlank(ifr)) {
|
||||
this.observeIframeLoad(ifr, successFn, errorFn);
|
||||
} else {
|
||||
this.getIframeContents(ifr, successFn, errorFn);
|
||||
}
|
||||
} else {
|
||||
this.observeIframeLoad(ifr, successFn, errorFn);
|
||||
}
|
||||
} catch (e) { // accessing document failed
|
||||
errorFn();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback when all iframes are ready for DOM access
|
||||
* @callback DOMIterator~waitForIframesDoneCallback
|
||||
*/
|
||||
/**
|
||||
* Iterates over all iframes and calls the done callback when all of them
|
||||
* are ready for DOM access (including nested ones)
|
||||
* @param {HTMLElement} ctx - The context DOM element
|
||||
* @param {DOMIterator~waitForIframesDoneCallback} done - Done callback
|
||||
*/
|
||||
waitForIframes(ctx, done) {
|
||||
let eachCalled = 0;
|
||||
this.forEachIframe(ctx, () => true, ifr => {
|
||||
eachCalled++;
|
||||
this.waitForIframes(ifr.querySelector('html'), () => {
|
||||
if (!(--eachCalled)) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}, handled => {
|
||||
if (!handled) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback allowing to filter an iframe. Must return true when the element
|
||||
* should remain, otherwise false
|
||||
* @callback DOMIterator~forEachIframeFilterCallback
|
||||
* @param {HTMLElement} iframe - The iframe DOM element
|
||||
*/
|
||||
/**
|
||||
* Callback for each iframe content
|
||||
* @callback DOMIterator~forEachIframeEachCallback
|
||||
* @param {HTMLElement} content - The iframe document
|
||||
*/
|
||||
/**
|
||||
* Callback if all iframes inside the context were handled
|
||||
* @callback DOMIterator~forEachIframeEndCallback
|
||||
* @param {number} handled - The number of handled iframes (those who
|
||||
* wheren't filtered)
|
||||
*/
|
||||
/**
|
||||
* Iterates over all iframes inside the specified context and calls the
|
||||
* callbacks when they're ready. Filters iframes based on the instance
|
||||
* exclusion selectors
|
||||
* @param {HTMLElement} ctx - The context DOM element
|
||||
* @param {DOMIterator~forEachIframeFilterCallback} filter - Filter callback
|
||||
* @param {DOMIterator~forEachIframeEachCallback} each - Each callback
|
||||
* @param {DOMIterator~forEachIframeEndCallback} [end] - End callback
|
||||
* @access protected
|
||||
*/
|
||||
forEachIframe(ctx, filter, each, end = () => {}) {
|
||||
let ifr = ctx.querySelectorAll('iframe'),
|
||||
open = ifr.length,
|
||||
handled = 0;
|
||||
ifr = Array.prototype.slice.call(ifr);
|
||||
const checkEnd = () => {
|
||||
if (--open <= 0) {
|
||||
end(handled);
|
||||
}
|
||||
};
|
||||
if (!open) {
|
||||
checkEnd();
|
||||
}
|
||||
ifr.forEach(ifr => {
|
||||
if (DOMIterator.matches(ifr, this.exclude)) {
|
||||
checkEnd();
|
||||
} else {
|
||||
this.onIframeReady(ifr, con => {
|
||||
if (filter(ifr)) {
|
||||
handled++;
|
||||
each(con);
|
||||
}
|
||||
checkEnd();
|
||||
}, checkEnd);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a NodeIterator on the specified context
|
||||
* @see {@link https://developer.mozilla.org/en/docs/Web/API/NodeIterator}
|
||||
* @param {HTMLElement} ctx - The context DOM element
|
||||
* @param {DOMIterator~whatToShow} whatToShow
|
||||
* @param {DOMIterator~filterCb} filter
|
||||
* @return {NodeIterator}
|
||||
* @access protected
|
||||
*/
|
||||
createIterator(ctx, whatToShow, filter) {
|
||||
return document.createNodeIterator(ctx, whatToShow, filter, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of DOMIterator in an iframe
|
||||
* @param {HTMLDocument} contents - Iframe document
|
||||
* @return {DOMIterator}
|
||||
* @access protected
|
||||
*/
|
||||
createInstanceOnIframe(contents) {
|
||||
return new DOMIterator(contents.querySelector('html'), this.iframes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an iframe occurs between two nodes, more specifically if an
|
||||
* iframe occurs before the specified node and after the specified prevNode
|
||||
* @param {HTMLElement} node - The node that should occur after the iframe
|
||||
* @param {HTMLElement} prevNode - The node that should occur before the
|
||||
* iframe
|
||||
* @param {HTMLElement} ifr - The iframe to check against
|
||||
* @return {boolean}
|
||||
* @access protected
|
||||
*/
|
||||
compareNodeIframe(node, prevNode, ifr) {
|
||||
const compCurr = node.compareDocumentPosition(ifr),
|
||||
prev = Node.DOCUMENT_POSITION_PRECEDING;
|
||||
if (compCurr & prev) {
|
||||
if (prevNode !== null) {
|
||||
const compPrev = prevNode.compareDocumentPosition(ifr),
|
||||
after = Node.DOCUMENT_POSITION_FOLLOWING;
|
||||
if (compPrev & after) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {DOMIterator~getIteratorNodeReturn}
|
||||
* @type {object.<string>}
|
||||
* @property {HTMLElement} prevNode - The previous node or null if there is
|
||||
* no
|
||||
* @property {HTMLElement} node - The current node
|
||||
*/
|
||||
/**
|
||||
* Returns the previous and current node of the specified iterator
|
||||
* @param {NodeIterator} itr - The iterator
|
||||
* @return {DOMIterator~getIteratorNodeReturn}
|
||||
* @access protected
|
||||
*/
|
||||
getIteratorNode(itr) {
|
||||
const prevNode = itr.previousNode();
|
||||
let node;
|
||||
if (prevNode === null) {
|
||||
node = itr.nextNode();
|
||||
} else {
|
||||
node = itr.nextNode() && itr.nextNode();
|
||||
}
|
||||
return {
|
||||
prevNode,
|
||||
node
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* An array containing objects. The object key "val" contains an iframe
|
||||
* DOM element. The object key "handled" contains a boolean indicating if
|
||||
* the iframe was handled already.
|
||||
* It wouldn't be enough to save all open or all already handled iframes.
|
||||
* The information of open iframes is necessary because they may occur after
|
||||
* all other text nodes (and compareNodeIframe would never be true). The
|
||||
* information of already handled iframes is necessary as otherwise they may
|
||||
* be handled multiple times
|
||||
* @typedef DOMIterator~checkIframeFilterIfr
|
||||
* @type {object[]}
|
||||
*/
|
||||
/**
|
||||
* Checks if an iframe wasn't handled already and if so, calls
|
||||
* {@link DOMIterator#compareNodeIframe} to check if it should be handled.
|
||||
* Information wheter an iframe was or wasn't handled is given within the
|
||||
* <code>ifr</code> dictionary
|
||||
* @param {HTMLElement} node - The node that should occur after the iframe
|
||||
* @param {HTMLElement} prevNode - The node that should occur before the
|
||||
* iframe
|
||||
* @param {HTMLElement} currIfr - The iframe to check
|
||||
* @param {DOMIterator~checkIframeFilterIfr} ifr - The iframe dictionary.
|
||||
* Will be manipulated (by reference)
|
||||
* @return {boolean} Returns true when it should be handled, otherwise false
|
||||
* @access protected
|
||||
*/
|
||||
checkIframeFilter(node, prevNode, currIfr, ifr) {
|
||||
let key = false, // false === doesn't exist
|
||||
handled = false;
|
||||
ifr.forEach((ifrDict, i) => {
|
||||
if (ifrDict.val === currIfr) {
|
||||
key = i;
|
||||
handled = ifrDict.handled;
|
||||
}
|
||||
});
|
||||
if (this.compareNodeIframe(node, prevNode, currIfr)) {
|
||||
if (key === false && !handled) {
|
||||
ifr.push({
|
||||
val: currIfr,
|
||||
handled: true
|
||||
});
|
||||
} else if (key !== false && !handled) {
|
||||
ifr[key].handled = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (key === false) {
|
||||
ifr.push({
|
||||
val: currIfr,
|
||||
handled: false
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an iterator on all open iframes in the specified array and calls
|
||||
* the end callback when finished
|
||||
* @param {DOMIterator~checkIframeFilterIfr} ifr
|
||||
* @param {DOMIterator~whatToShow} whatToShow
|
||||
* @param {DOMIterator~forEachNodeCallback} eCb - Each callback
|
||||
* @param {DOMIterator~filterCb} fCb
|
||||
* @access protected
|
||||
*/
|
||||
handleOpenIframes(ifr, whatToShow, eCb, fCb) {
|
||||
ifr.forEach(ifrDict => {
|
||||
if (!ifrDict.handled) {
|
||||
this.getIframeContents(ifrDict.val, con => {
|
||||
this.createInstanceOnIframe(con).forEachNode(
|
||||
whatToShow, eCb, fCb
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterates through all nodes in the specified context and handles iframe
|
||||
* nodes at the correct position
|
||||
* @param {DOMIterator~whatToShow} whatToShow
|
||||
* @param {HTMLElement} ctx - The context
|
||||
* @param {DOMIterator~forEachNodeCallback} eachCb - Each callback
|
||||
* @param {DOMIterator~filterCb} filterCb - Filter callback
|
||||
* @param {DOMIterator~forEachNodeEndCallback} doneCb - End callback
|
||||
* @access protected
|
||||
*/
|
||||
iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {
|
||||
const itr = this.createIterator(ctx, whatToShow, filterCb);
|
||||
let ifr = [],
|
||||
elements = [],
|
||||
node, prevNode, retrieveNodes = () => {
|
||||
({
|
||||
prevNode,
|
||||
node
|
||||
} = this.getIteratorNode(itr));
|
||||
return node;
|
||||
};
|
||||
while (retrieveNodes()) {
|
||||
if (this.iframes) {
|
||||
this.forEachIframe(ctx, currIfr => {
|
||||
// note that ifr will be manipulated here
|
||||
return this.checkIframeFilter(node, prevNode, currIfr, ifr);
|
||||
}, con => {
|
||||
this.createInstanceOnIframe(con).forEachNode(
|
||||
whatToShow, ifrNode => elements.push(ifrNode), filterCb
|
||||
);
|
||||
});
|
||||
}
|
||||
// it's faster to call the each callback in an array loop
|
||||
// than in this while loop
|
||||
elements.push(node);
|
||||
}
|
||||
elements.forEach(node => {
|
||||
eachCb(node);
|
||||
});
|
||||
if (this.iframes) {
|
||||
this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);
|
||||
}
|
||||
doneCb();
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for each node
|
||||
* @callback DOMIterator~forEachNodeCallback
|
||||
* @param {HTMLElement} node - The DOM text node element
|
||||
*/
|
||||
/**
|
||||
* Callback if all contexts were handled
|
||||
* @callback DOMIterator~forEachNodeEndCallback
|
||||
*/
|
||||
/**
|
||||
* Iterates over all contexts and initializes
|
||||
* {@link DOMIterator#iterateThroughNodes iterateThroughNodes} on them
|
||||
* @param {DOMIterator~whatToShow} whatToShow
|
||||
* @param {DOMIterator~forEachNodeCallback} each - Each callback
|
||||
* @param {DOMIterator~filterCb} filter - Filter callback
|
||||
* @param {DOMIterator~forEachNodeEndCallback} done - End callback
|
||||
* @access public
|
||||
*/
|
||||
forEachNode(whatToShow, each, filter, done = () => {}) {
|
||||
const contexts = this.getContexts();
|
||||
let open = contexts.length;
|
||||
if (!open) {
|
||||
done();
|
||||
}
|
||||
contexts.forEach(ctx => {
|
||||
const ready = () => {
|
||||
this.iterateThroughNodes(whatToShow, ctx, each, filter, () => {
|
||||
if (--open <= 0) { // call end all contexts were handled
|
||||
done();
|
||||
}
|
||||
});
|
||||
};
|
||||
// wait for iframes to avoid recursive calls, otherwise this would
|
||||
// perhaps reach the recursive function call limit with many nodes
|
||||
if (this.iframes) {
|
||||
this.waitForIframes(ctx, ready);
|
||||
} else {
|
||||
ready();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback to filter nodes. Can return e.g. NodeFilter.FILTER_ACCEPT or
|
||||
* NodeFilter.FILTER_REJECT
|
||||
* @see {@link http://tinyurl.com/zdczmm2}
|
||||
* @callback DOMIterator~filterCb
|
||||
* @param {HTMLElement} node - The node to filter
|
||||
*/
|
||||
/**
|
||||
* @typedef DOMIterator~whatToShow
|
||||
* @see {@link http://tinyurl.com/zfqqkx2}
|
||||
* @type {number}
|
||||
*/
|
||||
}
|
||||
1266
node_modules/mark.js/src/lib/mark.js
generated
vendored
1266
node_modules/mark.js/src/lib/mark.js
generated
vendored
File diff suppressed because it is too large
Load Diff
22
node_modules/mark.js/src/vanilla.js
generated
vendored
22
node_modules/mark.js/src/vanilla.js
generated
vendored
@@ -1,22 +0,0 @@
|
||||
import MarkJS from './lib/mark';
|
||||
|
||||
export default function Mark(ctx) {
|
||||
const instance = new MarkJS(ctx);
|
||||
this.mark = (sv, opt) => {
|
||||
instance.mark(sv, opt);
|
||||
return this;
|
||||
};
|
||||
this.markRegExp = (sv, opt) => {
|
||||
instance.markRegExp(sv, opt);
|
||||
return this;
|
||||
};
|
||||
this.markRanges = (sv, opt) => {
|
||||
instance.markRanges(sv, opt);
|
||||
return this;
|
||||
};
|
||||
this.unmark = (opt) => {
|
||||
instance.unmark(opt);
|
||||
return this;
|
||||
};
|
||||
return this;
|
||||
}
|
||||
6
node_modules/mark.js/test/.eslintrc
generated
vendored
6
node_modules/mark.js/test/.eslintrc
generated
vendored
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"rules": {
|
||||
"no-var": "off",
|
||||
"no-invalid-this": "off"
|
||||
}
|
||||
}
|
||||
23
node_modules/mark.js/test/fixtures/across-elements/basic/accuracy-exactly.html
generated
vendored
23
node_modules/mark.js/test/fixtures/across-elements/basic/accuracy-exactly.html
generated
vendored
@@ -1,23 +0,0 @@
|
||||
<div class="across-elements-accuracy-exactly">
|
||||
<div>
|
||||
lorem ipsu dolor sit amet.
|
||||
<p class="not">
|
||||
<!-- in here nothing should be marked -->
|
||||
lorem ipsum dolor sit amet. lorem ipsu.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
ipsu lorem dolo
|
||||
<p class="not">
|
||||
<!-- in here nothing should be marked -->
|
||||
ipsum lorem dolor
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
ipsu ipsü īpsu īpsü
|
||||
<p class="not">
|
||||
<!-- in here nothing should be marked -->
|
||||
ipsum loremipsum loremīpsüm
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
1
node_modules/mark.js/test/fixtures/across-elements/basic/empty.html
generated
vendored
1
node_modules/mark.js/test/fixtures/across-elements/basic/empty.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<div class="across-elements-empty"></div>
|
||||
12
node_modules/mark.js/test/fixtures/across-elements/basic/filter.html
generated
vendored
12
node_modules/mark.js/test/fixtures/across-elements/basic/filter.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="across-elements-filter">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum dolor sit
|
||||
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/across-elements/basic/ignore-joiners.html
generated
vendored
13
node_modules/mark.js/test/fixtures/across-elements/basic/ignore-joiners.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="across-elements-ignore-joiners">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est <span>Lo­rem</span> ip​sum
|
||||
dolor sit. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
||||
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est Lor‌em
|
||||
<span>i‍psum dolor</span> sit amet.
|
||||
</p>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/across-elements/basic/main.html
generated
vendored
13
node_modules/mark.js/test/fixtures/across-elements/basic/main.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="across-elements">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est <span>Lorem</span> ipsum dolor sit. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem <span>ipsum dolor</span> sit
|
||||
amet.
|
||||
</p>
|
||||
</div>
|
||||
29
node_modules/mark.js/test/fixtures/across-elements/basic/merge-blanks.html
generated
vendored
29
node_modules/mark.js/test/fixtures/across-elements/basic/merge-blanks.html
generated
vendored
@@ -1,29 +0,0 @@
|
||||
<div class="across-elements-merge-blanks">
|
||||
<div>
|
||||
<p>
|
||||
Lorem <span> ipsum</span> dolor sit amet, consetetur sadipscing
|
||||
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
|
||||
aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
||||
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
|
||||
est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
|
||||
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
|
||||
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam
|
||||
et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
|
||||
sanctus est <span>Lorem ipsum</span> dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem <span> ipsum</span> dolor sit amet, consetetur sadipscing
|
||||
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
|
||||
aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
||||
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
|
||||
est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur
|
||||
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
|
||||
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam
|
||||
et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
|
||||
sanctus est <span>Lorem ipsum</span> dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
25
node_modules/mark.js/test/fixtures/across-elements/iframes/across.html
generated
vendored
25
node_modules/mark.js/test/fixtures/across-elements/iframes/across.html
generated
vendored
@@ -1,25 +0,0 @@
|
||||
<div class="across-elements-iframes-across" id="across-elements-iframes-across-target">
|
||||
<p>
|
||||
Lorem ipsum <span>dolor</span> sit amet, consetetur sadipscing elitr, sed
|
||||
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
|
||||
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
||||
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<p>Lorem ipsum</p>
|
||||
<script>
|
||||
// Can't use document.write here, as this fixture will be
|
||||
// included after the document was fully loaded
|
||||
var container = document.getElementById(
|
||||
"across-elements-iframes-across-target"
|
||||
);
|
||||
var insertElement = container.querySelector("p:nth-child(2)");
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe.src = jasmine.getFixtures().fixturesPath +
|
||||
"/across-elements/iframes/nested-inc.html";
|
||||
container.insertBefore(iframe, insertElement);
|
||||
</script>
|
||||
</div>
|
||||
26
node_modules/mark.js/test/fixtures/across-elements/iframes/inc.html
generated
vendored
26
node_modules/mark.js/test/fixtures/across-elements/iframes/inc.html
generated
vendored
@@ -1,26 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test iframe document</title>
|
||||
<style>
|
||||
.mark,
|
||||
.lorem {
|
||||
background: yellow;
|
||||
}
|
||||
</style>
|
||||
<!-- The above is necessary to check if elements inside <head> will be ignored -->
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
23
node_modules/mark.js/test/fixtures/across-elements/iframes/main.html
generated
vendored
23
node_modules/mark.js/test/fixtures/across-elements/iframes/main.html
generated
vendored
@@ -1,23 +0,0 @@
|
||||
<div class="across-elements-iframes" id="across-elements-iframes-target">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<script>
|
||||
// Can't use document.write here, as this fixture will be
|
||||
// included after the document was fully loaded
|
||||
var target = document.getElementById(
|
||||
"across-elements-iframes-target"
|
||||
);
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe.src = jasmine.getFixtures().fixturesPath +
|
||||
"/across-elements/iframes/inc.html";
|
||||
target.appendChild(iframe);
|
||||
</script>
|
||||
</div>
|
||||
37
node_modules/mark.js/test/fixtures/across-elements/iframes/nested-inc.html
generated
vendored
37
node_modules/mark.js/test/fixtures/across-elements/iframes/nested-inc.html
generated
vendored
@@ -1,37 +0,0 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test iframe document</title>
|
||||
<style>
|
||||
.mark {
|
||||
background: yellow;
|
||||
}
|
||||
</style>
|
||||
<!-- The above is necessary to check if elements inside <head> will be ignored -->
|
||||
</head>
|
||||
<body>
|
||||
<div id="across-elements-iframes-nested-inc-target">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<script>
|
||||
// Can't use document.write here, as this fixture will be
|
||||
// included after the document was fully loaded
|
||||
var target = document.getElementById(
|
||||
"across-elements-iframes-nested-inc-target"
|
||||
);
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe.src = "inc.html";
|
||||
target.appendChild(iframe);
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
23
node_modules/mark.js/test/fixtures/across-elements/iframes/nested.html
generated
vendored
23
node_modules/mark.js/test/fixtures/across-elements/iframes/nested.html
generated
vendored
@@ -1,23 +0,0 @@
|
||||
<div class="across-elements-iframes-nested" id="across-elements-iframes-nested-target">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<script>
|
||||
// Can't use document.write here, as this fixture will be
|
||||
// included after the document was fully loaded
|
||||
var target = document.getElementById(
|
||||
"across-elements-iframes-nested-target"
|
||||
);
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe.src = jasmine.getFixtures().fixturesPath +
|
||||
"/across-elements/iframes/nested-inc.html";
|
||||
target.appendChild(iframe);
|
||||
</script>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/across-elements/nested/main.html
generated
vendored
13
node_modules/mark.js/test/fixtures/across-elements/nested/main.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="across-elements-nested">
|
||||
<div>
|
||||
<span>Lorem ips</span>um dolor sit amet, consetetur sadipscing elitr, sed
|
||||
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
||||
Stet clita kasd gubergren, no sea takimata sanctus est
|
||||
<p><span>Lorem</span></p> ipsum dolor sit. Lorem ipsum dolor sit amet, consetetur
|
||||
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
|
||||
magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
||||
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
||||
Lorem <span>ipsum dolor</span> sit amet.
|
||||
</div>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/across-elements/regexp/filter.html
generated
vendored
12
node_modules/mark.js/test/fixtures/across-elements/regexp/filter.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="across-elements-regexp-filter">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum dolor sit
|
||||
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
26
node_modules/mark.js/test/fixtures/across-elements/regexp/ignore-groups.html
generated
vendored
26
node_modules/mark.js/test/fixtures/across-elements/regexp/ignore-groups.html
generated
vendored
@@ -1,26 +0,0 @@
|
||||
<div class="across-elements-regexp-ignore-groups">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/across-elements/regexp/infinite.html
generated
vendored
13
node_modules/mark.js/test/fixtures/across-elements/regexp/infinite.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="across-elements-regexp-infinite">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est <span>Lorem</span> ipsum dolor sit. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem <span>ipsum dolor</span> sit
|
||||
amet.
|
||||
</p>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/across-elements/regexp/main.html
generated
vendored
13
node_modules/mark.js/test/fixtures/across-elements/regexp/main.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="across-elements-regexp">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est <span>Lorem</span> ipsum dolor sit. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem <span>ipsum dolor</span> sit
|
||||
amet.
|
||||
</p>
|
||||
</div>
|
||||
5
node_modules/mark.js/test/fixtures/basic/accuracy-complementary-limiters.html
generated
vendored
5
node_modules/mark.js/test/fixtures/basic/accuracy-complementary-limiters.html
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<div class="basic-accuracy-complementary-limiters">
|
||||
<p>
|
||||
,loremtestlorem- loremtestlorem-, loremtest% (test) "test" 'test' test! .test.
|
||||
</p>
|
||||
</div>
|
||||
28
node_modules/mark.js/test/fixtures/basic/accuracy-complementary.html
generated
vendored
28
node_modules/mark.js/test/fixtures/basic/accuracy-complementary.html
generated
vendored
@@ -1,28 +0,0 @@
|
||||
<div class="basic-accuracy-complementary">
|
||||
<div>
|
||||
<p>
|
||||
Ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est testLoremtest ipsum dolor sit
|
||||
amet. ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est ipsum dolor sit amet.
|
||||
Et (ipsumx) dolor ipsumx-test öipsumxö.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est testLorem ipsumtest dolor sit
|
||||
amet. ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est ipsum dolor sit amet.
|
||||
Et (ipsumx) dolor.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
5
node_modules/mark.js/test/fixtures/basic/accuracy-exactly-limiters.html
generated
vendored
5
node_modules/mark.js/test/fixtures/basic/accuracy-exactly-limiters.html
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<div class="basic-accuracy-exactly-limiters">
|
||||
<p>
|
||||
,test- testlorem-, loremtest% (test) "test" 'test' test! .test.
|
||||
</p>
|
||||
</div>
|
||||
23
node_modules/mark.js/test/fixtures/basic/accuracy-exactly.html
generated
vendored
23
node_modules/mark.js/test/fixtures/basic/accuracy-exactly.html
generated
vendored
@@ -1,23 +0,0 @@
|
||||
<div class="basic-accuracy-exactly">
|
||||
<div>
|
||||
lorem ipsu dolor sit amet.
|
||||
<p class="not">
|
||||
<!-- in here nothing should be marked -->
|
||||
lorem ipsum dolor sit amet. lorem ipsu.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
ipsu lorem dolo
|
||||
<p class="not">
|
||||
<!-- in here nothing should be marked -->
|
||||
ipsum lorem dolor
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
ipsu ipsü īpsu īpsü
|
||||
<p class="not">
|
||||
<!-- in here nothing should be marked -->
|
||||
ipsum loremipsum loremīpsüm
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/accuracy-partially.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/accuracy-partially.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-accuracy-partially">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est testLoremtest ipsum dolor sit amet. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/array-keyword.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/array-keyword.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-array-keyword">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
24
node_modules/mark.js/test/fixtures/basic/case-sensitive-diacritics.html
generated
vendored
24
node_modules/mark.js/test/fixtures/basic/case-sensitive-diacritics.html
generated
vendored
@@ -1,24 +0,0 @@
|
||||
<div class="basic-case-sensitive-diacritics">
|
||||
<h3>Lorèm Ipsum Dolør</h3>
|
||||
<p>
|
||||
Lorèm ipsum dolor sit amęt, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justò duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est lorem ipsum đolor sit amet. Lôrëm ipsům dolor
|
||||
sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justó duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est łorem ipsum Ďoloř sit àmet.
|
||||
</p>
|
||||
<h3>Amēt</h3>
|
||||
<p>
|
||||
Morbi convallis tellus non lacus tincidunt, eu luctus quam gravida. Donec sodales,
|
||||
arcu at sollicitudin rhoncus, sapien massa aliquam velit, vitae auctor massa libero
|
||||
quis łorem ipsum. Integer suscipit leo gravida luctus placerat. Integer dapibus
|
||||
placerat porttitor. Sed laoreet pellentesque ex quis porttitor. Nulla fermentum
|
||||
rutrum gravida. Fusce non lectus massa. Âliquam erat volutpat. Sed molestie, lacus
|
||||
id vehicula faucibus, eros quam ornare nunc, vitae blandit ex nisl fringilla lorem.
|
||||
Morbi efficitur a enim aliquam ultrices. Lorem ipśum dølor sit Ãmet, consectetur
|
||||
adipiscing elit. Fusce bibendum sagittis odio.
|
||||
</p>
|
||||
</div>
|
||||
37
node_modules/mark.js/test/fixtures/basic/case-sensitive-synonyms-diacritics.html
generated
vendored
37
node_modules/mark.js/test/fixtures/basic/case-sensitive-synonyms-diacritics.html
generated
vendored
@@ -1,37 +0,0 @@
|
||||
<div class="basic-case-sensitive-synonyms-diacritics">
|
||||
<h3>Lorèm Ipsum Dolør</h3>
|
||||
<p>
|
||||
Lorèm ipsum dolor sit amęt, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justò duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ipsum đolor sit
|
||||
amet. Lôrëm ipsům dolor sit ảmet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et justó duo dolores et ea
|
||||
rebum. Stet clita kasd gubergren, no sea takimata sanctus est łorem
|
||||
ipsum Ďoloř sit àmet.
|
||||
</p>
|
||||
<h3>Amēt</h3>
|
||||
<p>
|
||||
Morbi convallis tellus non lacus tincidunt, eu luctus quam gravida.
|
||||
Donec sodales, arcu at sollicitudin rhoncus, sapien massa aliquam velit,
|
||||
vitae auctor massa libero quis łorem ipsum. Integer suscipit leo gravida
|
||||
luctus placerat. Integer dapibus placerat porttitor. Sed laoreet
|
||||
pellentesque ex quis porttitor. Nulla fermentum rutrum gravida. Fusce
|
||||
non lectus massa. Âliquam erat volutpat. Sed molestie, lacus id vehicula
|
||||
faucibus, eros quam ornare nunc, vitae blandit ex nisl fringilla lorem.
|
||||
Morbi efficitur a enim aliquam ultrices. Lorem ipśum dølor sit Ãmet,
|
||||
consectetur adipiscing elit. Fusce bibendum sagittis odio.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolòr sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam. Jùsto duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
||||
amet. Lorem ipsum dolor sit ảmet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et Justò duo dolores et ea
|
||||
rebum. Stet clita kasd gubergren, no sea takimata sanctus est lorem
|
||||
ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
21
node_modules/mark.js/test/fixtures/basic/case-sensitive-synonyms.html
generated
vendored
21
node_modules/mark.js/test/fixtures/basic/case-sensitive-synonyms.html
generated
vendored
@@ -1,21 +0,0 @@
|
||||
<div class="basic-case-sensitive-synonyms">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
||||
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
|
||||
et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
||||
Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
|
||||
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
|
||||
et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est lorem Ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum one, two, 2, three, dolor sit amet 1, consetetur. Lorem ipsum
|
||||
Luefte dolor sit amet One Two Three luefte.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
28
node_modules/mark.js/test/fixtures/basic/case-sensitive.html
generated
vendored
28
node_modules/mark.js/test/fixtures/basic/case-sensitive.html
generated
vendored
@@ -1,28 +0,0 @@
|
||||
<div class="basic-case-sensitive">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
||||
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
|
||||
et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
||||
Lorem ipsum dolor sit. Lorem ipsum dolor sit amet, consetetur
|
||||
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
|
||||
et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
||||
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
|
||||
et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
||||
lorem ipsum dolor sit. Lorem ipsum dolor sit amet, consetetur
|
||||
sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
|
||||
et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
24
node_modules/mark.js/test/fixtures/basic/context-array.html
generated
vendored
24
node_modules/mark.js/test/fixtures/basic/context-array.html
generated
vendored
@@ -1,24 +0,0 @@
|
||||
<div class="basic-context-array">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div class="basic-context-array">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
10
node_modules/mark.js/test/fixtures/basic/context-direct.html
generated
vendored
10
node_modules/mark.js/test/fixtures/basic/context-direct.html
generated
vendored
@@ -1,10 +0,0 @@
|
||||
<div class="basic-context-direct">
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
||||
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
|
||||
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
|
||||
et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo
|
||||
duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
|
||||
Lorem ipsum dolor sit amet.
|
||||
</div>
|
||||
24
node_modules/mark.js/test/fixtures/basic/context-nodelist.html
generated
vendored
24
node_modules/mark.js/test/fixtures/basic/context-nodelist.html
generated
vendored
@@ -1,24 +0,0 @@
|
||||
<div class="basic-context-nodelist">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div class="basic-context-nodelist">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
24
node_modules/mark.js/test/fixtures/basic/context-string.html
generated
vendored
24
node_modules/mark.js/test/fixtures/basic/context-string.html
generated
vendored
@@ -1,24 +0,0 @@
|
||||
<div class="basic-context-string">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div class="basic-context-string">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
26
node_modules/mark.js/test/fixtures/basic/custom-element-class.html
generated
vendored
26
node_modules/mark.js/test/fixtures/basic/custom-element-class.html
generated
vendored
@@ -1,26 +0,0 @@
|
||||
<div class="basic-custom-element-class">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
10
node_modules/mark.js/test/fixtures/basic/diacritics-vietnamese.html
generated
vendored
10
node_modules/mark.js/test/fixtures/basic/diacritics-vietnamese.html
generated
vendored
@@ -1,10 +0,0 @@
|
||||
<div class="basic-diacritics-vietnamese">
|
||||
<p>
|
||||
Trường của chúng em là trường mầm non.
|
||||
Năm học mới bắt đầu.
|
||||
Kì thi cũng không có gì ầm ỉ.
|
||||
Các bạn thích nợ môn.
|
||||
Sẽ được ở lại lớp.
|
||||
Kế hoạch cho năm học mới đang được bàn bạc kỹ lưỡng.
|
||||
</p>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/diacritics.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/diacritics.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-diacritics">
|
||||
<p>
|
||||
Lores ipsum dolòr sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justò duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
27
node_modules/mark.js/test/fixtures/basic/duplicate-context.html
generated
vendored
27
node_modules/mark.js/test/fixtures/basic/duplicate-context.html
generated
vendored
@@ -1,27 +0,0 @@
|
||||
<div class="basic-duplicate-context">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, test consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, test consetetur
|
||||
<span>lorem test ipsum</span> sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
26
node_modules/mark.js/test/fixtures/basic/duplicate-keywords.html
generated
vendored
26
node_modules/mark.js/test/fixtures/basic/duplicate-keywords.html
generated
vendored
@@ -1,26 +0,0 @@
|
||||
<div class="basic-duplicate-keywords">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, test consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, test consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
1
node_modules/mark.js/test/fixtures/basic/empty.html
generated
vendored
1
node_modules/mark.js/test/fixtures/basic/empty.html
generated
vendored
@@ -1 +0,0 @@
|
||||
<div class="basic-empty"></div>
|
||||
27
node_modules/mark.js/test/fixtures/basic/entities.html
generated
vendored
27
node_modules/mark.js/test/fixtures/basic/entities.html
generated
vendored
@@ -1,27 +0,0 @@
|
||||
<div class="basic-entities">
|
||||
<div>
|
||||
<p>
|
||||
Lorem © ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo √ duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
||||
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
||||
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
|
||||
dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
7
node_modules/mark.js/test/fixtures/basic/escape.html
generated
vendored
7
node_modules/mark.js/test/fixtures/basic/escape.html
generated
vendored
@@ -1,7 +0,0 @@
|
||||
<div class="basic-escape">
|
||||
<p>39,00 €</p>
|
||||
<p>0.009 €</p>
|
||||
<p>Unk?nown</p>
|
||||
<p>Some+>thing</p>
|
||||
<p>www.happy.com\</p>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/basic/events.html
generated
vendored
13
node_modules/mark.js/test/fixtures/basic/events.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="basic-events">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
<span class="event-target">test</span>
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
16
node_modules/mark.js/test/fixtures/basic/exclude.html
generated
vendored
16
node_modules/mark.js/test/fixtures/basic/exclude.html
generated
vendored
@@ -1,16 +0,0 @@
|
||||
<div class="basic-exclude">
|
||||
<a class="ignore">Lorem ipsum</a>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<div data-ignore="true">
|
||||
Lorem ipsum
|
||||
</div>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/filter.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/filter.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-filter">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum dolor sit
|
||||
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
21
node_modules/mark.js/test/fixtures/basic/ignore-joiners-diacritics.html
generated
vendored
21
node_modules/mark.js/test/fixtures/basic/ignore-joiners-diacritics.html
generated
vendored
@@ -1,21 +0,0 @@
|
||||
<div class="basic-ignore-joiners-diacritics">
|
||||
<p>
|
||||
Lorè​m ipsum dolor sit amęt, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justò duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorem ipsum đolor sit amet. Lôrëm
|
||||
i‌psům dolor sit ảmet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justó duo dolores et ea rebum. Stet clita
|
||||
kasd gubergren, no sea takimata sanctus est łorem ipsum dołoř sit àmet. Morbi
|
||||
convallis tellus non lacus tincidunt, eu luctus quam gravida. Donec sodales,
|
||||
arcu at sollicitudin rhoncus, sapien massa aliquam velit, vitae auctor massa
|
||||
libero quis łorem ipsum. Integer suscipit leo gravida luctus placerat. Integer
|
||||
dapibus placerat porttitor. Sed laoreet pellentesque ex quis porttitor. Nulla
|
||||
fermentum rutrum gravida. Fusce non lectus massa. Âliquam erat volutpat.
|
||||
Sed molestie, lacus id vehicula faucibus, eros quam ornare nunc, vitae blandit
|
||||
ex nisl fringilla lorem. Morbi efficitur a enim aliquam ultrices. Lorem ipśum
|
||||
dølor sit ã­met, consectetur adipiscing elit. Fusce bibendum sagittis
|
||||
odio.
|
||||
</p>
|
||||
</div>
|
||||
13
node_modules/mark.js/test/fixtures/basic/ignore-joiners-escape.html
generated
vendored
13
node_modules/mark.js/test/fixtures/basic/ignore-joiners-escape.html
generated
vendored
@@ -1,13 +0,0 @@
|
||||
<div class="basic-ignore-joiners-escape">
|
||||
<p>
|
||||
Lo­rem ipsum+ dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, $50 {no} sea takimata sanctus est lorem ipsum+ dolor sit. Lo​rem
|
||||
ip‌sum+ dolor sit* amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
|
||||
kasd gubergren, no sea takimata sanctus est lorem ips‍um+ dolor sit
|
||||
amet? www.happy.com\ test.
|
||||
</p>
|
||||
</div>
|
||||
22
node_modules/mark.js/test/fixtures/basic/ignore-joiners-synonyms-diacritics.html
generated
vendored
22
node_modules/mark.js/test/fixtures/basic/ignore-joiners-synonyms-diacritics.html
generated
vendored
@@ -1,22 +0,0 @@
|
||||
<div class="basic-ignore-joiners-synonyms-diacritics">
|
||||
<p>
|
||||
Lorèm ips‌um dolor sit amęt, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et j​ustò duo dolores et ea rebum. Stet clita
|
||||
kasd gubergren, no sea takimata sanctus est lorem ipsum đolor sit amet. Lôrë‍m
|
||||
ipsům dolor sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justó duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est łorem ipsum doł‌oř sit àmet.
|
||||
Morbi convallis tellus non lacus tincidunt, eu luctus quam gravida. Donec
|
||||
sodales, arcu at sollicitudin rhoncus, sapien massa aliquam velit, vitae
|
||||
auctor massa libero quis łorem ipsum. Integer suscipit leo gravida luctus
|
||||
placerat. Integer dapibus placerat porttitor. Sed laoreet pellentesque ex
|
||||
quis porttitor. Nulla fermentum rutrum gravida. Fusce non lectus massa. Âliquam
|
||||
erat volutpat. Sed molestie, lacus id vehicula faucibus, eros quam ornare
|
||||
nunc, vitae blandit ex nisl fringilla lorem. Morbi efficitur a enim aliquam
|
||||
ultrices. Lorem ipś­um dølor sit ã‍met, consectetur adipiscing
|
||||
elit. Fusce bibendum sagittis odio. Justò duo dolores et ea rebum. Stet clita
|
||||
kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
22
node_modules/mark.js/test/fixtures/basic/ignore-joiners-synonyms.html
generated
vendored
22
node_modules/mark.js/test/fixtures/basic/ignore-joiners-synonyms.html
generated
vendored
@@ -1,22 +0,0 @@
|
||||
<div class="basic-ignore-joiners-synonyms">
|
||||
<div>
|
||||
<p>
|
||||
Lore­m i­psum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est L​orem ip‌sum
|
||||
dolor sit amet. Lo​rem ipsu­m dolor sit amet, consetetur sadipscing
|
||||
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
|
||||
aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
||||
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
|
||||
est lor‍em Ipsu‍m dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum on­e, tw​o, do‍s, three, dolor sit amet u­no, consetetur.
|
||||
Lorem ipsum L​ue‌fte dolor sit l­ü‍fte amet One
|
||||
T​wo Three lu­efte.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
27
node_modules/mark.js/test/fixtures/basic/ignore-joiners.html
generated
vendored
27
node_modules/mark.js/test/fixtures/basic/ignore-joiners.html
generated
vendored
@@ -1,27 +0,0 @@
|
||||
<div class="basic-ignore-joiners">
|
||||
<div>
|
||||
<p>
|
||||
Lo­rem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorem ipsum dolor sit. Lo​rem
|
||||
ip‌sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ips‍um
|
||||
dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ip‍sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorem ipsum dolor sit. lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorem ips​um dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
28
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-accuracy.html
generated
vendored
28
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-accuracy.html
generated
vendored
@@ -1,28 +0,0 @@
|
||||
<div class="basic-ignore-punctuation-accuracy">
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'umtest dolor sit.
|
||||
Lore'm ip(sum) dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
||||
rebum. Stet clita kasd gubergren, no sea takimata sanctus est lorem ipsum
|
||||
dolor sit amet. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'umtest dolor sit.
|
||||
Lore'm ip(sum) dolor sit amet, consetetur sadipscing elitr, sed diam
|
||||
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
||||
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
||||
rebum. Stet clita kasd gubergren, no sea takimata sanctus est lorem ipsum
|
||||
dolor sit amet. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
28
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-ignore-joiners.html
generated
vendored
28
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-ignore-joiners.html
generated
vendored
@@ -1,28 +0,0 @@
|
||||
<div class="basic-ignore-punctuation-ignore-joiners">
|
||||
<div>
|
||||
<p>
|
||||
Lore‍m, i­p‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lo[r​em]! ips'um
|
||||
dolor sit. Lore'm ip(‌sum) dolor sit amet, consetetur sadipscing
|
||||
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
|
||||
aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
||||
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
|
||||
est lorem ipsum dolor sit amet. Lor}‍{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lore‍m, i­p‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lo[r​em]! ips'um
|
||||
dolor sit. Lore'm ip(‌sum) dolor sit amet, consetetur sadipscing
|
||||
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna
|
||||
aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
||||
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
|
||||
est lorem ipsum dolor sit amet. Lor}‍{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
28
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-separate-word-search.html
generated
vendored
28
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-separate-word-search.html
generated
vendored
@@ -1,28 +0,0 @@
|
||||
<div class="basic-ignore-punctuation-separate-word-search">
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit a_met, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'um dolor sit. Lore'm
|
||||
ip(sum) dolor sit ame!t, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ips+-=um dolor
|
||||
sit am;et. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit a_met, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'um dolor sit. Lore'm
|
||||
ip(sum) dolor sit ame!t, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ips+-=um dolor
|
||||
sit am;et. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
22
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-synonyms-diacritics.html
generated
vendored
22
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-synonyms-diacritics.html
generated
vendored
@@ -1,22 +0,0 @@
|
||||
<div class="basic-ignore-punctuation-synonyms-diacritics">
|
||||
<p>
|
||||
Lo{r}èm ipsu_m dolo:r sit a"m"ęt, consetetur sadipscing elitr, s[e]d diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et j!ustò duo dolores et ea rebum. Stet clita
|
||||
kasd gubergren, no sea takimata sanctus est lorem ipsum đolor sit amet. Lôrëm
|
||||
ipsům dolor sit ảmet, consetetur sadipscing elitr, se'd diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, s+ed diam voluptua.
|
||||
At vero eos et accusam et justó duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est łor.em ipsum d(oło)ř sit àmet.
|
||||
Morbi convallis tellus non lacus tincidunt, eu luctus quam gravida. Donec
|
||||
sodales, arcu at sollicitudin rhoncus, sapien massa aliquam velit, vitae
|
||||
auctor massa libero quis łorem ipsum. Integer suscipit leo gravida luctus
|
||||
placerat. Integer dapibus placerat porttitor. Sed laoreet pellentesque ex
|
||||
quis porttitor. Nulla fermentum rutrum gravida. Fusce non lectus massa. Âliquam
|
||||
erat volutpat. Sed molestie, lacus id vehicula faucibus, eros quam ornare
|
||||
nunc, vitae blandit ex nisl fringilla lorem. Morbi efficitur a enim aliquam
|
||||
ultrices. Lorem ip—śum dølor sit ãm;et, consectetur adipiscing
|
||||
elit. Fusce bibendum sagittis odio. Ju,stò duo dolores et ea rebum. Stet clita
|
||||
kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
21
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-synonyms.html
generated
vendored
21
node_modules/mark.js/test/fixtures/basic/ignore-punctuation-synonyms.html
generated
vendored
@@ -1,21 +0,0 @@
|
||||
<div class="basic-ignore-punctuation-synonyms">
|
||||
<div>
|
||||
<p>
|
||||
Lo{rem ip}sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lo_rem ip;sum dolor sit amet.
|
||||
Lo=rem ips.um dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem Ip_sum dolor
|
||||
sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum one, two, d_os, three, dolor sit amet uno, consetetur. Lorem ipsum L'ue'fte
|
||||
dolor sit amet lüfte One Two Three l[ueft]e.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
41
node_modules/mark.js/test/fixtures/basic/ignore-punctuation.html
generated
vendored
41
node_modules/mark.js/test/fixtures/basic/ignore-punctuation.html
generated
vendored
@@ -1,41 +0,0 @@
|
||||
<div class="basic-ignore-punctuation">
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'um dolor sit. Lore'm
|
||||
ip(sum) dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ips+-=um dolor
|
||||
sit amet. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'um dolor sit. Lore'm
|
||||
ip(sum) dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ips+-=um dolor
|
||||
sit amet. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem, ip‒sum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lo[rem]! ips'um dolor sit. Lore'm
|
||||
ip(sum) dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
||||
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
||||
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
||||
clita kasd gubergren, no sea takimata sanctus est lorem ips+-=um dolor
|
||||
sit amet. Lor}{em "ipsum". Lorem ip­sum.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
9571
node_modules/mark.js/test/fixtures/basic/large-document.html
generated
vendored
9571
node_modules/mark.js/test/fixtures/basic/large-document.html
generated
vendored
File diff suppressed because it is too large
Load Diff
12
node_modules/mark.js/test/fixtures/basic/main.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/main.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/manipulated-mark.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/manipulated-mark.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-manipulated-mark">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
28
node_modules/mark.js/test/fixtures/basic/merge-blanks.html
generated
vendored
28
node_modules/mark.js/test/fixtures/basic/merge-blanks.html
generated
vendored
@@ -1,28 +0,0 @@
|
||||
<div class="basic-merge-blanks">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
Loremipsum <!-- Words without whitespace shouldn't be marked -->
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/nested-mark.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/nested-mark.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-nested-mark">
|
||||
<p>
|
||||
lorem test ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus test est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorem test ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/no-options.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/no-options.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-no-options">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit. Lorem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
12
node_modules/mark.js/test/fixtures/basic/same-keywords.html
generated
vendored
12
node_modules/mark.js/test/fixtures/basic/same-keywords.html
generated
vendored
@@ -1,12 +0,0 @@
|
||||
<div class="basic-same-keywords">
|
||||
<p>
|
||||
Lorem ipsum dolor test sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
20
node_modules/mark.js/test/fixtures/basic/script-style.html
generated
vendored
20
node_modules/mark.js/test/fixtures/basic/script-style.html
generated
vendored
@@ -1,20 +0,0 @@
|
||||
<div class="basic-script-style">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<style>
|
||||
.someting-lorem {
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
var lorem_ipsum = function() {};
|
||||
</script>
|
||||
</div>
|
||||
38
node_modules/mark.js/test/fixtures/basic/separate-word-search-blank.html
generated
vendored
38
node_modules/mark.js/test/fixtures/basic/separate-word-search-blank.html
generated
vendored
@@ -1,38 +0,0 @@
|
||||
<div class="basic-separate-blank">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
26
node_modules/mark.js/test/fixtures/basic/separate-word-search.html
generated
vendored
26
node_modules/mark.js/test/fixtures/basic/separate-word-search.html
generated
vendored
@@ -1,26 +0,0 @@
|
||||
<div class="basic-separate">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
25
node_modules/mark.js/test/fixtures/basic/synonyms-diacritics.html
generated
vendored
25
node_modules/mark.js/test/fixtures/basic/synonyms-diacritics.html
generated
vendored
@@ -1,25 +0,0 @@
|
||||
<div class="basic-synonyms-diacritics">
|
||||
<div>
|
||||
<p>
|
||||
Łorem ipsum dolòr sit ameț, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amět. Lorem
|
||||
ipsum dolor sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justò duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Łorem ipsum dolòr sit ameț, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amět. Lorem
|
||||
ipsum dolor sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justò duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
6
node_modules/mark.js/test/fixtures/basic/synonyms-merge-blanks.html
generated
vendored
6
node_modules/mark.js/test/fixtures/basic/synonyms-merge-blanks.html
generated
vendored
@@ -1,6 +0,0 @@
|
||||
<div class="basic-synonyms-merge-blanks">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
</p>
|
||||
</div>
|
||||
5
node_modules/mark.js/test/fixtures/basic/synonyms-no-match.html
generated
vendored
5
node_modules/mark.js/test/fixtures/basic/synonyms-no-match.html
generated
vendored
@@ -1,5 +0,0 @@
|
||||
<div class="basic-synonyms-no-match">
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet
|
||||
</p>
|
||||
</div>
|
||||
14
node_modules/mark.js/test/fixtures/basic/synonyms-not-empty.html
generated
vendored
14
node_modules/mark.js/test/fixtures/basic/synonyms-not-empty.html
generated
vendored
@@ -1,14 +0,0 @@
|
||||
<div class="synonyms-not-empty">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
20
node_modules/mark.js/test/fixtures/basic/synonyms.html
generated
vendored
20
node_modules/mark.js/test/fixtures/basic/synonyms.html
generated
vendored
@@ -1,20 +0,0 @@
|
||||
<div class="basic-synonyms">
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
||||
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorem ipsum one two three, dolor sit amet 1, consetetur. Lorem ipsum Luefte dolor
|
||||
sit amet
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
16
node_modules/mark.js/test/fixtures/basic/unmark-exclude.html
generated
vendored
16
node_modules/mark.js/test/fixtures/basic/unmark-exclude.html
generated
vendored
@@ -1,16 +0,0 @@
|
||||
<div class="basic-unmark-exclude">
|
||||
<a class="ignore">Lorem ipsum</a>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
|
||||
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
||||
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor
|
||||
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
||||
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
||||
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
|
||||
takimata sanctus est Lorem ipsum dolor sit amet.
|
||||
</p>
|
||||
<div data-ignore="true">
|
||||
Lorem ipsum
|
||||
</div>
|
||||
</div>
|
||||
54
node_modules/mark.js/test/fixtures/basic/wildcards-between-words.html
generated
vendored
54
node_modules/mark.js/test/fixtures/basic/wildcards-between-words.html
generated
vendored
@@ -1,54 +0,0 @@
|
||||
<div class="basic-wildcards-between-words">
|
||||
<div>
|
||||
<p>
|
||||
Loremipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem.ipsum dolor sit amet. Lorem:ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Loremxipsum.
|
||||
Lorem ipsum, Lorem dolor ipsum. Lorem dolor sit amet ipsum. Lorem12ipsum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Loremipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem.ipsum dolor sit amet. Lorem:ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Loremxipsum.
|
||||
Lorem ipsum, Lorem dolor ipsum. Lorem dolor sit amet ipsum. Lorem12ipsum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Loremipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem.ipsum dolor sit amet. Lorem:ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Loremxipsum.
|
||||
Lorem ipsum, Lorem dolor ipsum. Lorem dolor sit amet ipsum. Lorem12ipsum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Loremipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem.ipsum dolor sit amet. Lorem:ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Loremxipsum.
|
||||
Lorem ipsum, Lorem dolor ipsum. Lorem dolor sit amet ipsum. Lorem12ipsum.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
46
node_modules/mark.js/test/fixtures/basic/wildcards-diacritics.html
generated
vendored
46
node_modules/mark.js/test/fixtures/basic/wildcards-diacritics.html
generated
vendored
@@ -1,46 +0,0 @@
|
||||
<div class="basic-wildcards-diacritics">
|
||||
<div>
|
||||
<p>
|
||||
Lorèèm ipsum dolor sit amęt, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justò duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorÁm ipsum đolor sit amet. Lôrë1m
|
||||
ipsům dolor sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justó duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est łore1m ipsum dołoř sit àmet. Morbi
|
||||
convallis tellus non lacus tincidunt, eu luctus quam gravida. Donec sodales,
|
||||
arcu at sollicitudin rhoncus, sapien massa aliquam velit, vitae auctor
|
||||
massa libero quis łorüm ipsum. Integer suscipit leo gravida luctus placerat.
|
||||
Integer dapibus placerat porttitor. Sed laoreet pellentesque ex quis
|
||||
porttitor. Nulla fermentum rutrum gravida. Fusce non lectus massa. Âliquam
|
||||
erat volutpat. Sed molestie, lacus id vehicula faucibus, eros quam ornare
|
||||
nunc, vitae blandit ex nisl fringilla lorim. Morbi efficitur a enim aliquam
|
||||
ultrices. Lorenzom ipśum dølor sit ãmet, consectetur adipiscing elit.
|
||||
Fusce bibendum sagittis odio. Lorm ipsum Lorum ipsum, et Loräm ipsum.
|
||||
Lor?m ipsum. Lor*m ipsum. Lori123ß45676m.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorèèm ipsum dolor sit amęt, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justò duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est lorÁm ipsum đolor sit amet. Lôrë1m
|
||||
ipsům dolor sit ảmet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
At vero eos et accusam et justó duo dolores et ea rebum. Stet clita kasd
|
||||
gubergren, no sea takimata sanctus est łore1m ipsum dołoř sit àmet. Morbi
|
||||
convallis tellus non lacus tincidunt, eu luctus quam gravida. Donec sodales,
|
||||
arcu at sollicitudin rhoncus, sapien massa aliquam velit, vitae auctor
|
||||
massa libero quis łorüm ipsum. Integer suscipit leo gravida luctus placerat.
|
||||
Integer dapibus placerat porttitor. Sed laoreet pellentesque ex quis
|
||||
porttitor. Nulla fermentum rutrum gravida. Fusce non lectus massa. Âliquam
|
||||
erat volutpat. Sed molestie, lacus id vehicula faucibus, eros quam ornare
|
||||
nunc, vitae blandit ex nisl fringilla lorim. Morbi efficitur a enim aliquam
|
||||
ultrices. Lorenzom ipśum dølor sit ãmet, consectetur adipiscing elit.
|
||||
Fusce bibendum sagittis odio. Lorm ipsum Lorum ipsum, et Loräm ipsum.
|
||||
Lor?m ipsum. Lor*m ipsum. Lori123ß45676m.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
33
node_modules/mark.js/test/fixtures/basic/wildcards-escaped.html
generated
vendored
33
node_modules/mark.js/test/fixtures/basic/wildcards-escaped.html
generated
vendored
@@ -1,33 +0,0 @@
|
||||
<div class="basic-wildcards">
|
||||
<div>
|
||||
<p>
|
||||
Lorenzom ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Loriem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
Lorm ipsum Lorum ipsum, et Loram ipsum. Lor?m ipsum. Lor*m ipsum. Lorm ipsum.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorenzom ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Loriem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
Lorm ipsum Lorum ipsum, et Loram ipsum. Lor?m ipsum. Lor*m ipsum. Lorm ipsum.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
Lorenzom ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Loriem ipsum
|
||||
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
|
||||
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
||||
Lorm ipsum Lorum ipsum, et Loram ipsum. Lor?m ipsum. Lor*m ipsum. Lorm ipsum.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user