@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.
Files changed (133) hide show
  1. package/README.md +65 -14
  2. package/doc/common.js.html +87 -0
  3. package/doc/css/jsdoc-template.css +1 -0
  4. package/doc/css/tomorrow.min.css +2 -0
  5. package/doc/detect%0ALanguage%20detectormodule_.html +309 -0
  6. package/doc/detect.js.html +113 -0
  7. package/doc/global.html +1826 -0
  8. package/doc/index%0ABase%20scriptmodule_.html +1179 -0
  9. package/doc/index.html +402 -0
  10. package/doc/index.js.html +209 -0
  11. package/doc/js/jsdoc-template.js +2 -0
  12. package/doc/js/jsdoc-template.js.map +1 -0
  13. package/doc/js/prettify.min.js +47 -0
  14. package/doc/term%0ATerminal%20adaptormodule_.html +596 -0
  15. package/doc/term.js.html +108 -0
  16. package/examples/{helper/data.js → data.js} +28 -16
  17. package/examples/deno.js +53 -7
  18. package/examples/index.html +103 -37
  19. package/examples/languages/test.c +1 -1
  20. package/examples/languages/test.go +4 -4
  21. package/examples/languages/test.html +1 -1
  22. package/examples/languages/test.java +3 -3
  23. package/examples/node.js +1 -1
  24. package/examples/worker.html +1 -0
  25. package/jsdoc.json +16 -0
  26. package/package.json +42 -38
  27. package/src/color.js +11 -0
  28. package/src/detect.js +21 -5
  29. package/src/index.js +55 -40
  30. package/src/languages/c.js +1 -1
  31. package/src/languages/go.js +1 -1
  32. package/src/languages/java.js +1 -1
  33. package/src/languages/js.js +1 -1
  34. package/src/languages/py.js +1 -1
  35. package/src/languages/rs.js +1 -1
  36. package/src/terminal.js +42 -0
  37. package/src/themes/atom-dark.css +1 -1
  38. package/src/themes/atom-dark.js +18 -0
  39. package/src/themes/default.css +4 -9
  40. package/src/themes/default.js +16 -24
  41. package/typedef.js +34 -0
  42. package/assets/screenshot.png +0 -0
  43. package/dist/common.js +0 -1
  44. package/dist/detect.js +0 -1
  45. package/dist/index.js +0 -3
  46. package/dist/languages/asm.js +0 -1
  47. package/dist/languages/bash.js +0 -1
  48. package/dist/languages/bf.js +0 -1
  49. package/dist/languages/c.js +0 -1
  50. package/dist/languages/css.js +0 -1
  51. package/dist/languages/csv.js +0 -1
  52. package/dist/languages/diff.js +0 -1
  53. package/dist/languages/docker.js +0 -1
  54. package/dist/languages/git.js +0 -1
  55. package/dist/languages/go.js +0 -1
  56. package/dist/languages/html.js +0 -1
  57. package/dist/languages/http.js +0 -1
  58. package/dist/languages/ini.js +0 -1
  59. package/dist/languages/java.js +0 -1
  60. package/dist/languages/js.js +0 -1
  61. package/dist/languages/js_template_literals.js +0 -1
  62. package/dist/languages/jsdoc.js +0 -1
  63. package/dist/languages/json.js +0 -1
  64. package/dist/languages/leanpub-md.js +0 -2
  65. package/dist/languages/log.js +0 -1
  66. package/dist/languages/lua.js +0 -1
  67. package/dist/languages/make.js +0 -1
  68. package/dist/languages/md.js +0 -2
  69. package/dist/languages/pl.js +0 -1
  70. package/dist/languages/plain.js +0 -1
  71. package/dist/languages/py.js +0 -1
  72. package/dist/languages/regex.js +0 -1
  73. package/dist/languages/rs.js +0 -1
  74. package/dist/languages/sql.js +0 -1
  75. package/dist/languages/todo.js +0 -1
  76. package/dist/languages/toml.js +0 -1
  77. package/dist/languages/ts.js +0 -1
  78. package/dist/languages/uri.js +0 -1
  79. package/dist/languages/xml.js +0 -1
  80. package/dist/languages/yaml.js +0 -1
  81. package/dist/node/common.js +0 -1
  82. package/dist/node/detect.js +0 -1
  83. package/dist/node/index.js +0 -3
  84. package/dist/node/languages/asm.js +0 -1
  85. package/dist/node/languages/bash.js +0 -1
  86. package/dist/node/languages/bf.js +0 -1
  87. package/dist/node/languages/c.js +0 -1
  88. package/dist/node/languages/css.js +0 -1
  89. package/dist/node/languages/csv.js +0 -1
  90. package/dist/node/languages/diff.js +0 -1
  91. package/dist/node/languages/docker.js +0 -1
  92. package/dist/node/languages/git.js +0 -1
  93. package/dist/node/languages/go.js +0 -1
  94. package/dist/node/languages/html.js +0 -1
  95. package/dist/node/languages/http.js +0 -1
  96. package/dist/node/languages/ini.js +0 -1
  97. package/dist/node/languages/java.js +0 -1
  98. package/dist/node/languages/js.js +0 -1
  99. package/dist/node/languages/js_template_literals.js +0 -1
  100. package/dist/node/languages/jsdoc.js +0 -1
  101. package/dist/node/languages/json.js +0 -1
  102. package/dist/node/languages/leanpub-md.js +0 -2
  103. package/dist/node/languages/log.js +0 -1
  104. package/dist/node/languages/lua.js +0 -1
  105. package/dist/node/languages/make.js +0 -1
  106. package/dist/node/languages/md.js +0 -2
  107. package/dist/node/languages/pl.js +0 -1
  108. package/dist/node/languages/plain.js +0 -1
  109. package/dist/node/languages/py.js +0 -1
  110. package/dist/node/languages/regex.js +0 -1
  111. package/dist/node/languages/rs.js +0 -1
  112. package/dist/node/languages/sql.js +0 -1
  113. package/dist/node/languages/todo.js +0 -1
  114. package/dist/node/languages/toml.js +0 -1
  115. package/dist/node/languages/ts.js +0 -1
  116. package/dist/node/languages/uri.js +0 -1
  117. package/dist/node/languages/xml.js +0 -1
  118. package/dist/node/languages/yaml.js +0 -1
  119. package/dist/node/term.js +0 -1
  120. package/dist/node/themes/default.js +0 -1
  121. package/dist/term.js +0 -1
  122. package/dist/themes/atom-dark.css +0 -1
  123. package/dist/themes/dark.css +0 -1
  124. package/dist/themes/default.css +0 -1
  125. package/dist/themes/default.js +0 -1
  126. package/dist/themes/github-dark.css +0 -1
  127. package/dist/themes/github-dim.css +0 -1
  128. package/dist/themes/github-light.css +0 -1
  129. package/dist/themes/visual-studio-dark.css +0 -1
  130. package/examples/dist.html +0 -27
  131. package/examples/helper/elm.js +0 -58
  132. package/examples/style.css +0 -28
  133. package/src/term.js +0 -19
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Speed Highlight JS
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/speed_highlight_js/dist/index.js'
53
- import ... from 'https://cdn.jsdelivr.net/gh/matubu/speed_highlight_js/dist/index.js'
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/term.js';
72
+ import { setTheme, printHighlight } from 'https://x.nest.land/speed_highlight_js/dist/terminal.js';
62
73
 
63
- await setTheme('default');
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/speed_highlight_js)
80
+ Use the [npm package](https://www.npmjs.com/package/@speed-highlight/core)
70
81
 
71
82
  ```bash
72
- npm install speed_highlight_js
83
+ npm i @speed-highlight/core
73
84
  ```
74
85
 
75
86
  ```js
76
- const { setTheme, printHighlight } = require('speed_highlight_js/dist/node/term.js');
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
- setTheme('default')
79
- printHighlight('console.log("hello")', 'js');
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
- ## Wiki 👀
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"> &rarr; {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', [/&lt;\/?[a-z-]+[^\n>]*>/g, 10], [/^\s+&lt;!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', [/^[+>&lt;-]/gm, 10], [/^@@ ?[-+,0-9 ]+ ?@@/gm, 25]],
64
+ ['md', [/^(>|\t\*|\t\d+.)/gm, 10], [/\[.*\](.*)/g, 10]],
65
+ ['docker', [/^(FROM|ENTRYPOINT|RUN)/gm, 500]],
66
+ ['xml', [/&lt;\/?[a-z-]+[^\n>]*>/g, 10], [/^&lt;\?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>