git: 6a430fe152 - main - documentation/pdf: Improve zh-cn|zh-tw font issues

"Danilo G. Baio" <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
The branch main has been updated by dbaio:

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

commit 6a430fe152e6374caf0851d253819293522fcdb4
Author:     Yan Hao Wang <[email protected]>
AuthorDate: 2023-01-20 19:50:45 +0000
Commit:     Danilo G. Baio <[email protected]>
CommitDate: 2023-01-21 00:14:53 +0000

    documentation/pdf: Improve zh-cn|zh-tw font issues
    
    The build script now uses fonts installed by the port/pkg
    docproj-fonts-cjk.
    
    Differential Revision:  https://reviews.freebsd.org/D36623
    Differential Revision:  https://reviews.freebsd.org/D37447
    Co-authored-by: Danilo G. Baio <[email protected]>
---
 documentation/tools/asciidoctor.sh | 25 ++++++++++++++++++++++++-
 shared/zh-cn/zh-cn-theme.yml       | 16 ++++++++++++++++
 shared/zh-tw/zh-tw-theme.yml       | 16 ++++++++++++++++
 3 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/documentation/tools/asciidoctor.sh b/documentation/tools/asciidoctor.sh
index 27ce3f790c..ab5125bc0f 100755
--- a/documentation/tools/asciidoctor.sh
+++ b/documentation/tools/asciidoctor.sh
@@ -49,6 +49,8 @@ build_pdf() {
 	local cur_dir_source="content/$doc_lang/$doc_type/$doc_name/"
 	local cur_dir_output="public/$doc_lang/$doc_type/$doc_name/"
 
+	local theme_font=""
+
 	if [ ! -d "$cur_dir_output" ]; then
 		mkdir -p "$cur_dir_output"
 	fi
@@ -68,6 +70,27 @@ build_pdf() {
 		local asciidoctor_file_name="_index.adoc"
 	fi
 
+	# Check non default fonts
+	case "$doc_lang" in
+		zh-cn)
+			if [ ! -f "$LOCALBASE/share/docproj-fonts-cjk/NotoSansSC-Medium.otf" ]; then
+				echo "  font not found, skipping pdf build"
+				return
+			fi
+			theme_font="-a scripts=cjk -a pdf-theme=./shared/zh-cn/zh-cn-theme.yml -a pdf-fontsdir=$LOCALBASE/share/docproj-fonts-cjk"
+			;;
+		zh-tw)
+			if [ ! -f "$LOCALBASE/share/docproj-fonts-cjk/NotoSansTC-Medium.otf" ]; then
+				echo "  font not found, skipping pdf build"
+				return
+			fi
+			theme_font="-a pdf-theme=./shared/zh-tw/zh-tw-theme.yml -a pdf-fontsdir=$LOCALBASE/share/docproj-fonts-cjk/"
+			;;
+		*)
+			theme_font="-a pdf-theme=default-with-fallback-font"
+			;;
+	esac
+
 	$ASCIIDOCTORPDF_CMD \
 		-r ./shared/lib/man-macro.rb \
 		-r ./shared/lib/git-macro.rb \
@@ -80,7 +103,7 @@ build_pdf() {
 		-a lang="$doc_lang" \
 		-a isonline=1 \
 		-a env-beastie=1 \
-		-a pdf-theme=default-with-fallback-font \
+		${theme_font} \
 		-o "${cur_dir_output}${doc_name}_${doc_lang}.pdf" \
 		"${cur_dir_source}${asciidoctor_file_name}"
 }
diff --git a/shared/zh-cn/zh-cn-theme.yml b/shared/zh-cn/zh-cn-theme.yml
new file mode 100644
index 0000000000..8e1c288aad
--- /dev/null
+++ b/shared/zh-cn/zh-cn-theme.yml
@@ -0,0 +1,16 @@
+extends: default
+font:
+  catalog:
+    merge: true
+    Noto Sans SC: NotoSansSC-Medium.otf
+  fallbacks:
+    - Noto Serif
+base:
+  text-align: left
+  font-family: Noto Sans SC
+codespan:
+  font-family: Noto Sans SC
+kbd:
+  font-family: $codespan-font-family
+code:
+  font-family: $codespan-font-family
diff --git a/shared/zh-tw/zh-tw-theme.yml b/shared/zh-tw/zh-tw-theme.yml
new file mode 100644
index 0000000000..b4ce1d6f05
--- /dev/null
+++ b/shared/zh-tw/zh-tw-theme.yml
@@ -0,0 +1,16 @@
+extends: default
+font:
+  catalog:
+    merge: true
+    Noto Sans TC: NotoSansTC-Medium.otf
+  fallbacks:
+    - Noto Serif
+base:
+  text-align: left
+  font-family: Noto Sans TC
+codespan:
+  font-family: Noto Sans TC
+kbd:
+  font-family: $codespan-font-family
+code:
+  font-family: $codespan-font-family
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.