Compare commits
14 Commits
add-config
...
add-latex-
Author | SHA1 | Date | |
---|---|---|---|
c8be6ff19d | |||
5773230496 | |||
42855482cf | |||
1b97e9d76a | |||
09c2e869d0 | |||
63eb1b715e | |||
a9ae65958d | |||
3ae8e7a8be | |||
9746bb1892 | |||
2105405796 | |||
98dc53c075 | |||
8f5bb1035c | |||
cc0c94a163 | |||
00fd8fd30b |
@ -6,3 +6,4 @@ rst_location: doc/blueprints/source
|
||||
service_type: ac
|
||||
title: Blueprints
|
||||
type: blueprints
|
||||
disable_import: true
|
||||
|
@ -6,3 +6,4 @@ rst_location: doc/caf/source
|
||||
service_type: ac
|
||||
title: Cloud Adoption Framework
|
||||
type: caf
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: asm
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: blueprints
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: cbr
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: cce
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -4,7 +4,7 @@ hc_location: api/rms
|
||||
html_location: docs/config/api-ref
|
||||
link: /config/api-ref/
|
||||
pdf_name: config-api-ref
|
||||
rst_location: config/source
|
||||
rst_location: api-ref/source
|
||||
service_type: config
|
||||
title: API Reference
|
||||
type: api-ref
|
||||
|
@ -7,3 +7,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: css
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: dc
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: dcs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: dds
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: dms
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: dns
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: drs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: ecs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: elb
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: evs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: fg
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -1,6 +1,5 @@
|
||||
---
|
||||
hc_location: api/nosql
|
||||
environment: internal
|
||||
html_location: docs/geminidb/api-ref
|
||||
link: /geminidb/api-ref/
|
||||
pdf_name: geminidb-api-ref
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
environment: internal
|
||||
hc_location: usermanual/nosql
|
||||
html_location: docs/geminidb/umn
|
||||
link: /geminidb/umn/
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: iam
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -6,3 +6,4 @@ rst_location: doc/mycredential/source
|
||||
service_type: iam
|
||||
title: My Credential
|
||||
type: mycredential
|
||||
disable_import: true
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: ims
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
10
otc_metadata/data/documents/mkp-umn.yaml
Normal file
10
otc_metadata/data/documents/mkp-umn.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
hc_location: usermanual/mkp
|
||||
html_location: docs/mkp/umn
|
||||
link: /marketplace/umn/
|
||||
pdf_name: mkp-umn
|
||||
rst_location: umn/source
|
||||
service_type: mkp
|
||||
title: User Guide
|
||||
type: umn
|
||||
disable_import: true
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: mrs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: natgw
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: obs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: sfs
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -6,3 +6,4 @@ rst_location: umn/source
|
||||
service_type: smg
|
||||
title: User Guide
|
||||
type: umn
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: swr
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: tms
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: vpc
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,3 +8,4 @@ rst_location: doc/best-practice/source
|
||||
service_type: wafd
|
||||
title: Best Practice
|
||||
type: best-practice
|
||||
disable_import: true
|
||||
|
@ -8,7 +8,7 @@ repositories:
|
||||
repo: opentelekomcloud-docs/anti-ddos
|
||||
type: github
|
||||
service_category: security-services
|
||||
service_title: Anti DDoS
|
||||
service_title: Anti-DDoS
|
||||
service_type: antiddos
|
||||
service_uri: anti-ddos
|
||||
teams:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
environment: internal
|
||||
environment: public
|
||||
repositories:
|
||||
- environment: internal
|
||||
repo: docs/geminidb
|
||||
|
16
otc_metadata/data/services/mkp.yaml
Normal file
16
otc_metadata/data/services/mkp.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
environment: public
|
||||
repositories:
|
||||
- environment: internal
|
||||
repo: docs/marketplace
|
||||
type: gitea
|
||||
- environment: public
|
||||
repo: opentelekomcloud-docs/marketplace
|
||||
type: github
|
||||
service_category: other
|
||||
service_title: Marketplace
|
||||
service_type: mkp
|
||||
service_uri: marketplace
|
||||
teams:
|
||||
- name: docs-3rd-party-integration-rw
|
||||
permission: write
|
13
otc_metadata/data/services/notfound.yaml
Normal file
13
otc_metadata/data/services/notfound.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
environment: hidden
|
||||
repositories:
|
||||
- environment: public
|
||||
repo: opentelekomcloud-docs/page-not-found
|
||||
type: github
|
||||
service_category: other
|
||||
service_title: Page Not Found
|
||||
service_type: pagenotfound
|
||||
service_uri: page-not-found
|
||||
teams:
|
||||
- name: docs-eco-rw
|
||||
permission: write
|
@ -278,6 +278,10 @@ class Services(object):
|
||||
doc_res["pdf_name"] = doc["pdf_name"]
|
||||
if "hc_location" in doc:
|
||||
doc_res["hc_location"] = doc["hc_location"]
|
||||
if "disable_import" in doc:
|
||||
doc_res["disable_import"] = doc["disable_import"]
|
||||
else:
|
||||
doc_res["disable_import"] = False
|
||||
srv_res["docs"].append(doc_res)
|
||||
if len(srv_res["docs"]) > 0:
|
||||
doc_struct[srv["service_category"]].append(srv_res)
|
||||
|
@ -131,3 +131,5 @@ latex_documents = [
|
||||
{% endif -%}
|
||||
]
|
||||
|
||||
# Path for the latex templates
|
||||
templates_path = ['_templates']
|
||||
|
@ -5,3 +5,4 @@
|
||||
|
||||
.. service_card::
|
||||
:service_type: {{ service_type }}
|
||||
:environment: {{ environment }}
|
||||
|
108
otc_metadata/templates/latex_templates/latex.tex.jinja
Normal file
108
otc_metadata/templates/latex_templates/latex.tex.jinja
Normal file
File diff suppressed because it is too large
Load Diff
74
otc_metadata/templates/latex_templates/longtable.tex.jinja
Normal file
74
otc_metadata/templates/latex_templates/longtable.tex.jinja
Normal 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}
|
@ -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() %>}}
|
54
otc_metadata/templates/latex_templates/tabular.tex.jinja
Normal file
54
otc_metadata/templates/latex_templates/tabular.tex.jinja
Normal 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}
|
54
otc_metadata/templates/latex_templates/tabulary.tex.jinja
Normal file
54
otc_metadata/templates/latex_templates/tabulary.tex.jinja
Normal 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}
|
@ -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)
|
||||
@ -201,6 +221,7 @@ def process_repositories(args, service):
|
||||
site_name="Internal Documentation Portal",
|
||||
logo_url="https://docs-int.otc-service.com",
|
||||
)
|
||||
context["environment"] = args.target_environment
|
||||
sbv_title = (service["service_title"] + "\n"
|
||||
+ ('=' * len(service["service_title"])))
|
||||
context["sbv_title"] = sbv_title
|
||||
|
@ -12,12 +12,26 @@ def main():
|
||||
data = otc_metadata.services.Services()
|
||||
data._sort_data()
|
||||
|
||||
docs = data.docs_html_by_category("internal")
|
||||
|
||||
# Filter out documents with "disable_import": True
|
||||
for category, services in docs['categories'].items():
|
||||
for service in services:
|
||||
filtered_docs = []
|
||||
|
||||
for doc in service['docs']:
|
||||
# Check if the document doesnt have 'disable_import' on True
|
||||
if not doc.get('disable_import'):
|
||||
filtered_docs.append(doc)
|
||||
|
||||
service['docs'] = filtered_docs
|
||||
|
||||
_yaml = YAML()
|
||||
_yaml.indent(mapping=2, sequence=4, offset=2)
|
||||
sys.stdout.write(
|
||||
"# Auto-generated by otc_metadata.generate_docexports.data\n"
|
||||
)
|
||||
_yaml.dump(data.docs_html_by_category("internal"), sys.stdout)
|
||||
_yaml.dump(docs, sys.stdout)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
Reference in New Issue
Block a user