Spaces:
Runtime error
Runtime error
Commit ·
b39e94f
1
Parent(s): 5877c29
commit 000401
Browse files- templates/index.html +29 -20
templates/index.html
CHANGED
|
@@ -87,35 +87,44 @@
|
|
| 87 |
});
|
| 88 |
};
|
| 89 |
|
| 90 |
-
|
| 91 |
-
python: ['def ', 'print(', 'import ', 'class '],
|
| 92 |
-
javascript: ['function ', 'console.log(', 'let ', 'const ', 'document.getElementById'],
|
| 93 |
-
typescript: ['interface ', 'type ', '
|
| 94 |
java: ['import java.', 'ArrayList<', 'System.out', 'void main(', 'public class', 'new '],
|
| 95 |
-
c: ['#include <stdio.h>', 'printf(', 'scanf(', 'int main('],
|
| 96 |
-
cpp: ['#include', 'std::', 'cout <<', 'cin >>'],
|
| 97 |
bash: ['#!/bin/bash', 'echo ', 'cd ', 'ls', 'pwd'],
|
| 98 |
-
shell: ['#!/bin/sh', 'echo ', 'export ', 'fi'],
|
| 99 |
sql: ['SELECT ', 'INSERT ', 'UPDATE ', 'FROM ', 'WHERE ', 'JOIN ', 'DELETE '],
|
| 100 |
-
html: ['<!DOCTYPE html>', '<html>', '<div>', '<script>'],
|
| 101 |
-
css: ['color:', 'font-size:', 'margin:', 'padding:'],
|
| 102 |
-
go: ['package main', 'fmt.Println', 'func main()'],
|
| 103 |
-
php: ['<?php', 'echo ', '$_', '->'],
|
| 104 |
-
ruby: ['def ', 'puts ', 'end', 'class '],
|
| 105 |
-
kotlin: ['fun main(', 'val ', 'var ', 'println('],
|
| 106 |
-
swift: ['import SwiftUI', 'struct ', 'var body:', 'Text('],
|
| 107 |
-
rust: ['fn main()', 'println!', 'let mut'],
|
| 108 |
-
scala: ['object ', 'def ', 'val ', 'println('],
|
| 109 |
-
dart: ['void main()', 'print(', 'var ', 'class '],
|
| 110 |
};
|
| 111 |
|
| 112 |
const detectLanguageByKeywords = (code) => {
|
|
|
|
|
|
|
|
|
|
| 113 |
for (const [lang, keywords] of Object.entries(language_keywords)) {
|
| 114 |
-
|
| 115 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
}
|
| 117 |
}
|
| 118 |
-
|
|
|
|
| 119 |
};
|
| 120 |
|
| 121 |
const renderCode = (text) => {
|
|
|
|
| 87 |
});
|
| 88 |
};
|
| 89 |
|
| 90 |
+
const language_keywords = {
|
| 91 |
+
python: ['def ', 'print(', 'import ', 'class ', 'self', 'elif', 'None'],
|
| 92 |
+
javascript: ['function ', 'console.log(', 'let ', 'const ', 'document.getElementById', '=>'],
|
| 93 |
+
typescript: ['interface ', 'type ', ': string', ': number', 'let ', 'const '],
|
| 94 |
java: ['import java.', 'ArrayList<', 'System.out', 'void main(', 'public class', 'new '],
|
| 95 |
+
c: ['#include <stdio.h>', 'printf(', 'scanf(', 'int main(', 'return 0;'],
|
| 96 |
+
cpp: ['#include', 'std::', 'cout <<', 'cin >>', 'using namespace std'],
|
| 97 |
bash: ['#!/bin/bash', 'echo ', 'cd ', 'ls', 'pwd'],
|
| 98 |
+
shell: ['#!/bin/sh', 'echo ', 'export ', 'fi', 'if ['],
|
| 99 |
sql: ['SELECT ', 'INSERT ', 'UPDATE ', 'FROM ', 'WHERE ', 'JOIN ', 'DELETE '],
|
| 100 |
+
html: ['<!DOCTYPE html>', '<html>', '<div>', '<script>', '<head>', '<body>'],
|
| 101 |
+
css: ['color:', 'font-size:', 'margin:', 'padding:', 'display:', 'position:'],
|
| 102 |
+
go: ['package main', 'fmt.Println(', 'func main()', 'import "fmt"'],
|
| 103 |
+
php: ['<?php', 'echo ', '$_', '->', '$_', 'function '],
|
| 104 |
+
ruby: ['def ', 'puts ', 'end', 'class ', ':symbol', 'require '],
|
| 105 |
+
kotlin: ['fun main(', 'val ', 'var ', 'println(', 'object '],
|
| 106 |
+
swift: ['import SwiftUI', 'struct ', 'var body:', 'Text(', 'let '],
|
| 107 |
+
rust: ['fn main()', 'println!', 'let mut', '::std', 'use '],
|
| 108 |
+
scala: ['object ', 'def ', 'val ', 'println(', 'case class'],
|
| 109 |
+
dart: ['void main()', 'print(', 'var ', 'class ', 'import '],
|
| 110 |
};
|
| 111 |
|
| 112 |
const detectLanguageByKeywords = (code) => {
|
| 113 |
+
let maxMatches = 0;
|
| 114 |
+
let bestMatch = 'plaintext';
|
| 115 |
+
|
| 116 |
for (const [lang, keywords] of Object.entries(language_keywords)) {
|
| 117 |
+
const matches = keywords.reduce(
|
| 118 |
+
(count, keyword) => count + (code.includes(keyword) ? 1 : 0),
|
| 119 |
+
0
|
| 120 |
+
);
|
| 121 |
+
if (matches > maxMatches) {
|
| 122 |
+
maxMatches = matches;
|
| 123 |
+
bestMatch = lang;
|
| 124 |
}
|
| 125 |
}
|
| 126 |
+
|
| 127 |
+
return bestMatch;
|
| 128 |
};
|
| 129 |
|
| 130 |
const renderCode = (text) => {
|