diff --git a/build-pipeline.yml b/build-pipeline.yml index fb8f35363481e05ffb8b71d9921fa2825a1a3c08..62d1d3ab6049423f7d7b0fc7dd64d07557217aaa 100644 --- a/build-pipeline.yml +++ b/build-pipeline.yml @@ -281,7 +281,11 @@ workflow: timeout: 5m script: - for file in ${FILES}; do - .gitlab-ci/scripts/convert_md2html.py $file; + .gitlab-ci/scripts/convert_md2html.py + --gitlab-url=${CI_SERVER_URL} + --token=${GITBOT_TOKEN} + --project=${CI_PROJECT_PATH} + --filename $file; done artifacts: paths: diff --git a/scripts/convert_md2html.py b/scripts/convert_md2html.py index b13afb93793ce7d38517a47488ab390e9c1b46dc..83f5c4d643b77039d3c8c5bbc17b2aa8270e9cee 100755 --- a/scripts/convert_md2html.py +++ b/scripts/convert_md2html.py @@ -1,11 +1,12 @@ #!/usr/bin/env python3 import argparse -import codecs import glob import os -from markdown2 import markdown_path +from gitlab.client import Gitlab + +import common HEADER = """ <!doctype html> @@ -178,35 +179,55 @@ FOOTER = """ """ -def convertmd2html(infile, outfile): - - encoding = "utf-8" - - fout = codecs.open(outfile, "w", encoding) - - fout.write(HEADER) - extras = {"tables": ""} - html = markdown_path(infile, extras=extras) - fout.write(html) - - fout.write(FOOTER) - - def main(): parser = argparse.ArgumentParser() parser.add_argument( - "filename", + "--gitlab-url", + help="""URL to the GitLab instance""", + dest="gitlab_url", + default=common.GITLAB_URL, + required=True, + ) + parser.add_argument( + "--token", + help="""GitLab REST API private access token""", + dest="token", + required=True, + ) + parser.add_argument( + "--project", + help="""name of the GitLab project""", + dest="project", + required=True, + ) + parser.add_argument( + "--filename", help="""File(s) to convert""", nargs="+", + required=True, ) args, _ = parser.parse_known_args() + gitlab = Gitlab(args.gitlab_url, private_token=args.token) + + encoding = "utf-8" + for filename in args.filename: for input_filename in glob.glob(filename): output_filename = f"{os.path.splitext(input_filename)[0]}.html" print(f"Converting {input_filename} to {output_filename}") - convertmd2html(input_filename, output_filename) + + fin = open(input_filename, encoding=encoding) + fout = open(output_filename, "w", encoding=encoding) + + fout.write(HEADER) + html = gitlab.markdown(fin.read(), True, args.project) + fout.write(html) + fout.write(FOOTER) + + fin.close() + fout.close() if __name__ == "__main__":