rougail-output-doc/src/rougail/output_doc/output/gitlab.py

81 lines
2.3 KiB
Python

"""
Silique (https://www.silique.fr)
Copyright (C) 2025
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from typing import List, Optional
from .github import Formatter as GithubFormatter
from ..i18n import _
class Formatter(GithubFormatter):
name = "gitlab"
level = 51
def namespace_to_title(self, informations: dict, level: int) -> str:
"""manage namespace family"""
return self.title(
self.get_description("family", informations, {}, None),
level,
)
def title(self, title: str, level: int) -> str:
# self.max_line_variable = 0
return "<details><summary>" + title + "</summary>\n\n"
def end_family(self, level):
return "</details>\n\n"
def anchor(self,
path: str,
true_path: str,
) -> str:
return f'<a id="{true_path}" name="{true_path}">{path}</a>'
def link_variable(self,
path: str,
description: str,
filename: Optional[str],
) -> str:
if filename:
link = f'{filename}#{path}'
else:
link = f'#{path}'
return self.link(description, link)
def columns(
self,
col: List[str],
) -> None:
pass
def family_informations(self) -> str:
return f">>> [!note] {_('Informations')}\n"
def end_family_informations(self) -> str:
return f"\n>>>\n"
def after_family_paths(self) -> str:
return "<br>"
def after_family_properties(self) -> str:
return ""
def table_header(self, lst):
"""Manage the header of a table"""
return lst