将 sphinx 文档设为私有

ic_*_*fl2 5 javascript git encryption python-sphinx docker

所以这是一个反复出现的问题,我没有资格解决它,但我需要解决它,所以我必须学习。请参阅此问题以获取过时/不可行的解决方案,以及没有答案的类似问题。

基本问题,我需要提供私有 python 模块的文档。该项目托管在 gitlab 上,我使用 CI 生成文档。它们对世界是可见的,但这并不理想。这是一个已知问题,gitlab 最终可能会提供解决方案。我等不了那么久。我的计划是使用这个项目(crypto-js)代码并将其包含在 docker runner 中。不幸的是,我不知道如何去做或者是否可能。

我的ci.yml是:

image: tsgkadot/sphinx-plantuml

stages:
  - build
pages:
  stage: build
  script:
    #- pip install -r requirements.txt -U
    - sphinx-build -b html ./doc public
  artifacts:
    paths:
      - public
  tags:
    - docker
Run Code Online (Sandbox Code Playgroud)

据我所知,crypto-js 的接口如下:

var unencrypted = document.getElementById('unencrypted_html').value;
var passphrase = document.getElementById('passphrase').value;
var encrypted = CryptoJS.AES.encrypt(unencrypted, passphrase);
var hmac = CryptoJS.HmacSHA256(encrypted.toString(), CryptoJS.SHA256(passphrase)).toString();
var encryptedMsg = hmac + encrypted;
Run Code Online (Sandbox Code Playgroud)

sphinx 生成的 html 文件必须传递给 js,并且输出将替换这些文件。或者,我读到可以在 sphinx 中包含 js,但我不知道文件如何加密自身我不介意使用一个密码来加密所有文档,然后与相关方共享该密码。

我还在 gitlab 的相关问题上发布了这些想法,但似乎没有什么进展,因为他们正在寻找更完整的解决方案。

如果有像 gitlab 这样的 git 托管服务提供诸如私有存储库私有页面之类的东西,我也很乐意切换到它。关于如何实现这一点有什么想法或指示吗?

ic_*_*fl2 2

所以我做了一个目前有效的基本修复:

这个 gitlab repo 显示了一个工作示例

它使用静态密码保护,本期也对此进行了讨论。