Compare commits

..

1 Commits

Author SHA1 Message Date
c8be6ff19d Added sphinx latex templates for customizing PDF output
Some checks failed
gl/check check status: failure (c8be6ff19d056f79bc8fd17d57b236bbaaa0aa87)
2024-08-06 09:08:14 +00:00
30 changed files with 386 additions and 107 deletions

View File

@ -0,0 +1,9 @@
---
environment: public
link: /architecture-center/blueprints/
pdf_name: architecture-center-blueprints
rst_location: doc/blueprints/source
service_type: ac
title: Blueprints
type: blueprints
disable_import: true

View File

@ -0,0 +1,9 @@
---
environment: internal
link: /architecture-center/caf/
pdf_name: architecture-center-cloud-adoption-framework
rst_location: doc/caf/source
service_type: ac
title: Cloud Adoption Framework
type: caf
disable_import: true

View File

@ -1,5 +1,5 @@
---
environment: public
environment: internal
hc_location: usermanual/asm
html_location: docs/asm/umn
link: /application-service-mesh/umn/

View File

@ -1,6 +1,6 @@
---
hc_location: api/cci
environment: public
environment: internal
html_location: docs/cci/api-ref
link: /cloud-container-instance/api-ref/
pdf_name: cci-api-ref

View File

@ -1,6 +1,6 @@
---
hc_location: usermanual/cci
environment: public
environment: internal
html_location: docs/cci/umn
link: /cloud-container-instance/umn/
pdf_name: cci-umn

View File

@ -1,4 +1,5 @@
---
environment: internal
hc_location: api/rms
html_location: docs/config/api-ref
link: /config/api-ref/

View File

@ -1,4 +1,5 @@
---
environment: internal
hc_location: usermanual/rms
html_location: docs/config/umn
link: /config/umn/

View File

@ -1,11 +0,0 @@
---
environment: internal
hc_location: api/em
html_location: docs/eps/api-ref
link: /enterprise-project-service/api-ref/
pdf_name: eps-api-ref
rst_location: api-ref/source
service_type: eps
title: API Reference
type: api-ref

View File

@ -1,11 +0,0 @@
---
environment: internal
hc_location: usermanual/em
html_location: docs/eps/umn
link: /enterprise-project-service/umn/
pdf_name: eps-umn
rst_location: umn/source
service_type: eps
title: User Guide
type: umn

View File

@ -1,5 +1,4 @@
---
environment: internal
hc_location: api/nosql
html_location: docs/gaussdb_nosql/api-ref
link: /gaussdb-nosql/api-ref/

View File

@ -1,5 +1,4 @@
---
environment: internal
hc_location: usermanual/nosql
html_location: docs/gaussdb_nosql/umn
link: /gaussdb-nosql/umn/

View File

@ -0,0 +1,9 @@
---
hc_location: api_swift/obs
html_location: docs/obs/api-swift
link: /object-storage-service/swiftapi/
pdf_name: obs-swiftapi
rst_location: doc/swiftapi/source
service_type: obs
title: API Reference (Swift) - Deprecated - Will be removed at 2023 Nov. 10!
type: swiftapi

View File

@ -1,10 +0,0 @@
---
hc_location: api/aos
environment: internal
html_location: docs/rfs/api-ref
link: /resource-formation-service/api-ref/
pdf_name: rfs-api-ref
rst_location: api-ref/source
service_type: rfs
title: API Reference
type: api-ref

View File

@ -1,10 +0,0 @@
---
hc_location: usermanual/aos
environment: internal
html_location: docs/rfs/umn
link: /resource-formation-service/umn/
pdf_name: rfs-umn
rst_location: umn/source
service_type: rfs
title: User Guide
type: umn

View File

@ -0,0 +1,16 @@
---
environment: hidden
repositories:
- environment: internal
repo: docs/architecture-center
type: gitea
- environment: public
repo: opentelekomcloud-docs/architecture-center
type: github
service_category: other
service_title: Architecture Center
service_type: ac
service_uri: architecture-center
teams:
- name: docs-architecture-center-rw
permission: write

View File

@ -1,5 +1,5 @@
---
environment: public
environment: internal
repositories:
- environment: internal
repo: docs/application-service-mesh

View File

@ -1,5 +1,5 @@
---
environment: public
environment: internal
repositories:
- environment: internal
repo: docs/cloud-container-instance

View File

@ -1,5 +1,5 @@
---
environment: public
environment: internal
repositories:
- environment: internal
repo: docs/config

View File

@ -1,17 +0,0 @@
---
environment: internal
repositories:
- environment: internal
repo: docs/enterprise-project-service
type: gitea
- environment: public
repo: opentelekomcloud-docs/enterprise-project-service
type: github
service_category: security-services
service_title: Enterprise Project Service
service_type: eps
service_uri: enterprise-project-service
teams:
- name: docs-security-services-rw
permission: write

View File

@ -1,5 +1,5 @@
---
environment: internal
environment: public
repositories:
- environment: internal
repo: docs/gaussdb-nosql

View File

@ -1,16 +0,0 @@
---
environment: internal
repositories:
- environment: internal
repo: docs/resource-formation-service
type: gitea
- environment: public
repo: opentelekomcloud-docs/resource-formation-service
type: github
service_category: application
service_title: Resource Formation Service
service_type: rfs
service_uri: resource-formation-service
teams:
- name: docs-orchestration-rw
permission: write

View File

@ -16,8 +16,6 @@
import os
import sys
from git import Repo
from datetime import datetime
extensions = [
'otcdocstheme',
@ -119,7 +117,6 @@ html_title = "{{ title }}"
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
templates_path = ['_templates']
# Do not include sources into the rendered results
html_copy_source = False
@ -134,16 +131,5 @@ latex_documents = [
{% endif -%}
]
# Get the Git commit values for last updated timestamp on each page
repo = Repo(search_parent_directories=True)
commit = repo.head.commit
current_commit_hash = commit.hexsha
current_commit_time = commit.committed_datetime.strftime('%Y-%m-%d %H:%M')
latex_elements = {
'papersize': 'a4paper',
'pointsize': '12pt',
'figure_align': 'H',
'preamble': r'\newcommand{\githash}{' + current_commit_hash + '}',
'sphinxsetup': 'hmargin={15mm,15mm}, vmargin={20mm,30mm}, marginpar=10mm'
}
# Path for the latex templates
templates_path = ['_templates']

View File

@ -12,5 +12,4 @@ reno>=3.1.0 # Apache-2.0
otc-sphinx-directives>=0.1.0
sphinx-minify>=0.0.1 # Apache-2.0
git+https://gitea.eco.tsi-dev.otc-service.com/infra/otc-metadata.git#egg=otc_metadata
setuptools
gitpython
setuptools

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,74 @@
\begin{savenotes}
\sphinxatlongtablestart
\sphinxthistablewithglobalstyle
<% if 'booktabs' in table.styles -%>
\sphinxthistablewithbooktabsstyle
<% endif -%>
<% if 'borderless' in table.styles -%>
\sphinxthistablewithborderlessstyle
<% endif -%>
<% if 'standard' in table.styles -%>
\sphinxthistablewithstandardstyle
<% endif -%>
<% if 'vlines' in table.styles -%>
\sphinxthistablewithvlinesstyle
<% endif -%>
<% if 'novlines' in table.styles -%>
\sphinxthistablewithnovlinesstyle
<% endif -%>
<% if 'colorrows' in table.styles -%>
\sphinxthistablewithcolorrowsstyle
<% endif -%>
<% if 'nocolorrows' in table.styles -%>
\sphinxthistablewithnocolorrowsstyle
<% endif -%>
\makeatletter
<%- if table.align in ('center', 'default') %>
\LTleft \@totalleftmargin plus1fill
\LTright\dimexpr\columnwidth-\@totalleftmargin-\linewidth\relax plus1fill
<%- elif table.align == 'left' %>
\LTleft \@totalleftmargin
\LTright\dimexpr\columnwidth-\@totalleftmargin-\linewidth\relax plus1fill
<%- elif table.align == 'right' %>
\LTleft \@totalleftmargin plus1fill
\LTright\dimexpr\columnwidth-\@totalleftmargin-\linewidth\relax
<%- endif %>
\makeatother
\begin{longtable}<%= table.get_colspec() %>
<%- if table.caption -%>
\sphinxthelongtablecaptionisattop
\caption{<%= ''.join(table.caption) %>\strut}<%= labels %>\\*[\sphinxlongtablecapskipadjust]
<% elif labels -%>
\noalign{\phantomsection<%= labels %>}%
<% endif -%>
\sphinxtoprule
<%= ''.join(table.header) -%>
<%- if table.header -%>
\sphinxmidrule
<% endif -%>
\endfirsthead
\multicolumn{<%= table.colcount %>}{c}{\sphinxnorowcolor
\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} <%= _('continued from previous page') %>}}%
}\\
\sphinxtoprule
<%= ''.join(table.header) -%>
<%- if table.header -%>
\sphinxmidrule
<% endif -%>
\endhead
\sphinxbottomrule
\multicolumn{<%= table.colcount %>}{r}{\sphinxnorowcolor
\makebox[0pt][r]{\sphinxtablecontinued{<%= _('continues on next page') %>}}%
}\\
\endfoot
\endlastfoot
\sphinxtableatstartofbodyhook
<%= ''.join(table.body) -%>
\sphinxbottomrule
\end{longtable}
\sphinxtableafterendhook
\sphinxatlongtableend
\end{savenotes}

View File

@ -0,0 +1,21 @@
%
% sphinxmessages.sty
%
% message resources for Sphinx
%
\ProvidesPackage{sphinxmessages}[2019/01/04 v2.0 Localized LaTeX macros (Sphinx team)]
\renewcommand{\literalblockcontinuedname}{<%= _('continued from previous page') | e %>}
\renewcommand{\literalblockcontinuesname}{<%= _('continues on next page') | e %>}
\renewcommand{\sphinxnonalphabeticalgroupname}{<%= _('Non-alphabetical') | e %>}
\renewcommand{\sphinxsymbolsname}{<%= _('Symbols') | e %>}
\renewcommand{\sphinxnumbersname}{<%= _('Numbers') | e %>}
\def\pageautorefname{<%= _('page') | e %>}
<%= addtocaptions %>{\renewcommand{\figurename}{<%= figurename[0] | e | eabbr %>}}
\def\fnum@figure{\figurename\thefigure{}<%= figurename[1] | e %>}
<%= addtocaptions %>{\renewcommand{\tablename}{<%= tablename[0] | e | eabbr %>}}
\def\fnum@table{\tablename\thetable{}<%= tablename[1] | e %>}
<%= addtocaptions %>{\renewcommand{\literalblockname}{<%= literalblockname[0].strip() %>}}

View File

@ -0,0 +1,54 @@
\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
<% if 'booktabs' in table.styles -%>
\sphinxthistablewithbooktabsstyle
<% endif -%>
<% if 'borderless' in table.styles -%>
\sphinxthistablewithborderlessstyle
<% endif -%>
<% if 'standard' in table.styles -%>
\sphinxthistablewithstandardstyle
<% endif -%>
<% if 'vlines' in table.styles -%>
\sphinxthistablewithvlinesstyle
<% endif -%>
<% if 'novlines' in table.styles -%>
\sphinxthistablewithnovlinesstyle
<% endif -%>
<% if 'colorrows' in table.styles -%>
\sphinxthistablewithcolorrowsstyle
<% endif -%>
<% if 'nocolorrows' in table.styles -%>
\sphinxthistablewithnocolorrowsstyle
<% endif -%>
<% if table.align -%>
<%- if table.align in ('center', 'default') -%>
\centering
<%- elif table.align == 'left' -%>
\raggedright
<%- else -%>
\raggedleft
<%- endif %>
<%- else -%>
\centering
<%- endif %>
<% if table.caption -%>
\sphinxcapstartof{table}
\sphinxthecaptionisattop
\sphinxcaption{<%= ''.join(table.caption) %>}<%= labels %>
\sphinxaftertopcaption
<% elif labels -%>
\phantomsection<%= labels %>\nobreak
<% endif -%>
\begin{tabular}[t]<%= table.get_colspec() -%>
\sphinxtoprule
<%= ''.join(table.header) -%>
<%- if table.header -%>
\sphinxmidrule
<% endif -%>
\sphinxtableatstartofbodyhook
<%=- ''.join(table.body) -%>
\sphinxbottomrule
\end{tabular}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}

View File

@ -0,0 +1,54 @@
\begin{savenotes}\sphinxattablestart
\sphinxthistablewithglobalstyle
<% if 'booktabs' in table.styles -%>
\sphinxthistablewithbooktabsstyle
<% endif -%>
<% if 'borderless' in table.styles -%>
\sphinxthistablewithborderlessstyle
<% endif -%>
<% if 'standard' in table.styles -%>
\sphinxthistablewithstandardstyle
<% endif -%>
<% if 'vlines' in table.styles -%>
\sphinxthistablewithvlinesstyle
<% endif -%>
<% if 'novlines' in table.styles -%>
\sphinxthistablewithnovlinesstyle
<% endif -%>
<% if 'colorrows' in table.styles -%>
\sphinxthistablewithcolorrowsstyle
<% endif -%>
<% if 'nocolorrows' in table.styles -%>
\sphinxthistablewithnocolorrowsstyle
<% endif -%>
<% if table.align -%>
<%- if table.align in ('center', 'default') -%>
\centering
<%- elif table.align == 'left' -%>
\raggedright
<%- else -%>
\raggedleft
<%- endif %>
<%- else -%>
\centering
<%- endif %>
<% if table.caption -%>
\sphinxcapstartof{table}
\sphinxthecaptionisattop
\sphinxcaption{<%= ''.join(table.caption) %>}<%= labels %>
\sphinxaftertopcaption
<% elif labels -%>
\phantomsection<%= labels %>\nobreak
<% endif -%>
\begin{tabulary}{\linewidth}[t]<%= table.get_colspec() -%>
\sphinxtoprule
<%= ''.join(table.header) -%>
<%- if table.header -%>
\sphinxmidrule
<% endif -%>
\sphinxtableatstartofbodyhook
<%=- ''.join(table.body) -%>
\sphinxbottomrule
\end{tabulary}
\sphinxtableafterendhook\par
\sphinxattableend\end{savenotes}

View File

@ -58,10 +58,6 @@ allowlist_externals =
commands =
mkdir -p doc/build/pdf
{[testenv:bindeps]commands}
mkdir -p {toxinidir}/_templates
wget -O {toxinidir}/_templates/longtable.tex.jinja https://gitea.eco.tsi-dev.otc-service.com/infra/docs-templates/raw/branch/main/templates/longtable.tex.jinja
wget -O {toxinidir}/_templates/tabular.tex.jinja https://gitea.eco.tsi-dev.otc-service.com/infra/docs-templates/raw/branch/main/templates/tabular.tex.jinja
wget -O {toxinidir}/_templates/tabulary.tex.jinja https://gitea.eco.tsi-dev.otc-service.com/infra/docs-templates/raw/branch/main/templates/tabulary.tex.jinja
{%- for doc in docs %}
{%- if doc.pdf_name %}
{[testenv:{{ doc.type }}-pdf-docs]commands}
@ -119,7 +115,6 @@ allowlist_externals =
cp
commands =
rm -rf {{ loc }}/build/pdf
cp -r {toxinidir}/_templates {{ loc }}/source/_templates/
sphinx-build -W --keep-going -b latex {{ loc }}/source {{ loc }}/build/pdf/
bash -c "for f in {{ loc }}/build/pdf/*.gif; do convert $f $\{f/%gif/png\}; done || true"
bash -c "for f in {{ loc }}/build/pdf/*.tex; do sed -iorig 's/\.gif//g' $f; done"

View File

@ -15,8 +15,10 @@
import argparse
import logging
import os.path
import pathlib
import requests
import shutil
import subprocess
from git import exc
@ -48,6 +50,7 @@ def process_repositories(args, service):
env = Environment(
loader=PackageLoader("otc_metadata"), autoescape=select_autoescape()
)
metadata_path = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
conf_py_template = env.get_template("conf.py.j2")
tox_ini_template = env.get_template("tox.ini.j2")
zuul_yaml_template = env.get_template("zuul.yaml.j2")
@ -130,6 +133,23 @@ def process_repositories(args, service):
logging.debug(f"Analyzing document {doc}")
conf_py_path = pathlib.Path(copy_to, doc["rst_location"], "conf.py")
latex_templates_src_path = pathlib.Path(metadata_path, "otc_metadata", "templates", "latex_templates")
latex_templates_dest_path = pathlib.Path(copy_to, doc["rst_location"], "_templates")
# Check if the latex destination path exists and is a directory
if not latex_templates_dest_path.exists():
logging.info(f"Path for latex templates in {doc['title']} does not exist")
latex_templates_dest_path.mkdir(parents=True, exist_ok=True)
# Delete all files in the latex destination directory
for file in latex_templates_dest_path.iterdir():
if file.is_file():
file.unlink()
# Add the new templates
for file in latex_templates_src_path.iterdir():
shutil.copy2(file, latex_templates_dest_path)
if not conf_py_path.exists():
logging.info(f"Path for document {doc['title']} does not exist")
conf_py_path.parent.mkdir(parents=True, exist_ok=True)