【问题标题】:Gitlab Pages + Doxygen + Graphviz creates graphs with corrupted charactersGitlab Pages + Doxygen + Graphviz 创建带有损坏字符的图形
【发布时间】:2018-03-11 19:24:37
【问题描述】:

我正在使用 Gitlab Pages 为我的项目托管一个由 Doxygen 创建的 API。我还利用 graphviz 项目来创建依赖图。我使用 CI 脚本来安装软件包并构建文档:

pages:
  stage: build
  image: alpine
  script:
    - apk update && apk add doxygen
    - apk add graphviz
    - doxygen doxy/dox_config
    - mv docs/html/ public/
  artifacts:
    paths:
      - public
  only:
    - master
  dependencies: []

CI 脚本运行时没有任何错误,除了 Doxygen 错误抱怨它找不到 LaTeX 和 dvips,这两者都不会影响 graphviz 图片。我的图表如下所示:

我不太确定问题是什么或如何解决。为什么所有的字符都错了?

【问题讨论】:

  • 遇到同样的问题,我会试试你的解决方案。对于未来的读者:我通过在 doxygen 配置中切换到 MathJax 解决了 LaTeX 问题,我认为这比在 docker 映像中请求整个 LaTeX 安装更相关。

标签: unicode doxygen graphviz gitlab-ci


【解决方案1】:

原来问题出在使用的 Docker 映像上。 Alpine 不包含正确的字体,但 Debian 具有所有先决条件。虽然几乎可以肯定有一种方法可以使用 Alpine 安装字体,但我只是切换到了 Debian docker 映像。这是一个有效的 YML 脚本:

pages:
  stage: build
  image: ubuntu:trusty
  script:
    - export DEBIAN_FRONTEND=noninteractive
    - apt-get -yq update
    - apt-get -yq install graphviz
    - apt-get -yq install doxygen
    - doxygen doxy/dox_config
    - mv docs/html/ public/
  artifacts:
    paths:
      - public

【讨论】:

    【解决方案2】:

    安装包ttf-freefont 或ttf-ubuntu-font-family 将解决问题。这是我的 Dockerfile

    FROM alpine:3.6
    
    RUN apk --update add \
      doxygen \
      graphviz \
      ttf-freefont \
      && rm -rf /var/cache/apk/*
    

    ttf-ubuntu-font-family 是更窄的字体,所以你的盒子会变小一点。

    【讨论】:

      猜你喜欢
      • 2014-10-11
      • 2015-04-26
      • 2021-01-20
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      • 2018-04-18
      • 2014-03-18
      相关资源
      最近更新 更多