/,/<\/div>/{ if ($0 ~ /<\/div>/) { print p; p=""; next } if ($0 ~ /
/) next; p=p $0 }' "$intro_file" | xargs)
+ echo "Extracted header title: $header_title"
+else
+ echo "Error: File does not exist."
+fi
+
+# Check if the provided argument is a directory
+if [ ! -d "$directory" ]; then
+ echo "Error: '$directory' is not a directory."
+ exit 1
+fi
+
+# Check if the provided stylesheet exists
+if [ ! -f "$stylesheet" ]; then
+ echo "Error: '$stylesheet' does not exist."
+ exit 1
+fi
+
+# Create the 'generated' directory if it doesn't exist
+if [ ! -d "$generated_folder" ]; then
+ mkdir "$generated_folder"
+fi
+
+# Create the 'tmp' directory if it doesn't exist
+if [ ! -d "$tmp_folder" ]; then
+ mkdir "$tmp_folder"
+fi
+
+# Delete the PDF and Markdown file if they already exist
+if [ -f "$pdf_file" ]; then
+ echo "Deleting existing PDF file: $pdf_file"
+ rm "$pdf_file"
+fi
+# Delete the PDF and Markdown file if they already exist
+if [ -f "$pdf_file" ]; then
+ echo "Deleting existing temporary PDF file: $temp_pdf_file"
+ rm "$pdf_file"
+fi
+if [ -f "$output_file" ]; then
+ echo "Deleting existing temporary Markdown file: $output_file"
+ rm "$output_file"
+fi
+
+# Start with a clean output file
+> "$output_file"
+
+# Add the frontmatter if it exists
+if [ -f "$frontmatter" ]; then
+ cat "$frontmatter" >> "$output_file"
+ echo "" >> "$output_file" # Adds a newline after the frontmatter
+fi
+
+# Sort markdown files alphabetically and concatenate them
+for file in $(find "$directory" -maxdepth 1 -name '*.md' | sort); do
+ # Skip the frontmatter
+ if [[ "$file" != "$frontmatter" ]]; then
+ cat "$file" >> "$output_file"
+ echo "" >> "$output_file" # Adds a newline between files
+ fi
+done
+
+echo "Combined markdown files into $output_file"
+
+# Convert the combined Markdown file to PDF
+md-to-pdf --basedir "$current_directory" --stylesheet "$stylesheet" --document-title "$header_title" "$output_file"
+mv "$temp_pdf_file" "$pdf_file"
+
+if [ -f "$output_file" ] && [ "$3" != "--keep-markdown" ]; then
+ echo "Deleting temporary Markdown file: $output_file"
+ rm "$output_file"
+fi
+
+if [ -f "$pdf_file" ]; then
+ echo -e "\033[32m###############################################################################################################\033[0m"
+ echo -e "\033[32m########################################### Success!! ##################################################\033[0m"
+ echo -e "\033[32m###############################################################################################################\033[0m"
+ echo "PDF file generated: $pdf_file"
+ echo -e "\033[32m###############################################################################################################\033[0m"
+ echo -e "\033[32m###############################################################################################################\033[0m"
+fi
diff --git a/markdown-to-pdf/styles/base.css b/markdown-to-pdf/styles/base.css
new file mode 100644
index 00000000..7311f9c1
--- /dev/null
+++ b/markdown-to-pdf/styles/base.css
@@ -0,0 +1,169 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 950px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+body {
+ background-color: #fff;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}
diff --git a/markdown-to-pdf/styles/topten-de.css b/markdown-to-pdf/styles/topten-de.css
new file mode 100644
index 00000000..7311f9c1
--- /dev/null
+++ b/markdown-to-pdf/styles/topten-de.css
@@ -0,0 +1,169 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 950px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+body {
+ background-color: #fff;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}
diff --git a/markdown-to-pdf/styles/topten-hi.css b/markdown-to-pdf/styles/topten-hi.css
new file mode 100644
index 00000000..b8a74a80
--- /dev/null
+++ b/markdown-to-pdf/styles/topten-hi.css
@@ -0,0 +1,170 @@
+@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Devanagari:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 900px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+
+body {
+ background-color: #fff;
+ font-family: 'Noto Sans Devanagari', 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: 800;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-weight: 800;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ position: relative;
+ top: 20px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}
diff --git a/markdown-to-pdf/styles/topten-it.css b/markdown-to-pdf/styles/topten-it.css
new file mode 100644
index 00000000..7311f9c1
--- /dev/null
+++ b/markdown-to-pdf/styles/topten-it.css
@@ -0,0 +1,169 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 950px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+body {
+ background-color: #fff;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}
diff --git a/markdown-to-pdf/styles/topten-ja.css b/markdown-to-pdf/styles/topten-ja.css
new file mode 100644
index 00000000..800c2969
--- /dev/null
+++ b/markdown-to-pdf/styles/topten-ja.css
@@ -0,0 +1,172 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
+
+
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 900px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+
+body {
+ background-color: #fff;
+ font-family: 'Noto Sans JP', 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: 800;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-weight: 800;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ position: relative;
+ top: 20px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}
diff --git a/markdown-to-pdf/styles/topten-pt.css b/markdown-to-pdf/styles/topten-pt.css
new file mode 100644
index 00000000..7311f9c1
--- /dev/null
+++ b/markdown-to-pdf/styles/topten-pt.css
@@ -0,0 +1,169 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 950px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+body {
+ background-color: #fff;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-family: 'Roboto', sans-serif;
+ font-weight: 700;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}
diff --git a/markdown-to-pdf/styles/topten-zh.css b/markdown-to-pdf/styles/topten-zh.css
new file mode 100644
index 00000000..c41908d4
--- /dev/null
+++ b/markdown-to-pdf/styles/topten-zh.css
@@ -0,0 +1,172 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;800&display=swap');
+
+
+
+.smalllogo {
+ text-align: center;
+ margin-top: 100px;
+ margin-bottom: 100px;
+}
+
+.doctitle{
+ font-size: 80px;
+ line-height: 1;
+ padding-top: 100px;
+ letter-spacing: -0.05em;
+ font-weight: 900;
+ text-align: center;
+}
+.docversion{
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 1;
+ letter-spacing: 0.20em;
+ text-transform: uppercase;
+ color: #030C16;
+ text-align: center;
+ padding-top: 40px;
+
+}
+.doclink {
+ border-radius: 6px;
+ background-color: #1D7BD7;
+ color: white;
+ text-transform: uppercase;
+ font-weight: bold;
+ font-size: 17px;
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 900;
+ padding: 5px 10px;
+ margin: 0 280px;
+ text-align: center;
+}
+.docdate{
+ font-size: 13px;
+ font-style: italic;
+ line-height: 1;
+ padding-bottom: 250px;
+ white-space: nowrap;
+ color: #030C16;
+ text-align: center;
+ padding-top: 20px;
+
+}
+.frontpage {
+ background: url('/img/title-background.png') no-repeat;
+ background-position: center;
+ background-size: 100% 137%;
+ height: 900px;
+ overflow: hidden;
+}
+
+
+.published {
+ font-weight: bold;
+ font-style: italic;
+}
+
+body {
+ background-color: #fff;
+ font-family: 'Noto Sans SC', 'Roboto', sans-serif;
+ font-weight: 400;
+ font-size: 13.33px;
+ line-height: 20px;
+ color: #030C16;
+ margin: 0;
+ padding: 0;
+ overflow: visible;
+}
+
+h2 {
+ width: 100vw;
+ height: 100px;
+ background: url('/img/header-background.png') no-repeat center center;
+ background-size: cover;
+ color: #fff;
+ margin-bottom: 20px;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: 800;
+ font-size: 32px;
+ page-break-after: avoid;
+ letter-spacing: -0.02em;
+ line-height: 100px;
+ page-break-before: always;
+ overflow: visible;
+}
+
+h3 {
+ font-weight: 800;
+ font-size: 21.33px;
+ line-height: 17.33px;
+ position: relative;
+ top: 20px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+h4 {
+ font-family: 'Roboto Condensed', sans-serif;
+ font-weight: 700;
+ font-size: 17px;
+ line-height: 14px;
+ page-break-after: avoid;
+ margin-top: 20px;
+ margin-left: 100px;
+ margin-right: 100px;
+ color: #030C16;
+}
+
+a {
+ color: #030C16; /* Default color */
+ font-weight: 500;
+ text-decoration: underline;
+}
+
+p {
+ margin-left: 100px;
+}
+
+p,
+ul,
+ol {
+ margin-right: 100px;
+ margin-left: 100px;
+ margin-bottom: 20px;
+}
+
+p,
+li {
+ page-break-inside: avoid;
+}
+
+li {
+ margin-left: 5px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-left: 0;
+}
+
+@page {
+ size: a4 portrait;
+ margin-top: 22mm;
+}
+
+@media print {
+ h2 {
+ width: 10%;
+ margin-top: -5mm !important;
+ }
+}