1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 pythonRelaxDepsHook,
7 sphinx,
8 beautifulsoup4,
9 sphinx-basic-ng,
10}:
11
12buildPythonPackage rec {
13 pname = "furo";
14 version = "2024.1.29";
15 format = "wheel";
16
17 disabled = pythonOlder "3.8";
18
19 src = fetchPypi {
20 inherit pname version format;
21 dist = "py3";
22 python = "py3";
23 hash = "sha256-NUi+LO9Foy+M3AJy1BX8s+X6ag603f4h3z7PH+RaE88=";
24 };
25
26 nativeBuildInputs = [ pythonRelaxDepsHook ];
27
28 pythonRelaxDeps = [ "sphinx" ];
29
30 propagatedBuildInputs = [
31 sphinx
32 beautifulsoup4
33 sphinx-basic-ng
34 ];
35
36 installCheckPhase = ''
37 # furo was built incorrectly if this directory is empty
38 # Ignore the hidden file .gitignore
39 cd "$out/lib/python"*
40 if [ "$(ls 'site-packages/furo/theme/furo/static/' | wc -l)" -le 0 ]; then
41 echo 'static directory must not be empty'
42 exit 1
43 fi
44 cd -
45 '';
46
47 pythonImportsCheck = [ "furo" ];
48
49 meta = with lib; {
50 description = "A clean customizable documentation theme for Sphinx";
51 homepage = "https://github.com/pradyunsg/furo";
52 changelog = "https://github.com/pradyunsg/furo/blob/${version}/docs/changelog.md";
53 license = licenses.mit;
54 maintainers = with maintainers; [ Luflosi ];
55 };
56}