INÍCIO
22
.luarc.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"Generator": [
|
||||
"Quarto",
|
||||
"This file provides type information for Lua completion and diagnostics.",
|
||||
"Quarto will automatically update this file to reflect the current path",
|
||||
"of your Quarto installation, and the file will also be added to .gitignore",
|
||||
"since it points to the absolute path of Quarto on the local system.",
|
||||
"Remove the 'Generator' key to manage this file's contents manually."
|
||||
],
|
||||
"Lua.runtime.version": "Lua 5.3",
|
||||
"Lua.workspace.checkThirdParty": false,
|
||||
"Lua.workspace.library": [
|
||||
"/opt/quarto/share/lua-types"
|
||||
],
|
||||
"Lua.runtime.plugin": "/opt/quarto/share/lua-plugin/plugin.lua",
|
||||
"Lua.completion.showWord": "Disable",
|
||||
"Lua.completion.keywordSnippet": "Both",
|
||||
"Lua.diagnostics.disable": [
|
||||
"lowercase-global",
|
||||
"trailing-space"
|
||||
]
|
||||
}
|
11
.quarto/_freeze/funcoes-trigonometricas-circulares/execute-results/html.json
Executable file
7
.quarto/_freeze/site_libs/clipboard/clipboard.min.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
div.cookie-consent-footer {
|
||||
font-size: 0.8em;
|
||||
text-decoration: none;
|
||||
}
|
1
.quarto/cites/index.json
Executable file
@ -0,0 +1 @@
|
||||
{"a-volta-das-aulas-presenciais.qmd":[],"a_volta_das_aulas_presenciais.qmd":[],"agradecimentos.qmd":[],"aplicacoes.qmd":[],"apresentacao.qmd":[],"aula-on-line-como-eu-nao-gosto-de-aula-on-line.qmd":[],"aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd":[],"autores.qmd":[],"funcoes-trigonometricas-circulares.qmd":[],"funcoes-trigonometricas-hiperbolicas.qmd":[],"geracao-alpha-versus-geracao-millennials.qmd":[],"geracao_alpha_versus_geracao_millennials.qmd":[],"igualdades-exponenciais-e-logaritmicas.qmd":[],"index.qmd":[],"indice-remissivo.qmd":[],"introducao.qmd":[],"referencias.qmd":[],"rolima.qmd":[],"teste.qmd":[]}
|
1
.quarto/idx/a_volta_das_aulas_presenciais.qmd.json
Normal file
1
.quarto/idx/apresentacao.qmd.json
Normal file
1
.quarto/idx/autores.qmd.json
Normal file
1
.quarto/idx/index.qmd.json
Normal file
1
.quarto/idx/introducao.qmd.json
Normal file
1
.quarto/idx/rolima.qmd.json
Normal file
1
.quarto/xref/03afee17
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":[],"options":{"chapters":true}}
|
1
.quarto/xref/0b8f7ef8
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"options":{"chapter-id":"SECTION001000000000000000000","chapters":true},"headings":["SECTION001000000000000000000"]}
|
1
.quarto/xref/18ece635
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"options":{"chapters":true},"headings":["SECTION00710000000000000000","SECTION00720000000000000000","SECTION00730000000000000000","SECTION00740000000000000000","SECTION00750000000000000000","SECTION00760000000000000000"]}
|
1
.quarto/xref/3ef5a026
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":["introdução"],"options":{"chapters":true}}
|
1
.quarto/xref/4026ce60
Normal file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":[],"options":{"chapters":true}}
|
1
.quarto/xref/460be21c
Executable file
@ -0,0 +1 @@
|
||||
{"options":{"chapters":true,"chapter-id":"SECTION00600000000000000000"},"entries":[],"headings":["SECTION00610000000000000000","SECTION00620000000000000000","SECTION00630000000000000000","SECTION00640000000000000000","SECTION00650000000000000000","SECTION00660000000000000000","SECTION00670000000000000000","SECTION00680000000000000000","SECTION00600000000000000000"]}
|
1
.quarto/xref/4a1dc47f
Executable file
@ -0,0 +1 @@
|
||||
{"headings":[],"entries":[],"options":{"chapters":true}}
|
1
.quarto/xref/4fffaab4
Executable file
@ -0,0 +1 @@
|
||||
{"options":{"chapters":true},"entries":[],"headings":[]}
|
1
.quarto/xref/5307b9e1
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":["metadados","como-citar","versão-impressa","direitos-autorais"],"options":{"chapters":true}}
|
1
.quarto/xref/54d7babf
Normal file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":[],"options":{"chapters":true}}
|
1
.quarto/xref/80836196
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"options":{"chapters":true},"headings":[]}
|
1
.quarto/xref/8174a0ab
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":["apresentação"],"options":{"chapters":true}}
|
1
.quarto/xref/82bf74d1
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"options":{"chapters":true,"chapter-id":"SECTION00900000000000000000"},"headings":["SECTION00900000000000000000"]}
|
1
.quarto/xref/83919ff0
Normal file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":[],"options":{"chapters":true}}
|
59
.quarto/xref/INDEX
Executable file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"index.qmd": {
|
||||
"index.html": "5307b9e1"
|
||||
},
|
||||
"apresentacao.qmd": {
|
||||
"apresentacao.html": "8174a0ab"
|
||||
},
|
||||
"agradecimentos.qmd": {
|
||||
"agradecimentos.html": "4fffaab4"
|
||||
},
|
||||
"funcoes-trigonometricas-circulares.qmd": {
|
||||
"funcoes-trigonometricas-circulares.html": "d905b7b4"
|
||||
},
|
||||
"igualdades-exponenciais-e-logaritmicas.qmd": {
|
||||
"igualdades-exponenciais-e-logaritmicas.html": "18ece635"
|
||||
},
|
||||
"teste.qmd": {
|
||||
"teste.html": "b93f9b0b"
|
||||
},
|
||||
"funcoes-trigonometricas-hiperbolicas.qmd": {
|
||||
"funcoes-trigonometricas-hiperbolicas.html": "460be21c"
|
||||
},
|
||||
"aplicacoes.qmd": {
|
||||
"aplicacoes.html": "b3847cd7"
|
||||
},
|
||||
"referencias.qmd": {
|
||||
"referencias.html": "82bf74d1"
|
||||
},
|
||||
"indice-remissivo.qmd": {
|
||||
"indice-remissivo.html": "0b8f7ef8"
|
||||
},
|
||||
"autores.qmd": {
|
||||
"autores.html": "eab7737d"
|
||||
},
|
||||
"introducao.qmd": {
|
||||
"introducao.html": "3ef5a026"
|
||||
},
|
||||
"geracao-alpha-versus-geracao-millennials.qmd": {
|
||||
"geracao-alpha-versus-geracao-millennials.html": "03afee17"
|
||||
},
|
||||
"aula-on-line-como-eu-nao-gosto-de-aula-on-line.qmd": {
|
||||
"aula-on-line-como-eu-nao-gosto-de-aula-on-line.html": "80836196"
|
||||
},
|
||||
"a-volta-das-aulas-presenciais.qmd": {
|
||||
"a-volta-das-aulas-presenciais.html": "4a1dc47f"
|
||||
},
|
||||
"rolima.qmd": {
|
||||
"rolima.html": "e6d7f6b9"
|
||||
},
|
||||
"a_volta_das_aulas_presenciais.qmd": {
|
||||
"a_volta_das_aulas_presenciais.html": "54d7babf"
|
||||
},
|
||||
"geracao_alpha_versus_geracao_millennials.qmd": {
|
||||
"geracao_alpha_versus_geracao_millennials.html": "4026ce60"
|
||||
},
|
||||
"aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd": {
|
||||
"aula_on_line_como_eu_nao_gosto_de_aula_on_line.html": "83919ff0"
|
||||
}
|
||||
}
|
1
.quarto/xref/b3847cd7
Executable file
@ -0,0 +1 @@
|
||||
{"options":{"chapter-id":"SECTION00800000000000000000","chapters":true},"entries":[],"headings":["SECTION00810000000000000000","SECTION00820000000000000000","SECTION00830000000000000000","SECTION00840000000000000000","SECTION00850000000000000000","SECTION00860000000000000000","SECTION00870000000000000000","SECTION00800000000000000000"]}
|
1
.quarto/xref/b93f9b0b
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"options":{"chapters":true},"headings":[]}
|
1
.quarto/xref/d905b7b4
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"options":{"chapters":true},"headings":["SECTION00510000000000000000","SECTION00520000000000000000","SECTION00530000000000000000","SECTION00540000000000000000","SECTION00550000000000000000","SECTION00560000000000000000","SECTION00570000000000000000"]}
|
1
.quarto/xref/e6d7f6b9
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":[],"options":{"chapters":true}}
|
1
.quarto/xref/eab7737d
Executable file
@ -0,0 +1 @@
|
||||
{"entries":[],"headings":["sobre-os-autores"],"options":{"chapters":true}}
|
11
README.md
Normal file
@ -0,0 +1,11 @@
|
||||
# Sobre
|
||||
|
||||
Repositório do livro online "Jean Jogos e Brincadeiras".
|
||||
|
||||
# Direitos autorais
|
||||
|
||||
© Os autores e a Editora Moan, 2022.
|
||||
|
||||
# Licença
|
||||
|
||||
Todos os direitos reservados. A reprodução, cópia ou distribuição desta obra, seja em parte ou no todo, só poderá ser realizada mediante autorização, sob pena de violação da [lei de direitos autorais. (Lei 9.610/98)](https://www.planalto.gov.br/ccivil_03/leis/l9610.htm)
|
17
_extensions/moan-livro/_extension.yml
Executable file
@ -0,0 +1,17 @@
|
||||
title: Moan-livro
|
||||
author: Rafael Tavares Juliani
|
||||
version: 1.0.0
|
||||
quarto-required: ">=1.4.0"
|
||||
lang: pt-BR
|
||||
contributes:
|
||||
formats:
|
||||
html:
|
||||
mainfont: Source Sans Pro
|
||||
lang: pt-BR
|
||||
citation: true
|
||||
google-scholar: true
|
||||
smooth-scroll: true
|
||||
theme:
|
||||
light: [cosmo, custom.scss]
|
||||
dark: [superhero, custom.scss]
|
||||
|
154
_extensions/moan-livro/custom.scss
Executable file
@ -0,0 +1,154 @@
|
||||
/*-- scss:defaults --*/
|
||||
|
||||
/* TODO: Customize html appearance by setting SCSS variables */
|
||||
/* See https://quarto.org/docs/output-formats/html-themes.html#theme-options */
|
||||
|
||||
/*-- scss:rules --*/
|
||||
|
||||
/* TODO: Provide custom CSS rules */
|
||||
|
||||
/*-- scss:defaults --*/
|
||||
$h2-font-size: 1.6rem !default;
|
||||
$headings-font-weight: 500 !default;
|
||||
$font-size-base: 1.1rem !default;
|
||||
|
||||
/*-- scss:rules --*/
|
||||
main p, main li {
|
||||
text-align: left;
|
||||
hyphens: auto;
|
||||
-webkit-hyphens: auto;
|
||||
font-kerning: auto;
|
||||
}
|
||||
.verso, .exemplo
|
||||
{
|
||||
display: block;
|
||||
margin: 15px auto;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
#como-citar-bibtex, #como-citar-atribuicao {
|
||||
|
||||
border: 1px solid #dedede;
|
||||
border-radius: 2px;
|
||||
padding: 10px;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
}
|
||||
|
||||
#como-citar-atribuicao p {
|
||||
text-indent: -20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#como-citar p {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.verso {
|
||||
text-indent: -15px;
|
||||
}
|
||||
|
||||
main li {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
h1{
|
||||
margin-bottom: 18px !important;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2#toc-title {
|
||||
box-shadow:none;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
|
||||
margin-top: 50px;
|
||||
|
||||
}
|
||||
|
||||
#TOC .small_h2{
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
|
||||
#TOC a {
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.autores{
|
||||
margin-bottom: 30px;
|
||||
margin-top: -15px;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
div.autores p {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#direitos-autorais p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
blockquote{
|
||||
text-align: left;
|
||||
hyphens: auto;
|
||||
font-kerning: auto;
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
blockquote+p span div {
|
||||
text-align: left;
|
||||
font-weight: normal;
|
||||
font-size: unset;
|
||||
}
|
||||
.references div{
|
||||
text-indent: -20px;
|
||||
margin-left: 20px;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.citation div {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
|
||||
.figure-caption {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.contador-figura{
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
mjx-container {
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@media (max-width: 991.98px){
|
||||
body .page-columns, body.fullcontent:not(.floating):not(.docked) .page-columns, body.slimcontent:not(.floating):not(.docked) .page-columns, body.docked .page-columns, body.docked.slimcontent .page-columns, body.docked.fullcontent .page-columns, body.floating .page-columns, body.floating.slimcontent .page-columns, body.floating.fullcontent .page-columns {
|
||||
display: grid;
|
||||
gap: 0;
|
||||
grid-template-columns: [screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end];
|
||||
}
|
||||
|
||||
#quarto-margin-sidebar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#quarto-content {
|
||||
max-width: 768px;
|
||||
margin: auto;
|
||||
|
||||
}
|
||||
}
|
242
_extensions/moan-livro/preparacao-moan-ALTERADO.py
Executable file
@ -0,0 +1,242 @@
|
||||
import os
|
||||
import yaml
|
||||
from bs4 import BeautifulSoup
|
||||
import json
|
||||
import copy
|
||||
import shutil
|
||||
|
||||
# Caminho para o arquivo _quarto.yml
|
||||
quarto_config_file = "_quarto.yml"
|
||||
|
||||
|
||||
|
||||
|
||||
with open(quarto_config_file) as f:
|
||||
|
||||
quarto_config = yaml.safe_load(f)
|
||||
|
||||
|
||||
|
||||
|
||||
# Extrair as informações do arquivo _quarto.yml
|
||||
|
||||
|
||||
# funcao para iterar os capítulos
|
||||
def extrair_arquivos_qmd(objeto, capitulos_arquivos_html):
|
||||
|
||||
if isinstance(objeto, list):
|
||||
|
||||
for elemento in objeto:
|
||||
|
||||
extrair_arquivos_qmd(elemento, capitulos_arquivos_html)
|
||||
|
||||
elif isinstance(objeto, dict):
|
||||
|
||||
if 'part' in objeto:
|
||||
|
||||
extrair_arquivos_qmd(objeto['part'], capitulos_arquivos_html)
|
||||
|
||||
if 'chapters' in objeto:
|
||||
|
||||
extrair_arquivos_qmd(objeto['chapters'], capitulos_arquivos_html)
|
||||
|
||||
elif isinstance(objeto, str) and objeto.endswith('.qmd'):
|
||||
|
||||
capitulos_arquivos_html.append(objeto[:-4])
|
||||
|
||||
|
||||
|
||||
|
||||
# pegando o local dos arquivos html
|
||||
pasta_livro_renderizado = quarto_config["project"]["output-dir"]
|
||||
|
||||
|
||||
# pegando o campo controle-moan para verificar se é um dicionário
|
||||
é_dicionário = quarto_config["controle-moan"]["dicionario"]
|
||||
|
||||
|
||||
# pegando os capítulos
|
||||
capitulos = quarto_config["book"]["chapters"]
|
||||
capitulos_arquivo_html = []
|
||||
extrair_arquivos_qmd(capitulos, capitulos_arquivo_html)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# altera os arquivos html
|
||||
for index, output_file in enumerate(capitulos_arquivo_html):
|
||||
|
||||
# Caminho completo para o arquivo HTML
|
||||
arquivo_html = os.path.join(pasta_livro_renderizado, output_file + ".html")
|
||||
|
||||
# conta os elementos que serão uma referencia / Ele começa em 0 na abertura de um novo capítulo
|
||||
ref_num = 0
|
||||
|
||||
# Abre o arquivo HTML
|
||||
with open(arquivo_html, "r", encoding="utf-8") as f:
|
||||
|
||||
content = f.read()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Cria um objeto BeautifulSoup
|
||||
soup = BeautifulSoup(content, "html.parser")
|
||||
|
||||
|
||||
|
||||
# Encontre a tag 'main' no documento
|
||||
main_tag = soup.find("main")
|
||||
|
||||
|
||||
# Crie o elemento script com os metadados
|
||||
script_tag = soup.new_tag('script', data="moan-metadados")
|
||||
|
||||
#pegar apenas a url do livro
|
||||
url_livro = os.path.basename(pasta_livro_renderizado)
|
||||
script_tag.string = f'var metadados = {{livroUrl: "{url_livro}"}};'
|
||||
script_tag.string += f'var modelo_antigo = true;'
|
||||
|
||||
|
||||
# Adicione o script ao cabeçalho (head) do HTML
|
||||
soup.head.append(script_tag)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Se existir o ark, colocar os dados nas tags object do primeiro capítulo do livro
|
||||
if "ark" in quarto_config["moan-dados"] and index == 0:
|
||||
|
||||
ark = quarto_config["moan-dados"]["ark"]
|
||||
|
||||
# Substitua "." por "_p_" e "/" por "_b_" em 'ark'
|
||||
ark = ark.replace(".", "_p_").replace("/", "_b_")
|
||||
|
||||
# Adicione "ark_dp_" ao início de 'ark'
|
||||
ark = "ark_dp_" + ark
|
||||
|
||||
# Encontre as tags object com id "metadados_livro_yml" e "metadados_livro_json"
|
||||
obj_metadados_yml = main_tag.find("object", {"id": "metadados_livro_yml"})
|
||||
|
||||
obj_metadados_json = main_tag.find("object", {"id": "metadados_livro_json"})
|
||||
|
||||
if obj_metadados_yml and obj_metadados_json:
|
||||
|
||||
# Defina o atributo "data" das tags object
|
||||
obj_metadados_yml["data"] = "https://ark.livro.online/yaml/" + ark + ".yml"
|
||||
|
||||
obj_metadados_json["data"] = "https://ark.livro.online/json/" + ark + ".json"
|
||||
|
||||
|
||||
|
||||
# Verifique se o arquivo "postos-de-venda.json" existe
|
||||
json_file_path = "postos-de-venda.json"
|
||||
|
||||
if os.path.exists(json_file_path) and index == 0:
|
||||
|
||||
# O arquivo JSON existe, abra-o e extraia as chaves e valores
|
||||
with open(json_file_path, "r", encoding="utf-8") as json_file:
|
||||
|
||||
postos_de_venda = json.load(json_file)
|
||||
|
||||
# Crie uma nova lista não ordenada para armazenar os links
|
||||
ul = soup.new_tag("ul", id="postos-de-venda")
|
||||
|
||||
for key, value in postos_de_venda.items():
|
||||
li = soup.new_tag("li")
|
||||
|
||||
# Verifica se "@" está presente no valor
|
||||
if "@" in value:
|
||||
# Se "@" estiver presente, crie um link de e-mail (mailto)
|
||||
link = soup.new_tag("a", href=f"mailto:{value}")
|
||||
link.string = f"{key}: {value}" # Texto do link é a chave seguida de dois pontos e o valor
|
||||
else:
|
||||
# Se "@" não estiver presente, crie um link normal
|
||||
link = soup.new_tag("a", href=value)
|
||||
link.string = key # Texto do link é a chave
|
||||
|
||||
li.append(link)
|
||||
ul.append(li)
|
||||
|
||||
# Encontre a tag "section" com ID "versão-impressa"
|
||||
section_versao_impressa = main_tag.find("section", id="versão-impressa")
|
||||
|
||||
if section_versao_impressa:
|
||||
|
||||
# Adicione a lista não ordenada de links à seção "versão-impressa"
|
||||
section_versao_impressa.append(ul)
|
||||
|
||||
|
||||
# Copie o arquivo JSON para a pasta especificada em "pasta_livro_renderizado"
|
||||
dest_file = os.path.join(pasta_livro_renderizado, "postos-de-venda.json")
|
||||
|
||||
shutil.copy(json_file_path, dest_file)
|
||||
|
||||
|
||||
# Copiar a imagem og.jpg que está na pasta img e serve para usar no open graph
|
||||
|
||||
# Pasta onde o arquivo og.jpg está localizado
|
||||
pasta_img = "img"
|
||||
|
||||
|
||||
# Caminho completo para o arquivo og.jpg
|
||||
caminho_original = os.path.join(pasta_img, "og.jpg")
|
||||
|
||||
# Verifica se o arquivo og.jpg existe na pasta img
|
||||
if os.path.exists(caminho_original):
|
||||
|
||||
# Caminho completo para a pasta de destino na pasta livro_renderizado
|
||||
caminho_destino = os.path.join(pasta_livro_renderizado, "img")
|
||||
|
||||
# Certifica-se de que a pasta de destino exista
|
||||
os.makedirs(caminho_destino, exist_ok=True)
|
||||
|
||||
# Copia o arquivo og.jpg para a pasta de destino
|
||||
shutil.copy(caminho_original, caminho_destino)
|
||||
|
||||
print("Arquivo og.jpg foi copiado com sucesso.")
|
||||
else:
|
||||
print("O arquivo og.jpg não foi encontrado na pasta img.")
|
||||
|
||||
|
||||
|
||||
# Coloca o conteudo dentro de uma div com id chamado de papel, substituindo o conteudo original da tag main pela div papel
|
||||
|
||||
# Crie uma div com id "papel"
|
||||
div_papel = soup.new_tag('div', id='papel')
|
||||
|
||||
# Copie a tag main
|
||||
main_content_copy = copy.copy(main_tag.contents)
|
||||
|
||||
# Limpe o conteúdo da tag <main>
|
||||
main_tag.clear()
|
||||
|
||||
# Adicione a cópia do conteúdo à div "papel"
|
||||
for item_copy in main_content_copy:
|
||||
div_papel.append(item_copy)
|
||||
|
||||
# Acrescentar a div_papel na tag main
|
||||
main_tag.append(div_papel)
|
||||
|
||||
# Salva o arquivo HTML modificado
|
||||
with open(arquivo_html, "w", encoding="utf-8") as f:
|
||||
|
||||
f.write(str(soup))
|
||||
|
||||
# Nos livros antigos que já possuía referencias, o arquivo com as referencias será copiado para a pasta do livro renderizado.
|
||||
origem = "ref_capitulos.json"
|
||||
|
||||
destino = os.path.join(pasta_livro_renderizado, "ref_capitulos.json")
|
||||
|
||||
# Copia o arquivo para a pasta de destino
|
||||
shutil.copy(origem, destino)
|
744
_extensions/moan-livro/universidade-estadual-de-alagoas-abnt.csl
Executable file
@ -0,0 +1,744 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="in-text" initialize="false" demote-non-dropping-particle="never" default-locale="pt-BR">
|
||||
<info>
|
||||
<!-- ESTE ESTILO FOI CONSTRUÍDO A PARTIR DO MODELO DA ABNT (com diversos ajustes, mas os créditos permanecem aos autores originais) -->
|
||||
<title>Universidade Estadual de Alagoas - UNEAL [ABNT] (Portuguese - Brazil)</title>
|
||||
<title-short>UNEAL-ABNT</title-short>
|
||||
<id>http://www.zotero.org/styles/universidade-estadual-de-alagoas-abnt</id>
|
||||
<link href="http://www.zotero.org/styles/universidade-estadual-de-alagoas-abnt" rel="self"/>
|
||||
<link href="http://www.zotero.org/styles/associacao-brasileira-de-normas-tecnicas" rel="template"/>
|
||||
<link href="https://www.abntcatalogo.com.br/norma.aspx?ID=408006" rel="documentation"/>
|
||||
<author>
|
||||
<name>Wellyngton Chaves Monteiro da Silva</name>
|
||||
<email>wellyngton@uneal.edu.br</email>
|
||||
<uri>http://www.uneal.edu.br</uri>
|
||||
</author>
|
||||
<category citation-format="author-date"/>
|
||||
<category field="generic-base"/>
|
||||
<summary>De acordo com ABNT-NBR 10520.2002 e ABNT-NBR 6023.2018</summary>
|
||||
<updated>2022-06-26T01:48:46+00:00</updated>
|
||||
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
|
||||
</info>
|
||||
<locale xml:lang="pt-BR">
|
||||
<!--
|
||||
UTILITÁRIOS (para serem inseridos no campo EXTRA do Zotero):
|
||||
publisher-place: quando não existir espaço para LUGAR da publicação (ex.: publisher-place: Maceió OU QUANDO NECESSÁRIO, publisher-place: Maceió, AL)
|
||||
-->
|
||||
<terms>
|
||||
<!--Abreviações dos meses do ano -->
|
||||
<term name="month-01" form="short">jan.</term>
|
||||
<term name="month-02" form="short">fev.</term>
|
||||
<term name="month-03" form="short">mar.</term>
|
||||
<term name="month-04" form="short">abr.</term>
|
||||
<term name="month-05" form="short">maio</term>
|
||||
<term name="month-06" form="short">jun.</term>
|
||||
<term name="month-07" form="short">jul.</term>
|
||||
<term name="month-08" form="short">ago.</term>
|
||||
<term name="month-09" form="short">set.</term>
|
||||
<term name="month-10" form="short">out.</term>
|
||||
<term name="month-11" form="short">nov.</term>
|
||||
<term name="month-12" form="short">dez.</term>
|
||||
<!--Os termos abaixo serao utilizados quando houverem nomes de editores. Apos a citacao dos nomes, eles irao aparecer entre parenteses.-->
|
||||
<term name="and">e</term>
|
||||
<term name="editor" form="short">
|
||||
<single>ed</single>
|
||||
<multiple>eds</multiple>
|
||||
</term>
|
||||
<term name="editor" form="short">
|
||||
<single>org</single>
|
||||
<multiple>org</multiple>
|
||||
</term>
|
||||
<term name="container-author" form="short">
|
||||
<single>ed</single>
|
||||
<multiple>eds</multiple>
|
||||
</term>
|
||||
<term name="collection-editor" form="short">
|
||||
<single>org</single>
|
||||
<multiple>org</multiple>
|
||||
</term>
|
||||
</terms>
|
||||
</locale>
|
||||
<!--A macro 'container-contributor' mostra os nomes dos editores, SOBRENOME, INICIAIS PRENOMES, sendo as inicias separadas por ponto -->
|
||||
<macro name="container-contributors">
|
||||
<choose>
|
||||
<if type="chapter">
|
||||
<names variable="container-author" delimiter=", ">
|
||||
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="always">
|
||||
<name-part name="family" text-case="uppercase"/>
|
||||
<name-part name="given" text-case="capitalize-first"/>
|
||||
</name>
|
||||
<label form="short" prefix=" (" suffix=".)"/>
|
||||
<substitute>
|
||||
<names variable="editor"/>
|
||||
<names variable="collection-editor"/>
|
||||
</substitute>
|
||||
</names>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'secondary-contributors' mostra os nomes dos organizadores, SOBRENOME, INICIAIS PRENOMES, sendo as inicias separadas por ponto -->
|
||||
<macro name="secondary-contributors">
|
||||
<choose>
|
||||
<if type="chapter" match="none">
|
||||
<names variable="editor" delimiter="; " prefix=" (" suffix=")">
|
||||
<name initialize-with=". " delimiter=", "/>
|
||||
<label form="short" prefix=", " text-case="capitalize-first" suffix="."/>
|
||||
</names>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'translator' mostra os nomes dos tradutores, conforme a NBR 6023, de 2018 -->
|
||||
<macro name="translator">
|
||||
<text value="Tradução "/>
|
||||
<names variable="translator" delimiter=", ">
|
||||
<name delimiter=", " sort-separator=" " delimiter-precedes-last="always">
|
||||
<name-part name="given"/>
|
||||
<name-part name="family" text-case="capitalize-first"/>
|
||||
</name>
|
||||
<et-al font-style="normal"/>
|
||||
</names>
|
||||
</macro>
|
||||
<!--A macro 'author' mostra os nomes dos autores na bibliografia, SOBRENOME, INICIAIS PRENOMES, sendo as iniciais
|
||||
separadas por ponto. Quando houver mais de três autores, somente o primeiro será exibido e no lugar dos outros
|
||||
aparecera a expessão 'et al.'. Na regra da ABNT essa expressão deve aparecer em fonte normal -->
|
||||
<macro name="author">
|
||||
<names variable="author">
|
||||
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="always">
|
||||
<name-part name="family" text-case="uppercase"/>
|
||||
<name-part name="given" text-case="capitalize-first"/>
|
||||
</name>
|
||||
<label form="short" prefix=" (" suffix=".)" text-case="uppercase"/>
|
||||
<substitute>
|
||||
<names variable="editor"/>
|
||||
<text macro="title"/>
|
||||
</substitute>
|
||||
</names>
|
||||
</macro>
|
||||
<!--A macro 'author-short' mostra os nomes dos autores na citação (no meio do texto). Nela aparecera apenas o último nome
|
||||
do autor. Na regra da ABNT o sobrenome deve aparecer com todas as letras em caixa alta -->
|
||||
<macro name="author-short">
|
||||
<names variable="author">
|
||||
<name form="short" name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="never">
|
||||
<name-part name="family" text-case="uppercase"/>
|
||||
<name-part name="given" text-case="uppercase"/>
|
||||
</name>
|
||||
<substitute>
|
||||
<names variable="editor"/>
|
||||
<choose>
|
||||
<if type="book">
|
||||
<text variable="title" form="short"/>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="title" form="short" text-case="uppercase" quotes="false"/>
|
||||
</else>
|
||||
</choose>
|
||||
</substitute>
|
||||
</names>
|
||||
</macro>
|
||||
<macro name="director">
|
||||
<names variable="author">
|
||||
<name sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="always">
|
||||
<name-part name="given" text-case="capitalize-first"/>
|
||||
<name-part name="family" text-case="capitalize-first"/>
|
||||
</name>
|
||||
</names>
|
||||
</macro>
|
||||
<!--A macro 'access' é utilizada em arquivos de páginas da web. Ela é responsável por exibir a URL do site pesquisado e a data do acesso, além do DOI -->
|
||||
<macro name="access">
|
||||
<text variable="ISSN" prefix=" ISSN: " suffix="."/>
|
||||
<text variable="ISBN" prefix=" ISBN: " suffix="."/>
|
||||
<text variable="DOI" prefix=" DOI: " suffix="."/>
|
||||
<!-- <text variable="URL" prefix=" Disponível em: <" suffix=">."/> RETIREI AS ENTRADAS DAS URLs, CONFORME ABNT -->
|
||||
<text variable="URL" prefix=" Disponível em: " suffix="."/>
|
||||
<date variable="accessed" prefix=". Acesso em: " suffix=".">
|
||||
<date-part name="day" suffix=" "/>
|
||||
<date-part name="month" form="short" suffix=". " text-case="lowercase"/>
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</macro>
|
||||
<!--A macro 'title' mostra o título principal do arquivo. Em todos os tipos ele aparecerá em negrito logo após os nomes dos autores,
|
||||
exceto em arquivos do tipo 'artigo de jornal, artigo de revista, artigo de periódico', nesses arquivos eles irão aparecer em fonte normal -->
|
||||
<macro name="title">
|
||||
<choose>
|
||||
<if type="chapter article-newspaper legislation article-magazine article-journal bill entry-encyclopedia paper-conference" match="any">
|
||||
<text variable="title"/>
|
||||
</if>
|
||||
<else-if type="book thesis patent report" match="any">
|
||||
<text variable="title" font-weight="bold"/>
|
||||
</else-if>
|
||||
<else-if type="dataset" match="any">
|
||||
<text variable="title" suffix=". "/>
|
||||
</else-if>
|
||||
<else-if type="broadcast motion_picture" match="any">
|
||||
<text variable="title" text-case="uppercase"/>
|
||||
</else-if>
|
||||
<else>
|
||||
<text variable="title" font-weight="bold"/>
|
||||
</else>
|
||||
</choose>
|
||||
<text value=""/>
|
||||
</macro>
|
||||
<!-- Titulo dos Anais-->
|
||||
<macro name="container-title">
|
||||
<choose>
|
||||
<if type="paper-conference" match="any">
|
||||
<text variable="container-title" text-case="uppercase"/>
|
||||
<text variable="number" prefix=", " suffix=", "/>
|
||||
<text macro="issued-year" prefix=" " suffix=", "/>
|
||||
<text variable="publisher-place" suffix=". "/>
|
||||
<text value="Anais" font-weight="bold"/>
|
||||
<text value=" [...]. "/>
|
||||
</if>
|
||||
<else>
|
||||
<text variable="container-title" font-weight="bold"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'publisher' mostra o nome da editora responsável pela publicação-->
|
||||
<macro name="publisher">
|
||||
<choose>
|
||||
<if match="any" variable="publisher-place publisher">
|
||||
<choose>
|
||||
<if variable="publisher-place">
|
||||
<text variable="publisher-place"/>
|
||||
</if>
|
||||
<else-if type="entry-encyclopedia thesis" match="any"/>
|
||||
<else-if type="paper-conference" match="any">
|
||||
<text variable="publisher-place" suffix=". "/>
|
||||
</else-if>
|
||||
<else>
|
||||
<text value="[s.l.] "/>
|
||||
</else>
|
||||
</choose>
|
||||
<choose>
|
||||
<if variable="publisher">
|
||||
<text variable="publisher" prefix=": " suffix=","/>
|
||||
<text macro="issued"/>
|
||||
</if>
|
||||
</choose>
|
||||
</if>
|
||||
<else>
|
||||
<text value="[s.l.: s.n.]"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'event' sera utilizada em arquivos do tipo Evento/Conferencia. Ela e responsavel por mostrar o nome da conferencia, que tera formatacao
|
||||
em caixa alta. Utiliza-se antes do nome da conferencia a expressao "In". Segundo a regra da ABNT ela deve ser em fonte normal-->
|
||||
<macro name="event">
|
||||
<choose>
|
||||
<if variable="event">
|
||||
<choose>
|
||||
<if variable="genre" match="none">
|
||||
<text term="in" font-style="italic" text-case="capitalize-first" suffix=": "/>
|
||||
<text variable="event" text-case="uppercase"/>
|
||||
</if>
|
||||
<else>
|
||||
<group delimiter=" ">
|
||||
<text variable="genre" text-case="capitalize-first"/>
|
||||
<text term="presented at"/>
|
||||
<text variable="event"/>
|
||||
</group>
|
||||
</else>
|
||||
</choose>
|
||||
</if>
|
||||
<else-if type="paper-conference" match="any"/>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'issued' e utilizada quando devemos mostrar a data completa exemplo: 03 mar. 2011.-->
|
||||
<macro name="issued">
|
||||
<choose>
|
||||
<if variable="issued" match="any">
|
||||
<group>
|
||||
<date variable="issued">
|
||||
<date-part name="year" prefix=" " suffix=""/>
|
||||
<!-- RETIREI O PONTO DO suffix PARA FICAR 2017a, 2017b, COM PONTO FICA 2017. a., 2017. b. -->
|
||||
</date>
|
||||
</group>
|
||||
</if>
|
||||
<else-if type="patent" match="any">
|
||||
<date form="numeric" variable="issued" suffix="."/>
|
||||
</else-if>
|
||||
<else>
|
||||
<text value="[s.d.]"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'issued-year' e utilizada quando desejamos que apareca apenas o ano-->
|
||||
<macro name="issued-year">
|
||||
<choose>
|
||||
<if variable="issued" match="any">
|
||||
<date variable="issued">
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</if>
|
||||
<else-if type="paper-conference" match="all">
|
||||
<date date-parts="year" form="numeric" variable="issued">
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</else-if>
|
||||
<else>
|
||||
<text value="[s.d.]"/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="issued-legislation">
|
||||
<date variable="issued">
|
||||
<date-part name="day" suffix=" "/>
|
||||
<date-part name="month" form="short" suffix=". " text-case="lowercase"/>
|
||||
<date-part name="year"/>
|
||||
</date>
|
||||
</macro>
|
||||
<!--A macro 'edition' e responsavel por mostrar o numero da edicao.-->
|
||||
<macro name="edition">
|
||||
<choose>
|
||||
<!--Se for capitulo de livro aparecera somente o numero-->
|
||||
<if type="book chapter" match="any">
|
||||
<choose>
|
||||
<if is-numeric="edition">
|
||||
<group delimiter=" ">
|
||||
<number variable="edition" form="numeric" suffix="."/>
|
||||
<text term="edition" form="short" suffix="."/>
|
||||
</group>
|
||||
</if>
|
||||
<else>
|
||||
<!--Se for outro tipo de documento aparecera o numero e depois a descricao "ed."-->
|
||||
<text variable="edition" suffix=" ed."/>
|
||||
</else>
|
||||
</choose>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<!--A macro 'locators' tem como funcao mostrar os dados complementares do arquivo (paginas, secao, volume, etc)-->
|
||||
<macro name="locators">
|
||||
<choose>
|
||||
<!--Se for projeto de lei mostrara o dia, mes "forma curta", ano, secao "Sec." e pagina "p."-->
|
||||
<if type="bill">
|
||||
<group prefix=". " delimiter=", ">
|
||||
<date variable="issued">
|
||||
<date-part name="day"/>
|
||||
<date-part prefix=" " name="month" form="short"/>
|
||||
<date-part prefix=" " name="year"/>
|
||||
</date>
|
||||
<text macro="section"/>
|
||||
<text variable="page" prefix="p. " suffix="."/>
|
||||
</group>
|
||||
</if>
|
||||
<!--Se for artigos de jornal, revista, etc. Aparecera o volume "v.", edicao "n." e a pagina do artigo "p."-->
|
||||
<else-if match="any" type="article-journal article-magazine article-newspaper">
|
||||
<group delimiter=", ">
|
||||
<group delimiter=", ">
|
||||
<text variable="volume" prefix="v. "/>
|
||||
<text variable="issue" prefix="n. "/>
|
||||
</group>
|
||||
<text variable="collection-title"/>
|
||||
<text variable="page" prefix="p. "/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!-- Capítulo de livro -->
|
||||
<!--Se for capitulo de livro aparecera o volume "v." e a pagina "p."-->
|
||||
<else-if match="any" type="book chapter">
|
||||
<group delimiter=", ">
|
||||
<group>
|
||||
<text variable="volume" prefix="v. " suffix=". "/>
|
||||
<text variable="page" prefix="p. "/>
|
||||
<!--Inseri este campo 'extra' caso queira colocar alguma observacao, como 'nome da coleção', 'nome da série' etc. -->
|
||||
<!-- <text variable="note" prefix=". " suffix=""/> -->
|
||||
<text macro="collection-title" prefix=". (" suffix=")."/>
|
||||
<!-- AQUI INSERE A COLEÇÃO OU SÉRIE DA OBRA -->
|
||||
</group>
|
||||
</group>
|
||||
</else-if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="collection-title">
|
||||
<text variable="collection-title"/>
|
||||
<text variable="collection-number" prefix=" "/>
|
||||
</macro>
|
||||
<macro name="genre">
|
||||
<text variable="genre"/>
|
||||
</macro>
|
||||
<macro name="section">
|
||||
<choose>
|
||||
<if match="any" variable="section issue">
|
||||
<text variable="section"/>
|
||||
<text variable="issue"/>
|
||||
</if>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="citation-locator">
|
||||
<group>
|
||||
<label variable="locator" form="short"/>
|
||||
<text variable="locator" prefix=" "/>
|
||||
</group>
|
||||
</macro>
|
||||
<macro name="place">
|
||||
<choose>
|
||||
<if variable="publisher-place" match="any">
|
||||
<text variable="publisher-place" suffix=", "/>
|
||||
</if>
|
||||
<else-if type="paper-conference" variable="publisher-place">
|
||||
<text variable="publisher-place" suffix=". "/>
|
||||
</else-if>
|
||||
<else>
|
||||
<text value="[S. l.]" font-style="italic" suffix=", "/>
|
||||
</else>
|
||||
</choose>
|
||||
</macro>
|
||||
<macro name="archive">
|
||||
<group>
|
||||
<text variable="archive" prefix=" "/>
|
||||
</group>
|
||||
</macro>
|
||||
<!--Citacao-->
|
||||
<!--et al. aparece a partir de 04 autores-->
|
||||
<citation et-al-min="4" et-al-use-first="1" collapse="year" disambiguate-add-year-suffix="true">
|
||||
<sort>
|
||||
<!--Puxa o autor primeiro-->
|
||||
<key macro="author"/>
|
||||
<!--Depois o ano-->
|
||||
<key variable="issued"/>
|
||||
</sort>
|
||||
<layout prefix="(" suffix=")" delimiter="; ">
|
||||
<group>
|
||||
<text suffix=", " macro="author-short"/>
|
||||
<text macro="issued-year"/>
|
||||
<text prefix=", " macro="citation-locator"/>
|
||||
</group>
|
||||
</layout>
|
||||
</citation>
|
||||
<bibliography hanging-indent="false" et-al-min="10" et-al-use-first="1" entry-spacing="1">
|
||||
<sort>
|
||||
<key macro="author"/>
|
||||
<key variable="issued"/>
|
||||
</sort>
|
||||
<layout>
|
||||
<choose>
|
||||
<!--Projeto de lei-->
|
||||
<if type="bill">
|
||||
<group>
|
||||
<!--autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Numero da lei-->
|
||||
<text variable="number" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<!--Historico em negrito-->
|
||||
<text variable="references" font-weight="bold" suffix=". "/>
|
||||
<!-- ESTE PONTO VEM ANTES DO 'EXTRA' COMO LOCAL NAS LEIS -->
|
||||
<!--Campo 'extra' caso queira colocar alguma observacao-->
|
||||
<text variable="note"/>
|
||||
<!--Dados complementares "secao, pagina"-->
|
||||
<text macro="locators" suffix=". "/>
|
||||
</group>
|
||||
</if>
|
||||
<!--Mapa-->
|
||||
<else-if type="map">
|
||||
<group>
|
||||
<!--autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=", "/>
|
||||
<!--data-->
|
||||
<text macro="issued" suffix=". "/>
|
||||
<!--Campo 'extra' caso queira colocar alguma observacao-->
|
||||
<text variable="note" suffix=". "/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Livro-->
|
||||
<else-if type="book">
|
||||
<group>
|
||||
<!--autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<!--Traducao INSERI DA ABNT (ver como funciona)-->
|
||||
<text macro="translator" suffix=". "/>
|
||||
<!--Edicao-->
|
||||
<text macro="edition" suffix="., "/>
|
||||
<!-- ADICIONEI A VÍRGULA PARA SEPARAR A EDIÇÃO DO LOCAL DE PUBLICAÇÃO -->
|
||||
<!--Local, data, etc-->
|
||||
<text macro="publisher" suffix=". "/>
|
||||
<text variable="number-of-pages" suffix=" p. "/>
|
||||
<!-- ADICIONA A QUANTIDADE DE PÁGINAS NA OBRA -->
|
||||
<!-- Inseri este campo 'extra' caso queira colocar alguma observacao -->
|
||||
<text variable="note" suffix=". "/>
|
||||
<text macro="collection-title" prefix="(" suffix=")."/>
|
||||
<!-- AQUI INSERE A COLEÇÃO OU SÉRIE DA OBRA -->
|
||||
<!--Dados complementares "pagina, volume"-->
|
||||
<!--<text macro="locators"/>-->
|
||||
<!-- REMOVIDO PARA EVITAR DUPLICIDADE DE INFORMAÇÃO SOBRE A SÉRIE OU COLEÇÃO DA OBRA -->
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Conferencia-->
|
||||
<else-if type="chapter">
|
||||
<group>
|
||||
<!--autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<!--INSERI DA ABNT (ver como funciona) -->
|
||||
<text macro="secondary-contributors" suffix=". "/>
|
||||
<!--In:-->
|
||||
<text term="in" font-style="italic" text-case="capitalize-first" suffix=": "/>
|
||||
<!--Nomes de editores-->
|
||||
<text macro="container-contributors" suffix=". "/>
|
||||
<!--Titulo da conferencia-->
|
||||
<text macro="container-title" suffix=". "/>
|
||||
<!--Traducao INSERI DA ABNT (ver como funciona) -->
|
||||
<text macro="translator" suffix=". "/>
|
||||
<!-- <text variable="collection-title" suffix=" "/> AQUI INSERIA A SÉRIE OU COLEÇÃO DENTRO DO TEXTO -->
|
||||
<!--Edicao-->
|
||||
<text macro="edition" suffix="., "/>
|
||||
<!-- A VÍRGULA QUE SEPARA A EDIÇÃO DO LOCAL DA OBRA -->
|
||||
<!--Local, data, etc-->
|
||||
<text macro="publisher" suffix=". "/>
|
||||
<!--Dados complementares "pagina, volume"-->
|
||||
<text macro="locators" suffix=". "/>
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Artigo de revista, jornal, etc-->
|
||||
<else-if type="article-newspaper article-magazine article-journal" match="any">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo do artigo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<!--Titulo da publicacao-->
|
||||
<text macro="container-title" suffix=", "/>
|
||||
<!--Titulo da serie-->
|
||||
<text macro="collection-title" suffix=". "/>
|
||||
<text macro="place"/>
|
||||
<!--Edicao-->
|
||||
<text macro="edition" suffix=", "/>
|
||||
<!--Dados complementares "pagina, volume"-->
|
||||
<text macro="locators" suffix=", "/>
|
||||
<!--Data-->
|
||||
<text macro="issued" suffix=". "/>
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Tese-->
|
||||
<else-if type="thesis">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<text macro="issued-year" suffix=". "/>
|
||||
<text variable="number-of-pages" suffix=" f. "/>
|
||||
<!-- INSERINDO FOLHAS DE DISSERTAÇÕES E TESES -->
|
||||
<!--Tipo-->
|
||||
<text macro="genre" suffix=" - "/>
|
||||
<!--Local, data, etc-->
|
||||
<text variable="publisher" suffix=", "/>
|
||||
<text macro="place"/>
|
||||
<text macro="issued" suffix="."/>
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!-- Nao ha norma ABNT para manuscritos -->
|
||||
<else-if type="manuscript">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<!--Edicao-->
|
||||
<text macro="edition" suffix=". "/>
|
||||
<text macro="place"/>
|
||||
<!-- RETIREI O suffix=", " pois não aparece na publicação -->
|
||||
<!--Data-->
|
||||
<text macro="issued" suffix=". "/>
|
||||
<!--URL, data do acesso-->
|
||||
<text macro="access" suffix=". "/>
|
||||
<!--Arquive-->
|
||||
<text macro="archive" suffix=". "/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Pagina da WEB-->
|
||||
<else-if type="webpage">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<text macro="genre" suffix=". "/>
|
||||
<text macro="issued-year" suffix="."/>
|
||||
<!--URL, data do acesso-->
|
||||
<text macro="access" suffix=". "/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Relatorio-->
|
||||
<else-if type="report">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title"/>
|
||||
<!--Nomes de editores-->
|
||||
<text macro="container-contributors"/>
|
||||
<text macro="secondary-contributors"/>
|
||||
<!--Titulo da publicacao-->
|
||||
<text macro="container-title"/>
|
||||
<text variable="collection-title" prefix=": "/>
|
||||
<!--Dados complementares "pagina, volume"-->
|
||||
<text macro="locators"/>
|
||||
<!--Nome do evento, conferencia-->
|
||||
<text macro="event"/>
|
||||
<!--Local, data, etc-->
|
||||
<text macro="publisher" prefix=". " suffix=". "/>
|
||||
<!--URL, data do acesso-->
|
||||
<text macro="access" suffix="."/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Texto para Discussao (Verbete de Dicionario)-->
|
||||
<else-if type="entry-dictionary">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title"/>
|
||||
<!--Nomes de editores-->
|
||||
<text macro="container-contributors"/>
|
||||
<text macro="secondary-contributors"/>
|
||||
<!--Titulo da publicacao-->
|
||||
<text macro="container-title"/>
|
||||
<text variable="collection-title" prefix=": " suffix=". "/>
|
||||
<!--Dados complementares "pagina, volume"-->
|
||||
<text macro="locators"/>
|
||||
<!--Nome do evento, conferencia-->
|
||||
<text macro="event"/>
|
||||
<!--Local, data, etc-->
|
||||
<text macro="publisher" prefix=". " suffix=". "/>
|
||||
<text macro="collection-title" prefix="(Texto para discussao, n. " suffix=")."/>
|
||||
<!--URL, data do acesso-->
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Nota Tecnica (Verbete de Enciclopedia)-->
|
||||
<else-if type="entry-encyclopedia">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix=". "/>
|
||||
<text term="in" font-style="italic" text-case="capitalize-first" suffix=": "/>
|
||||
<text macro="container-title" suffix="."/>
|
||||
<!--Local-->
|
||||
<text variable="publisher-place" prefix=". " suffix=": "/>
|
||||
<!--Editor-->
|
||||
<text variable="publisher"/>
|
||||
<!--Data-->
|
||||
<text macro="issued" prefix="," suffix=". "/>
|
||||
</group>
|
||||
</else-if>
|
||||
<!--Publicacao em conferencia-->
|
||||
<else-if type="paper-conference">
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title" suffix="."/>
|
||||
<text term="in" font-style="italic" text-case="capitalize-first" prefix=" " suffix=": "/>
|
||||
<!--Nomes de editores -->
|
||||
<text macro="container-contributors" text-case="uppercase"/>
|
||||
<text macro="secondary-contributors"/>
|
||||
<!--Titulo da publicacao-->
|
||||
<text macro="container-title"/>
|
||||
<!--Dados complementares "pagina, volume"-->
|
||||
<text macro="locators"/>
|
||||
<group delimiter=". " prefix=". " suffix=". ">
|
||||
<!--Nome do evento, conferencia-->
|
||||
<text macro="event"/>
|
||||
</group>
|
||||
<text macro="publisher"/>
|
||||
<text variable="page" prefix=" p. " suffix="."/>
|
||||
<text macro="access"/>
|
||||
</else-if>
|
||||
<else-if type="legislation legal_case" match="any">
|
||||
<group>
|
||||
<!--Autor-->
|
||||
<text macro="author" suffix=". "/>
|
||||
<!--Titulo-->
|
||||
<text macro="title"/>
|
||||
<text variable="abstract" prefix=". " suffix=". "/>
|
||||
<!--Titulo da publicacao-->
|
||||
<text macro="container-title" suffix=", "/>
|
||||
<text variable="publisher-place" suffix=", "/>
|
||||
<text macro="issued-legislation" suffix=". "/>
|
||||
<text macro="section" prefix="Seção " suffix=", "/>
|
||||
<text variable="page" prefix="p. " suffix="."/>
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="patent" match="any">
|
||||
<group>
|
||||
<text macro="author" suffix=". "/>
|
||||
<text macro="title" prefix=" "/>
|
||||
<text variable="number" prefix=", " suffix=", "/>
|
||||
<text macro="issued" suffix=". "/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="interview song speech" match="any">
|
||||
<group>
|
||||
<text macro="author" suffix=". "/>
|
||||
<text macro="title" suffix=". "/>
|
||||
<text macro="publisher"/>
|
||||
<text variable="medium"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="broadcast motion_picture" match="any">
|
||||
<group>
|
||||
<text macro="title"/>
|
||||
<text value="Direção" text-case="capitalize-first" prefix=". " suffix=": "/>
|
||||
<text macro="director" suffix=". "/>
|
||||
<text macro="publisher"/>
|
||||
<text variable="medium"/>
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else-if type="dataset" match="any">
|
||||
<group>
|
||||
<text macro="author"/>
|
||||
<text macro="title" suffix=". "/>
|
||||
<text variable="version" prefix=". "/>
|
||||
<text macro="publisher"/>
|
||||
<text variable="medium"/>
|
||||
<text macro="access"/>
|
||||
</group>
|
||||
</else-if>
|
||||
<else>
|
||||
<!-- Inserindo referências de Documentos -->
|
||||
<text macro="author" suffix=". "/>
|
||||
<text macro="title" suffix=". "/>
|
||||
<text macro="container-contributors"/>
|
||||
<text macro="secondary-contributors"/>
|
||||
<text macro="container-title"/>
|
||||
<text variable="collection-title" prefix=": " suffix="."/>
|
||||
<text macro="locators"/>
|
||||
<group delimiter=". " prefix=". " suffix=". ">
|
||||
<!--Nome do evento, conferencia-->
|
||||
<text macro="event"/>
|
||||
</group>
|
||||
<!--Local-->
|
||||
<text variable="publisher-place" suffix=" "/>
|
||||
<!--Editor-->
|
||||
<text variable="publisher" suffix=", "/>
|
||||
<!-- Neste campo 'extra' podemos inserir o local da publicação do documento -->
|
||||
<text variable="note" suffix=""/>
|
||||
<!--Data-->
|
||||
<text macro="issued" suffix=". "/>
|
||||
<!-- REMOVI O prefix=", " DO ORIGINAL -->
|
||||
<text variable="number-of-pages" suffix=" p. "/>
|
||||
<!-- INSERINDO PÁGINAS DO DOCUMENTO -->
|
||||
<text macro="section" prefix="(" suffix=") "/>
|
||||
<!-- INSERINDO INFORMAÇÕES ADICIONAIS SOBRE O DOCUMENTO, ENTRE PARÊNTESES -->
|
||||
<!--URL, data do acesso-->
|
||||
<text macro="access"/>
|
||||
<text variable="medium"/>
|
||||
</else>
|
||||
</choose>
|
||||
</layout>
|
||||
</bibliography>
|
||||
</style>
|
171
_quarto.yml
Executable file
@ -0,0 +1,171 @@
|
||||
# Em navbar -> logo-href e navbar -> logo precisa colocar a url da capa animada e da capa estática, respectivamente. Assim como em sidebar -> logo colocar url da capa estática
|
||||
|
||||
|
||||
project:
|
||||
type: book # não altere
|
||||
output-dir: jean-jogos-brincadeiras # Escolha aqui a url do seu livro. O valor escolhido aqui resultará em algo como http://livro.online/url-do-seu-livro se essa url já não estiver sendo usada.
|
||||
post-render:
|
||||
- _extensions/moan-livro/preparacao-moan-ALTERADO.py # Não altere
|
||||
- correcao.py
|
||||
- correcao2.py
|
||||
preview:
|
||||
port: 4000 # não altere
|
||||
browser: true # não altere
|
||||
|
||||
lightbox: auto # nao altere
|
||||
|
||||
include-after-body: # não altere
|
||||
text: |
|
||||
<script src="https://leitorweb.livro.online/leitor-web.min.js"></script>
|
||||
<link rel="stylesheet" href="https://leitorweb.livro.online/css/configuracoesleitor.min.css" type="text/css">
|
||||
|
||||
lang: pt-BR # não altere
|
||||
language:
|
||||
toc-title-document: "Neste capítulo" # não altere
|
||||
|
||||
# number-sections precisa existir (seja true ou false) para o script que cria as referencias funcione direito
|
||||
number-sections: true # não altere
|
||||
crossref:
|
||||
chapters: true # não altere
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# É OBRIGATÓRIO informar se é ou não é um dicionário para as referências serem criadas corretamente
|
||||
# TB é OBRIGATÓRIO colocar uma div com as classes .hidden e .um_capitulo em todos os capítulos que nao sao verbetes em um dicionário. Se nao for dicionário, nao há necessidade
|
||||
controle-moan:
|
||||
dicionario: false
|
||||
|
||||
# Metadados da Editora Moan. Será usado para gerar o identificador ark e para os metadados que ficarão online
|
||||
# Informações como Título (title), subtítulo (subtitle), descrição (description), autor (author), data (date), editor (editor), editora (publisher), cidade (publisher-place), isbn da versao impressa (isbn) devem aparecer aqui e na entrada book abaixo.
|
||||
moan-dados:
|
||||
ark: 68745/eMdbp
|
||||
título: "Jean: entre jogos e brincadeiras"
|
||||
formato: Livro Digital (online)
|
||||
organizadora: Diullye Miola
|
||||
autor: Diullye Miola (organizadora e autora), Demitry Wallace dos Santos, Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda Fernandes, Lucas Pietruszynski, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento
|
||||
apontamento: https://livro.online/jean-jogos-brincadeiras # A editora moan depois altera isso
|
||||
edição: 1
|
||||
descrição: "Brincadeiras e jogos eletrônicos ou diversões off-line? Esse dilema é abordado por 10 crianças confrontadas ainda mais com esse assunto após a pandemia do coronavírus. Eles — e a professora Diullye — criaram a trama de um personagem fictício, o Jean, que incorpora todas as inquietações dos autores. Os jogos eletrônicos ajudaram na adaptação para as aulas on-line? Descubra a opinião desses autores infantis, mas já grandes nas realizações! Aproveite, também, para encontrar dicas de brincadeiras nesta obra e um jogo em Realidade Virtual (VR)."
|
||||
editora: Editora Moan
|
||||
local: Foz do Iguaçu - PR, Brasil
|
||||
editor: Rafael Tavares Juliani
|
||||
diagramador: Rafael Tavares Juliani
|
||||
capista: Rafael Tavares Juliani
|
||||
palavras-chave: Jogos, Brincadeiras, VR, Realidade Virtual, Literatura Infantojuvenil, Pandemia, Aulas on-line, Educação, Ensino
|
||||
área: Literatura Infantojuvenil
|
||||
cdd: 028.5.794
|
||||
cdu: "82-9:37"
|
||||
bisac: JUV000000
|
||||
ano-publicação: 2022
|
||||
data-publicação: 28/03/2022
|
||||
idioma: Português do Brasil (pt-BR)
|
||||
país: Brasil
|
||||
faixa-etária: "8-11 anos"
|
||||
classifcação-indicativa: Livre para todos os públicos
|
||||
ark-versao-impressa: 68745/eMdbp.tm
|
||||
isbn-versao-impressa: 9786599140488
|
||||
direitos-autorais: © Os autores e a Editora Moan, 2022
|
||||
licenca: Todos os direitos reservados
|
||||
licenca-link: https://www.planalto.gov.br/ccivil_03/leis/l9610.htm
|
||||
outros-créditos: "Capa (Raquete com modificações, modelo 3d de Katelin.A no Sketchfab, disponível em https://skfb.ly/6QTvS com licença CCBY disponível em https://creativecommons.org/licenses/by/4.0/ - Óculos VR do usuário Pixaline do Pixabay); Imagens internas com modificações (Pixabay: Ping pong e silhueta de professor de Clker-Free-Vector-Image; celular de iamwahid; joystickde IO-Images; silhueta mãe e filho de mohamed_hassan; óculos VR de Pixaline) e Sketchfab (Ampulheta de Antonio Gloria disponível em https://skfb.ly/6tG8X com licença CCBY disponível em https://creativecommons.org/licenses/by/4.0/)"
|
||||
|
||||
|
||||
# Abaixo, altere somente o título do seu livro, o subtítulo (se houver, caso contrário, deixe em branco, ou seja, apague o que está ali), o nome do autor e a descrição.
|
||||
|
||||
book:
|
||||
isbn: 978-65-99140-48-8
|
||||
google-analytics: G-G6VT93GC1X
|
||||
cookie-consent:
|
||||
palette: light
|
||||
policy-url: "https://livro.online/politica-de-cookies-br"
|
||||
language: pt
|
||||
prefs-text: Preferências de cookie
|
||||
search:
|
||||
type: textbox
|
||||
favicon: img/favicon.png # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
open-graph:
|
||||
image: img/og.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
twitter-card:
|
||||
image: img/og.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
title: "Jean: entre jogos e brincadeiras"
|
||||
subtitle: ""
|
||||
description: "Brincadeiras e jogos eletrônicos ou diversões off-line? Esse dilema é abordado por 10 crianças confrontadas ainda mais com esse assunto após a pandemia do coronavírus. Eles — e a professora Diullye — criaram a trama de um personagem fictício, o Jean, que incorpora todas as inquietações dos autores. Os jogos eletrônicos ajudaram na adaptação para as aulas on-line? Descubra a opinião desses autores infantis, mas já grandes nas realizações! Aproveite, também, para encontrar dicas de brincadeiras nesta obra e um jogo em Realidade Virtual (VR)."
|
||||
author:
|
||||
- name: Diullye
|
||||
- name: Demitry Wallace dos SantosG
|
||||
- name: Guilherme Bigilini
|
||||
- name: Gustavo Cosmo Rodrigues
|
||||
- name: Helena Sgarbi de Oliveira
|
||||
- name: Isabella de Morais Santos
|
||||
- name: João Pedro Miranda Fernandes
|
||||
- name: Lucas Pietruszynski
|
||||
- name: Mariana Martins Meyer
|
||||
- name: Mateus Possa Tonini
|
||||
- name: Murilo Pompeu Brandalize Nascimento
|
||||
compiler: Diullye Miola
|
||||
#primeiro o mês, depois o dia e depois o ano
|
||||
date: "03/28/2022"
|
||||
editor: Rafael Tavares Juliani
|
||||
publisher: Editora Moan
|
||||
publisher-place: Foz do Iguaçu - PR, Brasil
|
||||
page-navigation: true
|
||||
reader-mode: true
|
||||
sharing: [facebook, linkedin]
|
||||
sidebar:
|
||||
title: "As funções trigonométricas circulares e hiperbólicas"
|
||||
logo: img/capa.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
tools:
|
||||
- icon: card-image
|
||||
text: Capa Animada
|
||||
href: img/CapaAnim.webp # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
- icon: bi bi-git
|
||||
text: Alterações e Versões
|
||||
href: https://gitea.livro.online/editoramoan/jean-jogos-brincadeiras/commits/branch/main
|
||||
- icon: envelope-open-heart
|
||||
href: https://livro.online/doacao
|
||||
text: Doar
|
||||
- icon: printer-fill
|
||||
href: index.html#versão-impressa
|
||||
text: Versão Impressa
|
||||
- icon: book-half
|
||||
href: https://livro.online
|
||||
text: Outros Livros
|
||||
navbar:
|
||||
logo: img/capa.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
logo-href: img/CapaAnim.webp # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
|
||||
comments:
|
||||
hypothesis:
|
||||
theme: clean
|
||||
openSidebar: false
|
||||
chapters:
|
||||
- index.qmd
|
||||
- autores.qmd
|
||||
- apresentacao.qmd
|
||||
- introducao.qmd
|
||||
- geracao_alpha_versus_geracao_millennials.qmd
|
||||
- aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd
|
||||
- a_volta_das_aulas_presenciais.qmd
|
||||
- rolima.qmd
|
||||
|
||||
citation: true
|
||||
bibliography: referencias.bib
|
||||
csl: _extensions/moan-livro/universidade-estadual-de-alagoas-abnt.csl
|
||||
google-scholar: true
|
||||
|
||||
format:
|
||||
moan-livro-html:
|
||||
theme:
|
||||
light:
|
||||
- cosmo
|
||||
- _extensions/moan-livro/custom.scss
|
||||
- estilos.css
|
||||
dark:
|
||||
- superhero
|
||||
- _extensions/moan-livro/custom.scss
|
||||
- estilos.css
|
||||
|
||||
|
||||
format-links: false
|
||||
|
3
_variables.yml
Executable file
@ -0,0 +1,3 @@
|
||||
e-mail: "[editora@livro.online](mailto:editora@livro.online)"
|
||||
|
||||
whatsapp: "[+55 (45) 9 3505-0721](https://api.whatsapp.com/send?phone=5545935050721)"
|
34
a_volta_das_aulas_presenciais.qmd
Executable file
62
apresentacao.qmd
Executable file
@ -0,0 +1,62 @@
|
||||
|
||||
# Apresentação {.unnumbered .hidden}
|
||||
|
||||
```{=html}
|
||||
|
||||
<script src="scripts/pintarTela.js"></script>
|
||||
|
||||
<div id="conteudo-capitulo">
|
||||
|
||||
```
|
||||
|
||||
|
||||
::: {.grid .grid_titulo}
|
||||
|
||||
::: {.g-col-3}
|
||||
|
||||
::: {.fig_titulo}
|
||||
|
||||

|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
::: {.g-col-9}
|
||||
|
||||
# Apresentação {.unnumbered}
|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
|
||||
```{=html}
|
||||
|
||||
<p class="unidade" id="BP1" title="BP1"> Lembro-me de quando ganhei o meu primeiro celular, eu tinha 13 anos e ele não tinha acesso à internet. As músicas e fotos eram enviadas de um aparelho ao outro por meio de <em>bluetooth </em>(nome inglês dado a uma tecnologia de comunicação sem fio). Hoje, nem todas as crianças conhecem essa tecnologia.</p>
|
||||
<p class="unidade" id="BP2" title="BP2">Há dez anos em sala de aula, percebo como as crianças estão, cada vez mais cedo, tendo acesso a esse e outros tipos de aparelhos eletrônicos, preferindo, muitas vezes, “brincarem” com e no celular do que com atividades ao ar livre e com pessoas ao seu entorno.</p>
|
||||
<p class="unidade" id="BP3" title="BP3">Assim, este livro surge, a partir de discussões em sala de aula sobre o uso do celular, jogos eletrônicos e brincadeiras. As crianças (autoras e autores) desenvolveram a história a partir de estudos relacionados ao mesmo. Portanto, “qualquer semelhança com a realidade (não) é mera coincidência”.</p>
|
||||
<p class="unidade" id="BP4" title="BP4">Possivelmente você se identificará com algum personagem da história, mas, muito além disso, esperamos que você aprecie a leitura, se divirta com as histórias de Jean (uma criança fictícia) e pratique alguma brincadeira com sua família. </p>
|
||||
<canvas class="unidade" id="BP5" width="230" height="400"><img srr="img/jean-online.png" alt="Desenho a mão do menino Jean fazendo o sinal de valeu com o polegar da mão esquerda. Aparece escrito é duas vezes, um é de cada lado do rosto, mas não em cima do desenho do Jean." /></canvas>
|
||||
<p class="unidade" id="BP6" title="BP6">Você também pode personalizar o seu livro, deixando sua opinião e colorindo os desenhos.</p>
|
||||
|
||||
<p class="unidade legenda" id="BP7" title="BP7" style="text-indent: 0px; font-size: 0.8em;"><span style="font-weight: bold; font-variant: small-caps;">Ilustrações </span>(desenhadas a mão): <br />
|
||||
|
||||
<a href="http://livro.online/autor/demitry-santos" targe="blank">Demitry Wallace dos Santos</a></p>
|
||||
|
||||
|
||||
<p id="BP8" title="BP8" class="unidade" style="text-align: right; margin-top: 50px;"><a href="http://livro.online/autor/diullye-miola/" targe="blank"><img src="img/rabisco_Diullye.png" alt="Escrita Professora Mestra Diullye Miola"></a></p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
var js_el_um = document.getElementById('BP5');
|
||||
var img_url ="img/jean-online.png";
|
||||
var programa_dois_criado = new pintarTela(js_el_um, img_url);
|
||||
|
||||
</script>
|
||||
|
||||
```
|
46
aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd
Executable file
58
autores.qmd
Executable file
@ -0,0 +1,58 @@
|
||||
|
||||
# Sobre os autores {.unnumbered .hidden}
|
||||
|
||||
```{=html}
|
||||
|
||||
<div id="conteudo-capitulo">
|
||||
|
||||
```
|
||||
|
||||
|
||||
::: {.grid}
|
||||
|
||||
::: {.g-col-3}
|
||||
|
||||
::: {.fig_titulo}
|
||||
|
||||
 e uma bola de ping-pong")
|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
::: {.g-col-9}
|
||||
|
||||
# Sobre os Autores {.unnumbered}
|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
::: {.grid .destaque}
|
||||
|
||||
::: {.g-col-2}
|
||||
|
||||
 de um professor")
|
||||
|
||||
:::
|
||||
|
||||
::: {.g-col-10}
|
||||
|
||||
```{=html}
|
||||
<p id="AP1" title="AP1" class="unidade"><span class="versalete">Diullye Miola,</span> nasci em 06 de julho de 1995. Sou professora e apaixonada por crianças. Sobre minha infância, aproveitei muito e, embora eu não tivesse tanto contato com jogos eletrônicos, aprendo hoje com meus alunos.</p>
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
```{=html}
|
||||
|
||||
<p id="AP2" title="AP2" class="unidade"><span class="versalete">Demitry Wallace dos Santos,</span> nasci em 17 de novembro de 2009. Sou uma criança que adora desenhar e criar desenhos. Além disso, gosto muito de jogos eletrônicos de aventura e exploração.</p><p id="AP3" title="AP3" class="unidade"><span class="versalete">Guilherme Bigilini,</span> nasci em 31 de maio de 2010. Sou uma criança muito feliz, sempre sorridente e minha brincadeira favorita é <em>ping pong</em> (tênis de mesa), sempre brinco no intervalo das aulas <em>on-line</em>. </p><p id="AP4" title="AP4" class="unidade"><span class="versalete">Gustavo Cosmo Rodrigues,</span> nasci em 24 de julho de 2011. Sou uma criança com muitas ideias e estudioso. Gosto de pesquisar sobre países e desenhar suas bandeiras. Em relação aos jogos, gosto mais dos eletrônicos.</p><p id="AP5" title="AP5" class="unidade"><span class="versalete">Helena Sgarbi de Oliveira,</span> nasci em 19 de agosto de 2011. Sou uma criança feliz e divertida. Minha disciplina favorita é ciências e quando estou com meus amigos gosto de jogar futebol.</p><p id="AP6" title="AP6" class="unidade"><span class="versalete">Isabella de Morais Santos,</span> nasci em 18 de abril de 2011. Sou uma criança animada e engraçada. Gostei de participar da elaboração do livro e me identifiquei com os jogos eletrônicos, que gosto bastante.</p><p id="AP7" title="AP7" class="unidade"><span class="versalete">João Pedro Miranda Fernandes,</span> nasci em 27 de agosto de 2011. Sou uma criança tagarela e sou feliz assim. Quando estou com meus amigos gosto de brincar de pega-pega e, em casa, gosto de jogos eletrônicos. </p><p id="AP8" title="AP8" class="unidade"><span class="versalete">Lucas Pietruszynski de Sousa,</span> nasci em 16 de dezembro de 2010. Sou uma criança que gosta de brincar e de praticar esportes, sendo que futebol é o meu favorito. Também gosto de jogos eletrônicos.</p><p id="AP9" title="AP9" class="unidade"><span class="versalete">Mariana Martins Meyer,</span> nasci em 20 de setembro de 2011. Sou uma criança criativa e isso me ajudou na hora de escrever a história. Adorei essa experiência. Gosto de jogar futebol com meus amigos e, também, gosto de jogos eletrônicos.</p><p id="AP10" title="AP10" class="unidade"><span class="versalete">Mateus Possa Tonini,</span> nasci em 15 de agosto de 2011. Sou uma criança criativa e gosto muito de jogos eletrônicos e de passar tempo com meus amigos brincando. Tenho sonho de conhecer a neve.</p><p id="AP11" title="AP11" class="unidade"><span class="versalete">Murilo Pompeu Brandalize Nascimento,</span> nasci em 19 de maio de 2011. Sou uma criança apaixonada por esportes e, no recreio, sempre peço para a professora se podemos jogar futebol.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
```
|
34
correcao.py
Executable file
@ -0,0 +1,34 @@
|
||||
import os
|
||||
import shutil
|
||||
import yaml
|
||||
|
||||
def copiar_pasta(origem, destino):
|
||||
try:
|
||||
shutil.copytree(origem, destino, dirs_exist_ok=True)
|
||||
print(f'Conteúdos de "{origem}" copiados para "{destino}" com sucesso.')
|
||||
except Exception as e:
|
||||
print(f'Ocorreu um erro ao copiar os conteúdos de "{origem}" para "{destino}": {e}')
|
||||
|
||||
def main():
|
||||
# Ler o arquivo _quarto.yml
|
||||
with open('_quarto.yml', 'r') as yml_file:
|
||||
config = yaml.load(yml_file, Loader=yaml.FullLoader)
|
||||
|
||||
# Verificar se as chaves necessárias estão presentes no arquivo
|
||||
if 'project' in config and 'output-dir' in config['project']:
|
||||
output_dir = config['project']['output-dir']
|
||||
else:
|
||||
print('Chaves ausentes no arquivo _quarto.yml. Certifique-se de que as chaves project e output-dir estão presentes.')
|
||||
return
|
||||
|
||||
# Lista de pastas a serem copiadas
|
||||
pastas_a_copiar = ['scripts', 'img', 'interativos']
|
||||
|
||||
# Copiar o conteúdo das pastas para o diretório de saída
|
||||
for pasta in pastas_a_copiar:
|
||||
origem = os.path.join(os.getcwd(), pasta)
|
||||
destino = os.path.join(os.getcwd(), output_dir, pasta)
|
||||
copiar_pasta(origem, destino)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
37
correcao2.py
Executable file
@ -0,0 +1,37 @@
|
||||
import os
|
||||
import yaml
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
def adicionar_div_correcao(html_path):
|
||||
with open(html_path, 'r', encoding='utf-8') as file:
|
||||
soup = BeautifulSoup(file, 'html.parser')
|
||||
|
||||
for div_tag in soup.find_all('div', class_='raw_html'):
|
||||
code_tag = div_tag.find('code')
|
||||
if code_tag:
|
||||
codigo = code_tag.decode_contents()
|
||||
nova_div = soup.new_tag('div', **{'class': 'correcao'})
|
||||
nova_div.append(BeautifulSoup(codigo, 'html.parser'))
|
||||
div_tag.replace_with(nova_div)
|
||||
|
||||
with open(html_path, 'w', encoding='utf-8') as file:
|
||||
file.write(str(soup.prettify(formatter=None)))
|
||||
|
||||
def processar_htmls(diretorio):
|
||||
for root, dirs, files in os.walk(diretorio):
|
||||
for file_name in files:
|
||||
if file_name.endswith('.html'):
|
||||
html_path = os.path.join(root, file_name)
|
||||
adicionar_div_correcao(html_path)
|
||||
|
||||
def obter_output_dir_from_yaml():
|
||||
quarto_yaml_path = "_quarto.yml"
|
||||
with open(quarto_yaml_path, 'r', encoding='utf-8') as file:
|
||||
config = yaml.safe_load(file)
|
||||
return config['project']['output-dir']
|
||||
|
||||
if __name__ == "__main__":
|
||||
output_dir = obter_output_dir_from_yaml()
|
||||
pasta_htmls = os.path.join(os.path.dirname(__file__), output_dir)
|
||||
|
||||
processar_htmls(pasta_htmls)
|
172
estilos.css
Executable file
@ -0,0 +1,172 @@
|
||||
/*-- scss:defaults --*/
|
||||
|
||||
/* TODO: Customize html appearance by setting SCSS variables */
|
||||
/* See https://quarto.org/docs/output-formats/html-themes.html#theme-options */
|
||||
|
||||
/*-- scss:rules --*/
|
||||
|
||||
/* TODO: Provide custom CSS rules */
|
||||
|
||||
/*-- scss:defaults --*/
|
||||
|
||||
/*-- scss:rules --*/
|
||||
|
||||
@font-face {
|
||||
font-family: MouseMemoirs;
|
||||
src: url(fonts/MouseMemoirs-Regular.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: andika;
|
||||
src: url(fonts/AndikaNewBasic-Regular.ttf);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#capa img {
|
||||
|
||||
width: 104%;
|
||||
height: auto;
|
||||
max-width: 767px;
|
||||
margin-left: -15px;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo {
|
||||
|
||||
font-family: Source Sans Pro, Arial, Helvetica, sans-serif;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo .corpo_do_texto {
|
||||
|
||||
margin-top: 100px;
|
||||
margin-bottom: 50px;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo .versalete {
|
||||
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo h1 {
|
||||
|
||||
font-family: MouseMemoirs, Arial, Helvetica, sans-serif;
|
||||
font-size: 3em;
|
||||
letter-spacing: 2px;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo p {
|
||||
|
||||
font-family: Source Sans Pro, Arial, Helvetica, sans-serif;
|
||||
line-height: 1.5;
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 20px;
|
||||
text-indent: 30px;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo .legenda {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#conteudo-capitulo .destaque {
|
||||
|
||||
background-color: #e7e7e7;
|
||||
border-radius: 40px;
|
||||
margin: 20px auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#conteudo-capitulo .destaque img {
|
||||
|
||||
text-align: center;
|
||||
margin: 15px;
|
||||
|
||||
}
|
||||
|
||||
#conteudo-capitulo .caixa p, #conteudo-capitulo .destaque p {
|
||||
|
||||
margin-bottom: 0;
|
||||
padding-right: 10px;
|
||||
text-indent: 0px;
|
||||
|
||||
}
|
||||
|
||||
body.quarto-dark #conteudo-capitulo .destaque {
|
||||
|
||||
background-color: #333333;
|
||||
|
||||
}
|
||||
|
||||
.grid_titulo {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
#conteudo-capitulo #AP2 {
|
||||
|
||||
margin-top: 35px;
|
||||
|
||||
}
|
||||
|
||||
h1.title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.fig_titulo {
|
||||
max-width: 100px;
|
||||
margin: 35px auto -30px auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #00bfff;
|
||||
}
|
||||
|
||||
#conteudo-capitulo h1#titulo {
|
||||
margin-bottom: 60px !important;
|
||||
}
|
||||
|
||||
#conteudo-capitulo .cap_titulo {
|
||||
|
||||
color: #A1A3A4;
|
||||
text-align: right;
|
||||
font-family: Source Sans Pro, Arial, Helvetica, sans-serif;
|
||||
font-size: 1.7rem;
|
||||
letter-spacing: normal;
|
||||
|
||||
}
|
||||
|
||||
#silhueta {
|
||||
width: 35%;
|
||||
height: auto;
|
||||
float: left;
|
||||
max-width: 300px;
|
||||
margin-bottom: 30px;
|
||||
shape-outside: url(img/silhouette-3148600_1280_pixabay_mohamed_hassan.png);
|
||||
shape-margin: 0.3em;
|
||||
}
|
||||
|
||||
#ampulheta {
|
||||
display: block;
|
||||
margin: 40px auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 630px) {
|
||||
.grid [class*="g-col-"] {
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.grid {display: block;}
|
||||
|
||||
#conteudo-capitulo .destaque img {
|
||||
|
||||
max-width: 100px;
|
||||
|
||||
}
|
||||
|
||||
}
|
BIN
fonts/AndikaNewBasic-Regular.ttf
Executable file
BIN
fonts/MouseMemoirs-Regular.ttf
Executable file
240
geracao_alpha_versus_geracao_millennials.qmd
Executable file
BIN
img/Ampulheta-de-Antonio-Gloria-sketchfab-user.png
Executable file
After Width: | Height: | Size: 65 KiB |
BIN
img/CapaAnim.webp
Executable file
After Width: | Height: | Size: 838 KiB |
BIN
img/CapaAnim_P.webp
Executable file
After Width: | Height: | Size: 107 KiB |
BIN
img/anel.png
Executable file
After Width: | Height: | Size: 13 KiB |
BIN
img/bat-25764_1280_pixabay_Clker-Free-Vector-Images.png
Executable file
After Width: | Height: | Size: 55 KiB |
BIN
img/bua.png
Executable file
After Width: | Height: | Size: 16 KiB |
BIN
img/capa.jpg
Executable file
After Width: | Height: | Size: 54 KiB |
BIN
img/capa.png
Executable file
After Width: | Height: | Size: 1.1 MiB |
BIN
img/carrinho-rolima.png
Executable file
After Width: | Height: | Size: 25 KiB |
BIN
img/controller-1784571_295_pixabay_IO-Images.png
Executable file
After Width: | Height: | Size: 7.6 KiB |
BIN
img/favicon.png
Executable file
After Width: | Height: | Size: 403 KiB |
BIN
img/favicon2.png
Executable file
After Width: | Height: | Size: 73 KiB |
BIN
img/favicon3.png
Executable file
After Width: | Height: | Size: 373 KiB |
BIN
img/favicon4.png
Executable file
After Width: | Height: | Size: 391 KiB |
BIN
img/favicon5.png
Executable file
After Width: | Height: | Size: 378 KiB |
BIN
img/favicon6.png
Executable file
After Width: | Height: | Size: 383 KiB |
BIN
img/jean-online.png
Executable file
After Width: | Height: | Size: 100 KiB |
BIN
img/lombada.jpg
Executable file
After Width: | Height: | Size: 9.7 KiB |
BIN
img/og-2.png
Executable file
After Width: | Height: | Size: 91 KiB |
BIN
img/og.jpg
Executable file
After Width: | Height: | Size: 244 KiB |
BIN
img/peteca.png
Executable file
After Width: | Height: | Size: 18 KiB |
BIN
img/phone-2655101_1280_pixabay_iamwahid.png
Executable file
After Width: | Height: | Size: 9.4 KiB |
BIN
img/ping-pong.png
Executable file
After Width: | Height: | Size: 12 KiB |
BIN
img/queimada.png
Executable file
After Width: | Height: | Size: 47 KiB |
BIN
img/rabisco_Diullye.png
Executable file
After Width: | Height: | Size: 15 KiB |
BIN
img/silhouette-3148600_1280_pixabay_mohamed_hassan.png
Executable file
After Width: | Height: | Size: 10 KiB |
BIN
img/teacher-309533_1280_pixabay_Clker-Free-Vector-ImagesBranco.png
Executable file
After Width: | Height: | Size: 16 KiB |
BIN
img/virtual-2055227_1280_pixabay_Pixaline_m.png
Executable file
After Width: | Height: | Size: 3.8 KiB |
85
index.qmd
Executable file
@ -0,0 +1,85 @@
|
||||
```{=html}
|
||||
|
||||
<style>
|
||||
|
||||
h1.title {display: block;}
|
||||
|
||||
</style>
|
||||
|
||||
```
|
||||
|
||||

|
||||
|
||||
# Metadados {.unnumbered style="text-align:left;"}
|
||||
|
||||
Este livro é uma publicação da [**{{< meta moan-dados.editora >}}**](https://editora.livro.online), {{< meta moan-dados.local >}}. Seu identificador é **ark:{{< meta moan-dados.ark >}}**. A versão física (impressa) deste livro possui **ark:{{< meta moan-dados.ark-versao-impressa >}}** e **isbn:{{< meta moan-dados.isbn-versao-impressa >}}**.
|
||||
|
||||
{fig-alt="Logo da Editora Moan. Um triângulo representando uma câmera, um retângulo representando um livro, a escrita Editora Moan. Tudo branco em um fundo escuro. E o 'R' de marca registrada em azul"}
|
||||
|
||||
Para saber o que é e como usar um identificador ARK, acesse: [https://n2t.net/ark:68745/eMT4d/posts/ark_o_que_e](https://n2t.net/ark:68745/eMT4d/posts/ark_o_que_e).
|
||||
|
||||
Confira, abaixo, os metadados completos deste livro, conforme registro ARK. Você pode escolher a versão JSON ou YAML.
|
||||
|
||||
|
||||
::: {.panel-tabset}
|
||||
|
||||
## JSON
|
||||
|
||||
```{=html}
|
||||
|
||||
<object id="metadados_livro_json" style="width: 100%; height:500px;" data="https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json" type="text/json"></object>
|
||||
|
||||
<p>Caso não esteja visualizando, acesse: <a href="https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json">https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json</a></p>
|
||||
|
||||
```
|
||||
|
||||
|
||||
## YAML
|
||||
|
||||
```{=html}
|
||||
|
||||
<object id="metadados_livro_yml" style="width: 100%; height:500px;" data="https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml" type="text/yaml"></object>
|
||||
|
||||
<p>Caso não esteja visualizando, acesse: <a href="https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml">https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml</a></p>
|
||||
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Como Citar
|
||||
|
||||
BibTeX:
|
||||
|
||||
::: {#como-citar-bibtex}
|
||||
```
|
||||
@book{miola_d_2022,
|
||||
editor = {Miola, Diullye},
|
||||
title = {Jean: entre jogos e brincadeiras},
|
||||
year = {2022},
|
||||
publisher = {Editora Moan},
|
||||
address = {Foz do Iguaçu},
|
||||
url = {https://livro.online/ark:68745/eMdbp},
|
||||
urldate = {A data que vc acessou no padrão yyyy-mm-dd},
|
||||
}
|
||||
```
|
||||
:::
|
||||
|
||||
Para atribuição, cite este trabalho como:
|
||||
|
||||
::: {#como-citar-atribuicao}
|
||||
Miola, D. (org). **Jean: entre jogos e brincadeiras**. Foz do Iguaçu: Editora Moan, 2022. Disponível em: https://livro.online/ark:68745/eMdbp. Acesso em: dd mmm(3 primeiras letras). yyyy.
|
||||
:::
|
||||
|
||||
## Versão Impressa
|
||||
|
||||
Compre a versão impressa e ajude a manter este projeto com livros gratuitos *online*. Mantenha o conhecimento livre!
|
||||
|
||||
Assim que o livro físico estiver disponível para venda, ele aparecerá aqui[^1].
|
||||
|
||||
[^1]: Se algum link de compra estiver quebrado, por favor, nos avise no e-mail {{< var e-mail >}} ou pelo whatsapp {{< var whatsapp >}}.
|
||||
|
||||
## Direitos Autorais
|
||||
|
||||
{{< meta moan-dados.direitos-autorais >}}
|
||||
|
||||
[{{< meta moan-dados.licenca >}}]({{< meta moan-dados.licenca-link >}})
|
BIN
interativos/403005__inspectorj__ui-confirmation-alert-a4_alt.mp3
Executable file
BIN
interativos/429104__inspectorj__marble-rolling-on-wood-alt.mp3
Executable file
BIN
interativos/456319__cupido-1__hit-ball.mp3
Executable file
BIN
interativos/528730__alexhanj__ping_alt.mp3
Executable file
BIN
interativos/563850__nikplaymostories__fail-trombone-wah-wah-wah-sound-effect.mp3
Executable file
BIN
interativos/60443__jobro__tada1.mp3
Executable file
1
interativos/aframe-aabb-collider-component.min.js
vendored
Executable file
@ -0,0 +1 @@
|
||||
!function(e){function t(i){if(s[i])return s[i].exports;var n=s[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t){function s(e,t){var s;for(e.length=0,s=0;s<t.length;s++)e[s]=t[s]}if("undefined"==typeof AFRAME)throw new Error("Component attempted to register before AFRAME was available.");var i={childList:!0,attributes:!0,subtree:!0};AFRAME.registerComponent("aabb-collider",{schema:{collideNonVisible:{default:!1},debug:{default:!1},enabled:{default:!0},interval:{default:80},objects:{default:""}},init:function(){this.centerDifferenceVec3=new THREE.Vector3,this.clearedIntersectedEls=[],this.closestIntersectedEl=null,this.boundingBox=new THREE.Box3,this.boxCenter=new THREE.Vector3,this.boxHelper=new THREE.BoxHelper,this.boxMax=new THREE.Vector3,this.boxMin=new THREE.Vector3,this.hitClosestClearEventDetail={},this.hitClosestEventDetail={},this.intersectedEls=[],this.objectEls=[],this.newIntersectedEls=[],this.prevCheckTime=void 0,this.previousIntersectedEls=[],this.setDirty=this.setDirty.bind(this),this.observer=new MutationObserver(this.setDirty),this.dirty=!0,this.hitStartEventDetail={intersectedEls:this.newIntersectedEls}},play:function(){this.observer.observe(this.el.sceneEl,i),this.el.sceneEl.addEventListener("object3dset",this.setDirty),this.el.sceneEl.addEventListener("object3dremove",this.setDirty)},remove:function(){this.observer.disconnect(),this.el.sceneEl.removeEventListener("object3dset",this.setDirty),this.el.sceneEl.removeEventListener("object3dremove",this.setDirty)},tick:function(e){var t,i,n,r,o=this.boundingBox,l=this.centerDifferenceVec3,h=this.clearedIntersectedEls,c=this.intersectedEls,a=this.el,b=this.newIntersectedEls,d=this.objectEls,E=this.prevCheckTime,x=this.previousIntersectedEls;if(this.data.enabled&&!(E&&e-E<this.data.interval)){for(this.prevCheckTime=e,this.dirty&&this.refreshObjects(),o.setFromObject(a.object3D),this.boxMin.copy(o.min),this.boxMax.copy(o.max),o.getCenter(this.boxCenter),this.data.debug&&(this.boxHelper.setFromObject(a.object3D),this.boxHelper.parent||a.sceneEl.object3D.add(this.boxHelper)),s(x,c),c.length=0,r=0;r<d.length;r++)d[r]!==this.el&&(this.data.collideNonVisible||d[r].getAttribute("visible")?this.isIntersecting(d[r])&&c.push(d[r]):this.data.debug&&(t=d[r].object3D.boxHelper,t&&(a.sceneEl.object3D.remove(t),d[r].object3D.boxHelper=null)));for(b.length=0,r=0;r<c.length;r++)x.indexOf(c[r])===-1&&b.push(c[r]);for(h.length=0,r=0;r<x.length;r++)c.indexOf(x[r])===-1&&(x[r].hasAttribute("aabb-collider")||x[r].emit("hitend", e),h.push(x[r]));for(r=0;r<b.length;r++)b[r]!==this.el&&(b[r].hasAttribute("aabb-collider")||b[r].emit("hitstart", a));for(r=0;r<c.length;r++)c[r]!==this.el&&(l.copy(c[r].object3D.boundingBoxCenter).sub(this.boxCenter),(void 0===i||l.length()<i)&&(i=l.length(),n=c[r]));!c.length&&this.closestIntersectedEl?(this.hitClosestClearEventDetail.el=this.closestIntersectedEl,this.closestIntersectedEl.emit("hitclosestclear"),this.closestIntersectedEl=null,a.emit("hitclosestclear",this.hitClosestClearEventDetail)):n!==this.closestIntersectedEl&&(this.closestIntersectedEl&&(this.hitClosestClearEventDetail.el=this.closestIntersectedEl,this.closestIntersectedEl.emit("hitclosestclear",this.hitClosestClearEventDetail, e)),n&&(n.emit("hitclosest"),this.closestIntersectedEl=n,this.hitClosestEventDetail.el=n,a.emit("hitclosest",this.hitClosestEventDetail, e))),h.length&&a.emit("hitend"),b.length&&a.emit("hitstart",this.hitStartEventDetail, a)}},isIntersecting:function(){var e=new THREE.Box3;return function(t){var s,i;return e.setFromObject(t.object3D),this.data.debug&&(t.object3D.boxHelper||(t.object3D.boxHelper=new THREE.BoxHelper(t.object3D,new THREE.Color(Math.random(),Math.random(),Math.random())),t.sceneEl.object3D.add(t.object3D.boxHelper)),t.object3D.boxHelper.setFromObject(t.object3D)),s=e.min,i=e.max,t.object3D.boundingBoxCenter=t.object3D.boundingBoxCenter||new THREE.Vector3,e.getCenter(t.object3D.boundingBoxCenter),this.boxMin.x<=i.x&&this.boxMax.x>=s.x&&this.boxMin.y<=i.y&&this.boxMax.y>=s.y&&this.boxMin.z<=i.z&&this.boxMax.z>=s.z}}(),setDirty:function(){this.dirty=!0},refreshObjects:function(){var e=this.data;this.objectEls=e.objects?this.el.sceneEl.querySelectorAll(e.objects):this.el.sceneEl.children,this.dirty=!1}})}]);
|
422
interativos/aframe.0.8.2.min.js
vendored
Executable file
BIN
interativos/carrinho.glb
Executable file
BIN
interativos/cidade.glb
Executable file
BIN
interativos/cone.glb
Executable file
BIN
interativos/fundo.jpg
Executable file
After Width: | Height: | Size: 482 KiB |
575
interativos/index.html
Executable file
@ -0,0 +1,575 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title>Jogo VR Rolimã do livro "Jean: entre jogos e brincadeiras"</title>
|
||||
|
||||
<meta name="description" content="">
|
||||
|
||||
<script src="aframe.0.8.2.min.js"></script>
|
||||
|
||||
|
||||
<script src="aframe-aabb-collider-component.min.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
var RotY;
|
||||
|
||||
var RotZ;
|
||||
|
||||
AFRAME.registerComponent('rotation-reader', {
|
||||
|
||||
tick: function () {
|
||||
|
||||
RotZ = this.el.object3D.rotation.y;
|
||||
RotY = this.el.object3D.rotation.z;
|
||||
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<a-scene>
|
||||
|
||||
<a-assets>
|
||||
|
||||
<img id="sky" src="fundo.jpg">
|
||||
|
||||
<a-asset-item id="cidade" src="cidade.glb"></a-asset-item>
|
||||
<!-- A Cidade
|
||||
"CCity Building Set 1" (https://skfb.ly/LpSC) by Neberkenezer is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
|
||||
Alterações foram feitas
|
||||
-->
|
||||
|
||||
<a-asset-item id="carrinho" src="carrinho.glb"></a-asset-item>
|
||||
|
||||
<a-asset-item id="cone" src="cone.glb"></a-asset-item>
|
||||
<!--
|
||||
Cone
|
||||
"Orange street cone" (https://skfb.ly/6RUHP) by Mateusz Woliński is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
|
||||
Alterações foram feitas
|
||||
|
||||
-->
|
||||
|
||||
<audio id="rolima" src="429104__inspectorj__marble-rolling-on-wood-alt.mp3" ></audio>
|
||||
|
||||
<!-- Som Rolimã
|
||||
Usuário InspectorJ do freesound.org
|
||||
Marble, Rolling on Wood, A.wav
|
||||
https://freesound.org/people/InspectorJ/sounds/429104/
|
||||
licença: https://creativecommons.org/licenses/by/3.0/
|
||||
Foram realizadas alterações no arquivo
|
||||
-->
|
||||
|
||||
|
||||
<audio id="cont" src="528730__alexhanj__ping_alt.mp3" ></audio>
|
||||
|
||||
<!-- Som contagem
|
||||
Usuário Alexhanj do freesound.org
|
||||
Ping.aiff
|
||||
https://freesound.org/people/Alexhanj/sounds/528730/
|
||||
licença: https://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
-->
|
||||
|
||||
<audio id="vai" src="403005__inspectorj__ui-confirmation-alert-a4_alt.mp3" ></audio>
|
||||
|
||||
<!-- Som do vai
|
||||
Usuário InspectorJ do freesound.org
|
||||
UI Confirmation Alert, A4.wav
|
||||
https://freesound.org/people/InspectorJ/sounds/403005/
|
||||
licença: https://creativecommons.org/licenses/by/3.0/
|
||||
|
||||
-->
|
||||
|
||||
<audio id="sucesso" src="60443__jobro__tada1.mp3" ></audio>
|
||||
|
||||
<!-- Som de sucesso, conclusão
|
||||
Usuário jobro do freesound.org
|
||||
Success!! » tada1.wav
|
||||
https://freesound.org/people/jobro/sounds/60443/
|
||||
licença: https://creativecommons.org/licenses/by/3.0/
|
||||
Foi feita uma pequena alteração
|
||||
-->
|
||||
|
||||
<audio id="batida" src="456319__cupido-1__hit-ball.mp3" ></audio>
|
||||
|
||||
<!-- Som batida no cone
|
||||
Usuário cupido-1 do freesound.org
|
||||
hit ball.WAV
|
||||
https://freesound.org/people/cupido-1/sounds/456319/
|
||||
licença: https://creativecommons.org/publicdomain/zero/1.0/
|
||||
Alterações foram feitas
|
||||
-->
|
||||
|
||||
<audio id="falhou" src="563850__nikplaymostories__fail-trombone-wah-wah-wah-sound-effect.mp3" ></audio>
|
||||
|
||||
<!-- Som de game over - você falhou
|
||||
Usuário NikPlaymostories do freesound.org
|
||||
Fail (Trombone wah, wah, wah…) - Sound Effect.mp3
|
||||
https://freesound.org/people/NikPlaymostories/sounds/563850/
|
||||
licença: https://creativecommons.org/publicdomain/zero/1.0/
|
||||
Alterações foram feitas
|
||||
-->
|
||||
|
||||
|
||||
</a-assets>
|
||||
|
||||
|
||||
|
||||
<a-sky src="#sky"></a-sky>
|
||||
|
||||
|
||||
<a-entity id="roll" sound="src: #rolima; volume: 3"></a-entity>
|
||||
<a-entity id="contSom" sound="src: #cont"></a-entity>
|
||||
<a-entity id="vaiSom" sound="src: #vai"></a-entity>
|
||||
<a-entity id="batidaSom" sound="src: #batida; volume:5"></a-entity>
|
||||
<a-entity id="gameOverSom" sound="src: #falhou; volume:5"></a-entity>
|
||||
<a-entity id="sucessoSom" sound="src: #sucesso; volume:25"></a-entity>
|
||||
|
||||
|
||||
<a-entity id="camera" camera="active: true;" position="0 13.2 5"> <!-- Necessário para posicionar a camera -->
|
||||
|
||||
<a-entity rotation-reader camera="active: true" look-controls position="0 0 0" rotation="0 0 0">
|
||||
|
||||
<a-text id="contagem" visible="false" value="3" position="0 0.1 -0.4" width="3" color="#FFFFFF" align="center"></a-text>
|
||||
<a-text id="instrucao" value="Desvie dos cones. Clique no desenho do canto inferior direito para iniciar." position="0 0.05 -0.2" width="0.5" color="#FFFFFF" align="center"></a-text>
|
||||
<a-text id="textoFinal" visible="false" value="Isso! Vamos complicar um pouco? Aguarde a contagem novamente." position="0 0.05 -0.2" width="0.5" color="#FFFFFF" align="center"></a-text>
|
||||
<a-text id="gameOver" visible="false" value="Que pena... Tente outra vez! Aguarde..." position="0 0.05 -0.2" width="0.5" color="#FFFFFF" align="center"></a-text>
|
||||
|
||||
|
||||
</a-entity>
|
||||
|
||||
</a-entity>
|
||||
|
||||
|
||||
|
||||
<a-entity gltf-model="#cidade" position="22.5 0 -180" rotation="0 90 0"></a-entity>
|
||||
|
||||
<a-entity id="player" class="player" gltf-model="#carrinho" position="0 13 5" rotation="-4 0 0"></a-entity>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</a-scene>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
|
||||
var cam = document.querySelector('#camera');
|
||||
|
||||
var player = document.querySelector('#player');
|
||||
|
||||
var textoFinal = document.querySelector('#textoFinal');
|
||||
|
||||
var contagem = document.querySelector('#contagem');
|
||||
|
||||
let play;
|
||||
|
||||
var Px;
|
||||
|
||||
var Py;
|
||||
|
||||
let roll = document.querySelector('#roll');
|
||||
let contSom = document.querySelector('#contSom');
|
||||
let vaiSom = document.querySelector('#vaiSom');
|
||||
let batidaSom = document.querySelector('#batidaSom');
|
||||
let sucessoSom = document.querySelector('#sucessoSom');
|
||||
let gameOverSom = document.querySelector('#gameOverSom');
|
||||
|
||||
let k = 0.1; //velocidade
|
||||
|
||||
var fase = 1;
|
||||
|
||||
function contarElArr(arr, el) {
|
||||
|
||||
return arr.filter(item => item == el).length;
|
||||
|
||||
}
|
||||
|
||||
function finalizarJogo(e) {
|
||||
|
||||
player.removeEventListener('hitstart', finalizarJogo);
|
||||
|
||||
var obj = e.detail.id;
|
||||
|
||||
cancelAnimationFrame(play);
|
||||
|
||||
roll.components.sound.stopSound();
|
||||
|
||||
batidaSom.components.sound.playSound();
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
gameOverSom.components.sound.playSound();
|
||||
|
||||
batidaSom.components.sound.stopSound();
|
||||
|
||||
}, 500);
|
||||
|
||||
gameOver.setAttribute('visible', true);
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
gameOverSom.components.sound.stopSound();
|
||||
|
||||
gameOver.setAttribute('visible', false);
|
||||
|
||||
voltarPosicaoInicial(0);
|
||||
|
||||
}, 3000);
|
||||
|
||||
console.log("Objeto colidido: "+obj);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function sortearObstaculos() {
|
||||
|
||||
let val = 12 - fase;
|
||||
|
||||
let qtde = parseInt(val,10)-1;
|
||||
|
||||
let posicoes = [0,15,30,45,60,75,90,105,120,135,150,165,180,195];
|
||||
|
||||
let sorteados = [];
|
||||
|
||||
for (i=0;i<qtde;i++){
|
||||
|
||||
let status = false;
|
||||
|
||||
let sorteado = Math.floor(Math.random()*(posicoes.length-1)); // sorteia números de 0 até a quantidade de posições menos um.
|
||||
|
||||
let rep = contarElArr(sorteados,posicoes[sorteado]);
|
||||
|
||||
|
||||
|
||||
if ( rep >= 2){
|
||||
|
||||
|
||||
|
||||
posicoes.splice(sorteado, 1);
|
||||
|
||||
sorteado = Math.floor(Math.random()*(posicoes.length-1)); // sorteia números de 0 até a quantidade de posições menos um.
|
||||
|
||||
|
||||
|
||||
sorteados.push(posicoes[sorteado]);
|
||||
|
||||
|
||||
|
||||
status = true;
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
sorteados.push(posicoes[sorteado]);
|
||||
|
||||
|
||||
status = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (status){
|
||||
|
||||
let sorteadoECD = Math.floor((Math.random()*3)+1); //sorteia 1, 2 ou 3. "1" esquerda, "2", centro e "3", direita.
|
||||
|
||||
let id = sorteado.toString();
|
||||
|
||||
let posX;
|
||||
|
||||
if(sorteadoECD == 1){
|
||||
|
||||
posX = -2.1;
|
||||
|
||||
} else if(sorteadoECD == 2){
|
||||
|
||||
posX = 0;
|
||||
|
||||
} else {
|
||||
|
||||
posX = 2.1;
|
||||
|
||||
}
|
||||
|
||||
let el = document.createElement('a-entity');
|
||||
|
||||
el.setAttribute('gltf-model','#cone');
|
||||
|
||||
let sceneEl = document.querySelector('a-scene');
|
||||
|
||||
sceneEl.appendChild(el);
|
||||
|
||||
el.id = id;
|
||||
|
||||
el.object3D.position.x = posX;
|
||||
|
||||
el.object3D.position.z = -10 - sorteados[i]; // -10 para o primeiro obstáculo não ficar muito em cima no início
|
||||
|
||||
el.object3D.position.y = (10 + sorteados[i])*(-0.0699) + 12.65;
|
||||
|
||||
el.setAttribute('aabb-collider','objects: .player; collideNonVisible: true');
|
||||
|
||||
}//fecha if do status
|
||||
|
||||
}// fecha for
|
||||
|
||||
|
||||
}// fecha a funcao sortearObstaculos
|
||||
|
||||
|
||||
|
||||
|
||||
function checarFim() {
|
||||
|
||||
if(this.player.object3D.position.z <= -210){
|
||||
|
||||
cancelAnimationFrame(play);
|
||||
|
||||
sucessoSom.components.sound.playSound();
|
||||
|
||||
roll.components.sound.stopSound();
|
||||
|
||||
if (fase == 1){
|
||||
|
||||
textoFinal.setAttribute('visible', true);
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
|
||||
voltarPosicaoInicial(1);
|
||||
|
||||
}, 3000);
|
||||
|
||||
} else if (fase == 2) {
|
||||
|
||||
textoFinal.setAttribute('value','Uau! Uma mais complicada?')
|
||||
|
||||
textoFinal.setAttribute('visible', true);
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
|
||||
voltarPosicaoInicial(2);
|
||||
|
||||
}, 3000);
|
||||
|
||||
} else if (fase == 3) {
|
||||
|
||||
textoFinal.setAttribute('value','Irado! Vou complicar mais!')
|
||||
|
||||
textoFinal.setAttribute('visible', true);
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
|
||||
voltarPosicaoInicial(3);
|
||||
|
||||
}, 3000);
|
||||
|
||||
} else if (fase == 4) {
|
||||
|
||||
textoFinal.setAttribute('value','Fim. Que fera!')
|
||||
|
||||
textoFinal.setAttribute('visible', true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function voltarPosicaoInicial(numFase) {
|
||||
|
||||
this.player.object3D.position.z = 5;
|
||||
this.player.object3D.position.y = 13;
|
||||
|
||||
this.cam.object3D.position.z = 5;
|
||||
this.cam.object3D.position.y = 13.2;
|
||||
|
||||
fase = numFase + 1;
|
||||
|
||||
k = parseInt(fase,10)*0.1;
|
||||
|
||||
console.log('Fase: '+fase+' k: '+k);
|
||||
|
||||
textoFinal.setAttribute('visible', false);
|
||||
|
||||
iniciarContagem();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function iniciarContagem() {
|
||||
|
||||
player.addEventListener('hitstart', finalizarJogo);
|
||||
|
||||
sortearObstaculos();
|
||||
|
||||
contSom.components.sound.stopSound();
|
||||
|
||||
instrucao.setAttribute('visible', false);
|
||||
|
||||
let tempoRestante = 3;
|
||||
|
||||
let contador = setInterval(function(){
|
||||
|
||||
contagem.setAttribute('visible', true);
|
||||
|
||||
if(tempoRestante <= -1){
|
||||
|
||||
clearInterval(contador);
|
||||
contagem.setAttribute('visible', false);
|
||||
requestAnimationFrame(moverPlayer);
|
||||
roll.components.sound.playSound();
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(tempoRestante > 0){
|
||||
|
||||
contagem.setAttribute('value', tempoRestante);
|
||||
contSom.components.sound.playSound();
|
||||
|
||||
} else if (tempoRestante == 0){
|
||||
|
||||
contagem.setAttribute('value', 'Vai!');
|
||||
vaiSom.components.sound.playSound();
|
||||
|
||||
}
|
||||
|
||||
tempoRestante -= 1;
|
||||
|
||||
}, 1000);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function andarPraFrente(Py) {
|
||||
|
||||
this.player.object3D.position.z = -1*(Py + k);
|
||||
this.player.object3D.position.y = (Py + k)*(-0.0699) + 13; //faz a descida do carrinho
|
||||
|
||||
this.cam.object3D.position.z = player.object3D.position.z;
|
||||
this.cam.object3D.position.y = (Py + k)*(-0.0699) + 13.2; //faz a descida da câmera
|
||||
|
||||
checarFim();
|
||||
|
||||
}
|
||||
|
||||
|
||||
const moverPlayer = () => {
|
||||
|
||||
play = requestAnimationFrame(moverPlayer);
|
||||
|
||||
|
||||
Px = player.object3D.position.x;
|
||||
|
||||
Py = -1*(player.object3D.position.z);
|
||||
|
||||
if ((RotZ % Math.PI == 0) && ((RotZ/Math.PI) % 2 == 0)){//anda para frente
|
||||
|
||||
andarPraFrente(Py);
|
||||
|
||||
|
||||
} else if ((-1*Math.sin(RotZ)) > 0 && Math.cos(RotZ) > 0){ //Diagonal entre frente e direita
|
||||
|
||||
this.player.object3D.rotation.y = RotZ;
|
||||
|
||||
let DeltaX = (Px + k*(-1*Math.sin(RotZ)));
|
||||
|
||||
DeltaX <= 2.5? null:DeltaX = 2.5;
|
||||
|
||||
this.player.object3D.position.z = -1*(Py + k*(Math.cos(RotZ)));
|
||||
this.player.object3D.position.x = DeltaX;
|
||||
this.player.object3D.position.y = (Py + k*(Math.cos(RotZ)))*(-0.0699) + 13; //faz a descida do carrinho
|
||||
|
||||
this.cam.object3D.position.z = player.object3D.position.z;
|
||||
this.cam.object3D.position.x = DeltaX;
|
||||
this.cam.object3D.position.y = player.object3D.position.y+0.2; //faz a descida da câmera
|
||||
|
||||
checarFim();
|
||||
|
||||
|
||||
} else if (Math.sin(RotZ) > 0 && (-1*Math.cos(RotZ)) < 0){//Diagonal entre frente e esquerda
|
||||
|
||||
this.player.object3D.rotation.y = RotZ;
|
||||
|
||||
let DeltaX = (Px - k*(Math.sin(RotZ)));
|
||||
|
||||
DeltaX >= -2.5? null: DeltaX = -2.5;
|
||||
|
||||
this.player.object3D.position.z = -1*(Py + k*(Math.cos(RotZ)));
|
||||
this.player.object3D.position.x = DeltaX;
|
||||
this.player.object3D.position.y = (Py + k*(Math.cos(RotZ)))*(-0.0699) + 13; //faz a descida do carrinho
|
||||
|
||||
this.cam.object3D.position.z = player.object3D.position.z;
|
||||
this.cam.object3D.position.x = DeltaX;
|
||||
this.cam.object3D.position.y = player.object3D.position.y+0.2; //faz a descida da câmera
|
||||
|
||||
checarFim();
|
||||
|
||||
|
||||
}else if ((RotZ/(Math.PI/2)) % 2 != 0 && (RotZ/(Math.PI/2)) % 4 == 1 || ((-1*Math.sin(RotZ)) < 0 && Math.cos(RotZ) < 0) || ((RotZ % Math.PI == 0) && ((RotZ/Math.PI) % 2 != 0)) || (Math.sin(RotZ) < 0 && (-1*Math.cos(RotZ))) || ((RotZ/(Math.PI/2)) % 2 != 0 && (RotZ/(Math.PI/2)) % 4 == 3)){
|
||||
|
||||
//Andar para esquerda || Diagonal entre esquerda e pra baixo || Andar pra baixo || Diagonal entre direita e pra baixo || Anda para direita - nessa ordem (separados por ou)
|
||||
|
||||
//Nesses casos, o carrinho deve continuar andando para frente
|
||||
|
||||
andarPraFrente(Py);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
document.querySelector('a-scene').addEventListener('enter-vr', function () {
|
||||
|
||||
|
||||
|
||||
|
||||
iniciarContagem();
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
48
introducao.qmd
Executable file
@ -0,0 +1,48 @@
|
||||
|
||||
# Introdução {.unnumbered .hidden}
|
||||
|
||||
```{=html}
|
||||
|
||||
<script src="scripts/pintarTela.js"></script>
|
||||
|
||||
<div id="conteudo-capitulo">
|
||||
|
||||
```
|
||||
|
||||
|
||||
::: {.grid .grid_titulo}
|
||||
|
||||
::: {.g-col-3}
|
||||
|
||||
::: {.fig_titulo}
|
||||
|
||||

|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
::: {.g-col-9}
|
||||
|
||||
# Introdução {.unnumbered}
|
||||
|
||||
:::
|
||||
|
||||
:::
|
||||
|
||||
|
||||
```{=html}
|
||||
|
||||
<p class="unidade" id="CP1" title="CP1">E se pudéssemos viver na época dos nossos pais, como seria? Você já deve ter ouvido de algum adulto “em minha época não era assim”. Meu pai sempre me diz isso. E o pai dele sempre dizia isso para ele. <a id="_Hlk87018112"></a>E o pai do pai do meu pai também dizia isso. E... bom, acho que você entendeu, né!?</p><p class="unidade" id="CP2" title="CP2">– Em minha época meus amigos e eu brincávamos na rua, descalços, entrávamos sujos em casa ao anoitecer. Você só fica nesse quarto. Se não está mexendo no celular está no computador.</p><p class="unidade" id="CP3" title="CP3">Essa fala é uma das várias que meu pai utiliza, quando eu estou conectado com meus amigos. É tão difícil assim para ele entender que eu também estou brincando e interagindo? Só que de maneira diferente.</p><p class="unidade" id="CP4" title="CP4">Sem contar que, quando o meu pai tinha a minha idade, não tinha os jogos nos celulares e computadores como tem hoje. Acho que por isso que é tão difícil dele aceitar o meu tempo com os jogos. Além disso, meu pai pertence a geração chamada de <em>millennials, </em>pois tem 39 anos. Os nascidos nessa geração viram a internet se desenvolver e evoluir, mas isso não quer dizer que meu pai é a favor dos jogos eletrônicos, pelo contrário. Ele gosta de pesquisar o resultado do jogo do nosso time, de conversar com seus amigos em redes sociais, mas falou em jogo ele é contra.</p><p class="unidade" id="CP5" title="CP5">Meu pai tem o costume de dizer que eu sou criança, mas na verdade sou quase um adolescente. E pessoas nessa fase da vida não ficam mais brincando de carrinho. Pois bem, aqui inicia uma história divertida que eu, Jean, vou contar a você.</p><p class="unidade" id="CP6" title="CP6">Eu nasci em 10 de outubro de 2010. Tenho 11 anos e pertenço a geração <em>alpha</em>. Uma geração conhecida por ser rodeada de tecnologia. Há quem diga que os nascidos nessa geração “vão dominar o mundo”. Isso inclui: eu!</p><p class="unidade" id="CP7" title="CP7">Eu já nasci sabendo mexer no celular e olha que não é exagero. Uma vez, eu estava chorando e meu pai entregou o celular dele com um desenho animado e desde então, sou encantado pela tecnologia. E olha que eu só tinha três meses de vida.</p><canvas class="unidade" id="CP8" title="CP8" width="465" height="285"><img class="substituta" src="img/bua.png" alt="Desenho a m~ão de um carrinho de bebê com um choro vindo de dentro."/></canvas><p class="unidade" id="CP9" title="CP9">Com dois anos, eu já sabia acessar vídeos na <em>Internet, </em>com cinco eu já instalava jogos e com oito eu já gravava vídeos e postava em meu canal. E no meu aniversário de dez anos, ganhei o meu primeiro computador. Agora, depois de tudo isso, meu pai me diz:</p><p class="unidade" id="CP10" title="CP10">– Estou a ponto de quebrar esse computador!</p><p class="unidade" id="CP11" title="CP11">– Mas pai, você que me deu.</p><p class="unidade" id="CP12" title="CP12">Eu respondi preocupado.</p><p class="unidade" id="CP13" title="CP13">– Não me responda Jean.</p><p class="unidade" id="CP14" title="CP14">– Mas pai... </p><p class="unidade" id="CP15" title="CP15">– Mas nada, desliga isso agora!</p><div style="width: 40px; margin: 40px auto; display: block; text-align: center;">* * *</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
var js_el_um = document.getElementById('CP8');
|
||||
var img_url ="img/bua.png";
|
||||
var programa_um_criado = new pintarTela(js_el_um, img_url);
|
||||
|
||||
</script>
|
||||
|
||||
```
|
1120
jean-jogos-brincadeiras/a_volta_das_aulas_presenciais.html
Normal file
1048
jean-jogos-brincadeiras/apresentacao.html
Normal file
1089
jean-jogos-brincadeiras/autores.html
Normal file
BIN
jean-jogos-brincadeiras/img/Ampulheta-de-Antonio-Gloria-sketchfab-user.png
Executable file
After Width: | Height: | Size: 65 KiB |