Loading .gitlab-ci.yml +2 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,8 @@ Build generateSpecWebSite docker image: - generateSpecWebSite/toMkdocs.py - generateSpecWebSite/create_frontmatter_table.py - generateSpecWebSite/stylesheets/extra.css - generateSpecWebSite/stylesheets/palettes/**/* - generateSpecWebSite/md_to_docx_converter/**/* - markdownTools/dockerfile - markdownTools/setup.py - markdownTools/requirements.txt Loading generateSpecWebSite/dockerfile +24 −1 Original line number Diff line number Diff line FROM python:3.9-slim-bullseye FROM python:3.10-slim-bullseye # Build argument for architecture (amd64 or arm64) ARG TARGETARCH=amd64 # Install system dependencies RUN apt-get update && apt-get install -y \ wget \ curl \ git \ libreoffice \ imagemagick \ && rm -rf /var/lib/apt/lists/* # Install Pandoc 3.7.0.2 based on architecture RUN if [ "$TARGETARCH" = "arm64" ]; then \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-arm64.deb \ && dpkg -i pandoc-3.7.0.2-1-arm64.deb \ && rm pandoc-3.7.0.2-1-arm64.deb; \ else \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-amd64.deb \ && dpkg -i pandoc-3.7.0.2-1-amd64.deb \ && rm pandoc-3.7.0.2-1-amd64.deb; \ fi ADD /generateSpecWebSite/ /generateSpecWebSite/ RUN chmod +x generateSpecWebSite/spec_on_pages.sh Loading generateSpecWebSite/indexReleaseNotes.md +4 −0 Original line number Diff line number Diff line Navigate through the changes at: [Onlne Release Notes for version VERSION compared to PREVIOUS_VERSION ](../release_notes_diff) Download Release Notes for PROJECT version VERSION: Loading generateSpecWebSite/md_to_docx_converter/Dockerfile 0 → 100644 +60 −0 Original line number Diff line number Diff line FROM python:3.10.16-slim # Build argument for architecture (amd64 or arm64) ARG TARGETARCH=amd64 # Install system dependencies RUN apt-get update && apt-get install -y \ wget \ curl \ git \ libreoffice \ imagemagick \ && rm -rf /var/lib/apt/lists/* # Install Pandoc 3.7.0.2 based on architecture RUN if [ "$TARGETARCH" = "arm64" ]; then \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-arm64.deb \ && dpkg -i pandoc-3.7.0.2-1-arm64.deb \ && rm pandoc-3.7.0.2-1-arm64.deb; \ else \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-amd64.deb \ && dpkg -i pandoc-3.7.0.2-1-amd64.deb \ && rm pandoc-3.7.0.2-1-amd64.deb; \ fi # Set working directory WORKDIR /app # Copy requirements.txt first for better caching COPY requirements.txt /app/requirements.txt # Install Python dependencies RUN pip install --no-cache-dir -r /app/requirements.txt # Create GENERATED_FILES directory #RUN mkdir -p /app/GENERATED_FILES #RUN mkdir -p /data/sources # Create non-root user RUN useradd -m -u 999 gitlab-runner && \ chown -R gitlab-runner:gitlab-runner /app #RUN useradd -m -u 1000 appuser && \ # chown -R appuser:appuser /app RUN git config --system --add safe.directory "*" USER gitlab-runner COPY . /app/ # Declare volume mount point #VOLUME /app #VOLUME /data/sources # Set environment variables ENV PYTHONUNBUFFERED=1 # Default entrypoint ENTRYPOINT ["python"] CMD ["convert.py"] No newline at end of file generateSpecWebSite/md_to_docx_converter/ETSIstyles.css 0 → 100644 +347 −0 Original line number Diff line number Diff line .NF { font-family: Arial; font-size: 9pt; align-items: center; display: flex; gap: 4pt; } .TAH { font-family: Arial; font-size: 9pt; font-weight: 600; text-align: center; } .TAC { font-family: Rubik, Arial; font-size: 9pt; text-align: center; } .TAC strong { font-weight: 700; color: var(--html-brand-primary); } .TAL { font-family: Arial; font-size: 9pt; text-align: left; } .HTML-Variable { font-family: "Roboto Mono", Monospace; font-size: 1em; font-style: italic; } .HTML-Variable strong { font-weight: 700; color: #121619; } .HTML-Keyboard { font-size: 1.06em; color: #121619; } .HTML-Definition { font-style: italic; } .TAN { font-family: Rubik, Arial; font-size: 9pt; padding-left: 12pt; display: flex; gap: 12pt; } .HTML-Code { font-family: "Roboto Mono", Monospace; font-size: 1em; color: #31849b; } .Plain_Text_Char { font-family: "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; } .HTML-Error { font-family: Arial; font-weight: 600; font-style: italic; color: #6e151e; } .TAJ { font-family: Arial; font-size: 9pt; text-align: justify; } .FP { } .ZA { font-family: "Maven Pro", Arial; font-size: 20pt; text-align: right; color: #121619; } /* .ZT::before { content: url("https://www.etsi.org/templates/etsi/img/logo.svg"); content: url("https://oascities.org/wp-content/uploads/2018/04/ETSI.png"); content: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Logo_ETSI.svg/320px-Logo_ETSI.svg.png") }*/ .ZGSM { } .ZT { color: #121619; font-weight: 700; font-size: 2em; font-family: "Maven Pro", Arial; text-align: center; } .ZT ~ .ZT { font-size: 1.5em; color: rgb(62, 72, 79); font-weight: 400; } .ZT ~ .ZT::before { content: none; } .ZG { font-family: Arial; text-align: right; } .ZB { font-family: Arial; font-style: italic; text-align: right; font-family: Century Gothic; font-size: 16pt; font-weight: bold; color: #ffffff; } .H6 { font-family: Arial; font-size: 10pt; margin-top: 6pt; margin-bottom: 9pt; } .NO { display: flex; gap: 12pt; border: 1px solid; border-color: #4078c0; background-color: aliceblue; border-radius: 3px; } .NO { padding-left: 12pt; padding-right: 12pt; margin-bottom: 9pt; } .NO > p, .TAN > p { margin: 0; padding: 0; white-space: pre-wrap; } div > .TAN { margin-bottom: 6px; } div > .TAN:last-of-type { margin-bottom: 0; } .NO > p:first-of-type, .TAN > p:first-of-type { white-space: nowrap; } .NO > div:first-of-type, .TAN > div:first-of-type { font-weight: 600; } .EQ { text-align: center; } .EX { padding-left: 12pt; margin-bottom: 9pt; display: flex; gap: 12pt; align-items: flex-start; min-width: 100%; max-width: 100%; } .EX > p { margin: 0; padding: 0; white-space: pre-wrap; } .EX > p:first-of-type { white-space: nowrap; } .EX > div:first-of-type { font-weight: 600; } .EX > div:nth-child(2) { width: 100%; } .EW { gap: 12pt; display: flex; align-items: flex-start; } .EW > div:first-child { min-width: 100px; flex-shrink: 0; } .EW > div:last-child { flex: 1; } .FL { font-family: Arial; font-weight: 600; text-align: center; margin-top: 3pt; margin-bottom: 9pt; overflow: auto; border-radius: 3px; border: 1px solid; border-color: #e1e2e3; min-width: 100%; max-width: 100%; width: 100%; padding: 16px; background-color: white; border-radius: 3px; } .TF { font-family: Arial; font-weight: 600; text-align: center; margin-bottom: 12pt; } .B1plus { margin-bottom: 9pt; } .TH { font-family: Arial; font-weight: 600; text-align: center; margin-top: 3pt; margin-bottom: 9pt; } .B2plus { margin-bottom: 9pt; } .HTML-Sample { font-family: "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 8pt; } .B3 { margin-bottom: 9pt; } .B1 { margin-bottom: 9pt; } .PL { font-family: "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 8pt; } .Hyperlink { text-decoration: underline; color: #0000ff; } .B3plus { margin-bottom: 9pt; } .B4 { margin-bottom: 9pt; } .B2 { margin-bottom: 9pt; } .B5 { margin-bottom: 9pt; } .BL { margin-bottom: 9pt; } .BN { margin-bottom: 9pt; } .image_overlay { visibility: hidden; } /* CUSTOM ETSI ONDEMAND STYLES FOR FRONTPAGE AND HISTORY TABLE */ .ondemand_CHAR_size_32 { font-size: 32pt; } .ondemand_CHAR_size_16 { font-size: 16pt; } .ondemand_CHAR_name_Arial_size_7 { font-family: Arial; font-size: 7pt; } .ondemand_PAR_space_before_3_after_3 { margin-top: 3pt; margin-bottom: 3pt; } Loading
.gitlab-ci.yml +2 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,8 @@ Build generateSpecWebSite docker image: - generateSpecWebSite/toMkdocs.py - generateSpecWebSite/create_frontmatter_table.py - generateSpecWebSite/stylesheets/extra.css - generateSpecWebSite/stylesheets/palettes/**/* - generateSpecWebSite/md_to_docx_converter/**/* - markdownTools/dockerfile - markdownTools/setup.py - markdownTools/requirements.txt Loading
generateSpecWebSite/dockerfile +24 −1 Original line number Diff line number Diff line FROM python:3.9-slim-bullseye FROM python:3.10-slim-bullseye # Build argument for architecture (amd64 or arm64) ARG TARGETARCH=amd64 # Install system dependencies RUN apt-get update && apt-get install -y \ wget \ curl \ git \ libreoffice \ imagemagick \ && rm -rf /var/lib/apt/lists/* # Install Pandoc 3.7.0.2 based on architecture RUN if [ "$TARGETARCH" = "arm64" ]; then \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-arm64.deb \ && dpkg -i pandoc-3.7.0.2-1-arm64.deb \ && rm pandoc-3.7.0.2-1-arm64.deb; \ else \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-amd64.deb \ && dpkg -i pandoc-3.7.0.2-1-amd64.deb \ && rm pandoc-3.7.0.2-1-amd64.deb; \ fi ADD /generateSpecWebSite/ /generateSpecWebSite/ RUN chmod +x generateSpecWebSite/spec_on_pages.sh Loading
generateSpecWebSite/indexReleaseNotes.md +4 −0 Original line number Diff line number Diff line Navigate through the changes at: [Onlne Release Notes for version VERSION compared to PREVIOUS_VERSION ](../release_notes_diff) Download Release Notes for PROJECT version VERSION: Loading
generateSpecWebSite/md_to_docx_converter/Dockerfile 0 → 100644 +60 −0 Original line number Diff line number Diff line FROM python:3.10.16-slim # Build argument for architecture (amd64 or arm64) ARG TARGETARCH=amd64 # Install system dependencies RUN apt-get update && apt-get install -y \ wget \ curl \ git \ libreoffice \ imagemagick \ && rm -rf /var/lib/apt/lists/* # Install Pandoc 3.7.0.2 based on architecture RUN if [ "$TARGETARCH" = "arm64" ]; then \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-arm64.deb \ && dpkg -i pandoc-3.7.0.2-1-arm64.deb \ && rm pandoc-3.7.0.2-1-arm64.deb; \ else \ wget https://github.com/jgm/pandoc/releases/download/3.7.0.2/pandoc-3.7.0.2-1-amd64.deb \ && dpkg -i pandoc-3.7.0.2-1-amd64.deb \ && rm pandoc-3.7.0.2-1-amd64.deb; \ fi # Set working directory WORKDIR /app # Copy requirements.txt first for better caching COPY requirements.txt /app/requirements.txt # Install Python dependencies RUN pip install --no-cache-dir -r /app/requirements.txt # Create GENERATED_FILES directory #RUN mkdir -p /app/GENERATED_FILES #RUN mkdir -p /data/sources # Create non-root user RUN useradd -m -u 999 gitlab-runner && \ chown -R gitlab-runner:gitlab-runner /app #RUN useradd -m -u 1000 appuser && \ # chown -R appuser:appuser /app RUN git config --system --add safe.directory "*" USER gitlab-runner COPY . /app/ # Declare volume mount point #VOLUME /app #VOLUME /data/sources # Set environment variables ENV PYTHONUNBUFFERED=1 # Default entrypoint ENTRYPOINT ["python"] CMD ["convert.py"] No newline at end of file
generateSpecWebSite/md_to_docx_converter/ETSIstyles.css 0 → 100644 +347 −0 Original line number Diff line number Diff line .NF { font-family: Arial; font-size: 9pt; align-items: center; display: flex; gap: 4pt; } .TAH { font-family: Arial; font-size: 9pt; font-weight: 600; text-align: center; } .TAC { font-family: Rubik, Arial; font-size: 9pt; text-align: center; } .TAC strong { font-weight: 700; color: var(--html-brand-primary); } .TAL { font-family: Arial; font-size: 9pt; text-align: left; } .HTML-Variable { font-family: "Roboto Mono", Monospace; font-size: 1em; font-style: italic; } .HTML-Variable strong { font-weight: 700; color: #121619; } .HTML-Keyboard { font-size: 1.06em; color: #121619; } .HTML-Definition { font-style: italic; } .TAN { font-family: Rubik, Arial; font-size: 9pt; padding-left: 12pt; display: flex; gap: 12pt; } .HTML-Code { font-family: "Roboto Mono", Monospace; font-size: 1em; color: #31849b; } .Plain_Text_Char { font-family: "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; } .HTML-Error { font-family: Arial; font-weight: 600; font-style: italic; color: #6e151e; } .TAJ { font-family: Arial; font-size: 9pt; text-align: justify; } .FP { } .ZA { font-family: "Maven Pro", Arial; font-size: 20pt; text-align: right; color: #121619; } /* .ZT::before { content: url("https://www.etsi.org/templates/etsi/img/logo.svg"); content: url("https://oascities.org/wp-content/uploads/2018/04/ETSI.png"); content: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Logo_ETSI.svg/320px-Logo_ETSI.svg.png") }*/ .ZGSM { } .ZT { color: #121619; font-weight: 700; font-size: 2em; font-family: "Maven Pro", Arial; text-align: center; } .ZT ~ .ZT { font-size: 1.5em; color: rgb(62, 72, 79); font-weight: 400; } .ZT ~ .ZT::before { content: none; } .ZG { font-family: Arial; text-align: right; } .ZB { font-family: Arial; font-style: italic; text-align: right; font-family: Century Gothic; font-size: 16pt; font-weight: bold; color: #ffffff; } .H6 { font-family: Arial; font-size: 10pt; margin-top: 6pt; margin-bottom: 9pt; } .NO { display: flex; gap: 12pt; border: 1px solid; border-color: #4078c0; background-color: aliceblue; border-radius: 3px; } .NO { padding-left: 12pt; padding-right: 12pt; margin-bottom: 9pt; } .NO > p, .TAN > p { margin: 0; padding: 0; white-space: pre-wrap; } div > .TAN { margin-bottom: 6px; } div > .TAN:last-of-type { margin-bottom: 0; } .NO > p:first-of-type, .TAN > p:first-of-type { white-space: nowrap; } .NO > div:first-of-type, .TAN > div:first-of-type { font-weight: 600; } .EQ { text-align: center; } .EX { padding-left: 12pt; margin-bottom: 9pt; display: flex; gap: 12pt; align-items: flex-start; min-width: 100%; max-width: 100%; } .EX > p { margin: 0; padding: 0; white-space: pre-wrap; } .EX > p:first-of-type { white-space: nowrap; } .EX > div:first-of-type { font-weight: 600; } .EX > div:nth-child(2) { width: 100%; } .EW { gap: 12pt; display: flex; align-items: flex-start; } .EW > div:first-child { min-width: 100px; flex-shrink: 0; } .EW > div:last-child { flex: 1; } .FL { font-family: Arial; font-weight: 600; text-align: center; margin-top: 3pt; margin-bottom: 9pt; overflow: auto; border-radius: 3px; border: 1px solid; border-color: #e1e2e3; min-width: 100%; max-width: 100%; width: 100%; padding: 16px; background-color: white; border-radius: 3px; } .TF { font-family: Arial; font-weight: 600; text-align: center; margin-bottom: 12pt; } .B1plus { margin-bottom: 9pt; } .TH { font-family: Arial; font-weight: 600; text-align: center; margin-top: 3pt; margin-bottom: 9pt; } .B2plus { margin-bottom: 9pt; } .HTML-Sample { font-family: "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 8pt; } .B3 { margin-bottom: 9pt; } .B1 { margin-bottom: 9pt; } .PL { font-family: "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 8pt; } .Hyperlink { text-decoration: underline; color: #0000ff; } .B3plus { margin-bottom: 9pt; } .B4 { margin-bottom: 9pt; } .B2 { margin-bottom: 9pt; } .B5 { margin-bottom: 9pt; } .BL { margin-bottom: 9pt; } .BN { margin-bottom: 9pt; } .image_overlay { visibility: hidden; } /* CUSTOM ETSI ONDEMAND STYLES FOR FRONTPAGE AND HISTORY TABLE */ .ondemand_CHAR_size_32 { font-size: 32pt; } .ondemand_CHAR_size_16 { font-size: 16pt; } .ondemand_CHAR_name_Arial_size_7 { font-family: Arial; font-size: 7pt; } .ondemand_PAR_space_before_3_after_3 { margin-top: 3pt; margin-bottom: 3pt; }