This commit is contained in:
Rafael Tavares Juliani 2025-09-04 15:42:21 -03:00
commit 1b93182afd
193 changed files with 23098 additions and 0 deletions

22
.luarc.json Normal file
View 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"
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
div.cookie-consent-footer {
font-size: 0.8em;
text-decoration: none;
}

File diff suppressed because one or more lines are too long

1
.quarto/cites/index.json Executable file
View 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":[]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
.quarto/xref/03afee17 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}

1
.quarto/xref/0b8f7ef8 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"options":{"chapter-id":"SECTION001000000000000000000","chapters":true},"headings":["SECTION001000000000000000000"]}

1
.quarto/xref/18ece635 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":["SECTION00710000000000000000","SECTION00720000000000000000","SECTION00730000000000000000","SECTION00740000000000000000","SECTION00750000000000000000","SECTION00760000000000000000"]}

1
.quarto/xref/3ef5a026 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"headings":["introdução"],"options":{"chapters":true}}

1
.quarto/xref/4026ce60 Normal file
View File

@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}

1
.quarto/xref/460be21c Executable file
View 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
View File

@ -0,0 +1 @@
{"headings":[],"entries":[],"options":{"chapters":true}}

1
.quarto/xref/4fffaab4 Executable file
View File

@ -0,0 +1 @@
{"options":{"chapters":true},"entries":[],"headings":[]}

1
.quarto/xref/5307b9e1 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"headings":["metadados","como-citar","versão-impressa","direitos-autorais"],"options":{"chapters":true}}

1
.quarto/xref/54d7babf Normal file
View File

@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}

1
.quarto/xref/80836196 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":[]}

1
.quarto/xref/8174a0ab Executable file
View File

@ -0,0 +1 @@
{"entries":[],"headings":["apresentação"],"options":{"chapters":true}}

1
.quarto/xref/82bf74d1 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true,"chapter-id":"SECTION00900000000000000000"},"headings":["SECTION00900000000000000000"]}

1
.quarto/xref/83919ff0 Normal file
View File

@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}

59
.quarto/xref/INDEX Executable file
View 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
View 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
View File

@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":[]}

1
.quarto/xref/d905b7b4 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":["SECTION00510000000000000000","SECTION00520000000000000000","SECTION00530000000000000000","SECTION00540000000000000000","SECTION00550000000000000000","SECTION00560000000000000000","SECTION00570000000000000000"]}

1
.quarto/xref/e6d7f6b9 Executable file
View File

@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}

1
.quarto/xref/eab7737d Executable file
View File

@ -0,0 +1 @@
{"entries":[],"headings":["sobre-os-autores"],"options":{"chapters":true}}

11
README.md Normal file
View 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)

View 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]

View 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;
}
}

View 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)

View 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: &lt;" suffix="&gt;."/> 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
View 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
View 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)"

File diff suppressed because one or more lines are too long

62
apresentacao.qmd Executable file
View 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}
![](img/phone-2655101_1280_pixabay_iamwahid.png "Desenho dois braços e um celular na mão esquerda. A mão direita faz como se estivesse passando conteúdo no celular.")
:::
:::
::: {.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>
```

File diff suppressed because one or more lines are too long

58
autores.qmd Executable file
View File

@ -0,0 +1,58 @@
# Sobre os autores {.unnumbered .hidden}
```{=html}
<div id="conteudo-capitulo">
```
::: {.grid}
::: {.g-col-3}
::: {.fig_titulo}
![](img/bat-25764_1280_pixabay_Clker-Free-Vector-Images.png "Desenho de duas raquetes (vermelha e azul) e uma bola de ping-pong")
:::
:::
::: {.g-col-9}
# Sobre os Autores {.unnumbered}
:::
:::
::: {.grid .destaque}
::: {.g-col-2}
![](img/teacher-309533_1280_pixabay_Clker-Free-Vector-ImagesBranco.png "Desenho de uma única cor (branca) 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
View 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
View 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
View 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

Binary file not shown.

BIN
fonts/MouseMemoirs-Regular.ttf Executable file

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
img/CapaAnim.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 KiB

BIN
img/CapaAnim_P.webp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
img/anel.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
img/bua.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
img/capa.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
img/capa.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
img/carrinho-rolima.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
img/favicon.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

BIN
img/favicon2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
img/favicon3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

BIN
img/favicon4.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

BIN
img/favicon5.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

BIN
img/favicon6.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

BIN
img/jean-online.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
img/lombada.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
img/og-2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
img/og.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

BIN
img/peteca.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
img/ping-pong.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
img/queimada.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
img/rabisco_Diullye.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

85
index.qmd Executable file
View File

@ -0,0 +1,85 @@
```{=html}
<style>
h1.title {display: block;}
</style>
```
![]({{< meta book.navbar.logo-href >}})
# 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 >}}**.
![](img/logomoan.png){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 >}})

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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

File diff suppressed because one or more lines are too long

BIN
interativos/carrinho.glb Executable file

Binary file not shown.

BIN
interativos/cidade.glb Executable file

Binary file not shown.

BIN
interativos/cone.glb Executable file

Binary file not shown.

BIN
interativos/fundo.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

575
interativos/index.html Executable file
View 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
View 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}
![](img/controller-1784571_295_pixabay_IO-Images.png "Desenho de um controle genérico de video game")
:::
:::
::: {.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>
```

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Some files were not shown because too many files have changed in this diff Show More