From 7c55f348e8be59416ff5d62619e63cf10bb01799 Mon Sep 17 00:00:00 2001 From: Artem Goncharov Date: Wed, 23 Nov 2022 11:22:03 +0100 Subject: [PATCH] update data and templates --- otc_metadata/data/services.yaml | 12 +++++++----- otc_metadata/templates/tox.ini.j2 | 29 +++++++++++++++++++++++++++++ tools/convert_data.py | 21 ++++++++++----------- 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/otc_metadata/data/services.yaml b/otc_metadata/data/services.yaml index c0424e76..b13aa848 100644 --- a/otc_metadata/data/services.yaml +++ b/otc_metadata/data/services.yaml @@ -389,12 +389,14 @@ documents: service_type: ecs title: User Guide type: umn - - html_location: docs/ed/umn - pdf_name: edb-umn - rst_location: umn/source - service_type: edb + - rst_location: api-ref/source + service_type: ed + title: API Reference + type: api-ref + - rst_location: umn/source + service_type: ed title: User Guide - type: manual + type: umn - hc_location: api/eip html_location: docs/eip/api-ref link: /elastic-ip/api-ref/ diff --git a/otc_metadata/templates/tox.ini.j2 b/otc_metadata/templates/tox.ini.j2 index 9e02e708..f14a0a5c 100644 --- a/otc_metadata/templates/tox.ini.j2 +++ b/otc_metadata/templates/tox.ini.j2 @@ -22,12 +22,15 @@ deps = commands = {posargs} [testenv:docs] +deps = -r{toxinidir}/doc/requirements.txt commands = {%- for doc in docs %} {[testenv:{{ doc.type }}]commands} + {[testenv:json-{{ doc.type }}]commands} {%- endfor %} [testenv:docs-pdf] +deps = -r{toxinidir}/doc/requirements.txt whitelist_externals = mkdir commands = @@ -40,7 +43,9 @@ commands = {% for doc in docs -%} {% set loc = doc.rst_location | replace('/source', '') %} +# HTML version [testenv:{{ doc.type }}] +deps = -r{toxinidir}/doc/requirements.txt whitelist_externals = cp mkdir @@ -57,8 +62,32 @@ commands = cp -av doc/build/html/dev-guide dev_guide/build/html {%- endif %} +# Json version (for search) +[testenv:json-{{ doc.type }}] +deps = -r{toxinidir}/doc/requirements.txt +whitelist_externals = + cp + mkdir + find +commands = + sphinx-build -W --keep-going -b json {{ loc }}/source doc/build/json/{{ doc.type }} + # Drop data useless for the search + find doc/build/json -type d -and ( -name '_images' -or -name '_static' -or -name '_sources' ) -exec rm {:} ; +{%- if doc.type == 'api-ref' %} + mkdir -p api-ref/build/json + cp -av doc/build/json/api-ref api-ref/build/json +{%- elif doc.type == 'umn' %} + mkdir -p umn/build/json + cp -av doc/build/json/umn umn/build/json +{%- elif doc.type == 'dev-guide' %} + mkdir -p dev_guide/build/json + cp -av doc/build/json/dev-guide dev_guide/build/json +{%- endif %} + {% if doc.pdf_name -%} +# PDF version [testenv:{{ doc.type }}-pdf-docs] +deps = -r{toxinidir}/doc/requirements.txt whitelist_externals = rm mkdir diff --git a/tools/convert_data.py b/tools/convert_data.py index 735933f0..2154974a 100644 --- a/tools/convert_data.py +++ b/tools/convert_data.py @@ -1,4 +1,5 @@ import copy +import re import otc_metadata.services from ruamel.yaml import YAML @@ -10,17 +11,15 @@ new_data = data._service_data for doc in new_data["documents"]: hc_location = None - if "type" in doc: - if doc["type"] == "api-ref": - hc_location = "api" - elif doc["type"] == "umn": - hc_location = "usermanual" - elif doc["type"] == "dev": - hc_location = "devg" - if hc_location: - hc_location += f"/{doc['service_type']}" - doc["hc_location"] = hc_location - + link = doc.get("link") + if link: + print(f"Parsing {link}") + #(p1, p2) = link.split("/") + doc["link"] = re.sub( + r"/(.*)/(.*)/", + r"/\2/\1/", + link + ) _yaml = YAML() _yaml.indent(mapping=2, sequence=4, offset=2)