Skip to content

Commit 94c7d66

Browse files
authored
Merge pull request #78 from ramongss/arrumando-ancoras
Arrumando as âncoras para criação do arquivo epub
2 parents 4aed310 + 6a68544 commit 94c7d66

File tree

6 files changed

+63
-8
lines changed

6 files changed

+63
-8
lines changed

Livro.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ include::atributos-pt_BR.adoc[]
1111
:toc: left
1212
:toclevels: 2
1313
:!chapter-signifier:
14+
:front-cover-image: image:cover.jpg[fit=cover]
1415

1516
include::Prefacio.adoc[]
1617

@@ -77,4 +78,4 @@ include::capitulos/cap23.adoc[]
7778

7879
include::capitulos/cap24.adoc[]
7980

80-
include::Posfacio.adoc[]
81+
include::Posfacio.adoc[]

Prefacio.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
[dedication]
1212
__Para Marta, com todo o meu amor.__
1313

14-
[preface]
14+
[[preface]]
1515
== Prefácio
1616

1717
[quote, Tim Peters, lendário colaborador do CPython e autor do <em>Zen de Python</em>]

capitulos/cap13.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -656,8 +656,9 @@ Toda ABC depende do módulo `abc`, mas não precisamos importá-lo nós mesmos,
656656
A <<collections_uml>> é((("UML class diagrams", "ABCs in collections.abc"))) um diagrama de classe resumido (sem os nomes dos atributos) das 17 ABCs definidas em `collections.abc`.
657657
A documentação de `collections.abc` inclui https://fpy.li/13-16[uma ótima tabela] resumindo as ABCs, suas relações e seus métodos abstratos e concretos (chamados "métodos mixin").
658658
Há muita herança múltipla acontecendo na <<collections_uml>>.
659-
Vamos dedicar a maior parte de <<herança>> à herança múltipla,
660-
mas por hora é suficiente dizer que isso normalmente não causa problemas no caso das ABCs.footnote:[Herança múltipla foi _considerada nociva_ e excluída de Java, exceto para interfaces:
659+
Vamos dedicar a maior parte de <<ch_inheritance>> à herança múltipla,
660+
mas por hora é suficiente dizer que isso normalmente não causa problemas no caso das ABCs.footnote:[Herança múltipla foi _considerada nociva_ e excluída do Java, exceto para interfaces:
661+
661662
Interfaces Java podem estender múltiplas interfaces, e classes Java podem implementar múltiplas interfaces.]
662663

663664
[[collections_uml]]
@@ -1873,7 +1874,7 @@ Hellmann também usa a declaração de ABC no estilo antigo:`PluginBase(metaclas
18731874

18741875
Quando usamos ABCs, herança múltipla não é apenas comum mas praticamente inevitável,
18751876
porque cada uma das ABCs fundamentais de coleções — `Sequence`, `Mapping`, e `Set`&#x2014; estendem `Collection`, que por sua vez estende múltiplas ABCs
1876-
(veja <<collections_uml>>). Assim, <<herança>> é um importante tópico complementar a esse.
1877+
(veja <<collections_uml>>). Assim, <<inheritance>> é um importante tópico complementar a esse.
18771878

18781879
A https://fpy.li/13-52[PEP 3119--Introducing Abstract Base Classes] (EN)
18791880
apresenta a justificativa para as ABCs. A https://fpy.li/13-53[PEP 3141--A Type Hierarchy for Numbers] (EN)

capitulos/cap24.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -690,9 +690,10 @@ Esse é o destino final desse capítulo—e desse livro.((("", startref="CMimpor
690690
=== Introdução às metaclasses
691691

692692
[quote, Tim Peters, inventor do algoritmo timsort e um produtivo colaborador de Python]
693-
____
694-
&#x5b;Metaclasses&#x5d; são uma mágica tão profunda que 99% dos usuários jamais deveria se preocupar com elas. Quem se pergunta se precisa delas, não precisa (quem realmente precisa de metaclasses sabe disso com certeza, e não precisa que lhe expliquem a razão).footnote:[Mensagem a comp.lang.python, assunto: https://fpy.li/24-12["Acrimony in c.l.p." (_animosidade no c.l.p._)].
695-
Essa é outra parte da mesma mensagem de 23 de dezembro de 2002, citada na <<preface_sec>>. O TimBot estava inspirado naquele dia.]
693+
694+
&#x5b;Metaclasses&#x5d; são uma mágica tão profunda que 99% dos usuários jamais deveria se preocupar com elas. Quem se pergunta se precisa delas, não precisa (quem realmente precisa de metaclasses sabe disso com certeza, e não precisa que lhe expliquem a razão).footnote:[Mensagem a comp.lang.python, assunto: https://fpy.li/24-12["Acrimony in c.l.p." (_animosidade no c.l.p._)].
695+
Essa é outra parte da mesma mensagem de 23 de dezembro de 2002, citada no <<preface>>. O TimBot estava inspirado naquele dia.]
696+
696697
____
697698
698699
Uma((("metaclasses", "basics of", id="MCbasics24")))((("class metaprogramming", "metaclass basics", id="CMmetabasic24"))) metaclasse é uma fábrica de classes.

cover.jpg

209 KB
Loading

gerar-epub.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Como gerar o `epub` a partir dos arquivos fonte
2+
3+
## Pré-requisitos
4+
5+
Para gerar o `.epub` do livro é necessário ter o [Docker](https://docker.com) instalado em sua máquina.
6+
7+
### Docker Ruby Image
8+
9+
Precisamos baixar a [imagem Ruby oficial de Docker](https://hub.docker.com/_/ruby). Podemos fazê-lo com o seguinte comando:
10+
11+
```bash
12+
docker pull ruby
13+
```
14+
15+
Verificando se a imagem Ruby foi baixada.
16+
17+
``` bash
18+
docker images
19+
```
20+
21+
E espera-se o seguinte resultado:
22+
23+
```
24+
REPOSITORY TAG IMAGE ID CREATED SIZE
25+
ruby latest 1a74e25729c7 12 days ago 990MB
26+
```
27+
28+
### Clone do repositório
29+
30+
Realize o clone do repositório na sua máquina local.
31+
32+
```bash
33+
git clone https://github.com/pythonfluente/pythonfluente2e.git
34+
cd pythonfluente2e
35+
```
36+
37+
## Executando o build do `epub`
38+
39+
Na raiz do repositório recém clonado, iremos executar um container que irá instalar as dependências para gerar o livro, e gerar o `.epub` na mesma raiz. Basta executar o seguinte comando:
40+
41+
```bash
42+
docker run -it --rm -v .:/book ruby sh -c "gem install asciidoctor-epub3 && asciidoctor-epub3 /book/Livro.adoc -o '/book/Python Fluente, Segunda Edição (2023).epub' 2> /dev/null"
43+
```
44+
45+
Neste comando:
46+
47+
- `-it`: Permite entrar no modo iterativo.
48+
- `--rm`: Remove o container após a saída.
49+
- `-v .:/book`: Monta o volume com o caminho da pasta raiz no container na em /book.
50+
- `sh -c "gem install asciidoctor-epub3 && asciidoctor-epub3 /book/Livro.adoc -o '/book/Python Fluente, Segunda Edição (2023).epub' 2> /dev/null"`: Executa o comando especificado dentro do container. O comando faz a instalação do asciidoctor-epub3 dentro do container e realiza o build do livro.
51+
52+
Após isso o container irá executar e salvar automaticamente o livro `.epub` em sua máquina. Basta agora enviar o arquivo para o seu leitor de e-books.

0 commit comments

Comments
 (0)