Skip to content

Commit a9ec0ac

Browse files
committed
xrefs WIP
1 parent 901e23b commit a9ec0ac

File tree

11 files changed

+651
-619
lines changed

11 files changed

+651
-619
lines changed

ferramentas/anchors.ini

Lines changed: 605 additions & 606 deletions
Large diffs are not rendered by default.

ferramentas/references_finder.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22

33
import re
44
import configparser
5+
from pathlib import Path
56

67

7-
book_dir = '../capitulos/'
8-
FILES = [book_dir+"/cap%02d.adoc"%i for i in range(1,25)]
8+
book_dir = Path('../online')
9+
FILES = [(book_dir / f'cap{i:02d}.adoc') for i in range(1,25)]
10+
11+
print(book_dir)
12+
for file in FILES:
13+
print(repr(file))
914

1015
def find_anchors(file):
1116
"""Encontra todas as âncoras em um capítulo"""
@@ -56,23 +61,26 @@ def find_all_xrefs(repeticao = "False"):
5661
for file in FILES:
5762
with open(file,"r",encoding="utf-8") as fp:
5863
f = fp.read()
59-
actual_chap = re.search(r'\[\[[\w-]+\]\]', f).group(0)[2:-2]
60-
xrefs_ini += f'\n[{actual_chap}]\n' # Escreve o nome do capítulo no arquivo
64+
match = re.search(r'\[\[[\w-]+\]\]', f)
65+
if match is None:
66+
continue
67+
current_chap = match.group(0)[2:-2]
68+
xrefs_ini += f'\n[{current_chap}]\n' # Escreve o nome do capítulo no arquivo
6169
xrefs_chap = dict() # {xref, parte}
6270
refs = find_refs(f)
6371
for ref in refs:
6472
if ref in xrefs_chap and repeticao:
6573
continue # Pula caso a referência encontrada já esteja listada
66-
elif ref in anchors[actual_chap]:
74+
elif ref in anchors[current_chap]:
6775
continue # Pula caso a referência encontrada esteja no próprio capítulo
68-
elif ref in chapters and parte[ref] != parte[actual_chap]:
76+
elif ref in chapters and parte[ref] != parte[current_chap]:
6977
# A referência encontrada é um capítulo
7078
xrefs_chap[ref] = f'{parte[ref]}'
7179
else:
7280
for chapter in chapters: # Procura em cada cap pela âncora
7381
if ref in anchors[chapter]:
7482
# A referência encontrada é uma âncora dentro de um capítulo
75-
if parte[chapter] != parte[actual_chap]:
83+
if parte[chapter] != parte[current_chap]:
7684
xrefs_chap[ref] = f'do capítulo [[{chapter}]] da {parte[chapter]}'
7785
break
7886
else:

ferramentas/xrefs_xparts.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Referências cruzadas para outras partes
2-
# Aqui só aparecem xrefs <<xxxx>> para outras partes do livro
2+
# Aqui só aparecem xrefs <<xxxx>> para outras partes do livro
33
[ch_data_model]
44
ch_ifaces_prot_abc = Parte 3
55
ch_generators = Parte 4
@@ -25,6 +25,7 @@ ch_more_types = Parte 3
2525
ch_class_metaprog = Parte 5
2626
ch_type_hints_def = Parte 2
2727
ch_descriptors = Parte 5
28+
ch_inheritance = Parte 3
2829

2930
[ch_refs_mut_mem]
3031

online/cap08.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ prática.((("", startref="FTHgrad08")))((("", startref="THgrad08")))((("", start
436436
=== Tipos são definidos pelas operações possíveis
437437

438438

439-
[quote, PEP 483&mdash;A Teoria das Dicas de Tipo]
439+
[quote, PEP 483A Teoria das Dicas de Tipo]
440440
____
441441
442442
Há muitas definições do conceito de tipo na literatura.

online/cap15.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1395,7 +1395,7 @@ Seria necessário um livro inteiro para cobrir tudo.
13951395
|=================================================================================================================================
13961396
|PEP |Title |Python|Year
13971397
|3107|https://fpy.li/pep3107[Function Annotations (_Anotações de Função_)] |3.0 |2006
1398-
|483*|https://fpy.li/pep483[The Theory of Type Hints (A Teoria das Dicas de Tipo_)] |n/a |2014
1398+
|483*|https://fpy.li/pep483[The Theory of Type Hints (_A Teoria das Dicas de Tipo_)] |n/a |2014
13991399
|484*|https://fpy.li/pep484[Type Hints (_Dicas de Tipo_)] |3.5 |2014
14001400
|482 |https://fpy.li/pep482[Literature Overview for Type Hints (_Revisão da Literatura sobre Dicas de Tipo_)] |n/a |2015
14011401
|526*|https://fpy.li/pep526[Syntax for Variable Annotations (_Sintaxe para Anotações de Variáveis_)] |3.6 |2016

print/README.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,30 @@
11
# Procedimentos para preparar volumes para impressão
22

3+
## Formatação dos links
4+
5+
Renderize este markdown para ver a *aparência* dos links.
6+
Aqui eles estão escritos em Markdown, mas o livro é Asciidoc,
7+
então a marcação pode ser diferente.
8+
9+
### Links para a web
10+
11+
Leia o _Tutorial do Python_ [fpy.li/3e]
12+
13+
14+
### Links para outro volume
15+
16+
Como veremos na _Seção 11.3_ [vol.2, fpy.li/3f]
17+
18+
319
## Operações
420

521
### Nos arquivos da edição online:
622

7-
1. Eliminar duplicação de atributos entre cabeçalhos de `capN.adoc`, `atributos-pt_BR.adoc`, `Livro.adoc`, `Volume1.adoc`...
23+
1. Eliminar duplicação de atributos entre cabeçalhos de `capN.adoc`, `atributos-pt_BR.adoc`, `Livro.adoc`, `vol1.adoc`...
824
2. Encurtar links já presentes
925
3. Quebrar linhas longas (semantic linebreaks)
1026
4. Retirar inline pass macros[^1]
27+
1128
5. Gerar PDF para impressão
1229
6. Revisar PDF, aplicar correções no `.adoc`
1330

@@ -19,6 +36,14 @@
1936
2. Gerar PDF para impressão
2037
3. Revisar PDF, aplicar correções no `.adoc`
2138

39+
## Para gerar o PDF
40+
41+
Na raiz do repositório:
42+
43+
```
44+
./print/pdf_export.sh vol1/vol1.adoc
45+
```
46+
2247
## Semantic line breaks
2348

2449
Atenção: legendas de figuras tem que ter apenas uma linha lógica.

vol1/cap08.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ prática.((("", startref="FTHgrad08")))((("", startref="THgrad08")))((("", start
436436
=== Tipos são definidos pelas operações possíveis
437437

438438

439-
[quote, PEP 483&mdash;A Teoria das Dicas de Tipo]
439+
[quote, PEP 483A Teoria das Dicas de Tipo]
440440
____
441441
442442
Há muitas definições do conceito de tipo na literatura.

vol1/vol1.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
= Python Fluente: dados e funções
2-
32
:doctype: book
43
:media: print
54
:author: Luciano Ramalho

vol1/vol1.pdf

11.5 MB
Binary file not shown.

0 commit comments

Comments
 (0)