-
Notifications
You must be signed in to change notification settings - Fork 0
/
sintaxe.js
70 lines (57 loc) · 1.85 KB
/
sintaxe.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const areaCodigo = document.querySelector('.area');
const linguaguem = document.querySelector('#seletor');
const botao = document.querySelector('.visualizar');
const tituloProjeto = document.querySelector('.nome__projeto');
const descricaoProjeto = document.querySelector('#descricao__projeto');
const salvaProjeto= document.querySelector('.salva__projeto');
function mudaLinguagem() {
const codigo = areaCodigo.querySelector('code').innerText;
areaCodigo.innerHTML = `<code class="preview hljs ${linguaguem.value}" contenteditable="true" aria-label="editor"></code>`;
areaCodigo.firstChild.innerText = codigo;
}
linguaguem.addEventListener('change', () => {
mudaLinguagem();
});
botao.addEventListener('click', ()=> {
const codigo = areaCodigo.querySelector('code');
hljs.highlightBlock(codigo);
});
salvaProjeto.addEventListener('click', () => {
if (typeof(Storage) !== "undefined") {
console.log('Yay, support!');
const projeto = montaProjeto();
salvaLocalStorage(projeto);
} else {
console.log('Nay, no support!');
}
})
function montaProjeto() {
let projeto = {
'id': atribuiId(),
'detalhesDoProjeto': {
'nomeDoProjeto': tituloProjeto.value,
'descricaoDoProjeto': descricaoProjeto.value,
'linguagem': linguaguem.value,
'codigo': areaCodigo.querySelector('code').innerText
}
}
return projeto
}
let numeroId = 1
if(localStorage.length > 0) {
numeroId = localStorage.length;
}
function atribuiId() {
if(localStorage.length == 0) {
return 0
} else {
if(localStorage.length == numeroId) {
let novoId = numeroId;
numeroId++;
return novoId;
}
}
}
function salvaLocalStorage(objetoJson) {
localStorage.setItem(objetoJson.id, JSON.stringify(objetoJson));
}