@speed-highlight/core 1.1.6 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -14
- package/doc/common.js.html +87 -0
- package/doc/css/jsdoc-template.css +1 -0
- package/doc/css/tomorrow.min.css +2 -0
- package/doc/detect%0ALanguage%20detectormodule_.html +309 -0
- package/doc/detect.js.html +113 -0
- package/doc/global.html +1826 -0
- package/doc/index%0ABase%20scriptmodule_.html +1179 -0
- package/doc/index.html +402 -0
- package/doc/index.js.html +209 -0
- package/doc/js/jsdoc-template.js +2 -0
- package/doc/js/jsdoc-template.js.map +1 -0
- package/doc/js/prettify.min.js +47 -0
- package/doc/term%0ATerminal%20adaptormodule_.html +596 -0
- package/doc/term.js.html +108 -0
- package/examples/{helper/data.js → data.js} +28 -16
- package/examples/deno.js +53 -7
- package/examples/index.html +103 -37
- package/examples/languages/test.c +1 -1
- package/examples/languages/test.go +4 -4
- package/examples/languages/test.html +1 -1
- package/examples/languages/test.java +3 -3
- package/examples/node.js +1 -1
- package/examples/worker.html +1 -0
- package/jsdoc.json +16 -0
- package/package.json +42 -38
- package/src/color.js +11 -0
- package/src/detect.js +21 -5
- package/src/index.js +55 -40
- package/src/languages/c.js +1 -1
- package/src/languages/go.js +1 -1
- package/src/languages/java.js +1 -1
- package/src/languages/js.js +1 -1
- package/src/languages/py.js +1 -1
- package/src/languages/rs.js +1 -1
- package/src/terminal.js +42 -0
- package/src/themes/atom-dark.css +1 -1
- package/src/themes/atom-dark.js +18 -0
- package/src/themes/default.css +4 -9
- package/src/themes/default.js +16 -24
- package/typedef.js +34 -0
- package/assets/screenshot.png +0 -0
- package/dist/common.js +0 -1
- package/dist/detect.js +0 -1
- package/dist/index.js +0 -3
- package/dist/languages/asm.js +0 -1
- package/dist/languages/bash.js +0 -1
- package/dist/languages/bf.js +0 -1
- package/dist/languages/c.js +0 -1
- package/dist/languages/css.js +0 -1
- package/dist/languages/csv.js +0 -1
- package/dist/languages/diff.js +0 -1
- package/dist/languages/docker.js +0 -1
- package/dist/languages/git.js +0 -1
- package/dist/languages/go.js +0 -1
- package/dist/languages/html.js +0 -1
- package/dist/languages/http.js +0 -1
- package/dist/languages/ini.js +0 -1
- package/dist/languages/java.js +0 -1
- package/dist/languages/js.js +0 -1
- package/dist/languages/js_template_literals.js +0 -1
- package/dist/languages/jsdoc.js +0 -1
- package/dist/languages/json.js +0 -1
- package/dist/languages/leanpub-md.js +0 -2
- package/dist/languages/log.js +0 -1
- package/dist/languages/lua.js +0 -1
- package/dist/languages/make.js +0 -1
- package/dist/languages/md.js +0 -2
- package/dist/languages/pl.js +0 -1
- package/dist/languages/plain.js +0 -1
- package/dist/languages/py.js +0 -1
- package/dist/languages/regex.js +0 -1
- package/dist/languages/rs.js +0 -1
- package/dist/languages/sql.js +0 -1
- package/dist/languages/todo.js +0 -1
- package/dist/languages/toml.js +0 -1
- package/dist/languages/ts.js +0 -1
- package/dist/languages/uri.js +0 -1
- package/dist/languages/xml.js +0 -1
- package/dist/languages/yaml.js +0 -1
- package/dist/node/common.js +0 -1
- package/dist/node/detect.js +0 -1
- package/dist/node/index.js +0 -3
- package/dist/node/languages/asm.js +0 -1
- package/dist/node/languages/bash.js +0 -1
- package/dist/node/languages/bf.js +0 -1
- package/dist/node/languages/c.js +0 -1
- package/dist/node/languages/css.js +0 -1
- package/dist/node/languages/csv.js +0 -1
- package/dist/node/languages/diff.js +0 -1
- package/dist/node/languages/docker.js +0 -1
- package/dist/node/languages/git.js +0 -1
- package/dist/node/languages/go.js +0 -1
- package/dist/node/languages/html.js +0 -1
- package/dist/node/languages/http.js +0 -1
- package/dist/node/languages/ini.js +0 -1
- package/dist/node/languages/java.js +0 -1
- package/dist/node/languages/js.js +0 -1
- package/dist/node/languages/js_template_literals.js +0 -1
- package/dist/node/languages/jsdoc.js +0 -1
- package/dist/node/languages/json.js +0 -1
- package/dist/node/languages/leanpub-md.js +0 -2
- package/dist/node/languages/log.js +0 -1
- package/dist/node/languages/lua.js +0 -1
- package/dist/node/languages/make.js +0 -1
- package/dist/node/languages/md.js +0 -2
- package/dist/node/languages/pl.js +0 -1
- package/dist/node/languages/plain.js +0 -1
- package/dist/node/languages/py.js +0 -1
- package/dist/node/languages/regex.js +0 -1
- package/dist/node/languages/rs.js +0 -1
- package/dist/node/languages/sql.js +0 -1
- package/dist/node/languages/todo.js +0 -1
- package/dist/node/languages/toml.js +0 -1
- package/dist/node/languages/ts.js +0 -1
- package/dist/node/languages/uri.js +0 -1
- package/dist/node/languages/xml.js +0 -1
- package/dist/node/languages/yaml.js +0 -1
- package/dist/node/term.js +0 -1
- package/dist/node/themes/default.js +0 -1
- package/dist/term.js +0 -1
- package/dist/themes/atom-dark.css +0 -1
- package/dist/themes/dark.css +0 -1
- package/dist/themes/default.css +0 -1
- package/dist/themes/default.js +0 -1
- package/dist/themes/github-dark.css +0 -1
- package/dist/themes/github-dim.css +0 -1
- package/dist/themes/github-light.css +0 -1
- package/dist/themes/visual-studio-dark.css +0 -1
- package/examples/dist.html +0 -27
- package/examples/helper/elm.js +0 -58
- package/examples/style.css +0 -28
- package/src/term.js +0 -19
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Speed
|
|
1
|
+
# Speed-highlight JS
|
|
2
2
|
|
|
3
3
|
Light, fast, and easy to use, dependencies free javascript syntax highlighter, with automatic language detection, [try it out here](https://speed-highlight.github.io/core/examples/)
|
|
4
4
|
|
|
@@ -46,11 +46,22 @@ elm.textContent = code;
|
|
|
46
46
|
highlightElement(elm, detectLanguage(code));
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
Load custom language
|
|
50
|
+
```js
|
|
51
|
+
import { loadLanguage } from '../src/index.js';
|
|
52
|
+
|
|
53
|
+
loadLanguage('language-name', customLanguage);
|
|
54
|
+
```
|
|
55
|
+
|
|
49
56
|
#### CDN
|
|
50
57
|
|
|
58
|
+
```html
|
|
59
|
+
<link rel="stylesheet" href="https://unpkg.com/@speed-highlight/core/dist/themes/default.css">
|
|
60
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/speed-highlight/core/dist/themes/default.css">
|
|
61
|
+
```
|
|
51
62
|
```js
|
|
52
|
-
import ... from 'https://unpkg.com/
|
|
53
|
-
import ... from 'https://cdn.jsdelivr.net/gh/
|
|
63
|
+
import ... from 'https://unpkg.com/@speed-highlight/core/dist/index.js'
|
|
64
|
+
import ... from 'https://cdn.jsdelivr.net/gh/speed-highlight/core/dist/index.js'
|
|
54
65
|
```
|
|
55
66
|
|
|
56
67
|
### Deno
|
|
@@ -58,25 +69,65 @@ import ... from 'https://cdn.jsdelivr.net/gh/matubu/speed_highlight_js/dist/inde
|
|
|
58
69
|
Use the [deno module](https://deno.land/x/speed_highlight_js)
|
|
59
70
|
|
|
60
71
|
```js
|
|
61
|
-
import { setTheme, printHighlight } from 'https://x.nest.land/speed_highlight_js/dist/
|
|
72
|
+
import { setTheme, printHighlight } from 'https://x.nest.land/speed_highlight_js/dist/terminal.js';
|
|
62
73
|
|
|
63
|
-
await setTheme('
|
|
64
|
-
printHighlight('console.log("hello")', 'js')
|
|
74
|
+
await setTheme('[theme-name]')
|
|
75
|
+
printHighlight('console.log("hello")', 'js')
|
|
65
76
|
```
|
|
66
77
|
|
|
67
78
|
## Node
|
|
68
79
|
|
|
69
|
-
Use the [npm package](https://www.npmjs.com/package/
|
|
80
|
+
Use the [npm package](https://www.npmjs.com/package/@speed-highlight/core)
|
|
70
81
|
|
|
71
82
|
```bash
|
|
72
|
-
npm
|
|
83
|
+
npm i @speed-highlight/core
|
|
73
84
|
```
|
|
74
85
|
|
|
75
86
|
```js
|
|
76
|
-
const { setTheme, printHighlight } = require('
|
|
87
|
+
const { setTheme, printHighlight } = require('@speed-highlight/core/terminal.js');
|
|
88
|
+
|
|
89
|
+
setTheme('[theme-name]')
|
|
90
|
+
printHighlight('console.log("hello")', 'js')
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Migrating from prism
|
|
77
94
|
|
|
78
|
-
|
|
79
|
-
|
|
95
|
+
Speed-highlight JS is a lighter and faster version of prism that share a similar API
|
|
96
|
+
|
|
97
|
+
### Style
|
|
98
|
+
Remove the prism stylesheet in the head of your html file
|
|
99
|
+
Clone this repository or use a cdn to load our stylesheet
|
|
100
|
+
```diff
|
|
101
|
+
<head>
|
|
102
|
+
- <link href="themes/prism.css" rel="stylesheet" />
|
|
103
|
+
+ <link rel="stylesheet" href="https://unpkg.com/@speed-highlight/core/dist/themes/default.css">
|
|
104
|
+
</head>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Script
|
|
108
|
+
For the script part remove the prism.js script and replace it by a import and a call to `highlightAll`
|
|
109
|
+
```diff
|
|
110
|
+
<body>
|
|
111
|
+
- <script src="prism.js"></script>
|
|
112
|
+
+<script>
|
|
113
|
+
+ import { highlightAll } from 'https://unpkg.com/@speed-highlight/core/dist/index.js'
|
|
114
|
+
+ highlightAll()
|
|
115
|
+
+</script>
|
|
116
|
+
</body>
|
|
117
|
+
```
|
|
118
|
+
If you want to highlight only a specific element you can use the `highlightElement` function instead
|
|
119
|
+
|
|
120
|
+
### Code block
|
|
121
|
+
For the code blocks replace the `<pre><code>` by only one `<div>`
|
|
122
|
+
And use `shj-lang-` prefix instead of `language-` for the class property
|
|
123
|
+
```diff
|
|
124
|
+
-<pre><code class="language-css">p { color: red }</code></pre>
|
|
125
|
+
+<div class="shj-lang-css">p { color: red }</div>
|
|
126
|
+
```
|
|
127
|
+
And for inline code block you just have to change the class property
|
|
128
|
+
```diff
|
|
129
|
+
-<code class="language-css">p { color: red }</code>
|
|
130
|
+
+<code class="shj-lang-css">p { color: red }</code>
|
|
80
131
|
```
|
|
81
132
|
|
|
82
133
|
## Languages supported 🌐
|
|
@@ -128,12 +179,12 @@ A modern theme by default
|
|
|
128
179
|
| github-dark | ❌ | ✅ |
|
|
129
180
|
| github-light | ❌ | ✅ |
|
|
130
181
|
| github-dim | ❌ | ✅ |
|
|
131
|
-
| atom-dark |
|
|
182
|
+
| atom-dark | ✅ | ✅ |
|
|
132
183
|
| visual-studio-dark | ❌ | ✅ |
|
|
133
184
|
|
|
134
|
-
##
|
|
185
|
+
## Documentation 👀
|
|
135
186
|
|
|
136
|
-
Further in-depth documentation for the API and other topics is in our [Wiki](https://github.com/speed-highlight/core/wiki)
|
|
187
|
+
Further in-depth documentation for the API and other topics is in our [Wiki](https://github.com/speed-highlight/core/wiki) and our [Documentation](https://speed-highlight.github.io/core/doc/)
|
|
137
188
|
|
|
138
189
|
## License 📃
|
|
139
190
|
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang='en'>
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset='utf-8'/>
|
|
6
|
+
<title>Source: common.js - JSDoc</title>
|
|
7
|
+
<link type='text/css' rel='stylesheet' href='css/jsdoc-template.css'/>
|
|
8
|
+
<meta name="viewport" content="width=device-width,
|
|
9
|
+
initial-scale=1"/>
|
|
10
|
+
</head>
|
|
11
|
+
<body data-gs='{"openPageHeader": "is-page-header-open", "searching": "is-searching"}'>
|
|
12
|
+
<div id='page-wrapper'>
|
|
13
|
+
<header id='page-header' data-gs-target='openPageHeader'>
|
|
14
|
+
|
|
15
|
+
<h1 id='page-title'>
|
|
16
|
+
<a href="/">JSDoc</a>
|
|
17
|
+
</h1>
|
|
18
|
+
|
|
19
|
+
<nav id='content-nav'>
|
|
20
|
+
<header>
|
|
21
|
+
<div id='search'>
|
|
22
|
+
<div class='textfield-wrapper'>
|
|
23
|
+
<input type='search' name='q' placeholder='Search...' data-internal-search='#content-nav li a' data-gs-search='searching'/>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</header>
|
|
27
|
+
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><abbr title="Module">Mod</abbr> <a href="detect%250ALanguage%2520detectormodule_.html">detect
|
|
28
|
+
Language detector</a></li><li><abbr title="Module">Mod</abbr> <a href="index%250ABase%2520scriptmodule_.html">index
|
|
29
|
+
Base script</a></li><li><abbr title="Module">Mod</abbr> <a href="term%250ATerminal%2520adaptormodule_.html">term
|
|
30
|
+
Terminal adaptor</a></li></ul>
|
|
31
|
+
</nav>
|
|
32
|
+
</header>
|
|
33
|
+
<div id='main-wrapper'>
|
|
34
|
+
<button id='page-header-opener' title='Toggle left bar' class='has-icon' data-css-icon='menu' type='button' data-gs-toggle='openPageHeader'>Toggle left bar</button>
|
|
35
|
+
<main id='content'>
|
|
36
|
+
<header>
|
|
37
|
+
<h1 id='content-title'>Source: common.js</h1>
|
|
38
|
+
</header>
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
<figure class='source-code-wrapper'>
|
|
45
|
+
<pre class="prettyprint source linenums"><code>/**
|
|
46
|
+
* Commonly used match pattern
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export default {
|
|
50
|
+
num: {
|
|
51
|
+
type: 'num',
|
|
52
|
+
match: /(\.e?|\b)\d(e-|[\d.oxa-fA-F_])*(\.|\b)/g
|
|
53
|
+
},
|
|
54
|
+
str: {
|
|
55
|
+
type: 'str',
|
|
56
|
+
match: /(["'])(\\[^]|(?!\1)[^\r\n\\])*\1?/g
|
|
57
|
+
},
|
|
58
|
+
strDouble: {
|
|
59
|
+
type: 'str',
|
|
60
|
+
match: /"((?!")[^\r\n\\]|\\[^])*"?/g
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
</code></pre>
|
|
64
|
+
</figure>
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
</main>
|
|
71
|
+
<footer id='page-footer'>
|
|
72
|
+
<small>Documentation generated by <a href='https://github.com/jsdoc/jsdoc' rel='noreferrer noopener' target='_blank'>JSDoc 3.6.7</a>.</small>
|
|
73
|
+
<small style='margin-left: 1em;'>Design by <a
|
|
74
|
+
href='https://github.com/AlexisPuga'
|
|
75
|
+
target='_blank'
|
|
76
|
+
rel="noopener noreferrer">Alexis Puga</a>.</small>
|
|
77
|
+
</footer>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<script src='js/jsdoc-template.js' async></script>
|
|
81
|
+
|
|
82
|
+
<script src='js/prettify.min.js' async></script>
|
|
83
|
+
<link rel='stylesheet' type='text/css' href='css/tomorrow.min.css'/>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
</body>
|
|
87
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{border:0;margin:0;padding:0}:focus,a:active,a:hover{outline:0}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none}ol,ul{list-style:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}button::-moz-focus-inner{border:0}[data-css-icon]{position:relative}[data-css-icon=menu]:after,[data-css-icon]:before{position:absolute;top:50%;left:50%}[data-css-icon=menu]:after,[data-css-icon=menu]:before{border-style:solid;border-width:.2em 0;width:1em;height:.7em;margin-left:-.55em}[data-css-icon=menu]:before{content:"";margin-top:-.55em}[data-css-icon=menu]:after{content:"";border-bottom:0;margin-top:-.1em}.is-active[data-css-icon=menu]:before{content:unset}html{background-color:#06060c}#content-nav li:not(.is-active),#page-header,#page-header a,#page-header h3,.signature-attributes,.type-signature,.variation,body,html{color:#5d6177}a{color:#1676aa}#content-nav,#content-nav>header{background:inherit}dl{border-left:2px solid rgba(0,0,0,.1)}dt.tag-deprecated,dt.tag-deprecated+dd{border-left:2px solid red}#page-footer,.doc>.member,.doc>h3,article,button{border:1px solid rgba(0,0,0,.03)}table table{border-left:2px solid rgba(0,0,0,.05)}#page-footer,.doc>.member,article{border-width:1px 0 0}.doc>h3{border-width:0 0 1px}#content-nav li:before,#page-header li.is-active a,#page-title,#page-title a,.doc h2>a,h4.name>a,input[type=search]{color:inherit}#page-header,button.is-active{background:#181826;color:#d8d8d8}#page-header :focus,#page-header a:hover,#page-header a b{color:#fff}#content-nav li:not(.is-active) abbr,input[type=search]{background-color:hsla(0,0%,100%,.03)}#content-nav li:not(.is-active) abbr:hover,input[type=search]:focus{background:hsla(0,0%,100%,.05)}#page-header li.is-active abbr{background:#fff;color:#000}.code-caption,table{background-color:#f6f6f6}.doc h3,.prettyprint.linenums li.selected,body,button{background-color:#fbfbfb}.class-description,.example:hover .code-caption,.summary,button,code,dt,h1,h2,h3,h4,h5,h6,kbd,small a,thead,tr:focus,tr:hover{color:#1f1e26}#readme :not(pre)>code,.example:hover>*,kbd,samp,tbody tr:focus *,tbody tr:hover *{background:#f3f3f3}body{max-width:1980px;width:100%;margin:auto;overflow-x:hidden}body,html{font:100% DejaVu Sans,helvetica,arial,sans-serif;line-height:1.7;text-align:left}a{text-decoration:none}a:focus,a:hover{text-decoration:underline}nav b{font-weight:inherit}#page-header li.is-active a{font-weight:bolder}input[type=search]{width:100%;font-family:inherit;padding:8px 20px}aside{font-size:1rem}button{cursor:pointer;border-radius:0}img{max-width:100%}button.has-icon{width:60px;height:60px}h2,h3,h4,h5,h6{font-weight:bolder}article:not(.doc) h2,article:not(.doc) h3,article:not(.doc) h4,dt,h1,nav>h2,th{font-weight:400}h1,h2{font-size:200%}#readme h2,#readme h3,h3,h4{font-size:150%}#readme h4,#readme h5,h5,h6{font-size:125%}h6{font-size:100%}.doc h3,.doc h5,.doc h6,nav>h3{text-transform:uppercase}nav>h2{font-size:150%;padding:20px 0}nav>h3{font-size:100%}nav>h3:not(:first-of-type){margin-top:40px}.doc h3,.doc h4,.doc h5,dt,th{font-size:100%}.table-wrapper{width:100%;overflow:auto}table{margin-top:10px;border-collapse:separate;width:100%}td,th{padding:10px 2rem;vertical-align:top;word-break:normal}var{font-weight:bolder}samp{font-style:italic}kbd,var{font-style:normal}#readme :not(pre)>code,kbd,samp{padding:0 10px}table table{margin-top:20px}.doc table h6,code{font-size:100%}.doc h2,code,h4.name,kbd,samp,var{font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace}#page-wrapper{display:flex;width:100%}#main-wrapper{width:calc(100% - 320px);position:relative}#content{min-height:100vh;width:100%}#content>header{padding:50px}.has-icon{text-indent:100%;white-space:nowrap;overflow:hidden}#page-header{position:sticky;top:0;padding:20px;width:320px;height:100vh;overflow-y:auto;box-sizing:border-box}#page-title{padding:20px 0;text-align:center}#content-nav{padding-bottom:20px}#content-nav>header{position:sticky;top:-20px;padding:15px 0;z-index:1}#content-nav>ul{list-style:none;white-space:nowrap;overflow:hidden;padding-left:0}#content-nav li{position:relative}#page-footer{padding:2.5% 5%;text-align:right}small{font-size:1rem}ol{list-style:decimal-leading-zero}ul{list-style:disc}dl,ol,ul{box-sizing:border-box;margin-top:2rem;margin-bottom:2rem;padding-left:2rem}.doc>h3{position:sticky;top:0;z-index:1;margin-bottom:-1px}.container-overview,.member{overflow:hidden}#readme,.doc>.member{max-width:1024px;margin-left:auto;margin-right:auto}#readme{padding:7.5% 10% 10%}.doc>.member{padding-bottom:5%;padding-top:10%}h3~.param-desc{margin-bottom:2rem}.member>:not(h5):not(h4):not(h3):not(h2):not(.param-desc):not(:last-child):not(.example-wrapper){margin-bottom:50px}#readme h2,#readme h3{margin-top:100px}#readme h4,#readme h5,#readme h6,.container-overview>.member>:first-child:not(.description),.container-overview>:first-child:not(.description):not(.member),.member h2{margin-top:50px}.doc:not([data-kind=globalobj])>h3{margin-top:5%}.container-overview>:not(h5):not(h4):not(h3):not(h2):not(:last-child){margin-bottom:50px}.member>:last-child{margin-bottom:0}dd{margin-bottom:2em}dd+dd{margin-top:-2em}table h6{padding-top:2em}#readme p{margin-bottom:2em;max-width:55em}#readme br,.member>.description br{margin-bottom:5%}.prettyprint{white-space:pre-wrap;overflow:hidden;padding:4% 5% 5%;box-sizing:border-box;font-size:80%}.source-code-wrapper>.source{min-width:720px}.code-caption{padding:1rem 2rem 0}.example-wrapper,.source-code-wrapper{overflow:auto}.example{position:relative;width:100%;display:block;margin-top:2rem;min-width:720px}#readme p:first-of-type,.class-description,.description:not(td),.summary{font-size:125%}.signature-attributes{font-size:50%}.type-signature{font-size:60%;font-weight:lighter;position:relative}h4.name{font-size:200%}.doc{padding:50px;width:100%;box-sizing:border-box;overflow-wrap:break-word}.signature{font-weight:lighter;margin-left:10px;font-size:80%}.disabled{text-decoration:line-through}.important{font-weight:bolder}dt.tag-deprecated,dt.tag-deprecated+dd{margin-left:calc(-2rem - 2px);padding-left:2rem}.is-searching nav li:not(.matches),.is-searching nav ul:not(.matches){display:none}.is-searching nav ul.matches{margin-top:0;margin-bottom:0}.is-searching nav h3{display:none}#content-nav li abbr{font-size:50%;text-decoration:none;text-align:center;font-weight:bolder;text-transform:uppercase;display:inline-block;vertical-align:middle;margin-right:1em;width:4em;white-space:nowrap;overflow:hidden;padding-top:1px}@media (max-width:767px){h4.name{font-size:150%}.signature{vertical-align:baseline}.description:not(td),.signature{font-size:100%}.doc>.member{padding:50px 0;margin:0}#content>header,#readme,.doc{padding:30px}#content>header{padding-right:60px}.prettyprint{padding:2rem}}@media (max-width:1359px){#page-header{position:fixed;top:0;right:0;bottom:0;z-index:998;order:2}body:not(.is-page-header-open) #page-header{opacity:0;visibility:hidden}#page-header>*{transition:all .35s ease;opacity:1;transform:translateX(0)}body:not(.is-page-header-open) #page-header>*{opacity:0;transform:translateX(25px)}#main-wrapper{width:100%}#page-header-opener{position:fixed;top:0;right:0;z-index:998}input[type=search]{padding-left:15px;padding-right:60px}}@media (min-width:1360px){article>.member{padding-bottom:10%}#page-header-opener{display:none}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */
|
|
2
|
+
.prettyprint{background:#f6f6f6;font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln,{color:inherit}ol.linenums{margin-top:0;margin-bottom:0;color:#8e908c}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:inherit;list-style-type:decimal}@media screen{.str{color:#718c00}.kwd{color:#8959a8}.com{color:#8e908c}.typ{color:#4271ae}.lit{color:#f5871f}.pun,.opn,.clo{color:inherit}.tag{color:#c82829}.atn{color:#f5871f}.atv{color:#3e999f}.dec{color:#f5871f}.var{color:#c82829}.fun{color:#4271ae}}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang='en'>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset='utf-8'/>
|
|
5
|
+
<title>Module: detect
|
|
6
|
+
Language detector - JSDoc</title>
|
|
7
|
+
<link type='text/css' rel='stylesheet' href='css/jsdoc-template.css'/>
|
|
8
|
+
<meta name="viewport" content="width=device-width,
|
|
9
|
+
initial-scale=1"/>
|
|
10
|
+
</head>
|
|
11
|
+
<body data-gs='{"openPageHeader": "is-page-header-open", "searching": "is-searching"}'>
|
|
12
|
+
<div id='page-wrapper'>
|
|
13
|
+
<header id='page-header' data-gs-target='openPageHeader'>
|
|
14
|
+
|
|
15
|
+
<h1 id='page-title'>
|
|
16
|
+
<a href="/">JSDoc</a>
|
|
17
|
+
</h1>
|
|
18
|
+
|
|
19
|
+
<nav id='content-nav'>
|
|
20
|
+
<header>
|
|
21
|
+
<div id='search'>
|
|
22
|
+
<div class='textfield-wrapper'>
|
|
23
|
+
<input type='search' name='q' placeholder='Search...' data-internal-search='#content-nav li a' data-gs-search='searching'/>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</header>
|
|
27
|
+
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><abbr title="Module">Mod</abbr> <a href="detect%250ALanguage%2520detectormodule_.html">detect
|
|
28
|
+
Language detector</a></li><li><abbr title="Module">Mod</abbr> <a href="index%250ABase%2520scriptmodule_.html">index
|
|
29
|
+
Base script</a></li><li><abbr title="Module">Mod</abbr> <a href="term%250ATerminal%2520adaptormodule_.html">term
|
|
30
|
+
Terminal adaptor</a></li></ul>
|
|
31
|
+
</nav>
|
|
32
|
+
</header>
|
|
33
|
+
<div id='main-wrapper'>
|
|
34
|
+
<button id='page-header-opener' title='Toggle left bar' class='has-icon' data-css-icon='menu' type='button' data-gs-toggle='openPageHeader'>Toggle left bar</button>
|
|
35
|
+
<main id='content'>
|
|
36
|
+
<header>
|
|
37
|
+
<h1 id='content-title'>Module: detect
|
|
38
|
+
Language detector</h1>
|
|
39
|
+
</header>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
<article class='doc' data-kind='module' id='detect
|
|
45
|
+
Language detector'>
|
|
46
|
+
|
|
47
|
+
<header>
|
|
48
|
+
|
|
49
|
+
<h2><a href='#detect
|
|
50
|
+
Language detector'>detect
|
|
51
|
+
Language detector</a></h2>
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
</header>
|
|
55
|
+
|
|
56
|
+
<div class="container-overview">
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<dl class="details">
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
<dt class="tag-source">Source:</dt>
|
|
89
|
+
<dd class="tag-source">
|
|
90
|
+
<a href="detect.js.html">detect.js</a>, <a href="detect.js.html#line1">line 1</a>
|
|
91
|
+
</dd>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
</dl>
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
<h3 class="subsection-title">Methods</h3>
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
<div id="~detectLanguageTrytofindthelanguagethegivencodebelongto" class='method member'>
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
<h4 class="name"><span class="type-signature"></span><a href='#~detectLanguageTrytofindthelanguagethegivencodebelongto'>detectLanguage
|
|
133
|
+
Try to find the language the given code belong to</a><span class="signature">(code)</span><span class="type-signature"> → {String}</span></h4>
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
<dl class="details">
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
<dt class="tag-source">Source:</dt>
|
|
170
|
+
<dd class="tag-source">
|
|
171
|
+
<a href="detect.js.html">detect.js</a>, <a href="detect.js.html#line30">line 30</a>
|
|
172
|
+
</dd>
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
</dl>
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
<h5>Parameters:</h5>
|
|
193
|
+
|
|
194
|
+
<div class='table-wrapper'>
|
|
195
|
+
<table class="params">
|
|
196
|
+
<thead>
|
|
197
|
+
<tr>
|
|
198
|
+
|
|
199
|
+
<th>Name</th>
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
<th>Type</th>
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
<th class="last">Description</th>
|
|
207
|
+
</tr>
|
|
208
|
+
</thead>
|
|
209
|
+
|
|
210
|
+
<tbody>
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
<tr>
|
|
214
|
+
|
|
215
|
+
<th class="name" scope='row'><var>code</var>
|
|
216
|
+
<br/>
|
|
217
|
+
</th>
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
<td class="type">
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
<span class="param-type">String</span>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
</td>
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
<td class="description last">The code</td>
|
|
232
|
+
</tr>
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
</tbody>
|
|
236
|
+
</table>
|
|
237
|
+
</div>
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
<h5>Returns:</h5>
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
<div class="param-desc">
|
|
257
|
+
The language of the code
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
<dl>
|
|
263
|
+
<dt>
|
|
264
|
+
Type
|
|
265
|
+
</dt>
|
|
266
|
+
<dd>
|
|
267
|
+
|
|
268
|
+
<span class="param-type">String</span>
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
</dd>
|
|
272
|
+
</dl>
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
</div>
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
</article>
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
</main>
|
|
293
|
+
<footer id='page-footer'>
|
|
294
|
+
<small>Documentation generated by <a href='https://github.com/jsdoc/jsdoc' rel='noreferrer noopener' target='_blank'>JSDoc 3.6.7</a>.</small>
|
|
295
|
+
<small style='margin-left: 1em;'>Design by <a
|
|
296
|
+
href='https://github.com/AlexisPuga'
|
|
297
|
+
target='_blank'
|
|
298
|
+
rel="noopener noreferrer">Alexis Puga</a>.</small>
|
|
299
|
+
</footer>
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
<script src='js/jsdoc-template.js' async></script>
|
|
303
|
+
|
|
304
|
+
<script src='js/prettify.min.js' async></script>
|
|
305
|
+
<link rel='stylesheet' type='text/css' href='css/tomorrow.min.css'/>
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
</body>
|
|
309
|
+
</html>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang='en'>
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset='utf-8'/>
|
|
6
|
+
<title>Source: detect.js - JSDoc</title>
|
|
7
|
+
<link type='text/css' rel='stylesheet' href='css/jsdoc-template.css'/>
|
|
8
|
+
<meta name="viewport" content="width=device-width,
|
|
9
|
+
initial-scale=1"/>
|
|
10
|
+
</head>
|
|
11
|
+
<body data-gs='{"openPageHeader": "is-page-header-open", "searching": "is-searching"}'>
|
|
12
|
+
<div id='page-wrapper'>
|
|
13
|
+
<header id='page-header' data-gs-target='openPageHeader'>
|
|
14
|
+
|
|
15
|
+
<h1 id='page-title'>
|
|
16
|
+
<a href="/">JSDoc</a>
|
|
17
|
+
</h1>
|
|
18
|
+
|
|
19
|
+
<nav id='content-nav'>
|
|
20
|
+
<header>
|
|
21
|
+
<div id='search'>
|
|
22
|
+
<div class='textfield-wrapper'>
|
|
23
|
+
<input type='search' name='q' placeholder='Search...' data-internal-search='#content-nav li a' data-gs-search='searching'/>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</header>
|
|
27
|
+
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><abbr title="Module">Mod</abbr> <a href="detect%250ALanguage%2520detectormodule_.html">detect
|
|
28
|
+
Language detector</a></li><li><abbr title="Module">Mod</abbr> <a href="index%250ABase%2520scriptmodule_.html">index
|
|
29
|
+
Base script</a></li><li><abbr title="Module">Mod</abbr> <a href="term%250ATerminal%2520adaptormodule_.html">term
|
|
30
|
+
Terminal adaptor</a></li></ul>
|
|
31
|
+
</nav>
|
|
32
|
+
</header>
|
|
33
|
+
<div id='main-wrapper'>
|
|
34
|
+
<button id='page-header-opener' title='Toggle left bar' class='has-icon' data-css-icon='menu' type='button' data-gs-toggle='openPageHeader'>Toggle left bar</button>
|
|
35
|
+
<main id='content'>
|
|
36
|
+
<header>
|
|
37
|
+
<h1 id='content-title'>Source: detect.js</h1>
|
|
38
|
+
</header>
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
<figure class='source-code-wrapper'>
|
|
45
|
+
<pre class="prettyprint source linenums"><code>/**
|
|
46
|
+
* @module detect
|
|
47
|
+
* Language detector
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
const languages = [
|
|
51
|
+
['bash', [/#!(\/usr)?\/bin\/bash/g, 500], [/\b(if|elif|then|fi|echo)\b|\$/g, 10]],
|
|
52
|
+
['html', [/<\/?[a-z-]+[^\n>]*>/g, 10], [/^\s+<!DOCTYPE\s+html/g, 500]],
|
|
53
|
+
['http', [/^(GET|HEAD|POST|PUT|DELETE|PATCH|HTTP)\b/g, 500]],
|
|
54
|
+
['js', [/\b(console|await|async|function|export|import|this|class|for|let|const|map|join|require)\b/g, 10]],
|
|
55
|
+
['ts', [/\b(console|await|async|function|export|import|this|class|for|let|const|map|join|require|implements|interface|namespace)\b/g, 10]],
|
|
56
|
+
['py', [/\b(def|print|class|and|or|lambda)\b/g, 10]],
|
|
57
|
+
['sql', [/\b(SELECT|INSERT|FROM)\b/g, 50]],
|
|
58
|
+
['pl', [/#!(\/usr)?\/bin\/perl/g, 500], [/\b(use|print)\b|\$/g, 10]],
|
|
59
|
+
['lua', [/#!(\/usr)?\/bin\/lua/g, 500]],
|
|
60
|
+
['make', [/\b(ifneq|endif|if|elif|then|fi|echo|.PHONY|^[a-z]+ ?:$)\b|\$/gm, 10]],
|
|
61
|
+
['uri', [/https?:|mailto:|tel:|ftp:/g, 30]],
|
|
62
|
+
['css', [/^(@import|@page|@media|(\.|#)[a-z]+)/gm, 20]],
|
|
63
|
+
['diff', [/^[+><-]/gm, 10], [/^@@ ?[-+,0-9 ]+ ?@@/gm, 25]],
|
|
64
|
+
['md', [/^(>|\t\*|\t\d+.)/gm, 10], [/\[.*\](.*)/g, 10]],
|
|
65
|
+
['docker', [/^(FROM|ENTRYPOINT|RUN)/gm, 500]],
|
|
66
|
+
['xml', [/<\/?[a-z-]+[^\n>]*>/g, 10], [/^<\?xml/g, 500]],
|
|
67
|
+
['c', [/#include\b|\bprintf\s+\(/g, 100]],
|
|
68
|
+
['rs', [/^\s+(use|fn|mut|match)\b/gm, 100]],
|
|
69
|
+
['go', [/\b(func|fmt|package)\b/g, 100]],
|
|
70
|
+
['java', [/^import\s+java/gm, 500]],
|
|
71
|
+
['asm', [/^(section|global main|extern|\t(call|mov|ret))/gm, 100]],
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @function detectLanguage
|
|
76
|
+
* Try to find the language the given code belong to
|
|
77
|
+
* @param {String} code The code
|
|
78
|
+
* @returns {String} The language of the code
|
|
79
|
+
*/
|
|
80
|
+
export const detectLanguage = code => {
|
|
81
|
+
return (languages
|
|
82
|
+
.map(([lang, ...features]) => [
|
|
83
|
+
features.reduce((acc, [match, score]) => acc + [...code.matchAll(match)].length * score, 0),
|
|
84
|
+
lang
|
|
85
|
+
])
|
|
86
|
+
.filter(([score, lang]) => score > 10)
|
|
87
|
+
.sort((a, b) => b[0] - a[0])[0]?.[1] || 'plain');
|
|
88
|
+
}
|
|
89
|
+
</code></pre>
|
|
90
|
+
</figure>
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
</main>
|
|
97
|
+
<footer id='page-footer'>
|
|
98
|
+
<small>Documentation generated by <a href='https://github.com/jsdoc/jsdoc' rel='noreferrer noopener' target='_blank'>JSDoc 3.6.7</a>.</small>
|
|
99
|
+
<small style='margin-left: 1em;'>Design by <a
|
|
100
|
+
href='https://github.com/AlexisPuga'
|
|
101
|
+
target='_blank'
|
|
102
|
+
rel="noopener noreferrer">Alexis Puga</a>.</small>
|
|
103
|
+
</footer>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
<script src='js/jsdoc-template.js' async></script>
|
|
107
|
+
|
|
108
|
+
<script src='js/prettify.min.js' async></script>
|
|
109
|
+
<link rel='stylesheet' type='text/css' href='css/tomorrow.min.css'/>
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
</body>
|
|
113
|
+
</html>
|