forked from mirrors/nixpkgs
anki: add manual output
The Anki manual is distibuted in a separate repository and has to be patched a bit to work offline. The in-program manual now points to our distributed offline version.
This commit is contained in:
parent
b5c6156062
commit
14572e2a8c
|
@ -5,6 +5,7 @@
|
|||
, python
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, fetchFromGitHub
|
||||
, lame
|
||||
, mplayer
|
||||
, libpulseaudio
|
||||
|
@ -24,10 +25,51 @@
|
|||
# This little flag adds a huge number of dependencies, but we assume that
|
||||
# everyone wants Anki to draw plots with statistics by default.
|
||||
, plotsSupport ? true
|
||||
# manual
|
||||
, asciidoc
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
let
|
||||
# when updating, also update rev-manual to a recent version of
|
||||
# https://github.com/dae/ankidocs
|
||||
# The manual is distributed independently of the software.
|
||||
version = "2.1.8";
|
||||
sha256-pkg = "08wb9hwpmbq7636h7sinim33qygdwwlh3frqqh2gfgm49f46di2p";
|
||||
rev-manual = "3a3d32dd9bfee6f5a7f5bdad2d70938874c881fa";
|
||||
sha256-manual = "1kz9ywbb6f42krxg8c5cwpjsnzm863vnkkn07szb3m1j85c10gjy";
|
||||
|
||||
manual = stdenv.mkDerivation {
|
||||
name = "anki-manual-${version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dae";
|
||||
repo = "ankidocs";
|
||||
rev = rev-manual;
|
||||
sha256 = sha256-manual;
|
||||
};
|
||||
phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
|
||||
nativeBuildInputs = [ asciidoc ];
|
||||
patchPhase = ''
|
||||
# rsync isnt needed
|
||||
# WEB is the PREFIX
|
||||
# We remove any special ankiweb output generation
|
||||
# and rename every .mako to .html
|
||||
sed -e 's/rsync -a/cp -a/g' \
|
||||
-e "s|\$(WEB)/docs|$out/share/doc/anki/html|" \
|
||||
-e '/echo asciidoc/,/mv $@.tmp $@/c \\tasciidoc -b html5 -o $@ $<' \
|
||||
-e 's/\.mako/.html/g' \
|
||||
-i Makefile
|
||||
# patch absolute links to the other language manuals
|
||||
sed -e 's|https://apps.ankiweb.net/docs/|link:./|g' \
|
||||
-i {manual.txt,manual.*.txt}
|
||||
# there’s an artifact in most input files
|
||||
sed -e '/<%def.*title.*/d' \
|
||||
-i *.txt
|
||||
mkdir -p $out/share/doc/anki/html
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
buildPythonApplication rec {
|
||||
name = "anki-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
|
@ -37,9 +79,11 @@ buildPythonApplication rec {
|
|||
# "http://ankisrs.net/download/mirror/${name}.tgz"
|
||||
# "http://ankisrs.net/download/mirror/archive/${name}.tgz"
|
||||
];
|
||||
sha256 = "08wb9hwpmbq7636h7sinim33qygdwwlh3frqqh2gfgm49f46di2p";
|
||||
sha256 = sha256-pkg;
|
||||
};
|
||||
|
||||
outputs = [ "out" "doc" "man" ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pyqt5 sqlalchemy beautifulsoup4 send2trash pyaudio requests decorator
|
||||
markdown
|
||||
|
@ -73,6 +117,11 @@ buildPythonApplication rec {
|
|||
|
||||
# Remove QT translation files. We'll use the standard QT ones.
|
||||
rm "locale/"*.qm
|
||||
|
||||
# hitting F1 should open the local manual
|
||||
substituteInPlace anki/consts.py \
|
||||
--replace 'HELP_SITE="http://ankisrs.net/docs/manual.html"' \
|
||||
'HELP_SITE="${manual}/share/doc/anki/html/manual.html"'
|
||||
'';
|
||||
|
||||
# UTF-8 locale needed for testing
|
||||
|
@ -89,8 +138,8 @@ buildPythonApplication rec {
|
|||
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/share/applications
|
||||
mkdir -p $out/share/doc/anki
|
||||
mkdir -p $out/share/man/man1
|
||||
mkdir -p $doc/share/doc/anki
|
||||
mkdir -p $man/share/man/man1
|
||||
mkdir -p $out/share/mime/packages
|
||||
mkdir -p $out/share/pixmaps
|
||||
mkdir -p $pp
|
||||
|
@ -103,16 +152,23 @@ buildPythonApplication rec {
|
|||
chmod 755 $out/bin/anki
|
||||
|
||||
cp -v anki.desktop $out/share/applications/
|
||||
cp -v README* LICENSE* $out/share/doc/anki/
|
||||
cp -v anki.1 $out/share/man/man1/
|
||||
cp -v README* LICENSE* $doc/share/doc/anki/
|
||||
cp -v anki.1 $man/share/man/man1/
|
||||
cp -v anki.xml $out/share/mime/packages/
|
||||
cp -v anki.{png,xpm} $out/share/pixmaps/
|
||||
cp -rv locale $out/share/
|
||||
cp -rv anki aqt web $pp/
|
||||
|
||||
wrapPythonPrograms
|
||||
|
||||
# copy the manual into $doc
|
||||
cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit manual;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://apps.ankiweb.net/";
|
||||
description = "Spaced repetition flashcard program";
|
||||
|
@ -131,6 +187,6 @@ buildPythonApplication rec {
|
|||
license = licenses.agpl3Plus;
|
||||
broken = stdenv.hostPlatform.isAarch64;
|
||||
platforms = platforms.mesaPlatforms;
|
||||
maintainers = with maintainers; [ the-kenny ];
|
||||
maintainers = with maintainers; [ the-kenny Profpatsch ];
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue