git: bea2fef3f0 - main - Split Brazilian porter's handbook and fix link in English porter's

From: Sergio Carlavilla Delgado <carlavilla_at_FreeBSD.org>
Date: Fri, 26 Nov 2021 23:24:39 UTC
The branch main has been updated by carlavilla:

URL: https://cgit.FreeBSD.org/doc/commit/?id=bea2fef3f080975d594dddade67fd0018d3d7440

commit bea2fef3f080975d594dddade67fd0018d3d7440
Author:     Sergio Carlavilla Delgado <carlavilla@FreeBSD.org>
AuthorDate: 2021-11-26 23:23:59 +0000
Commit:     Sergio Carlavilla Delgado <carlavilla@FreeBSD.org>
CommitDate: 2021-11-26 23:23:59 +0000

    Split Brazilian porter's handbook and fix link in English porter's
---
 .../en/books/porters-handbook/special/_index.adoc  |   2 +-
 .../pt-br/books/porters-handbook/_index.adoc       |  30 ++----
 .../content/pt-br/books/porters-handbook/book.adoc |  70 ++++++++++++++
 .../books/porters-handbook/chapters-order.adoc     |  36 ++++----
 .../flavors/{chapter.adoc => _index.adoc}          |   4 +-
 .../keeping-up/{chapter.adoc => _index.adoc}       |   0
 .../makefiles/{chapter.adoc => _index.adoc}        |  24 ++---
 .../new-port/{chapter.adoc => _index.adoc}         |   2 +-
 .../order/{chapter.adoc => _index.adoc}            | 102 ++++++++++-----------
 .../pkg-files/{chapter.adoc => _index.adoc}        |   0
 .../plist/{chapter.adoc => _index.adoc}            |  16 ++--
 .../porting-dads/{chapter.adoc => _index.adoc}     |   4 +-
 .../porting-samplem/{chapter.adoc => _index.adoc}  |   4 +-
 .../porting-why/{chapter.adoc => _index.adoc}      |   0
 .../quick-porting/{chapter.adoc => _index.adoc}    |  14 ++-
 .../security/{chapter.adoc => _index.adoc}         |   0
 .../slow-porting/{chapter.adoc => _index.adoc}     |   9 +-
 .../special/{chapter.adoc => _index.adoc}          |  56 +++++------
 .../testing/{chapter.adoc => _index.adoc}          |   4 +-
 .../upgrading/{chapter.adoc => _index.adoc}        |   6 +-
 .../uses/{chapter.adoc => _index.adoc}             |  45 +++++----
 .../versions/{chapter.adoc => _index.adoc}         |   0
 22 files changed, 238 insertions(+), 190 deletions(-)

diff --git a/documentation/content/en/books/porters-handbook/special/_index.adoc b/documentation/content/en/books/porters-handbook/special/_index.adoc
index 45c69e7d3b..3766f55be2 100644
--- a/documentation/content/en/books/porters-handbook/special/_index.adoc
+++ b/documentation/content/en/books/porters-handbook/special/_index.adoc
@@ -3117,7 +3117,7 @@ Additionally, these constants are defined so all Java ports may be installed in
 |The directory where JAR files installed by other ports are located. Default: [.filename]#${LOCALBASE}/share/java/classes#.
 |===
 
-The related entries are defined in both `PLIST_SUB` (documented in <<plist-sub>>) and `SUB_LIST`.
+The related entries are defined in both `PLIST_SUB` (documented in crossref:plist[plist-sub,Changing pkg-plist Based on Make Variables]) and `SUB_LIST`.
 
 [[java-building-with-ant]]
 === Building with Ant
diff --git a/documentation/content/pt-br/books/porters-handbook/_index.adoc b/documentation/content/pt-br/books/porters-handbook/_index.adoc
index b1f46c3a79..ab02883d70 100644
--- a/documentation/content/pt-br/books/porters-handbook/_index.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/_index.adoc
@@ -4,21 +4,22 @@ authors:
   - author: Projeto de Documentação do FreeBSD
 copyright: 2000-2020 The FreeBSD Documentation Project
 trademarks: ["freebsd", "sun", "unix", "general"]
+next: books/porters-handbook/porting-why
+add_single_page_link: true
 isIndex: true
 ---
 
 = FreeBSD Porter's Handbook
 :doctype: book
 :toc: macro
-:toclevels: 2
+:toclevels: 1
 :icons: font
 :sectnums:
 :sectnumlevels: 6
 :partnums:
 :source-highlighter: rouge
 :experimental:
-:book: true
-:pdf: false
+:images-path: books/porters-handbook/
 
 ifdef::env-beastie[]
 ifdef::backend-html5[]
@@ -44,27 +45,8 @@ endif::[]
 
 '''
 
-toc::[]
+include::{chapters-path}toc.adoc[]
 
 include::{chapters-path}toc-tables.adoc[]
 
-include::{chapters-path}toc-examples.adoc[]
-
-include::{chapters-path}porting-why/chapter.adoc[leveloffset=+1]
-include::{chapters-path}new-port/chapter.adoc[leveloffset=+1]
-include::{chapters-path}quick-porting/chapter.adoc[leveloffset=+1]
-include::{chapters-path}slow-porting/chapter.adoc[leveloffset=+1]
-include::{chapters-path}makefiles/chapter.adoc[leveloffset=+1]
-include::{chapters-path}special/chapter.adoc[leveloffset=+1]
-include::{chapters-path}flavors/chapter.adoc[leveloffset=+1]
-include::{chapters-path}plist/chapter.adoc[leveloffset=+1]
-include::{chapters-path}pkg-files/chapter.adoc[leveloffset=+1]
-include::{chapters-path}testing/chapter.adoc[leveloffset=+1]
-include::{chapters-path}upgrading/chapter.adoc[leveloffset=+1]
-include::{chapters-path}security/chapter.adoc[leveloffset=+1]
-include::{chapters-path}porting-dads/chapter.adoc[leveloffset=+1]
-include::{chapters-path}porting-samplem/chapter.adoc[leveloffset=+1]
-include::{chapters-path}order/chapter.adoc[leveloffset=+1]
-include::{chapters-path}keeping-up/chapter.adoc[leveloffset=+1]
-include::{chapters-path}uses/chapter.adoc[leveloffset=+1]
-include::{chapters-path}versions/chapter.adoc[leveloffset=+1]
+include::{chapters-path}toc-examples.adoc[] 
diff --git a/documentation/content/pt-br/books/porters-handbook/book.adoc b/documentation/content/pt-br/books/porters-handbook/book.adoc
new file mode 100644
index 0000000000..b728ab6e06
--- /dev/null
+++ b/documentation/content/pt-br/books/porters-handbook/book.adoc
@@ -0,0 +1,70 @@
+---
+title: FreeBSD Porter's Handbook
+authors: 
+  - author: Projeto de Documentação do FreeBSD
+copyright: 2000-2020 The FreeBSD Documentation Project
+trademarks: ["freebsd", "sun", "unix", "general"]
+isIndex: true
+---
+
+= FreeBSD Porter's Handbook
+:doctype: book
+:toc: macro
+:toclevels: 2
+:icons: font
+:sectnums:
+:sectnumlevels: 6
+:partnums:
+:source-highlighter: rouge
+:experimental:
+:book: true
+:pdf: false
+
+ifdef::env-beastie[]
+ifdef::backend-html5[]
+include::shared/authors.adoc[]
+include::shared/mirrors.adoc[]
+include::shared/releases.adoc[]
+include::shared/attributes/attributes-{{% lang %}}.adoc[]
+include::shared/{{% lang %}}/teams.adoc[]
+include::shared/{{% lang %}}/mailing-lists.adoc[]
+include::shared/{{% lang %}}/urls.adoc[]
+:chapters-path: content/{{% lang %}}/books/porters-handbook/
+endif::[]
+ifdef::backend-pdf,backend-epub3[]
+:chapters-path:
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+endif::[]
+
+ifndef::env-beastie[]
+:chapters-path:
+include::../../../../../shared/asciidoctor.adoc[]
+endif::[]
+
+'''
+
+toc::[]
+
+include::{chapters-path}toc-tables.adoc[]
+
+include::{chapters-path}toc-examples.adoc[]
+
+include::{chapters-path}porting-why/_index.adoc[leveloffset=+1]
+include::{chapters-path}new-port/_index.adoc[leveloffset=+1]
+include::{chapters-path}quick-porting/_index.adoc[leveloffset=+1]
+include::{chapters-path}slow-porting/_index.adoc[leveloffset=+1]
+include::{chapters-path}makefiles/_index.adoc[leveloffset=+1]
+include::{chapters-path}special/_index.adoc[leveloffset=+1]
+include::{chapters-path}flavors/_index.adoc[leveloffset=+1]
+include::{chapters-path}plist/_index.adoc[leveloffset=+1]
+include::{chapters-path}pkg-files/_index.adoc[leveloffset=+1]
+include::{chapters-path}testing/_index.adoc[leveloffset=+1]
+include::{chapters-path}upgrading/_index.adoc[leveloffset=+1]
+include::{chapters-path}security/_index.adoc[leveloffset=+1]
+include::{chapters-path}porting-dads/_index.adoc[leveloffset=+1]
+include::{chapters-path}porting-samplem/_index.adoc[leveloffset=+1]
+include::{chapters-path}order/_index.adoc[leveloffset=+1]
+include::{chapters-path}keeping-up/_index.adoc[leveloffset=+1]
+include::{chapters-path}uses/_index.adoc[leveloffset=+1]
+include::{chapters-path}versions/_index.adoc[leveloffset=+1]
diff --git a/documentation/content/pt-br/books/porters-handbook/chapters-order.adoc b/documentation/content/pt-br/books/porters-handbook/chapters-order.adoc
index 3aaba51a43..81f5b000cb 100644
--- a/documentation/content/pt-br/books/porters-handbook/chapters-order.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/chapters-order.adoc
@@ -1,18 +1,18 @@
-porting-why/chapter.adoc
-new-port/chapter.adoc
-quick-porting/chapter.adoc
-slow-porting/chapter.adoc
-makefiles/chapter.adoc
-special/chapter.adoc
-flavors/chapter.adoc
-plist/chapter.adoc
-pkg-files/chapter.adoc
-testing/chapter.adoc
-upgrading/chapter.adoc
-security/chapter.adoc
-porting-dads/chapter.adoc
-porting-samplem/chapter.adoc
-order/chapter.adoc
-keeping-up/chapter.adoc
-uses/chapter.adoc
-versions/chapter.adoc
+porting-why/_index.adoc
+new-port/_index.adoc
+quick-porting/_index.adoc
+slow-porting/_index.adoc
+makefiles/_index.adoc
+special/_index.adoc
+flavors/_index.adoc
+plist/_index.adoc
+pkg-files/_index.adoc
+testing/_index.adoc
+upgrading/_index.adoc
+security/_index.adoc
+porting-dads/_index.adoc
+porting-samplem/_index.adoc
+order/_index.adoc
+keeping-up/_index.adoc
+uses/_index.adoc
+versions/_index.adoc
diff --git a/documentation/content/pt-br/books/porters-handbook/flavors/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/flavors/_index.adoc
similarity index 95%
rename from documentation/content/pt-br/books/porters-handbook/flavors/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/flavors/_index.adoc
index 412309f480..523bd8a36c 100644
--- a/documentation/content/pt-br/books/porters-handbook/flavors/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/flavors/_index.adoc
@@ -353,8 +353,8 @@ USES=	python:3.5+
 [[flavors-auto-lua]]
 == `USES=lua` e Flavors
 
-Ao usar <<uses-lua,`USES=lua:module`>> ou <<uses-lua,`USES=lua:flavors`>>, o port terá automaticamente `FLAVORS` preenchidos com as versões Lua que suporta. No entanto, não se espera que aplicativos comuns (em vez de módulos Lua) usem este recurso; a maioria das aplicações que incorporam ou usam Lua simplesmente devem usar `USES=lua`.
+Ao usar crossref:uses[uses-lua,`lua:module`] ou crossref:uses[uses-lua,`lua:flavors`], o port terá automaticamente `FLAVORS` preenchidos com as versões Lua que suporta. No entanto, não se espera que aplicativos comuns (em vez de módulos Lua) usem este recurso; a maioria das aplicações que incorporam ou usam Lua simplesmente devem usar `USES=lua`.
 
 `LUA_FLAVOR` está disponível (e deve ser usado) para depender da versão correta das dependências, independentemente do port usar os parâmetros `flavors` ou `module`.
 
-Veja <<using-lua>> para maiores informações.
+Veja crossref:special[using-lua,Usando Lua] para maiores informações.
diff --git a/documentation/content/pt-br/books/porters-handbook/keeping-up/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/keeping-up/_index.adoc
similarity index 100%
rename from documentation/content/pt-br/books/porters-handbook/keeping-up/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/keeping-up/_index.adoc
diff --git a/documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/makefiles/_index.adoc
similarity index 98%
rename from documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/makefiles/_index.adoc
index 97d6a7a8d0..f3d616d4c2 100644
--- a/documentation/content/pt-br/books/porters-handbook/makefiles/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/makefiles/_index.adoc
@@ -1893,7 +1893,7 @@ DISTNAME=	foo
 EXTRACT_SUFX=	.tar.gzip
 ....
 
-O `USES=tar[:xxx]`, `USES=lha` ou `USES=zip` define automaticamente `EXTRACT_SUFX` com as extensões de arquivo mais comuns, conforme necessário, consulte <<uses>> para mais detalhes. Se nenhum destes estiver definido, o `EXTRACT_SUFX` padrão é `.tar.gz`.
+O `USES=tar[:xxx]`, `USES=lha` ou `USES=zip` define automaticamente `EXTRACT_SUFX` com as extensões de arquivo mais comuns, conforme necessário, consulte crossref:uses[uses, Usando Macros `USES`] para mais detalhes. Se nenhum destes estiver definido, o `EXTRACT_SUFX` padrão é `.tar.gz`.
 
 [NOTE]
 ====
@@ -2230,7 +2230,7 @@ PATCHFILES=	patch1:test
 ** `fetch-list`: funciona como o antigo `fetch-list`, com a exceção de que faz agrupamentos exatamente como o `do-fetch`.
 ** `master-sites` e `patch-sites`: (incompatível com versões mais antigas) somente retorna os elementos do grupo `DEFAULT`; na verdade, eles executam os targets `master-sites-default` e `patch-sites-default` respectivamente.
 + 
-Além disso, usar o target `master-sites-all` ou `patch-sites-all` é o preferido para verificar diretamente `MASTER_SITES` ou `PATCH_SITES`. Além disso, não é garantido que a checagem direta funcione em versões futuras. Veja <<porting-master-sites-n-new-port-targets-master-sites-all>> para obter mais informações sobre esses novos tagets de port.
+Além disso, usar o target `master-sites-all` ou `patch-sites-all` é o preferido para verificar diretamente `MASTER_SITES` ou `PATCH_SITES`. Além disso, não é garantido que a checagem direta funcione em versões futuras. Veja <<porting-master-sites-n-new-port-targets-master-sites-all, B>> para obter mais informações sobre esses novos tagets de port.
 
 . Novos Targets de Port
 .. Existem targets `master-sites-_n_` e `patch-sites-_n_` que listarão os elementos do respectivo grupo _n_ dentro de `MASTER_SITES` e `PATCH_SITES` respectivamente. Por exemplo, ambos `master-sites-DEFAULT` e `patch-sites-DEFAULT` retornarão os elementos do grupo `DEFAULT`, `master-sites-test` e `patch-sites-test` do grupo `test`.
@@ -3058,7 +3058,7 @@ LICENSE_COMB=	multi
 [[makefile-portscout]]
 == `PORTSCOUT`
 
-Portscout é um utilitário de verificação de distfile automatizado para a Coleção de Ports do FreeBSD, descrito em detalhes em <<distfile-survey>>.
+Portscout é um utilitário de verificação de distfile automatizado para a Coleção de Ports do FreeBSD, descrito em detalhes em crossref:keeping-up[distfile-survey,Portscout: o Scanner de Distfile de Ports do FreeBSD].
 
 `PORTSCOUT` define condições especiais dentro das quais o scanner distfile do Portscout é restrito.
 
@@ -3211,7 +3211,7 @@ A dependência é verificada a partir do target `extract`. A parte _target_ pode
 
 [NOTE]
 ====
-Use esta variável somente se a extração ainda não funcionar (o padrão usa `tar`) e não funciona com `USES=tar`, `USES=lha` ou `USES=zip` descrito em <<uses>>.
+Use esta variável somente se a extração ainda não funcionar (o padrão usa `tar`) e não funciona com `USES=tar`, `USES=lha` ou `USES=zip` descrito em crossref:uses[uses,Usando Macros `USES`].
 ====
 
 [[makefile-patch_depends]]
@@ -3238,7 +3238,7 @@ Parâmetros podem ser adicionados para definir diferentes recursos e dependênci
 USES= feature[:arguments]
 ....
 
-Para a lista completa de valores, por favor veja o <<uses>>.
+Para a lista completa de valores, por favor veja o crossref:uses[uses,Usando Macros `USES`].
 
 [WARNING]
 ====
@@ -3282,7 +3282,7 @@ O port requer GCC (gcc ou {gcc-plus-plus}) para compilar. Alguns ports precisam
 
 |===
 
-Variáveis ​​relacionadas ao gmake e [.filename]#configure# são descritos em <<building>>, enquanto autoconf, automake  e libtool são descritos em <<using-autotools>>. Variáveis relacionadas ao Perl ​são descritas em <<using-perl>>. Variáveis ​​X11 são listadas em <<using-x11>>. <<using-gnome>> lida com o GNOME e <<using-kde>> com variáveis ​​relacionadas ao KDE. <<using-java>> documenta variáveis ​​Java, enquanto <<using-php>> contém informações sobre Apache, PHP e módulos PEAR. Python  é discutido em <<using-python>>, e Ruby em <<using-ruby>>. <<using-sdl>> fornece variáveis ​​usadas para aplicações SDL e, finalmente, <<using-xfce>> contém informações sobre o Xfce.
+Variáveis ​​relacionadas ao gmake e [.filename]#configure# são descritos em crossref:special[building, Mecanismos de Compilação], enquanto autoconf, automake  e libtool são descritos em crossref:special[using-autotools, Usando o GNU Autotools]. Variáveis relacionadas ao Perl ​são descritas em crossref:special[using-perl, Usando Perl]. Variáveis ​​X11 são listadas em crossref:special[using-x11, Usando o X11]. crossref:special[using-gnome, Usando o GNOME] lida com o GNOME e crossref:special[using-kde, Usando o KDE] com variáveis ​​relacionadas ao KDE. crossref:special[using-java, Usando Java] documenta variáveis ​​Java, enquanto crossref:special[using-php, Aplicações Web, Apache e PHP] contém informações sobre Apache, PHP e módulos PEAR. Python  é discutido em crossref:special[using-python, Usando Python], e Ruby em crossref:special[using-ruby, Usando Ruby]. crossref:special[using-sdl, Usando SDL] fornece variáveis ​​usadas para aplicações SD
 L e, finalmente, crossref:special[using-xfce, Usando o Xfce] contém informações sobre o Xfce.
 
 [[makefile-version-dependency]]
 === Versão Mínima de uma Dependência
@@ -4535,7 +4535,7 @@ Existem três variáveis ​​diferentes para registrar um conflito entre pacot
 
 [NOTE]
 ====
-As variáveis ​​de conflito definem automaticamente a variável `IGNORE`, que é mais amplamente documentada em <<dads-noinstall>>.
+As variáveis ​​de conflito definem automaticamente a variável `IGNORE`, que é mais amplamente documentada em crossref:porting-dads[dads-noinstall,Marcando um Port não Instalável com a variável `BROKEN` `FORBIDDEN` ou `IGNORE`].
 ====
 
 Ao remover um dos vários ports conflitados, é aconselhável reter `CONFLICTS` nos outros ports por alguns meses para atender usuários que apenas fazem atualizações de vez em quando.
@@ -4615,7 +4615,7 @@ O estágio `install` é muito importante para o usuário final porque ele adicio
 [[install-macros]]
 === Macros `INSTALL_*`
 
-Use as macros fornecidas em [.filename]#bsd.port.mk# para garantir a propriedade correta dos arquivos nos targets `*-install` do port. Defina a propriedade diretamente em [.filename]#pkg-plist# com as entradas correspondentes, como `@(_owner_,_group_,)`, `@owner _owner_`, e `@group _group_`. Esses operadores funcionam até serem substituídos, ou até o final do [.filename]#pkg-plist#, lembre-se de redefini-los depois que eles não forem mais necessários. O valor de propriedade padrão é `root:wheel`. Veja <<plist-keywords-base>> para maiores informações.
+Use as macros fornecidas em [.filename]#bsd.port.mk# para garantir a propriedade correta dos arquivos nos targets `*-install` do port. Defina a propriedade diretamente em [.filename]#pkg-plist# com as entradas correspondentes, como `@(_owner_,_group_,)`, `@owner _owner_`, e `@group _group_`. Esses operadores funcionam até serem substituídos, ou até o final do [.filename]#pkg-plist#, lembre-se de redefini-los depois que eles não forem mais necessários. O valor de propriedade padrão é `root:wheel`. Veja crossref:plist[plist-keywords-base,Keywords Básicas] para maiores informações.
 
 * `INSTALL_PROGRAM` é um comando para instalar executáveis ​​binários.
 * `INSTALL_SCRIPT` é um comando para instalar scripts executáveis.
@@ -4660,7 +4660,7 @@ Use man:file[1] em um arquivo para determinar se ele foi otimizado (stripped). B
 ====
 Quando `WITH_DEBUG` estiver definido, os arquivos elf _não devem_ ser otimizados (stripped).
 
-As variáveis ​​(`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) e <<uses,`USES`>> fornecidas pelo framework lidam com isso automaticamente.
+As variáveis ​​(`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) e crossref:uses[uses,`USES`] fornecidas pelo framework lidam com isso automaticamente.
 
 Alguns softwares, adicionam `-s` em seus `LDFLAGS`, neste caso, ou remova o `-s` se `WITH_DEBUG` estiver definido, ou remova o incondicionalmente e use `STRIP_CMD` em `post-install`.
 ====
@@ -4668,7 +4668,7 @@ Alguns softwares, adicionam `-s` em seus `LDFLAGS`, neste caso, ou remova o `-s`
 [[install-copytree]]
 === Instalando uma Árvore Inteira de Arquivos
 
-Às vezes, um grande número de arquivos devem ser instalados preservando sua organização hierárquica. Por exemplo, copiando de uma árvore de diretórios inteira do `WRKSRC` para um diretório de destino sob `PREFIX`. Observe que `PREFIX`, `EXEMPLESDIR`, `DATADIR` e outras variáveis ​​de caminho sempre devem ser precedidas por `STAGEDIR` para respeitar o staging (ver <<staging>>).
+Às vezes, um grande número de arquivos devem ser instalados preservando sua organização hierárquica. Por exemplo, copiando de uma árvore de diretórios inteira do `WRKSRC` para um diretório de destino sob `PREFIX`. Observe que `PREFIX`, `EXEMPLESDIR`, `DATADIR` e outras variáveis ​​de caminho sempre devem ser precedidas por `STAGEDIR` para respeitar o staging (ver crossref:special[staging,Staging]).
 
 Existem duas macros para essa situação. A vantagem de usar essas macros em vez de `cp` é que elas garantem a propriedade e permissão adequada dos arquivos nos arquivos de destino. A primeira macro, `COPYTREE_BIN`, irá definir todos os arquivos instalados como sendo executáveis, sendo assim, adequado para instalações em [.filename]#PREFIX/bin#. A segunda macro,`COPYTREE_SHARE`, não define permissões de execução nos arquivos e, portanto, é adequado para instalar arquivos sob o destino [.filename]#PREFIX/share#.
 
@@ -4709,7 +4709,7 @@ Se o software tiver alguma documentação diferente do manual padrão e páginas
 
 Crie um novo diretório para o port. O nome do diretório é `DOCSDIR`. Isso geralmente é igual a `PORTNAME`. No entanto, se o usuário desejar que versões diferentes do port sejam instaladas ao mesmo tempo, `PKGNAME` pode ser usado.
 
-Já que apenas os arquivos listados no [.filename]#pkg-plist# são instalados, é seguro sempre instalar documentações no `STAGEDIR` (veja <<staging>>). Por isso, blocos `.if` são necessários apenas quando os arquivos forem grandes o suficiente para causarem sobrecarga significativa de I/O.
+Já que apenas os arquivos listados no [.filename]#pkg-plist# são instalados, é seguro sempre instalar documentações no `STAGEDIR` (veja crossref:special[staging,Staging]). Por isso, blocos `.if` são necessários apenas quando os arquivos forem grandes o suficiente para causarem sobrecarga significativa de I/O.
 
 [.programlisting]
 ....
@@ -4800,7 +4800,7 @@ USES=	python:3.4+,build
 BINARY_ALIAS=	python3=${PYTHON_CMD}
 ....
 
-Veja <<using-python>> para mais informações sobre `USES=python`.
+Veja crossref:special[using-python,Usando Python] para mais informações sobre `USES=python`.
 ====
 
 [NOTE]
diff --git a/documentation/content/pt-br/books/porters-handbook/new-port/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/new-port/_index.adoc
similarity index 96%
rename from documentation/content/pt-br/books/porters-handbook/new-port/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/new-port/_index.adoc
index eeb1c1c212..15bf8ef6dd 100644
--- a/documentation/content/pt-br/books/porters-handbook/new-port/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/new-port/_index.adoc
@@ -44,7 +44,7 @@ endif::[]
 
 Interessado em fazer um novo port ou atualizar os ports existentes? Ótimo!
 
-O que segue são algumas instruções para criar um novo port para o FreeBSD. Para atualizar um port existente, leia este documento e depois leia o <<port-upgrading>>.
+O que segue são algumas instruções para criar um novo port para o FreeBSD. Para atualizar um port existente, leia este documento e depois leia o crossref:upgrading[port-upgrading, Atualizando um Port].
 
 Quando este documento não for suficientemente detalhado, consulte [.filename]#/usr/ports/Mk/bsd.port.mk#, que é incluído por todos os [.filename]##Makefile##s dos ports. Mesmo aqueles que não estão hackeando os [.filename]##Makefile##s diariamente podem ganhar muito conhecimento com isso. Além disso, perguntas específicas podem ser enviadas à http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[ Lista de discussão do ports do FreeBSD].
 
diff --git a/documentation/content/pt-br/books/porters-handbook/order/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/order/_index.adoc
similarity index 63%
rename from documentation/content/pt-br/books/porters-handbook/order/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/order/_index.adoc
index 78da146b3f..a75eb42b8d 100644
--- a/documentation/content/pt-br/books/porters-handbook/order/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/order/_index.adoc
@@ -75,54 +75,54 @@ Nos blocos a seguir, apenas defina as variáveis ​​que são requeridas pelo
 
 Este bloco é o mais importante. Ele define o nome do port, a versão, o local do arquivo de distribuição e a categoria. As variáveis ​​devem estar nesta ordem:
 
-* <<makefile-portname,`PORTNAME`>>
-* <<makefile-versions,`PORTVERSION`>>
-* <<makefile-versions,`DISTVERSIONPREFIX`>>
-* <<makefile-versions,`DISTVERSION`>>
-* <<makefile-versions,`DISTVERSIONSUFFIX`>>
-* <<makefile-portrevision,`PORTREVISION`>>
-* <<makefile-portepoch,`PORTEPOCH`>>
-* <<makefile-categories,`CATEGORIES`>>
-* <<makefile-master_sites,`MASTER_SITES`>>
-* <<makefile-master_sites-shorthand,`MASTER_SITE_SUBDIR`>> (descontinuado)
-* <<porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`>>
-* <<porting-pkgnameprefix-suffix,`PKGNAMESUFFIX`>>
-* <<makefile-distname,`DISTNAME`>>
-* <<makefile-extract_sufx,`EXTRACT_SUFX`>>
-* <<makefile-distfiles-definition,`DISTFILES`>>
-* <<makefile-dist_subdir,`DIST_SUBDIR`>>
-* <<makefile-extract_only,`EXTRACT_ONLY`>>
+* crossref:makefiles[makefile-portname,`PORTNAME`]
+* crossref:makefiles[makefile-versions,`PORTVERSION`][<<portversion-footnote, 1>>]
+* crossref:makefiles[makefile-versions,`DISTVERSIONPREFIX`]
+* crossref:makefiles[makefile-versions,`DISTVERSION`][<<portversion-footnote, 1>>]
+* crossref:makefiles[makefile-versions,`DISTVERSIONSUFFIX`]
+* crossref:makefiles[makefile-portrevision,`PORTREVISION`]
+* crossref:makefiles[makefile-portepoch,`PORTEPOCH`]
+* crossref:makefiles[makefile-categories,`CATEGORIES`]
+* crossref:makefiles[makefile-master_sites,`MASTER_SITES`]
+* crossref:makefiles[makefile-master_sites-shorthand,`MASTER_SITE_SUBDIR`] (descontinuado)
+* crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`]
+* crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMESUFFIX`]
+* crossref:makefiles[makefile-distname,`DISTNAME`]
+* crossref:makefiles[makefile-extract_sufx,`EXTRACT_SUFX`]
+* crossref:makefiles[makefile-distfiles-definition,`DISTFILES`]
+* crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`]
+* crossref:makefiles[makefile-extract_only,`EXTRACT_ONLY`]
 
 [[porting-order-patch]]
 == Bloco `PATCHFILES`
 
 Este bloco é opcional. As variáveis ​​são:
 
-* <<porting-patchfiles,`PATCH_SITES`>>
-* <<porting-patchfiles,`PATCHFILES`>>
-* <<porting-patchfiles,`PATCH_DIST_STRIP`>>
+* crossref:makefiles[porting-patchfiles,`PATCH_SITES`]
+* crossref:makefiles[porting-patchfiles,`PATCHFILES`]
+* crossref:makefiles[porting-patchfiles,`PATCH_DIST_STRIP`]
 
 [[porting-order-maintainer]]
 == Bloco `MAINTAINER`
 
 Este bloco é obrigatório. As variáveis ​​são:
 
-* <<makefile-maintainer,`MAINTAINER`>>
-* <<makefile-comment,`COMMENT`>>
+* crossref:makefiles[makefile-maintainer,`MAINTAINER`]
+* crossref:makefiles[makefile-comment,`COMMENT`]
 
 [[porting-order-license]]
 == Bloco `LICENSE`
 
 Este bloco é opcional, embora seja altamente recomendado. As variáveis ​​são:
 
-* <<licenses-license,`LICENSE`>>
-* <<licenses-license_comb,`LICENSE_COMB`>>
-* <<licenses-license_groups,`LICENSE_GROUPS`>> ou `LICENSE_GROUPS_NOME`
-* <<licenses-license_name,`LICENSE_NAME`>> ou `LICENSE_NAME_NOME`
-* <<licenses-license_text,`LICENSE_TEXT`>> ou `LICENSE_TEXT_NOME`
-* <<licenses-license_file,`LICENSE_FILE`>> ou `LICENSE_FILE_NOME`
-* <<licenses-license_perms,`LICENSE_PERMS`>> ou `LICENSE_PERMS_NOME`
-* <<licenses-license_distfiles,`LICENSE_DISTFILES`>> ou `LICENSE_DISTFILES_NOME`
+* crossref:makefiles[licenses-license,`LICENSE`]
+* crossref:makefiles[licenses-license_comb,`LICENSE_COMB`]
+* crossref:makefiles[licenses-license_groups,`LICENSE_GROUPS`] ou `LICENSE_GROUPS_NAME`
+* crossref:makefiles[licenses-license_name,`LICENSE_NAME`] ou `LICENSE_NAME_NAME`
+* crossref:makefiles[licenses-license_text,`LICENSE_TEXT`] ou `LICENSE_TEXT_NAME`
+* crossref:makefiles[licenses-license_file,`LICENSE_FILE`] ou `LICENSE_FILE_NAME`
+* crossref:makefiles[licenses-license_perms,`LICENSE_PERMS`] ou `LICENSE_PERMS_NAME_`
+* crossref:makefiles[licenses-license_distfiles,`LICENSE_DISTFILES`] ou `LICENSE_DISTFILES_NAME`
 
 Se houver várias licenças, ordene as variáveis LICENSE_VAR_NOME pelo nome de licença.
 
@@ -131,21 +131,21 @@ Se houver várias licenças, ordene as variáveis LICENSE_VAR_NOME pelo nome de
 
 Este bloco é opcional. As variáveis ​​são:
 
-* <<dads-deprecated,`DEPRECATED`>>
-* <<dads-deprecated,`EXPIRATION_DATE`>>
-* <<dads-noinstall,`FORBIDDEN`>>
-* <<dads-noinstall,`BROKEN`>>
-* <<dads-noinstall,`BROKEN_*`>>
-* <<dads-noinstall,`IGNORE`>>
-* <<dads-noinstall,`IGNORE__*_`>>
-* <<dads-noinstall,`ONLY_FOR_ARCHS`>>
-* <<dads-noinstall,`ONLY_FOR_ARCHS_REASON_*`>>
-* <<dads-noinstall,`NOT_FOR_ARCHS`>>
-* <<dads-noinstall,`NOT_FOR_ARCHS_REASON_*`>>
+* crossref:porting-dads[dads-deprecated,`DEPRECATED`]
+* crossref:porting-dads[dads-deprecated,`EXPIRATION_DATE`]
+* crossref:porting-dads[dads-noinstall,`FORBIDDEN`]
+* crossref:porting-dads[dads-noinstall,`BROKEN`]
+* crossref:porting-dads[dads-noinstall,`BROKEN_*`]
+* crossref:porting-dads[dads-noinstall,`IGNORE`]
+* crossref:porting-dads[dads-noinstall,`IGNORE_*`]
+* crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS`]
+* crossref:porting-dads[dads-noinstall,`ONLY_FOR_ARCHS_REASON*`]
+* crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS`]
+* crossref:porting-dads[dads-noinstall,`NOT_FOR_ARCHS_REASON*`]
 
 [NOTE]
 ====
-`BROKEN_*` e `IGNORE_*` podem ser qualquer variável genérica, por exemplo, `IGNORE_amd64`, `BROKEN_FreeBSD_10`, etc. Com exceção das variáveis ​​que dependem de uma variável <<uses,`USES`>>, coloque essas em <<porting-order-uses>>. Por exemplo, `IGNORE_WITH_PHP` só funciona se <<uses-php,`USES=php`>> estiver definido e a variável `BROKEN_SSL` somente se <<uses-ssl,`USES=ssl`>> estiver definido.
+`BROKEN_*` e `IGNORE_*` podem ser qualquer variável genérica, por exemplo, `IGNORE_amd64`, `BROKEN_FreeBSD_10`, etc. Com exceção das variáveis ​​que dependem de uma variável crossref:uses[uses,`USES`], coloque essas em <<porting-order-uses>>. Por exemplo, `IGNORE_WITH_PHP` só funciona se crossref:uses[xuses-php,`php`] estiver definido e a variável `BROKEN_SSL` somente se crossref:uses[uses-ssl,`ssl`] estiver definido.
 
 Se o port estiver marcado como BROKEN quando algumas condições forem atendidas, e tais condições puderem ser testadas somente após incluir o [.filename]#bsd.port.options.mk# ou [.filename]#bsd.port.pre.mk#, então essas variáveis ​​devem ser definidas mais tarde, em <<porting-order-rest>>.
 ====
@@ -155,12 +155,12 @@ Se o port estiver marcado como BROKEN quando algumas condições forem atendidas
 
 Este bloco é opcional. As variáveis ​​são:
 
-* <<makefile-fetch_depends,`FETCH_DEPENDS`>>
-* <<makefile-extract_depends,`EXTRACT_DEPENDS`>>
-* <<makefile-patch_depends,`PATCH_DEPENDS`>>
-* <<makefile-build_depends,`BUILD_DEPENDS`>>
-* <<makefile-lib_depends,`LIB_DEPENDS`>>
-* <<makefile-run_depends,`RUN_DEPENDS`>>
+* crossref:makefiles:[makefile-fetch_depends,`FETCH_DEPENDS`]
+* crossref:makefiles:[makefile-extract_depends,`EXTRACT_DEPENDS`]
+* crossref:makefiles:[makefile-patch_depends,`PATCH_DEPENDS`]
+* crossref:makefiles:[makefile-build_depends,`BUILD_DEPENDS`]
+* crossref:makefiles:[makefile-lib_depends,`LIB_DEPENDS`]
+* crossref:makefiles:[makefile-run_depends,`RUN_DEPENDS`]
 * `TEST_DEPENDS`
 
 [[porting-order-flavors]]
@@ -168,7 +168,7 @@ Este bloco é opcional. As variáveis ​​são:
 
 Este bloco é opcional.
 
-Comece esta seção com as definições de `FLAVORS`. Continue com as possíveis variáveis assistentes de Flavors. Veja <<flavors-using>> para maiores informações.
+Comece esta seção com as definições de `FLAVORS`. Continue com as possíveis variáveis assistentes de Flavors. Veja  crossref:flavors[flavors-using,Usando  FLAVORS] para maiores informações.
 
 Variáveis ​​de definição de construção não disponíveis como assistentes, usando `.if ${FLAVOR:U} == foo` devem ir em abaixo de suas respectivas seções.
 
@@ -177,7 +177,7 @@ Variáveis ​​de definição de construção não disponíveis como assistent
 
 Comece esta seção com a definição da variável `USES` e, em seguida, possíveis variáveis `USE_x`.
 
-Mantenha as variáveis ​​relacionadas juntas. Por exemplo, se estiver usando a variável <<makefile-master_sites-github,`USE_GITHUB`>>, coloque sempre as variáveis `GH_*` ​​logo após ela.
+Mantenha as variáveis ​​relacionadas juntas. Por exemplo, se estiver usando a variável crossref:makefiles[makefile-master_sites-github,`USE_GITHUB`], coloque sempre as variáveis `GH_*` ​​logo após ela.
 
 [[porting-order-variables]]
 == Variáveis ​​Padrão [.filename]#bsd.port.mk#
@@ -189,7 +189,7 @@ A ordem não é importante, no entanto, tente manter variáveis ​​semelhante
 [[porting-order-options]]
 == Opções e Assistentes
 
-Se o port usa o <<makefile-options,framework de opções>>, defina `OPTIONS_DEFINE` e `OPTIONS_DEFAULT`, então as outras variáveis `OPTIONS__*_`, depois as de descrições `_*__DESC`, e então os assistentes de opções. Tente e ordene todas essas variáveis alfabeticamente.
+Se o port usa o crossref:makefiles[makefile-options,framework de opções], defina `OPTIONS_DEFINE` e `OPTIONS_DEFAULT`, então as outras variáveis `OPTIONS__*_`, depois as de descrições `_*__DESC`, e então os assistentes de opções. Tente e ordene todas essas variáveis alfabeticamente.
 
 [[porting-order-options-ex1]]
 .Exemplo de Ordenamento das Variáveis ​​de Opções
diff --git a/documentation/content/pt-br/books/porters-handbook/pkg-files/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/pkg-files/_index.adoc
similarity index 100%
rename from documentation/content/pt-br/books/porters-handbook/pkg-files/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/pkg-files/_index.adoc
diff --git a/documentation/content/pt-br/books/porters-handbook/plist/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/plist/_index.adoc
similarity index 97%
rename from documentation/content/pt-br/books/porters-handbook/plist/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/plist/_index.adoc
index 7dc7c5c089..275ee64b41 100644
--- a/documentation/content/pt-br/books/porters-handbook/plist/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/plist/_index.adoc
@@ -1,11 +1,11 @@
 ---
-title: Capítulo 8. Prácticas Avançadas de [.filename]#pkg-plist#
+title: Capítulo 8. Prácticas Avançadas de pkg-plist
 prev: books/porters-handbook/flavors
 next: books/porters-handbook/pkg-files
 ---
 
 [[plist]]
-= Prácticas Avançadas de [.filename]#pkg-plist#
+= Prácticas Avançadas de pkg-plist
 :doctype: book
 :toc: macro
 :toclevels: 1
@@ -45,7 +45,7 @@ endif::[]
 [[plist-sub]]
 == Alterando o [.filename]#pkg-plist# Baseado em Variáveis Make
 
-Alguns ports, particularmente os `p5-` ports, precisam mudar seus [.filename]#pkg-plist# dependendo de quais opções eles são configurados com (ou versão de `perl`, no caso de `p5-` ports). Para tornar isso fácil, todas as instâncias [.filename]#pkg-plist# de `%%OSREL%%`, `%%PERL_VER%%` e `%%PERL_VERSION%%` serão substituídas apropriadamente. O valor de `%%OSREL%%` é a revisão numérica do sistema operacional (por exemplo,`4.9`). `%%PERL_VERSION%%` e `%%PERL_VER%%` é o número completo da versão `perl` (por exemplo,`5.8.9`). Muitos outros `%%_VARS_%%` relacionados aos arquivos de documentação do port são descritos na <<install-documentation,seção relevante>>.
+Alguns ports, particularmente os `p5-` ports, precisam mudar seus [.filename]#pkg-plist# dependendo de quais opções eles são configurados com (ou versão de `perl`, no caso de `p5-` ports). Para tornar isso fácil, todas as instâncias [.filename]#pkg-plist# de `%%OSREL%%`, `%%PERL_VER%%` e `%%PERL_VERSION%%` serão substituídas apropriadamente. O valor de `%%OSREL%%` é a revisão numérica do sistema operacional (por exemplo,`4.9`). `%%PERL_VERSION%%` e `%%PERL_VER%%` é o número completo da versão `perl` (por exemplo,`5.8.9`). Muitos outros `%%_VARS_%%` relacionados aos arquivos de documentação do port são descritos na crossref:makefiles[install-documentation,seção relevante].
 
 Para fazer outras substituições, defina `PLIST_SUB` com uma lista de pares `_VAR_=_VALOR_` e as instâncias de `%%_VAR_%%` serão substituídas por _VALOR_ no [.filename]#pkg-plist#.
 
@@ -59,7 +59,7 @@ PLIST_SUB=	OCTAVE_VERSION=${OCTAVE_VERSION}
 
 no [.filename]#Makefile# e use `%%OCTAVE_VERSION%%` onde quer que a versão apareça em [.filename]#pkg-plist#. Quando o port é atualizado, não será necessário editar dezenas (ou em alguns casos, centenas) de linhas no [.filename]#pkg-plist#.
 
-Se os arquivos são instalados condicionalmente pelas opções definidas no port, a maneira usual de lidar com isso é prefixando as linhas [.filename]#pkg-plist# com `%%OPT%%` para linhas necessárias quando a opção está ativada ou `%%NO_OPT%%` quando a opção está desativada e adicionando `OPTIONS_SUB=yes` ao [.filename]#Makefile#. Veja <<options_sub>> para mais informações.
+Se os arquivos são instalados condicionalmente pelas opções definidas no port, a maneira usual de lidar com isso é prefixando as linhas [.filename]#pkg-plist# com `%%OPT%%` para linhas necessárias quando a opção está ativada ou `%%NO_OPT%%` quando a opção está desativada e adicionando `OPTIONS_SUB=yes` ao [.filename]#Makefile#. Veja crossref:makefiles[options_sub,`OPTIONS_SUB`] para mais informações.
 
 Por exemplo, se houver arquivos que são instalados apenas quando a opção `X11` está ativada, e o [.filename]#Makefile# tem:
 
@@ -273,20 +273,20 @@ Os argumentos são opcionais. Se apenas o grupo e o modo precisarem ser alterado
 [WARNING]
 ====
 
-Se uma keyword for utilizada em uma entrada de <<makefile-options,opção>>, ela precisa ser adicionada após o assistente:
+Se uma keyword for utilizada em uma entrada de crossref:makefiles[makefile-options,opção], ela precisa ser adicionada após o assistente:
 
 [.programlisting]
 ....
 %%FOO%%@sample etc/orbit.conf.sample
 ....
 
-Isso é porque os assistentes plist das opções são utilizados para comentar as linhas, e por isso eles precisam ser inseridos no início. Veja <<options_sub>> para maiores informações.
+Isso é porque os assistentes plist das opções são utilizados para comentar as linhas, e por isso eles precisam ser inseridos no início. Veja crossref:makefiles[options_sub,`OPTIONS_SUB`] para maiores informações.
 ====
 
 [[plist-keywords-desktop-file-utils]]
 === `@desktop-file-utils`
 
-Irá executar o `update-desktop-database -q` após a instalação e desinstalação. _Nunca_ use diretamente, adicione <<uses-desktop-file-utils,`USES=utilitários de arquivo de desktop`>> ao [.filename]#Makefile#.
+Irá executar o `update-desktop-database -q` após a instalação e desinstalação. _Nunca_ use diretamente, adicione crossref:uses[uses-desktop-file-utils,`USES=desktop-file-utils`] ao [.filename]#Makefile#.
 
 [[plist-keywords-fc]]
 === `@fc` _directory_
@@ -311,7 +311,7 @@ Executa `glib-compile-schemas` na instalação e desinstalação.
 [[plist-keywords-info]]
 === `@info` _file_
 
-Adiciona o arquivo passado como argumento ao plist e atualiza o índice do documento info na instalação e desinstalação. Além disso, ele remove o índice se estiver vazio na desinstalação. Isso nunca deve ser usado manualmente, mas sempre `INFO`. Veja <<makefile-info>> para maiores informações.
+Adiciona o arquivo passado como argumento ao plist e atualiza o índice do documento info na instalação e desinstalação. Além disso, ele remove o índice se estiver vazio na desinstalação. Isso nunca deve ser usado manualmente, mas sempre `INFO`. Veja crossref:makefiles[makefile-info,Arquivos de Informação] para maiores informações.
 
 [[plist-keywords-kld]]
 === `@kld` _directory_
diff --git a/documentation/content/pt-br/books/porters-handbook/porting-dads/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/porting-dads/_index.adoc
similarity index 98%
rename from documentation/content/pt-br/books/porters-handbook/porting-dads/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/porting-dads/_index.adoc
index 36d877d007..5864e41365 100644
--- a/documentation/content/pt-br/books/porters-handbook/porting-dads/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/porting-dads/_index.adoc
@@ -84,7 +84,7 @@ para o lugar adequado no arquivo [.filename]#.c#.
 #endif
 ....
 
-Uma lista completa de valores `__FreeBSD_version` está disponível em <<versions>>.
+Uma lista completa de valores `__FreeBSD_version` está disponível em crossref:versions[versions, Valores `__FreeBSD_version`].
 
 [[dads-after-port-mk]]
 == Escrevendo Algo Depois do [.filename]#bsd.port.mk#
@@ -403,7 +403,7 @@ Não existe uma política definida sobre o tempo de aviso a ser dado. A prática
 
 A maneira correta de um [.filename]#Makefile# sinalizar que o port não pode ser instalado devido a algum fator externo (por exemplo, o usuário especificou uma combinação ilegal de opções de compilação) é definir um valor não vazio para `IGNORE`. Este valor será formatado e mostrado ao usuário pelo comando `make install`.
 
-É um equívoco comum usar `.error` para esse propósito. O problema com isso é que muitas ferramentas automatizadas que funcionam com a árvore de ports falharão nessa situação. A ocorrência mais comum disso é encontrada ao tentar construir o arquivo [.filename]#/usr/ports/INDEX# (Veja <<make-describe>>). No entanto, comandos ainda mais triviais, como `make maintainer` também irão falhar neste cenário. E Isto não é aceitável.
+É um equívoco comum usar `.error` para esse propósito. O problema com isso é que muitas ferramentas automatizadas que funcionam com a árvore de ports falharão nessa situação. A ocorrência mais comum disso é encontrada ao tentar construir o arquivo [.filename]#/usr/ports/INDEX# (Veja crossref:testing[make-describe, Executando `make describe`]). No entanto, comandos ainda mais triviais, como `make maintainer` também irão falhar neste cenário. E Isto não é aceitável.
 
 [[dot-error-breaks-index]]
 .Como Evitar o Uso de `.error`
diff --git a/documentation/content/pt-br/books/porters-handbook/porting-samplem/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/porting-samplem/_index.adoc
similarity index 97%
rename from documentation/content/pt-br/books/porters-handbook/porting-samplem/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/porting-samplem/_index.adoc
index dbcd834f8d..3a6e02ebdf 100644
--- a/documentation/content/pt-br/books/porters-handbook/porting-samplem/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/porting-samplem/_index.adoc
@@ -1,11 +1,11 @@
 ---
-title: Capítulo 14. Um Exemplo de [.filename]#Makefile#
+title: Capítulo 14. Um Exemplo de Makefile
 prev: books/porters-handbook/porting-dads
 next: books/porters-handbook/order
 ---
 
 [[porting-samplem]]
-= Um Exemplo de [.filename]#Makefile#
+= Um Exemplo de Makefile
 :doctype: book
 :toc: macro
 :toclevels: 1
diff --git a/documentation/content/pt-br/books/porters-handbook/porting-why/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/porting-why/_index.adoc
similarity index 100%
rename from documentation/content/pt-br/books/porters-handbook/porting-why/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/porting-why/_index.adoc
diff --git a/documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/quick-porting/_index.adoc
similarity index 94%
rename from documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/quick-porting/_index.adoc
index 905a356219..31223a5e39 100644
--- a/documentation/content/pt-br/books/porters-handbook/quick-porting/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/quick-porting/_index.adoc
@@ -42,13 +42,13 @@ toc::[]
 include::../../../../../shared/asciidoctor.adoc[]
 endif::[]
 
-Esta seção descreve como criar rapidamente um novo port. Para aplicativos em que esse método rápido não for adequado, o processo "Slow Porting" está descrito no <<slow-porting>>.
+Esta seção descreve como criar rapidamente um novo port. Para aplicativos em que esse método rápido não for adequado, o processo "Slow Porting" está descrito no crossref:slow-porting[slow-porting,Port Lento].
 
 Primeiro, obtenha o tarball original e coloque-o em `DISTDIR`, que por padrão é o diretório [.filename]#/usr/ports/distfiles#.
 
 [NOTE]
 ====
-Estas etapas assumem que o software foi compilado de forma simples (out-of-the-box). Em outras palavras, não foi necessária absolutamente nenhuma mudança para o aplicativo funcionar em um sistema FreeBSD. Se alguma coisa teve que ser alterada, por favor consulte o <<slow-porting>>.
+Estas etapas assumem que o software foi compilado de forma simples (out-of-the-box). Em outras palavras, não foi necessária absolutamente nenhuma mudança para o aplicativo funcionar em um sistema FreeBSD. Se alguma coisa teve que ser alterada, por favor consulte o crossref:slow-porting[slow-porting,Port Lento].
 ====
 
 [NOTE]
@@ -177,14 +177,12 @@ Uso de `PLIST_FILES` não deve ser abusado. Ao procurar pela origem de um arquiv
 
 [TIP]
 ====
-
-Se um port precisar criar um diretório vazio, ou criar diretórios fora do [.filename]#${PREFIX}# durante a instalação, consulte <<plist-dir-cleaning>> para maiores informações.
+Se um port precisar criar um diretório vazio, ou criar diretórios fora do [.filename]#${PREFIX}# durante a instalação, consulte crossref:plist[plist-dir-cleaning,Limpando Diretórios Vazios] para maiores informações.
 ====
 
 [TIP]
 ====
-
-Como `PLIST_FILES` é uma variavel do man:make[1], qualquer entrada com espaços deve ser envolvida por aspas. Por exemplo, se estiver usando palavras-chave descritas em man:pkg-create[8] e na <<plist-keywords>>, a entrada deve ser citada.
+Como `PLIST_FILES` é uma variavel do man:make[1], qualquer entrada com espaços deve ser envolvida por aspas. Por exemplo, se estiver usando palavras-chave descritas em man:pkg-create[8] e na crossref:plist[plist-keywords,Expandindo a Lista de Pacotes com Keywords], a entrada deve ser citada.
 
 [.programlisting]
 ....
@@ -210,7 +208,7 @@ Certifique-se de que as regras do port façam exatamente o que é desejado, incl
 * O port pode ser instalado usando o target `install`. Isso verifica se o script de instalação está funcionando corretamente.
 * O port pode ser desinstalado adequadamente usando o target `deinstall`. Isso verifica se o script de desinstalação funciona corretamente.
 * O port só tem acesso aos recursos de rede durante a fase target `fetch`. Isto é importante para os construtores de pacotes, tais como o package:ports-mgmt/poudriere[].
-* Certifique-se de que o comando `make package` pode ser executado como um usuário normal (ou seja, não como `root`). Se isso falhar, talvez seja necessário corrigir o software. Veja a <<uses-fakeroot>> e também a <<uses-uidfix>>.
+* Certifique-se de que o comando `make package` pode ser executado como um usuário normal (ou seja, não como `root`). Se isso falhar, talvez seja necessário corrigir o software. Veja a crossref:uses[uses-fakeroot,`fakeroot`] e também a crossref:uses[uses-uidfix,`uidfix`].
 
 [.procedure]
 ====
@@ -226,7 +224,7 @@ Certifique-se de que as regras do port façam exatamente o que é desejado, incl
 
 Certifique-se de que nenhum aviso é exibido em nenhum dos estágios.
 
-Testes automatizados completos podem ser feitos com o package:ports-mgmt/poudriere[] da coleção do Ports, veja a <<testing-poudriere>> para maiores informações. Ele mantém `jails` onde todas as etapas mostradas acima podem ser testadas sem afetar o estado do sistema host.
+Testes automatizados completos podem ser feitos com o package:ports-mgmt/poudriere[] da coleção do Ports, veja a crossref:testing[testing-poudriere,Poudriere] para maiores informações. Ele mantém `jails` onde todas as etapas mostradas acima podem ser testadas sem afetar o estado do sistema host.
 
 [[porting-portlint]]
 == Verificando o Port com `portlint`
diff --git a/documentation/content/pt-br/books/porters-handbook/security/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/security/_index.adoc
similarity index 100%
rename from documentation/content/pt-br/books/porters-handbook/security/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/security/_index.adoc
diff --git a/documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/slow-porting/_index.adoc
similarity index 96%
rename from documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/slow-porting/_index.adoc
index b1d466a219..c58c9bcd1e 100644
--- a/documentation/content/pt-br/books/porters-handbook/slow-porting/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/slow-porting/_index.adoc
@@ -60,7 +60,7 @@ Mas não se preocupe, não são muitas as pessoas que entendem exatamente como o
 .. Se existir, [.filename]#scripts/configure# é executado.
 .. E se `HAS_CONFIGURE` ou `GNU_CONFIGURE` está definido, [.filename]#WRKSRC/configure# é executado.
 . O target `build` é executado. Ele é responsável por mudar para o diretório de trabalho privado do port (`WRKSRC`) e compila-lo.
-. O target `stage` é executado. Este coloca o conjunto final de arquivos construídos em um diretório temporário (`STAGEDIR`, Veja <<staging>>). A hierarquia deste diretório espelha a do sistema no qual o pacote será instalado.
+. O target `stage` é executado. Este coloca o conjunto final de arquivos construídos em um diretório temporário (`STAGEDIR`, Veja crossref:special[staging,Staging]). A hierarquia deste diretório espelha a do sistema no qual o pacote será instalado.
 . O target `package` é executado. Ele cria um pacote usando os arquivos do diretório temporário criado durante o target `stage` e o [.filename]#pkg-plist# do port.
 . O target `install` é executado. Este instala o pacote criado durante o target `package` no host.
 ====
@@ -83,7 +83,7 @@ Agora que o que acontece quando o usuário digita `make install` é melhor enten
 
 Obtenha os fontes originais (normalmente) como um tarball compactado ([.filename]#foo.tar.gz# ou [.filename]#foo.tar.bz2#) e copie-o para `DISTDIR`. Use fontes do _mainstream_ sempre que possível.
 
-Definir a variável `MASTER_SITES` para refletir onde o tarball original reside. Existem definições abreviadas para a maioria dos sites mainstream em [.filename]#bsd.sites.mk#. Por favor, use esses sites - e as definições associadas--se for possível, para ajudar a evitar o problema de ter as mesmas informações repetidas várias vezes na base de origem. Como esses sites tendem a mudar com o tempo, isso se torna um pesadelo de manutenção para todos os envolvidos. Veja <<makefile-master_sites>> para detalhes.
+Definir a variável `MASTER_SITES` para refletir onde o tarball original reside. Existem definições abreviadas para a maioria dos sites mainstream em [.filename]#bsd.sites.mk#. Por favor, use esses sites - e as definições associadas--se for possível, para ajudar a evitar o problema de ter as mesmas informações repetidas várias vezes na base de origem. Como esses sites tendem a mudar com o tempo, isso se torna um pesadelo de manutenção para todos os envolvidos. Veja crossref:makefiles[makefile-master_sites,`MASTER_SITES`] para detalhes.
 
 Se não houver nenhum site FTP/HTTP bem conectado à rede ou se puder encontrar apenas sites com formatos irritantemente não-padrão, coloque uma cópia em um servidor FTP ou HTTP confiável (por exemplo, uma home page).
 
@@ -119,8 +119,7 @@ Depois que todas as alterações forem realizadas, `cd` de volta ao diretório d
 
 [TIP]
 ====
-
-Usar `BINARY_ALIAS` para substituir comandos codificados durante a compilação e para evitar patching de arquivos de compilação. Veja <<binary-alias>> para maiores informações.
+Usar `BINARY_ALIAS` para substituir comandos codificados durante a compilação e para evitar patching de arquivos de compilação. Veja crossref:makefiles[binary-alias,Use `BINARY_ALIAS` para Renomear Comandos Em Vez de Aplicar Patch na Compilação] para maiores informações.
 ====
 
 [[slow-patch-rules]]
@@ -247,7 +246,7 @@ EXTRA_PATCHES=	${PATCHDIR}/extra-patch-fbsd10
 .Aplicando Opcionalmente um Patch
 [example]
 ====
-Quando um <<makefile-options,option>> requer um patch, use `OPT_EXTRA_PATCHES` e `OPT_EXTRA_PATCHES_OFF` para fazer o patch condicional na opção `_opt_`. Veja <<options-variables>> Para maiores informações.
+Quando um crossref:makefiles[makefile-options,option] requer um patch, use `OPT_EXTRA_PATCHES` e `OPT_EXTRA_PATCHES_OFF` para fazer o patch condicional na opção `_opt_`. Veja <<options-variables>> Para maiores informações.
 
 [.programlisting]
 ....
diff --git a/documentation/content/pt-br/books/porters-handbook/special/chapter.adoc b/documentation/content/pt-br/books/porters-handbook/special/_index.adoc
similarity index 97%
rename from documentation/content/pt-br/books/porters-handbook/special/chapter.adoc
rename to documentation/content/pt-br/books/porters-handbook/special/_index.adoc
index 8750eba096..a79e3f7b5c 100644
--- a/documentation/content/pt-br/books/porters-handbook/special/chapter.adoc
+++ b/documentation/content/pt-br/books/porters-handbook/special/_index.adoc
@@ -47,11 +47,11 @@ Esta seção explica as coisas mais comuns a se considerar ao criar um port.
 [[staging]]
 == Staging
 
-[.filename]#bsd.port.mk# espera que os ports trabalhem com um "stage directory". Isso significa que um port não deve instalar arquivos diretamente nos diretórios de destino regulares (isto é, sob o `PREFIX`, por exemplo), mas em um diretório separado a partir do qual o pacote será construído. Em muitos casos, isso não requer privilégios de root, tornando possível criar pacotes como um usuário não privilegiado. Com o staging, o port é compilado e instalado no diretório sde estágio, `STAGEDIR`. Um pacote é criado a partir do diretório de estágio e, em seguida, instalado no sistema. As ferramentas Automake referem-se a este conceito como `DESTDIR`, mas no FreeBSD, `DESTDIR` tem um significado diferente (veja <<porting-prefix>>).
+[.filename]#bsd.port.mk# espera que os ports trabalhem com um "stage directory". Isso significa que um port não deve instalar arquivos diretamente nos diretórios de destino regulares (isto é, sob o `PREFIX`, por exemplo), mas em um diretório separado a partir do qual o pacote será construído. Em muitos casos, isso não requer privilégios de root, tornando possível criar pacotes como um usuário não privilegiado. Com o staging, o port é compilado e instalado no diretório sde estágio, `STAGEDIR`. Um pacote é criado a partir do diretório de estágio e, em seguida, instalado no sistema. As ferramentas Automake referem-se a este conceito como `DESTDIR`, mas no FreeBSD, `DESTDIR` tem um significado diferente (veja crossref:testing[porting-prefix,`PREFIX` e `DESTDIR`]).
 
 [NOTE]
 ====
-Nenhum port _realmente_ precisa de root. Ele pode ser evitado principalmente usando <<uses-uidfix,`USES=uidfix`>>. Se o port ainda executa comandos como man:chown[8], man:chgrp[1] ou força o proprietário ou grupo com man:install[1] então use <<uses-fakeroot,`USES=fakeroot`>> para enganar essas chamadas. Algumas modificações no [.filename]#Makefile# do port serão necessárias.
+Nenhum port _realmente_ precisa de root. Ele pode ser evitado principalmente usando crossref:uses[uses-uidfix,`USES=uidfix`]. Se o port ainda executa comandos como man:chown[8], man:chgrp[1] ou força o proprietário ou grupo com man:install[1] então use crossref:uses[uses-fakeroot,`USES=fakeroot`] para enganar essas chamadas. Algumas modificações no [.filename]#Makefile# do port serão necessárias.
 ====
 
 Os meta ports, ou ports que não instalam arquivos por si mesmos e apenas dependem de outros ports, devem evitar extrair desnecessariamente man:mtree[8] para o diretório de estágio. Este é o layout básico do diretório do pacote, e estes diretórios vazios serão vistos como órfãos. Para prevenir extração do man:mtree[8], adicione esta linha:
@@ -281,7 +281,7 @@ Se o port usa o GNU make, adicione o `gmake` no `USES`.
 
 A variável `MAKE_CMD` pode ser usada para referenciar o comando específico configurado pelo `USES` no [.filename]#Makefile# do port. Use o `MAKE_CMD` apenas dentro dos [.filename]##Makefile##s do aplicativo no `WRKSRC` para chamar o comando `make` para a implementação esperada pelo software portado.
 
-Se o port é um aplicativo X que usa o Imake para criar o [.filename]#Makefile# do [.filename]#Imakefile#, defina `USES=imake`. Veja a seção sobre <<uses-imake,`USES=imake`>> no <<uses>> para mais detalhes.
+Se o port é um aplicativo X que usa o Imake para criar o [.filename]#Makefile# do [.filename]#Imakefile#, defina `USES=imake`. Veja a seção sobre crossref:uses[uses-imake,`USES=imake`] no crossref:uses[uses,Usando Macros `USES`] para mais detalhes.
 
 Se o [.filename]#Makefile# do port tem algo diferente de `all` como o target de compilação principal, defina a variável `ALL_TARGET` adequadamente. O mesmo vale para `install` e `INSTALL_TARGET`.
 
@@ -393,7 +393,7 @@ CMAKE_ARGS=	-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE
 
 [IMPORTANT]
 ======
-Isto é apenas para os valores padrão desativados do `CMAKE_ARGS`. Os helpers descritos em <<options-cmake_bool>> usam a mesma semântica, mas para valores opcionais.
+Isto é apenas para os valores padrão desativados do `CMAKE_ARGS`. Os helpers descritos em crossref:makefiles[options-cmake_bool,`OPT_CMAKE_BOOL` e `OPT_CMAKE_BOOL_OFF`] usam a mesma semântica, mas para valores opcionais.
 ======
 
 ====
@@ -662,7 +662,7 @@ PULSEAUDIO_VARS=	CARGO_FEATURES+=pulseaudio_backend
 .Listando Licenças Crate
 [example]
 ====
-Os crates têm suas próprias licenças. É importante saber o que elas são ao adicionar o bloco `LICENSE` para o port (ver<<licenses>>). O target auxiliar `cargo-crates-licenses` tentará listar todas as licenças de todos os crates definidos no `CARGO_CRATES`.
+Os crates têm suas próprias licenças. É importante saber o que elas são ao adicionar o bloco `LICENSE` para o port (ver crossref:makefiles[licenses,Licenças]). O target auxiliar `cargo-crates-licenses` tentará listar todas as licenças de todos os crates definidos no `CARGO_CRATES`.
 
 [source,shell]
 ....
@@ -678,7 +678,7 @@ byteorder-1.2.2     Unlicense/MIT
 
 [NOTE]
 ======
-Os nomes das licenças geradas com `make cargo-create-licenses` são expressões de licenças do SPDX 2.1 que não correspondem aos nomes de licença definidos na estrutura de ports. Eles precisam ser traduzidos para os nomes de <<licenses-license-list>>.
+Os nomes das licenças geradas com `make cargo-create-licenses` são expressões de licenças do SPDX 2.1 que não correspondem aos nomes de licença definidos na estrutura de ports. Eles precisam ser traduzidos para os nomes de crossref:makefiles[licenses-license-list, Lista de Licenças Predefinidas].
 ======
 
 ====
@@ -719,7 +719,7 @@ MESON_ARGS=	-Dfoo=enabled
 [[using-go]]
 === Compilando Aplicações Go
 
-Para ports que usam Go, defina `USES=go`. Consulte <<uses-go>> para obter a lista de variáveis que podem ser configuradas para controlar o processo de compilação.
+Para ports que usam Go, defina `USES=go`. Consulte crossref:uses[uses-go,`go`] para obter a lista de variáveis que podem ser configuradas para controlar o processo de compilação.
 
 [[go-ex1]]
 .Criando um Port para uma Aplicação Baseada em Módulos Go
@@ -845,7 +845,7 @@ irá instalar `dnscrypt-proxy` em `${PREFIX}/sbin`.
 [[using-cabal]]
 === Compilando Aplicações Haskell com `cabal`
 
-Para ports que usam Cabal, defina o sistema de compilação `USES=cabal`. Consulte <<uses-cabal>> para obter a lista de variáveis que podem ser configuradas para controlar o processo de compilação.
+Para ports que usam Cabal, defina o sistema de compilação `USES=cabal`. Consulte crossref:uses[uses-cabal,`cabal`] para obter a lista de variáveis que podem ser configuradas para controlar o processo de compilação.
 
 [[cabal-ex1]]
 .Criando um Port para uma Aplicação Hackage-hosted Haskell
@@ -943,7 +943,7 @@ Se você não estiver testando seu port em um ambiente limpo, como com o Poudrie
 [[using-autotools]]
 == Usando o GNU Autotools
 
-Se um port precisar de algum software GNU Autotools, adicione `USES=autoreconf`. Veja <<uses-autoreconf>> Para maiores informações.
+Se um port precisar de algum software GNU Autotools, adicione `USES=autoreconf`. Veja crossref:uses[uses-autoreconf,`autoreconf`] Para maiores informações.
 
 [[using-gettext]]
 == Usando o GNU `gettext`
@@ -951,7 +951,7 @@ Se um port precisar de algum software GNU Autotools, adicione `USES=autoreconf`.
 [[using-gettext-basic]]
 === Uso Básico
 
-Se o port requer o `gettext`, defina `USES=gettext`, e o port herdará a dependência [.filename]#libintl.so# do package:devel/gettext[]. Outros valores para uso do `gettext` estão listados em <<uses-gettext,`USES=gettext`>>.
+Se o port requer o `gettext`, defina `USES=gettext`, e o port herdará a dependência [.filename]#libintl.so# do package:devel/gettext[]. Outros valores para uso do `gettext` estão listados em crossref:uses[uses-gettext,`USES=gettext`].
 
 Um caso bastante comum é um port que utilize o `gettext` e o `configure`. Geralmente, o GNU `configure` deve ser capaz de localizar o `gettext` automaticamente.
 
@@ -1170,9 +1170,9 @@ USE_PERL5=	modbuildtiny
 [[x11-variables]]
 === Componentes X.Org
 
-A implementação do X11 disponível na Coleção de Ports é o X.Org. Se o aplicativo depender de componentes X, adicione `USES= xorg` e defina `USE_XORG` na lista de componentes necessários. Uma lista completa pode ser encontrada em <<uses-xorg>>.
+A implementação do X11 disponível na Coleção de Ports é o X.Org. Se o aplicativo depender de componentes X, adicione `USES= xorg` e defina `USE_XORG` na lista de componentes necessários. Uma lista completa pode ser encontrada em crossref:uses[uses-xorg,`xorg`].
 
-O Projeto Mesa é um esforço para fornecer implementação gratuita do OpenGL. Para especificar uma dependência em vários componentes deste projeto, use a variável `USE_GL`. Veja <<uses-gl>> para a lista completa dos componentes disponíveis. Para compatibilidade com versões anteriores, o valor `yes` direciona para `glu`.
+O Projeto Mesa é um esforço para fornecer implementação gratuita do OpenGL. Para especificar uma dependência em vários componentes deste projeto, use a variável `USE_GL`. Veja crossref:uses[uses-gl,`gl`] para a lista completa dos componentes disponíveis. Para compatibilidade com versões anteriores, o valor `yes` direciona para `glu`.
 
 [[use-xorg-example]]
 .Exemplo `USE_XORG`
@@ -1749,7 +1749,7 @@ Para mais ajuda com um port GNOME, veja alguns dos https://www.FreeBSD.org/ports
 
 [NOTE]
 ====
-Para ports que fazem parte do Qt, veja <<uses-qt-dist>>.
+Para ports que fazem parte do Qt, veja crossref:uses[uses-qt-dist,`qt-dist`].
 ====
 
 [[qt-common]]
@@ -2895,7 +2895,7 @@ Além disso, essas constantes são definidas para que todos os ports Java possam
 |O diretório onde os arquivos JAR instalados por outros ports estão localizados. Padrão: [.filename]#${LOCALBASE}/shared/java/classes#.
 |===
 
-As entradas relacionadas são definidas em ambos `PLIST_SUB` (documentado em <<plist-sub>>) e `SUB_LIST`.
+As entradas relacionadas são definidas em ambos `PLIST_SUB` (documentado em crossref:plist[plist-sub,Alterando o pkg-plist Baseado em Variáveis Make]) e `SUB_LIST`.
 
 [[java-building-with-ant]]
 === Compilando com Ant
@@ -2933,7 +2933,7 @@ do-install:
 
 Independentemente do tipo de port (biblioteca ou aplicativo), a documentação adicional é instalada na <<install-documentation,mesma localização>> como para qualquer outro port. A ferramenta Javadoc é conhecida por produzir um conjunto diferente de arquivos, dependendo da versão do JDK utilizado. Para ports que não impõem o uso de um determinado JDK, é uma tarefa complexa especificar a lista de empacotamento ([.filename]#pkg-plist#). Esta é uma razão pela qual os mantenedores de ports são fortemente encorajados a usar `PORTDOCS`. Além disso, mesmo se o conjunto de arquivos que serão gerados pelo `javadoc` puder ser previsto, o tamanho do [.filename]#pkg-plist# resultante irá encorajar o uso do `PORTDOCS`.
 
-O valor padrão para `DATADIR` é [.filename]#${PREFIX}/shared/${PORTNAME}#. É uma boa ideia sobreescrever `DATADIR` para [.filename]#${JAVASHAREDIR}/${PORTNAME}# para ports Java. De fato, `DATADIR` é automaticamente adicionado a `PLIST_SUB` (documentado em<<plist-sub>>) então use `%%DATADIR%%` diretamente em [.filename]#pkg-plist#.
+O valor padrão para `DATADIR` é [.filename]#${PREFIX}/shared/${PORTNAME}#. É uma boa ideia sobreescrever `DATADIR` para [.filename]#${JAVASHAREDIR}/${PORTNAME}# para ports Java. De fato, `DATADIR` é automaticamente adicionado a `PLIST_SUB` (documentado em crossref:plist[plist-sub, Alterando o pkg-plist Baseado em Variáveis Make]) então use `%%DATADIR%%` diretamente em [.filename]#pkg-plist#.
 
 Quanto à escolha de compilar ports Java a partir do código fonte ou instalar diretamente a partir de uma distribuição binária, não há política definida no momento da escrita deste livro. No entanto, os membros do https://www.freebsd.org/java/[Projeto Java do FreeBSD] encorajam os mantenedores de ports a terem seus ports compilados a partir do código fonte sempre que for possível.
 
@@ -2941,7 +2941,7 @@ Todos os recursos que foram apresentados nesta seção são implementados em [.f
 
 Embora haja uma categoria `Java` para PRs, isso refere-se ao esforço de portabilidade do JDK do projeto Java do FreeBSD. Portanto, envie o port Java na categoria `ports` como para qualquer outro port, a menos que o problema esteja relacionado a uma implementação do JDK ou ao [.filename]#bsd.java.mk#.
 
-Da mesma forma, existe uma política definida sobre as `CATEGORIAS` de um port Java, que é detalhada em <<makefile-categories>>.
+Da mesma forma, existe uma política definida sobre as `CATEGORIAS` de um port Java, que é detalhada em crossref:makefiles[makefile-categories,Categorização].
 
 [[using-php]]
 == Aplicações Web, Apache e PHP
@@ -3018,7 +3018,7 @@ Não insira o Apache como dependência, a menos que o aplicativo web precise exp
 [[php-variables]]
 === PHP
 
-Aplicações PHP declaram sua dependência a ele com `USES=php`. Veja <<uses-php>> para maiores informações.
+Aplicações PHP declaram sua dependência a ele com `USES=php`. Veja crossref:uses[uses-php,`php`] para maiores informações.
 
 [[php-pear]]
 === Módulos PEAR
@@ -3137,7 +3137,7 @@ PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 |O port usará um prefixo exclusivo, normalmente `PYTHON_PKGNAMEPREFIX` para determinados diretórios, como `EXAMPLESDIR` e `DOCSDIR` e também irá acrescentar um sufixo, a versão python de `PYTHON_VER`, para os binários e scripts que serão instalados. Isso permite que os ports sejam instalados para diferentes versões do Python ao mesmo tempo, o que de outra forma instalaria arquivos conflitantes.
 
 |`USE_PYTHON=flavors`
-|O port não usa distutils, mas ainda suporta várias versões do Python. .`FLAVORS` será definido para as versões suportadas do Python. Veja <<flavors-auto-python>> para maiores informações.
+|O port não usa distutils, mas ainda suporta várias versões do Python. .`FLAVORS` será definido para as versões suportadas do Python. Veja crossref:flavors[flavors-auto-python,`USES`=python e Flavors] para maiores informações.
 
 |`USE_PYTHON=optsuffix`
 |Se a versão atual do Python não for a versão padrão, o port receberá `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. É útil apenas com flavors.
@@ -3259,7 +3259,7 @@ A Coleção de Ports suporta a instalação paralela de múltiplas versões do T
 |caminho dos arquivos de cabeçalho C do Tk
 |===
 
-Veja o <<uses-tcl,`USES=tcl`>> e <<uses-tk,`USES=tk`>> do <<uses>> para uma descrição completa dessas variáveis. Uma lista completa dessas variáveis ​​está disponível em [.filename]#/usr/ports/Mk/Uses/tcl.mk#.
+Veja o <<uses-tcl,`USES=tcl`>> e <<uses-tk,`USES=tk`>> do crossref:uses[uses,Usando Macros `USES`] para uma descrição completa dessas variáveis. Uma lista completa dessas variáveis ​​está disponível em [.filename]#/usr/ports/Mk/Uses/tcl.mk#.
 
 [[using-ruby]]
 == Usando Ruby
@@ -4063,16 +4063,16 @@ Utilize uma das macros `USES` de <<using-databases-uses>> para adicionar a depen
 | Macro USES
 
 |Berkeley DB
-|<<uses-bdb,`bdb`>>
+|crossref:uses[uses-bdb,`bdb`]
 
 |MariaDB, MySQL, Percona
-|<<uses-mysql,`mysql`>>
+|crossref:uses[uses-mysql,`mysql`]
 
 |PostgreSQL
-|<<uses-pgsql,`pgsql`>>
+|crossref:uses[uses-pgsql,`pgsql`]
 
 |SQLite
-|<<uses-sqlite,`sqlite`>>
+|crossref:uses[uses-sqlite,`sqlite`]
 |===
 
 [[using-databases-bdb-ex1]]
@@ -4084,7 +4084,7 @@ Utilize uma das macros `USES` de <<using-databases-uses>> para adicionar a depen
 USES=	bdb:6
 ....
 
-Veja <<uses-bdb>> para maiores informações.
+Veja crossref:uses[uses-bdb,`bdb`] para maiores informações.
 ====
 
 [[using-databases-mysql-ex1]]
@@ -4098,7 +4098,7 @@ Quando um port precisa da biblioteca cliente do MySQL, adicione
 USES=	mysql
 ....
 
-Veja <<uses-mysql>> para mais informações.
+Veja crossref:uses[uses-mysql,`mysql`] para mais informações.
*** 297 LINES SKIPPED ***