├── .gitattributes
├── .github
├── scripts
│ ├── contrib.sh
│ └── trailing-newlines.sh
└── workflows
│ └── checks.yml
├── .gitignore
├── CONTRIBUTORS
├── FILES.md
├── LICENSE
├── Makefile
├── README.contributing
├── README.development
├── README.md
├── README.name
├── VARS.md
├── documentation
├── computing_intervals.md
├── db_check.md
├── deletion.md
├── due.md
├── glossary.md
├── hooks.md
├── links.md
├── preview.md
├── profiles.md
├── scheduler.md
├── synchronization.md
└── templates_generation_rules.md
├── meta
├── .gitignore
└── version
├── pkgkey.asc
├── proto
├── .gitignore
└── backend.proto
├── pylib
├── .gitignore
├── .isort.cfg
├── .pylintrc
├── FILES.md
├── Makefile
├── anki
│ ├── .gitignore
│ ├── FILES.md
│ ├── __init__.py
│ ├── cards.py
│ ├── collection.py
│ ├── config.py
│ ├── consts.py
│ ├── db.py
│ ├── dbproxy.py
│ ├── decks.py
│ ├── errors.py
│ ├── exporting.py
│ ├── find.py
│ ├── hooks.py
│ ├── httpclient.py
│ ├── importing
│ │ ├── FILES.md
│ │ ├── __init__.py
│ │ ├── anki2.py
│ │ ├── apkg.py
│ │ ├── base.py
│ │ ├── csvfile.py
│ │ ├── mnemo.py
│ │ ├── noteimp.py
│ │ ├── pauker.py
│ │ └── supermemo_xml.py
│ ├── lang.py
│ ├── latex.py
│ ├── media.py
│ ├── models.py
│ ├── notes.py
│ ├── py.typed
│ ├── rsbackend.py
│ ├── sched.py
│ ├── schedv2.py
│ ├── sound.py
│ ├── stats.py
│ ├── statsbg.py
│ ├── stdmodels.py
│ ├── storage.py
│ ├── sync.py
│ ├── tags.py
│ ├── template.py
│ ├── template_legacy.py
│ ├── types.py
│ └── utils.py
├── mypy.ini
├── pyproject.toml
├── requirements.dev
├── setup.py
├── tests
│ ├── __init__.py
│ ├── shared.py
│ ├── support
│ │ ├── anki12-broken.anki
│ │ ├── anki12-due.anki
│ │ ├── anki12.anki
│ │ ├── anki2-alpha.anki2
│ │ ├── diffmodels1.anki
│ │ ├── diffmodels2-1.apkg
│ │ ├── diffmodels2-2.apkg
│ │ ├── diffmodels2.anki
│ │ ├── diffmodeltemplates-1.apkg
│ │ ├── diffmodeltemplates-2.apkg
│ │ ├── fake.png
│ │ ├── invalid-ords.anki
│ │ ├── media.apkg
│ │ ├── mnemo.db
│ │ ├── supermemo1.xml
│ │ ├── suspended12.anki
│ │ ├── text-2fields.txt
│ │ ├── text-tags.txt
│ │ ├── text-update.txt
│ │ ├── update1.apkg
│ │ └── update2.apkg
│ ├── test_cards.py
│ ├── test_collection.py
│ ├── test_decks.py
│ ├── test_exporting.py
│ ├── test_find.py
│ ├── test_flags.py
│ ├── test_importing.py
│ ├── test_latex.py
│ ├── test_media.py
│ ├── test_models.py
│ ├── test_schedv1.py
│ ├── test_schedv2.py
│ ├── test_stats.py
│ ├── test_template.py
│ └── test_undo.py
└── tools
│ ├── FILES.md
│ ├── __init__.py
│ ├── diff-sched.py
│ ├── genbackend.py
│ ├── genhooks.py
│ └── hookslib.py
├── qt
├── .gitignore
├── .isort.cfg
├── .pylintrc
├── FILES.md
├── Makefile
├── anki.1
├── anki.desktop
├── anki.png
├── anki.xml
├── anki.xpm
├── aqt
│ ├── .gitignore
│ ├── FILES.md
│ ├── __init__.py
│ ├── about.py
│ ├── addcards.py
│ ├── addons.py
│ ├── browser.py
│ ├── clayout.py
│ ├── customstudy.py
│ ├── dbcheck.py
│ ├── deckbrowser.py
│ ├── deckchooser.py
│ ├── deckconf.py
│ ├── dyndeckconf.py
│ ├── editcurrent.py
│ ├── editor.py
│ ├── emptycards.py
│ ├── errors.py
│ ├── exporting.py
│ ├── fields.py
│ ├── gui_hooks.py
│ ├── importing.py
│ ├── legacy.py
│ ├── main.py
│ ├── mediacheck.py
│ ├── mediasrv.py
│ ├── mediasync.py
│ ├── modelchooser.py
│ ├── models.py
│ ├── mpv.py
│ ├── overview.py
│ ├── pinnedmodules.py
│ ├── preferences.py
│ ├── previewer.py
│ ├── profiles.py
│ ├── progress.py
│ ├── py.typed
│ ├── qt.py
│ ├── reviewer.py
│ ├── schema_change_tracker.py
│ ├── sound.py
│ ├── stats.py
│ ├── studydeck.py
│ ├── sync.py
│ ├── tagedit.py
│ ├── taglimit.py
│ ├── taskman.py
│ ├── theme.py
│ ├── toolbar.py
│ ├── tts.py
│ ├── update.py
│ ├── utils.py
│ ├── webview.py
│ └── winpaths.py
├── aqt_data
│ └── web
│ │ ├── .gitignore
│ │ ├── browsersel.js
│ │ ├── imgs
│ │ ├── anki-logo-thin.png
│ │ ├── gears.svg
│ │ ├── media-record.png
│ │ ├── more.png
│ │ ├── paperclip.png
│ │ ├── refresh.svg
│ │ ├── text_bold.png
│ │ ├── text_clear.png
│ │ ├── text_cloze.png
│ │ ├── text_italic.png
│ │ ├── text_sub.png
│ │ ├── text_super.png
│ │ └── text_under.png
│ │ ├── jquery-ui.js
│ │ ├── jquery.js
│ │ ├── mathjax
│ │ ├── MathJax.js
│ │ ├── conf.js
│ │ ├── extensions
│ │ │ ├── FontWarnings.js
│ │ │ ├── HTML-CSS
│ │ │ │ └── handle-floats.js
│ │ │ ├── HelpDialog.js
│ │ │ ├── MatchWebFonts.js
│ │ │ ├── MathEvents.js
│ │ │ ├── MathMenu.js
│ │ │ ├── MathZoom.js
│ │ │ ├── Safe.js
│ │ │ ├── TeX
│ │ │ │ ├── AMScd.js
│ │ │ │ ├── AMSmath.js
│ │ │ │ ├── AMSsymbols.js
│ │ │ │ ├── HTML.js
│ │ │ │ ├── action.js
│ │ │ │ ├── autobold.js
│ │ │ │ ├── autoload-all.js
│ │ │ │ ├── bbox.js
│ │ │ │ ├── begingroup.js
│ │ │ │ ├── boldsymbol.js
│ │ │ │ ├── cancel.js
│ │ │ │ ├── color.js
│ │ │ │ ├── enclose.js
│ │ │ │ ├── extpfeil.js
│ │ │ │ ├── mathchoice.js
│ │ │ │ ├── mediawiki-texvc.js
│ │ │ │ ├── mhchem.js
│ │ │ │ ├── mhchem3
│ │ │ │ │ └── mhchem.js
│ │ │ │ ├── newcommand.js
│ │ │ │ ├── noErrors.js
│ │ │ │ ├── noUndefined.js
│ │ │ │ ├── unicode.js
│ │ │ │ └── verb.js
│ │ │ ├── asciimath2jax.js
│ │ │ ├── fast-preview.js
│ │ │ ├── jsMath2jax.js
│ │ │ ├── mhchem.js
│ │ │ ├── mml2jax.js
│ │ │ ├── tex2jax.js
│ │ │ └── toMathML.js
│ │ ├── fonts
│ │ │ └── HTML-CSS
│ │ │ │ └── TeX
│ │ │ │ └── woff
│ │ │ │ ├── MathJax_AMS-Regular.woff
│ │ │ │ ├── MathJax_Caligraphic-Bold.woff
│ │ │ │ ├── MathJax_Caligraphic-Regular.woff
│ │ │ │ ├── MathJax_Fraktur-Bold.woff
│ │ │ │ ├── MathJax_Fraktur-Regular.woff
│ │ │ │ ├── MathJax_Main-Bold.woff
│ │ │ │ ├── MathJax_Main-Italic.woff
│ │ │ │ ├── MathJax_Main-Regular.woff
│ │ │ │ ├── MathJax_Math-BoldItalic.woff
│ │ │ │ ├── MathJax_Math-Italic.woff
│ │ │ │ ├── MathJax_Math-Regular.woff
│ │ │ │ ├── MathJax_SansSerif-Bold.woff
│ │ │ │ ├── MathJax_SansSerif-Italic.woff
│ │ │ │ ├── MathJax_SansSerif-Regular.woff
│ │ │ │ ├── MathJax_Script-Regular.woff
│ │ │ │ ├── MathJax_Size1-Regular.woff
│ │ │ │ ├── MathJax_Size2-Regular.woff
│ │ │ │ ├── MathJax_Size3-Regular.woff
│ │ │ │ ├── MathJax_Size4-Regular.woff
│ │ │ │ └── MathJax_Typewriter-Regular.woff
│ │ └── jax
│ │ │ ├── element
│ │ │ └── mml
│ │ │ │ ├── jax.js
│ │ │ │ └── optable
│ │ │ │ ├── Arrows.js
│ │ │ │ ├── BasicLatin.js
│ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ ├── CombDiactForSymbols.js
│ │ │ │ ├── Dingbats.js
│ │ │ │ ├── GeneralPunctuation.js
│ │ │ │ ├── GeometricShapes.js
│ │ │ │ ├── GreekAndCoptic.js
│ │ │ │ ├── Latin1Supplement.js
│ │ │ │ ├── LetterlikeSymbols.js
│ │ │ │ ├── MathOperators.js
│ │ │ │ ├── MiscMathSymbolsA.js
│ │ │ │ ├── MiscMathSymbolsB.js
│ │ │ │ ├── MiscSymbolsAndArrows.js
│ │ │ │ ├── MiscTechnical.js
│ │ │ │ ├── SpacingModLetters.js
│ │ │ │ ├── SuppMathOperators.js
│ │ │ │ ├── SupplementalArrowsA.js
│ │ │ │ └── SupplementalArrowsB.js
│ │ │ ├── input
│ │ │ ├── AsciiMath
│ │ │ │ ├── config.js
│ │ │ │ └── jax.js
│ │ │ ├── MathML
│ │ │ │ ├── config.js
│ │ │ │ ├── entities
│ │ │ │ │ ├── a.js
│ │ │ │ │ ├── b.js
│ │ │ │ │ ├── c.js
│ │ │ │ │ ├── d.js
│ │ │ │ │ ├── e.js
│ │ │ │ │ ├── f.js
│ │ │ │ │ ├── fr.js
│ │ │ │ │ ├── g.js
│ │ │ │ │ ├── h.js
│ │ │ │ │ ├── i.js
│ │ │ │ │ ├── j.js
│ │ │ │ │ ├── k.js
│ │ │ │ │ ├── l.js
│ │ │ │ │ ├── m.js
│ │ │ │ │ ├── n.js
│ │ │ │ │ ├── o.js
│ │ │ │ │ ├── opf.js
│ │ │ │ │ ├── p.js
│ │ │ │ │ ├── q.js
│ │ │ │ │ ├── r.js
│ │ │ │ │ ├── s.js
│ │ │ │ │ ├── scr.js
│ │ │ │ │ ├── t.js
│ │ │ │ │ ├── u.js
│ │ │ │ │ ├── v.js
│ │ │ │ │ ├── w.js
│ │ │ │ │ ├── x.js
│ │ │ │ │ ├── y.js
│ │ │ │ │ └── z.js
│ │ │ │ └── jax.js
│ │ │ └── TeX
│ │ │ │ ├── config.js
│ │ │ │ └── jax.js
│ │ │ └── output
│ │ │ ├── CommonHTML
│ │ │ ├── autoload
│ │ │ │ ├── annotation-xml.js
│ │ │ │ ├── maction.js
│ │ │ │ ├── menclose.js
│ │ │ │ ├── mglyph.js
│ │ │ │ ├── mmultiscripts.js
│ │ │ │ ├── ms.js
│ │ │ │ ├── mtable.js
│ │ │ │ └── multiline.js
│ │ │ ├── config.js
│ │ │ ├── fonts
│ │ │ │ └── TeX
│ │ │ │ │ ├── AMS-Regular.js
│ │ │ │ │ ├── Caligraphic-Bold.js
│ │ │ │ │ ├── Fraktur-Bold.js
│ │ │ │ │ ├── Fraktur-Regular.js
│ │ │ │ │ ├── Main-Bold.js
│ │ │ │ │ ├── Math-BoldItalic.js
│ │ │ │ │ ├── SansSerif-Bold.js
│ │ │ │ │ ├── SansSerif-Italic.js
│ │ │ │ │ ├── SansSerif-Regular.js
│ │ │ │ │ ├── Script-Regular.js
│ │ │ │ │ ├── Typewriter-Regular.js
│ │ │ │ │ ├── fontdata-extra.js
│ │ │ │ │ └── fontdata.js
│ │ │ └── jax.js
│ │ │ └── HTML-CSS
│ │ │ ├── autoload
│ │ │ ├── annotation-xml.js
│ │ │ ├── maction.js
│ │ │ ├── menclose.js
│ │ │ ├── mglyph.js
│ │ │ ├── mmultiscripts.js
│ │ │ ├── ms.js
│ │ │ ├── mtable.js
│ │ │ └── multiline.js
│ │ │ ├── config.js
│ │ │ ├── fonts
│ │ │ └── TeX
│ │ │ │ ├── AMS
│ │ │ │ └── Regular
│ │ │ │ │ ├── Arrows.js
│ │ │ │ │ ├── BBBold.js
│ │ │ │ │ ├── BoxDrawing.js
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── Dingbats.js
│ │ │ │ │ ├── EnclosedAlphanum.js
│ │ │ │ │ ├── GeneralPunctuation.js
│ │ │ │ │ ├── GeometricShapes.js
│ │ │ │ │ ├── GreekAndCoptic.js
│ │ │ │ │ ├── Latin1Supplement.js
│ │ │ │ │ ├── LatinExtendedA.js
│ │ │ │ │ ├── LetterlikeSymbols.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ ├── MathOperators.js
│ │ │ │ │ ├── MiscMathSymbolsB.js
│ │ │ │ │ ├── MiscSymbols.js
│ │ │ │ │ ├── MiscTechnical.js
│ │ │ │ │ ├── PUA.js
│ │ │ │ │ ├── SpacingModLetters.js
│ │ │ │ │ └── SuppMathOperators.js
│ │ │ │ ├── Caligraphic
│ │ │ │ ├── Bold
│ │ │ │ │ └── Main.js
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Fraktur
│ │ │ │ ├── Bold
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ ├── Other.js
│ │ │ │ │ └── PUA.js
│ │ │ │ └── Regular
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ ├── Other.js
│ │ │ │ │ └── PUA.js
│ │ │ │ ├── Greek
│ │ │ │ ├── Bold
│ │ │ │ │ └── Main.js
│ │ │ │ ├── BoldItalic
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Italic
│ │ │ │ │ └── Main.js
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Main
│ │ │ │ ├── Bold
│ │ │ │ │ ├── Arrows.js
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── CombDiactForSymbols.js
│ │ │ │ │ ├── GeneralPunctuation.js
│ │ │ │ │ ├── GeometricShapes.js
│ │ │ │ │ ├── Latin1Supplement.js
│ │ │ │ │ ├── LatinExtendedA.js
│ │ │ │ │ ├── LatinExtendedB.js
│ │ │ │ │ ├── LetterlikeSymbols.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ ├── MathOperators.js
│ │ │ │ │ ├── MiscMathSymbolsA.js
│ │ │ │ │ ├── MiscSymbols.js
│ │ │ │ │ ├── MiscTechnical.js
│ │ │ │ │ ├── SpacingModLetters.js
│ │ │ │ │ ├── SuppMathOperators.js
│ │ │ │ │ └── SupplementalArrowsA.js
│ │ │ │ ├── Italic
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── GeneralPunctuation.js
│ │ │ │ │ ├── Latin1Supplement.js
│ │ │ │ │ ├── LetterlikeSymbols.js
│ │ │ │ │ └── Main.js
│ │ │ │ └── Regular
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── GeometricShapes.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ ├── MiscSymbols.js
│ │ │ │ │ └── SpacingModLetters.js
│ │ │ │ ├── Math
│ │ │ │ ├── BoldItalic
│ │ │ │ │ └── Main.js
│ │ │ │ └── Italic
│ │ │ │ │ └── Main.js
│ │ │ │ ├── SansSerif
│ │ │ │ ├── Bold
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ └── Other.js
│ │ │ │ ├── Italic
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ └── Other.js
│ │ │ │ └── Regular
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ └── Other.js
│ │ │ │ ├── Script
│ │ │ │ └── Regular
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ └── Other.js
│ │ │ │ ├── Size1
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Size2
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Size3
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Size4
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── Typewriter
│ │ │ │ └── Regular
│ │ │ │ │ ├── BasicLatin.js
│ │ │ │ │ ├── CombDiacritMarks.js
│ │ │ │ │ ├── Main.js
│ │ │ │ │ └── Other.js
│ │ │ │ ├── WinChrome
│ │ │ │ └── Regular
│ │ │ │ │ └── Main.js
│ │ │ │ ├── WinIE6
│ │ │ │ └── Regular
│ │ │ │ │ ├── AMS.js
│ │ │ │ │ ├── Bold.js
│ │ │ │ │ └── Main.js
│ │ │ │ ├── fontdata-extra.js
│ │ │ │ └── fontdata.js
│ │ │ ├── imageFonts.js
│ │ │ └── jax.js
│ │ └── plot.js
├── designer
│ ├── about.ui
│ ├── addcards.ui
│ ├── addfield.ui
│ ├── addmodel.ui
│ ├── addonconf.ui
│ ├── addons.ui
│ ├── browser.ui
│ ├── browserdisp.ui
│ ├── browseropts.ui
│ ├── changemap.ui
│ ├── changemodel.ui
│ ├── clayout_top.ui
│ ├── customstudy.ui
│ ├── dconf.ui
│ ├── debug.ui
│ ├── dyndconf.ui
│ ├── editaddon.ui
│ ├── editcurrent.ui
│ ├── edithtml.ui
│ ├── emptycards.ui
│ ├── exporting.ui
│ ├── fields.ui
│ ├── finddupes.ui
│ ├── findreplace.ui
│ ├── getaddons.ui
│ ├── icons.qrc
│ ├── icons
│ │ ├── anki.png
│ │ ├── collection.svg
│ │ ├── deck.svg
│ │ ├── heart.svg
│ │ ├── media-record.png
│ │ ├── notetype.svg
│ │ └── tag.svg
│ ├── importing.ui
│ ├── main.ui
│ ├── modelopts.ui
│ ├── models.ui
│ ├── preferences.ui
│ ├── preview.ui
│ ├── profiles.ui
│ ├── progress.ui
│ ├── reposition.ui
│ ├── reschedule.ui
│ ├── setgroup.ui
│ ├── setlang.ui
│ ├── stats.ui
│ ├── studydeck.ui
│ ├── synclog.ui
│ ├── taglimit.ui
│ └── template.ui
├── ftl
│ ├── .gitignore
│ ├── addons.ftl
│ ├── errors.ftl
│ ├── preferences.ftl
│ ├── profiles.ftl
│ └── scripts
│ │ ├── fetch-latest-translations
│ │ └── upload-latest-templates
├── mypy.ini
├── pkgkey.asc
├── po
│ ├── .gitignore
│ ├── plurals.json
│ ├── requirements.txt
│ └── scripts
│ │ ├── build-mo-files
│ │ ├── copy-qt-files
│ │ ├── duplicate-string.py
│ │ ├── extract-po-string.py
│ │ ├── extract-po-strings.py
│ │ ├── fetch-latest-translations
│ │ ├── update-po-template
│ │ └── upload-latest-template
├── pyproject.toml
├── requirements.dev
├── requirements.qt
├── runanki
├── setup.py
├── tests
│ ├── FILES.md
│ ├── __init__.py
│ ├── test_addons.py
│ └── test_i18n.py
├── tools
│ ├── anki-wait.bat
│ ├── build_ui.sh
│ ├── extract_scss_colors.py
│ ├── genhooks_gui.py
│ ├── runanki.system.in
│ └── typecheck-setup.sh
└── ts
│ ├── .prettierrc
│ ├── package-lock.json
│ ├── package.json
│ ├── scss
│ ├── _buttons.scss
│ ├── _card_counts.scss
│ ├── _vars.scss
│ ├── deckbrowser.scss
│ ├── editor.scss
│ ├── overview.scss
│ ├── reviewer-bottom.scss
│ ├── reviewer.scss
│ ├── toolbar-bottom.scss
│ ├── toolbar.scss
│ └── webview.scss
│ ├── src
│ ├── deckbrowser.ts
│ ├── editor.ts
│ ├── overview.ts
│ ├── reviewer-bottom.ts
│ ├── reviewer.ts
│ ├── toolbar.ts
│ ├── types
│ │ └── global.d.ts
│ └── webview.ts
│ └── tsconfig.json
├── rslib
├── .gitignore
├── Cargo.toml
├── FILES.md
├── Makefile
├── README.md
├── build.rs
├── ftl
│ ├── .gitignore
│ ├── FILES.md
│ ├── card-template-rendering.ftl
│ ├── card-templates.ftl
│ ├── database-check.ftl
│ ├── deck-config.ftl
│ ├── empty-cards.ftl
│ ├── filtering.ftl
│ ├── findreplace.ftl
│ ├── importing.ftl
│ ├── media-check.ftl
│ ├── network.ftl
│ ├── notetypes.ftl
│ ├── scheduling.ftl
│ ├── scripts
│ │ ├── fetch-latest-translations
│ │ └── upload-latest-templates
│ ├── search.ftl
│ ├── statistics.ftl
│ └── sync.ftl
├── rust-toolchain
├── rustfmt.toml
├── src
│ ├── backend
│ │ ├── dbproxy.rs
│ │ └── mod.rs
│ ├── card.rs
│ ├── cloze.rs
│ ├── collection.rs
│ ├── config.rs
│ ├── dbcheck.rs
│ ├── deckconf
│ │ ├── mod.rs
│ │ └── schema11.rs
│ ├── decks
│ │ ├── counts.rs
│ │ ├── mod.rs
│ │ ├── schema11.rs
│ │ └── tree.rs
│ ├── err.rs
│ ├── findreplace.rs
│ ├── i18n
│ │ ├── .gitignore
│ │ ├── ftl
│ │ │ └── .gitignore
│ │ └── mod.rs
│ ├── latex.rs
│ ├── lib.rs
│ ├── log.rs
│ ├── media
│ │ ├── changetracker.rs
│ │ ├── check.rs
│ │ ├── database.rs
│ │ ├── files.rs
│ │ ├── mod.rs
│ │ ├── schema.sql
│ │ └── sync.rs
│ ├── notes.rs
│ ├── notetype
│ │ ├── cardgen.rs
│ │ ├── emptycards.rs
│ │ ├── fields.rs
│ │ ├── header.tex
│ │ ├── mod.rs
│ │ ├── render.rs
│ │ ├── schema11.rs
│ │ ├── schemachange.rs
│ │ ├── stock.rs
│ │ ├── styling.css
│ │ └── templates.rs
│ ├── preferences.rs
│ ├── prelude.rs
│ ├── revlog.rs
│ ├── sched
│ │ ├── cutoff.rs
│ │ ├── mod.rs
│ │ └── timespan.rs
│ ├── search
│ │ ├── cards.rs
│ │ ├── deck_order.sql
│ │ ├── mod.rs
│ │ ├── notes.rs
│ │ ├── notetype_order.sql
│ │ ├── parser.rs
│ │ ├── sqlwriter.rs
│ │ └── template_order.sql
│ ├── serde.rs
│ ├── storage
│ │ ├── card
│ │ │ ├── add_card.sql
│ │ │ ├── add_or_update.sql
│ │ │ ├── fix_due_new.sql
│ │ │ ├── fix_due_other.sql
│ │ │ ├── fix_ivl.sql
│ │ │ ├── fix_odue.sql
│ │ │ ├── get_card.sql
│ │ │ ├── mod.rs
│ │ │ └── update_card.sql
│ │ ├── config
│ │ │ ├── add.sql
│ │ │ ├── get.sql
│ │ │ └── mod.rs
│ │ ├── deck
│ │ │ ├── alloc_id.sql
│ │ │ ├── cards_for_deck.sql
│ │ │ ├── due_counts.sql
│ │ │ ├── get_deck.sql
│ │ │ ├── missing-decks.sql
│ │ │ ├── mod.rs
│ │ │ └── update_deck.sql
│ │ ├── deckconf
│ │ │ ├── add.sql
│ │ │ ├── add_or_update.sql
│ │ │ ├── get.sql
│ │ │ ├── mod.rs
│ │ │ └── update.sql
│ │ ├── graves
│ │ │ ├── add.sql
│ │ │ └── mod.rs
│ │ ├── mod.rs
│ │ ├── note
│ │ │ ├── add.sql
│ │ │ ├── add_or_update.sql
│ │ │ ├── get.sql
│ │ │ ├── is_orphaned.sql
│ │ │ ├── mod.rs
│ │ │ └── update.sql
│ │ ├── notetype
│ │ │ ├── add_notetype.sql
│ │ │ ├── add_or_update.sql
│ │ │ ├── delete_cards_for_template.sql
│ │ │ ├── existing_cards.sql
│ │ │ ├── field_names_for_notes.sql
│ │ │ ├── get_fields.sql
│ │ │ ├── get_notetype.sql
│ │ │ ├── get_notetype_names.sql
│ │ │ ├── get_templates.sql
│ │ │ ├── get_use_counts.sql
│ │ │ ├── mod.rs
│ │ │ ├── update_fields.sql
│ │ │ ├── update_notetype_config.sql
│ │ │ ├── update_notetype_core.sql
│ │ │ └── update_templates.sql
│ │ ├── revlog
│ │ │ ├── add.sql
│ │ │ ├── fix_props.sql
│ │ │ ├── get.sql
│ │ │ └── mod.rs
│ │ ├── schema11.sql
│ │ ├── sqlite.rs
│ │ ├── sync.rs
│ │ ├── sync_check.rs
│ │ ├── tag
│ │ │ ├── add.sql
│ │ │ └── mod.rs
│ │ └── upgrades
│ │ │ ├── mod.rs
│ │ │ ├── schema11_downgrade.sql
│ │ │ ├── schema14_upgrade.sql
│ │ │ └── schema15_upgrade.sql
│ ├── sync
│ │ ├── http_client.rs
│ │ └── mod.rs
│ ├── tags.rs
│ ├── template.rs
│ ├── template_filters.rs
│ ├── text.rs
│ ├── timestamp.rs
│ ├── types.rs
│ ├── undo.rs
│ └── version.rs
└── tests
│ └── support
│ ├── ftl
│ ├── ja
│ │ └── test.ftl
│ └── templates
│ │ └── test.ftl
│ └── mediacheck.anki2
├── rspy
├── .cargo
│ └── config
├── .gitignore
├── Cargo.toml
├── FILES.md
├── Makefile
├── README.md
├── requirements.txt
├── rust-toolchain
└── src
│ └── lib.rs
├── run
└── scripts
└── rename
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.ftl eol=lf
2 |
--------------------------------------------------------------------------------
/.github/scripts/contrib.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | antispam=", at the domain "
6 |
7 | echo "All contributors:"
8 | git log --pretty=format:' - %ae' CONTRIBUTORS |sort |uniq |sort -f | sed "s/@/$antispam/"
9 |
10 | headAuthor=$(git log -1 --pretty=format:'%ae')
11 | authorAt=$(echo "$headAuthor" | sed "s/@/$antispam/")
12 | if git log --pretty=format:'%ae' CONTRIBUTORS | grep -i "$headAuthor" > /dev/null; then
13 | echo "Author $authorAt found in CONTRIBUTORS"
14 | else
15 | echo "Author $authorAt NOT found in list"
16 | exit 1
17 | fi
18 |
--------------------------------------------------------------------------------
/.github/scripts/trailing-newlines.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | # Checking version to force it fail the build if rg is not installed.
6 | # Because `set -e` does not work inside the subshell $()
7 | if ! rg --version > /dev/null 2>&1;
8 | then
9 | echo "Error: ripgrep is not installed!";
10 | exit 1;
11 | fi;
12 |
13 | files=$(rg -l '[^\n]\z' -g '!*.{png,svg,scss,json,sql}' || true)
14 |
15 | if [ "$files" != "" ]; then
16 | echo "the following files are missing a newline on the last line:"
17 | echo $files
18 | exit 1
19 | fi
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.mo
2 | *.pyc
3 | *\#
4 | *~
5 | .*.swp
6 | .build
7 | .coverage
8 | .DS_Store
9 | dist
10 | pyenv
11 | .mypy_cache
12 | __pycache__
13 | anki.prof
14 | qt/aqt/forms
15 | locale
16 | tools/runanki.system
17 | /tests/test_sched.py
18 | aqt/buildhash.py
19 | /__main__.py
20 | anki/buildhash.py
21 | .mypy_cache
22 | .pytype
23 | .build
24 | *autosave
25 | tests/support/TEST/backups
26 | /anki
27 | /aqt
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This repo contains all the code for the computer version of Anki.
2 |
3 | :warning: The master branch is currently in alpha. Please see
4 | https://betas.ankiweb.net/#/
5 |
6 | If you'd like to try development builds of Anki but don't feel comfortable
7 | building the code, please see
8 | https://anki.tenderapp.com/discussions/beta-testing
9 |
10 | For more information on building, please see [README.development](README.development).
11 |
12 | If you'd like to contribute code, please see [README.contributing](README.contributing).
13 |
14 | [](../../actions)
15 |
--------------------------------------------------------------------------------
/README.name:
--------------------------------------------------------------------------------
1 | Note that some names are distinct in the manual and in the code.
2 |
3 | Code |Manual
4 | ----------------------------
5 | cramming deck |Dynamic deck
6 | filtered deck |Dynamic deck
7 | model |note type
8 | template |card type
9 | conf/dconf |deck option
10 |
11 | Note that "template" sometime also design the front or back of the card type
12 |
--------------------------------------------------------------------------------
/VARS.md:
--------------------------------------------------------------------------------
1 | Variable |Object of class
2 | ------------------------------------
3 | col |Collection
4 | mm |Model Managers
5 | mw |Main window
6 | b |browser
7 | FOOid |Identifier of an object of type foo
8 | n |note
9 | c |card
10 | m |model (note type)
11 | d |deck
12 | pm |profile manager
13 |
--------------------------------------------------------------------------------
/documentation/links.md:
--------------------------------------------------------------------------------
1 | Here are link to other nice documentation I found.
2 |
3 | # Anki droid
4 | Ankidroid has a nice wiki, explaining many things. Not always up to
5 | date. If I find some informations which fits in this wiki, I'll write
6 | it in their wiki instead of this folder.
7 |
8 | In particular, they document most of the database structure, even if
9 | some parts are still not clear.
10 |
11 | https://github.com/ankidroid/Anki-Android/wiki/Database-Structure
12 |
--------------------------------------------------------------------------------
/documentation/preview.md:
--------------------------------------------------------------------------------
1 | # Here are the rules governing previewing card:
2 |
3 | You can preview cards. There are two kinds of previewing. As far as I
4 | know, the difference is not explained anyone yet.
5 |
6 | ## Normal previewing
7 | The first kind of previewing allow you to see the result of applying a
8 | template to a cards. This is what you obtain when you click on the
9 | button `Cards...` if you are viewing a card already created (i.e. in
10 | the browser or in the Edit window). It is also what you obtain when
11 | you click on preview in the browser, and when you actually review a
12 | card.
13 |
14 | ## Filled previewing
15 | When you click on the button `Cards...` from the Add window, ord
16 | from the Note Type manager, you enter this mode. In this mode, every
17 | fields are filled. Either by the actual content of the card you are
18 | created, or by the name of the field parenthesis.
19 |
20 | It means that you can not test the result when some fields are missing
21 | using this window, because the content of `{{^foo}}...{{#foo}}`
22 | will never be displayed.
23 |
--------------------------------------------------------------------------------
/meta/.gitignore:
--------------------------------------------------------------------------------
1 | buildhash
2 |
--------------------------------------------------------------------------------
/meta/version:
--------------------------------------------------------------------------------
1 | 2.1.28
2 |
--------------------------------------------------------------------------------
/proto/.gitignore:
--------------------------------------------------------------------------------
1 | fluent.proto
2 |
3 |
--------------------------------------------------------------------------------
/pylib/.gitignore:
--------------------------------------------------------------------------------
1 | *.mo
2 | *.pyc
3 | *\#
4 | *~
5 | .*.swp
6 | .build
7 | .coverage
8 | .DS_Store
9 | .mypy_cache
10 | .pytype
11 | __pycache__
12 | anki.egg-info
13 | anki/backend_pb2.*
14 | anki/fluent_pb2.*
15 | anki/rsbackend_gen.py
16 | anki/buildhash.py
17 | build
18 | dist
19 |
--------------------------------------------------------------------------------
/pylib/.isort.cfg:
--------------------------------------------------------------------------------
1 | [settings]
2 | skip=aqt/forms,backend_pb2.py,backend_pb2.pyi,fluent_pb2.py,fluent_pb2.pyi,rsbackend_gen.py
3 | multi_line_output=3
4 | include_trailing_comma=True
5 | force_grid_wrap=0
6 | use_parentheses=True
7 | line_length=88
8 | ensure_newline_before_comments=true
9 |
--------------------------------------------------------------------------------
/pylib/.pylintrc:
--------------------------------------------------------------------------------
1 | [MASTER]
2 | ignore-patterns=.*_pb2.*
3 |
4 | [MESSAGES CONTROL]
5 | disable=C,R,
6 | fixme,
7 | unused-wildcard-import,
8 | attribute-defined-outside-init,
9 | redefined-builtin,
10 | wildcard-import,
11 | broad-except,
12 | bare-except,
13 | unused-argument,
14 | unused-variable,
15 | redefined-outer-name,
16 | global-statement,
17 | protected-access,
18 | arguments-differ,
19 |
--------------------------------------------------------------------------------
/pylib/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | This folder contains all codes used for the python part of anki. It
6 | contains both the source code, and a `build` directory containing the
7 | result of the compilation.
8 |
9 | # anki
10 | This subfolder used to be named `/anki` and be at top level. It
11 | contains all of the back-end code run by anki.
12 |
13 | # .isort.cfg
14 | Configuration for the program isort. Stating how to sort imports in
15 | the code.
16 |
17 | # Makefile
18 | This makefile is called by top level makefile to deal with the back
19 | end specifically.
20 |
21 | # requirements.dev
22 |
23 | Requirements that should be found by make/(virtual env?) to be able to
24 | execute the back-end code.
25 |
26 | # tests
27 | Tests for the backend specifically
28 |
29 | # tools
30 | Tools used to compile this code into the actual code used in the
31 | background.
32 |
33 |
--------------------------------------------------------------------------------
/pylib/anki/.gitignore:
--------------------------------------------------------------------------------
1 | buildinfo.py
2 |
--------------------------------------------------------------------------------
/pylib/anki/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | import sys
5 |
6 | from anki.buildinfo import version
7 | from anki.collection import Collection
8 |
9 | if sys.version_info[0] < 3 or sys.version_info[1] < 7:
10 | raise Exception("Anki requires Python 3.7+")
11 |
12 | if sys.getfilesystemencoding().lower() in ("ascii", "ansi_x3.4-1968"):
13 | raise Exception("Anki requires a UTF-8 locale.")
14 |
15 |
16 | __all__ = ["Collection"]
17 |
--------------------------------------------------------------------------------
/pylib/anki/errors.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | from typing import Any
5 |
6 |
7 | class AnkiError(Exception):
8 | def __init__(self, type, **data) -> None:
9 | super().__init__()
10 | self.type = type
11 | self.data = data
12 |
13 | def __str__(self) -> Any:
14 | type = self.type
15 | if self.data:
16 | type += ": %s" % repr(self.data)
17 | return type
18 |
19 |
20 | class DeckRenameError(Exception):
21 | def __init__(self, description: str) -> None:
22 | super().__init__()
23 | self.description = description
24 |
25 | def __str__(self):
26 | return "Couldn't rename deck: " + self.description
27 |
--------------------------------------------------------------------------------
/pylib/anki/importing/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | from anki.importing.anki2 import Anki2Importer
5 | from anki.importing.apkg import AnkiPackageImporter
6 | from anki.importing.csvfile import TextImporter
7 | from anki.importing.mnemo import MnemosyneImporter
8 | from anki.importing.pauker import PaukerImporter
9 | from anki.importing.supermemo_xml import SupermemoXmlImporter # type: ignore
10 | from anki.lang import _
11 |
12 | Importers = (
13 | (_("Text separated by tabs or semicolons (*)"), TextImporter),
14 | (_("Packaged Anki Deck/Collection (*.apkg *.colpkg *.zip)"), AnkiPackageImporter),
15 | (_("Mnemosyne 2.0 Deck (*.db)"), MnemosyneImporter),
16 | (_("Supermemo XML export (*.xml)"), SupermemoXmlImporter),
17 | (_("Pauker 1.8 Lesson (*.pau.gz)"), PaukerImporter),
18 | )
19 | """Used by the file system window, to ensure that it knows which kind of file to search for. And then which importer to use to import the file."""
20 |
--------------------------------------------------------------------------------
/pylib/anki/importing/base.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | from typing import Any, List, Optional
5 |
6 | from anki.collection import Collection
7 | from anki.utils import maxID
8 |
9 | # Base importer
10 | ##########################################################################
11 |
12 |
13 | class Importer:
14 |
15 | needMapper = False
16 | needDelimiter = False
17 | dst: Optional[Collection]
18 |
19 | def __init__(self, col: Collection, file: str) -> None:
20 | self.file = file
21 | self.log: List[str] = []
22 | self.col = col.weakref()
23 | self.total = 0
24 | self.dst = None
25 |
26 | def run(self) -> None:
27 | pass
28 |
29 | # Timestamps
30 | ######################################################################
31 | # It's too inefficient to check for existing ids on every object,
32 | # and a previous import may have created timestamps in the future, so we
33 | # need to make sure our starting point is safe.
34 |
35 | def _prepareTS(self) -> None:
36 | self._ts = maxID(self.dst.db)
37 |
38 | def ts(self) -> Any:
39 | self._ts += 1
40 | return self._ts
41 |
--------------------------------------------------------------------------------
/pylib/anki/py.typed:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/anki/py.typed
--------------------------------------------------------------------------------
/pylib/anki/sound.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | """
5 | Sound/TTS references extracted from card text.
6 |
7 | These can be accessed via eg card.question_av_tags()
8 | """
9 |
10 | from __future__ import annotations
11 |
12 | import re
13 | from dataclasses import dataclass
14 | from typing import List, Union
15 |
16 |
17 | @dataclass
18 | class TTSTag:
19 | """Records information about a text to speech tag.
20 |
21 | See tts.py for more information.
22 | """
23 |
24 | field_text: str
25 | lang: str
26 | voices: List[str]
27 | speed: float
28 | # each arg should be in the form 'foo=bar'
29 | other_args: List[str]
30 |
31 |
32 | @dataclass
33 | class SoundOrVideoTag:
34 | """Contains the filename inside a [sound:...] tag.
35 |
36 | Video files also use [sound:...].
37 | """
38 |
39 | filename: str
40 |
41 |
42 | # note this does not include image tags, which are handled with HTML.
43 | AVTag = Union[SoundOrVideoTag, TTSTag]
44 |
45 | AV_REF_RE = re.compile(r"\[anki:(play:(.):(\d+))\]")
46 |
47 |
48 | def strip_av_refs(text: str) -> str:
49 | return AV_REF_RE.sub("", text)
50 |
--------------------------------------------------------------------------------
/pylib/anki/statsbg.py:
--------------------------------------------------------------------------------
1 | # from subtlepatterns.com; CC BY-SA 3.0.
2 | # by Daniel Beaton
3 | # https://www.toptal.com/designers/subtlepatterns/fancy-deboss/
4 | bg = """\
5 | iVBORw0KGgoAAAANSUhEUgAAABIAAAANCAMAAACTkM4rAAAAM1BMVEXy8vLz8/P5+fn19fXt7e329vb4+Pj09PTv7+/u7u739/fw8PD7+/vx8fHr6+v6+vrs7Oz2LjW2AAAAkUlEQVR42g3KyXHAQAwDQYAQj12ItvOP1qqZZwMMPVnd06XToQvz4L2HDQ2iRgkvA7yPPB+JD+OUPnfzZ0JNZh6kkQus5NUmR7g4Jpxv5XN6nYWNmtlq9o3zuK6w3XRsE1pQIEGPIsdtTP3m2cYwlPv6MbL8/QASsKppZefyDmJPbxvxa/NrX1TJ1yp20fhj9D+SiAWWLU8myQAAAABJRU5ErkJggg==
6 | """
7 |
--------------------------------------------------------------------------------
/pylib/anki/storage.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | # Legacy code expects to find Collection in this module.
5 |
6 | from anki.collection import Collection
7 |
8 | _Collection = Collection
9 |
--------------------------------------------------------------------------------
/pylib/anki/sync.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | from .httpclient import HttpClient
5 |
6 | AnkiRequestsClient = HttpClient
7 |
8 |
9 | class Syncer:
10 | def sync(self) -> str:
11 | pass
12 |
--------------------------------------------------------------------------------
/pylib/anki/types.py:
--------------------------------------------------------------------------------
1 | import enum
2 | from typing import Any, NoReturn
3 |
4 |
5 | class _Impossible(enum.Enum):
6 | pass
7 |
8 |
9 | def assert_impossible(arg: NoReturn) -> NoReturn:
10 | raise Exception(f"unexpected arg received: {type(arg)} {arg}")
11 |
12 |
13 | # mypy is not yet smart enough to do exhaustiveness checking on literal types,
14 | # so this will fail at runtime instead of typecheck time :-(
15 | def assert_impossible_literal(arg: Any) -> NoReturn:
16 | raise Exception(f"unexpected arg received: {type(arg)} {arg}")
17 |
--------------------------------------------------------------------------------
/pylib/mypy.ini:
--------------------------------------------------------------------------------
1 | [mypy]
2 | python_version = 3.7
3 | pretty = false
4 | no_strict_optional = true
5 | show_error_codes = true
6 | check_untyped_defs = true
7 | disallow_untyped_decorators = True
8 | warn_redundant_casts = True
9 | warn_unused_configs = True
10 |
11 | [mypy-win32file]
12 | ignore_missing_imports = True
13 | [mypy-win32pipe]
14 | ignore_missing_imports = True
15 | [mypy-pywintypes]
16 | ignore_missing_imports = True
17 | [mypy-winerror]
18 | ignore_missing_imports = True
19 | [mypy-distro]
20 | ignore_missing_imports = True
21 | [mypy-pyaudio]
22 | ignore_missing_imports = True
23 | [mypy-win32api]
24 | ignore_missing_imports = True
25 | [mypy-xml.dom]
26 | ignore_missing_imports = True
27 | [mypy-psutil]
28 | ignore_missing_imports = True
29 | [mypy-bs4]
30 | ignore_missing_imports = True
31 | [mypy-ankirspy]
32 | ignore_missing_imports = True
33 | [mypy-stringcase]
34 | ignore_missing_imports = True
35 |
--------------------------------------------------------------------------------
/pylib/pyproject.toml:
--------------------------------------------------------------------------------
1 | [build-system]
2 | # Minimum requirements for the build system to execute.
3 | # https://stackoverflow.com/questions/48048745/setup-py-require-a-recent-version-of-setuptools-before-trying-to-install
4 | requires = ["setuptools", "wheel"]
5 |
--------------------------------------------------------------------------------
/pylib/requirements.dev:
--------------------------------------------------------------------------------
1 | wheel
2 | mypy
3 | mypy_protobuf>=1.21
4 | black
5 | pytest
6 | # fixme: when isort 5.0 is released, switch to pypi
7 | git+https://github.com/ankitects/isort#egg=isort
8 | # fixme: when pylint supports isort 5.0, switch to pypi
9 | git+https://github.com/ankitects/pylint#egg=pylint
10 | stringcase==1.2.0
11 |
--------------------------------------------------------------------------------
/pylib/setup.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 | import os
4 |
5 | import setuptools
6 |
7 | install_requires = [
8 | "beautifulsoup4",
9 | "requests[socks]",
10 | "decorator",
11 | "protobuf",
12 | 'orjson; platform_machine == "x86_64"',
13 | 'psutil; sys_platform == "win32"',
14 | 'distro; sys_platform != "darwin" and sys_platform != "win32"',
15 | ]
16 |
17 | # maturin develop hides the package from pip - https://github.com/ankitects/anki/pull/600
18 | if not os.environ.get("SKIP_ANKI_RSPY", False):
19 | install_requires.append("ankirspy==2.1.28") # automatically updated 1
20 |
21 | setuptools.setup(
22 | name="anki",
23 | version="2.1.28", # automatically updated 2
24 | author="Ankitects Pty Ltd",
25 | description="Anki's library code",
26 | long_description="Anki's library code",
27 | long_description_content_type="text/markdown",
28 | url="https://apps.ankiweb.net",
29 | packages=setuptools.find_packages(".", exclude=["tests"]),
30 | license="License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
31 | package_data={"anki": ["py.typed"]},
32 | classifiers=[],
33 | python_requires=">=3.7",
34 | install_requires=install_requires,
35 | )
36 |
--------------------------------------------------------------------------------
/pylib/tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/__init__.py
--------------------------------------------------------------------------------
/pylib/tests/support/anki12-broken.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/anki12-broken.anki
--------------------------------------------------------------------------------
/pylib/tests/support/anki12-due.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/anki12-due.anki
--------------------------------------------------------------------------------
/pylib/tests/support/anki12.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/anki12.anki
--------------------------------------------------------------------------------
/pylib/tests/support/anki2-alpha.anki2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/anki2-alpha.anki2
--------------------------------------------------------------------------------
/pylib/tests/support/diffmodels1.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/diffmodels1.anki
--------------------------------------------------------------------------------
/pylib/tests/support/diffmodels2-1.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/diffmodels2-1.apkg
--------------------------------------------------------------------------------
/pylib/tests/support/diffmodels2-2.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/diffmodels2-2.apkg
--------------------------------------------------------------------------------
/pylib/tests/support/diffmodels2.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/diffmodels2.anki
--------------------------------------------------------------------------------
/pylib/tests/support/diffmodeltemplates-1.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/diffmodeltemplates-1.apkg
--------------------------------------------------------------------------------
/pylib/tests/support/diffmodeltemplates-2.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/diffmodeltemplates-2.apkg
--------------------------------------------------------------------------------
/pylib/tests/support/fake.png:
--------------------------------------------------------------------------------
1 | abc
2 |
--------------------------------------------------------------------------------
/pylib/tests/support/invalid-ords.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/invalid-ords.anki
--------------------------------------------------------------------------------
/pylib/tests/support/media.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/media.apkg
--------------------------------------------------------------------------------
/pylib/tests/support/mnemo.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/mnemo.db
--------------------------------------------------------------------------------
/pylib/tests/support/suspended12.anki:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/suspended12.anki
--------------------------------------------------------------------------------
/pylib/tests/support/text-2fields.txt:
--------------------------------------------------------------------------------
1 | # this is a test file
2 | 食べる to eat
3 | 飲む to drink
4 | テスト test
5 | to eat 食べる
6 | 飲む to drink
7 | 多すぎる too many fields
8 | not, enough, fields
9 | 遊ぶ
10 | to play
11 |
--------------------------------------------------------------------------------
/pylib/tests/support/text-tags.txt:
--------------------------------------------------------------------------------
1 | foo bar baz,qux
2 | foo2 bar2 baz2
3 |
--------------------------------------------------------------------------------
/pylib/tests/support/text-update.txt:
--------------------------------------------------------------------------------
1 | 1 x
2 |
--------------------------------------------------------------------------------
/pylib/tests/support/update1.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/update1.apkg
--------------------------------------------------------------------------------
/pylib/tests/support/update2.apkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tests/support/update2.apkg
--------------------------------------------------------------------------------
/pylib/tests/test_flags.py:
--------------------------------------------------------------------------------
1 | from tests.shared import getEmptyCol
2 |
3 |
4 | def test_flags():
5 | col = getEmptyCol()
6 | n = col.newNote()
7 | n["Front"] = "one"
8 | n["Back"] = "two"
9 | cnt = col.addNote(n)
10 | c = n.cards()[0]
11 | # make sure higher bits are preserved
12 | origBits = 0b101 << 3
13 | c.flags = origBits
14 | c.flush()
15 | # no flags to start with
16 | assert c.userFlag() == 0
17 | assert len(col.findCards("flag:0")) == 1
18 | assert len(col.findCards("flag:1")) == 0
19 | # set flag 2
20 | col.setUserFlag(2, [c.id])
21 | c.load()
22 | assert c.userFlag() == 2
23 | assert c.flags & origBits == origBits
24 | assert len(col.findCards("flag:0")) == 0
25 | assert len(col.findCards("flag:2")) == 1
26 | assert len(col.findCards("flag:3")) == 0
27 | # change to 3
28 | col.setUserFlag(3, [c.id])
29 | c.load()
30 | assert c.userFlag() == 3
31 | # unset
32 | col.setUserFlag(0, [c.id])
33 | c.load()
34 | assert c.userFlag() == 0
35 |
36 | # should work with Cards method as well
37 | c.setUserFlag(2)
38 | assert c.userFlag() == 2
39 | c.setUserFlag(3)
40 | assert c.userFlag() == 3
41 | c.setUserFlag(0)
42 | assert c.userFlag() == 0
43 |
--------------------------------------------------------------------------------
/pylib/tests/test_stats.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: UTF-8 -*-
3 |
4 | import os
5 | import tempfile
6 |
7 | from tests.shared import getEmptyCol
8 |
9 |
10 | def test_stats():
11 | d = getEmptyCol()
12 | f = d.newNote()
13 | f["Front"] = "foo"
14 | d.addNote(f)
15 | c = f.cards()[0]
16 | # card stats
17 | assert d.cardStats(c)
18 | d.reset()
19 | c = d.sched.getCard()
20 | d.sched.answerCard(c, 3)
21 | d.sched.answerCard(c, 2)
22 | assert d.cardStats(c)
23 |
24 |
25 | def test_graphs_empty():
26 | d = getEmptyCol()
27 | assert d.stats().report()
28 |
29 |
30 | def test_graphs():
31 | dir = tempfile.gettempdir()
32 | d = getEmptyCol()
33 | g = d.stats()
34 | rep = g.report()
35 | with open(os.path.join(dir, "test.html"), "w", encoding="UTF-8") as f:
36 | f.write(rep)
37 | return
38 |
--------------------------------------------------------------------------------
/pylib/tests/test_template.py:
--------------------------------------------------------------------------------
1 | from tests.shared import getEmptyCol
2 |
3 |
4 | def test_deferred_frontside():
5 | d = getEmptyCol()
6 | m = d.models.current()
7 | m["tmpls"][0]["qfmt"] = "{{custom:Front}}"
8 | d.models.save(m)
9 |
10 | f = d.newNote()
11 | f["Front"] = "xxtest"
12 | f["Back"] = ""
13 | d.addNote(f)
14 |
15 | assert "xxtest" in f.cards()[0].a()
16 |
--------------------------------------------------------------------------------
/pylib/tools/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | This directory contains tools used to create Anki's executable. It
6 | does not contain code directly executed in Anki. In particular, it
7 | contains the [list of hooks](hookslib.py), which gets compiled to the
8 | [actual code used in anki](../anki/hooks.py).
9 |
10 | The [diff sched](diff-sched.py) file deals with the difference between
11 | both schedulers.
12 |
--------------------------------------------------------------------------------
/pylib/tools/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/pylib/tools/__init__.py
--------------------------------------------------------------------------------
/pylib/tools/diff-sched.py:
--------------------------------------------------------------------------------
1 | # a quick script to compare methods in the two schedulers
2 |
3 | import inspect
4 | from anki.sched import Scheduler as S1
5 | from anki.schedv2 import Scheduler as S2
6 | from difflib import SequenceMatcher, unified_diff
7 | import sys
8 |
9 | s1map = {}
10 | for k, v in S1.__dict__.items():
11 | if not callable(v):
12 | continue
13 | s1map[k] = v
14 |
15 | s2map = {}
16 | for k, v in S2.__dict__.items():
17 | if not callable(v):
18 | continue
19 | s2map[k] = v
20 |
21 | for k, v in s1map.items():
22 | if k not in s2map:
23 | continue
24 |
25 | s1b = inspect.getsource(v)
26 | s2b = inspect.getsource(s2map[k])
27 | ratio = SequenceMatcher(None, s1b, s2b).ratio()
28 |
29 | if ratio >= 0.90:
30 | print("*" * 80)
31 | print(k, "%d%%" % (ratio * 100))
32 | sys.stdout.writelines(
33 | "\n".join(unified_diff(s1b.splitlines(), s2b.splitlines(), lineterm=""))
34 | )
35 | print()
36 |
--------------------------------------------------------------------------------
/qt/.gitignore:
--------------------------------------------------------------------------------
1 | *.mo
2 | *.pyc
3 | *\#
4 | *~
5 | .*.swp
6 | .build
7 | .coverage
8 | .DS_Store
9 | .mypy_cache
10 | .pytype
11 | __pycache__
12 | aqt/forms
13 | tools/runanki.system
14 | ts/node_modules
15 | aqt_data/locale
16 | aqt_data/web/deckbrowser.js
17 | aqt_data/web/editor.js
18 | aqt_data/web/overview.js
19 | aqt_data/web/reviewer-bottom.js
20 | aqt_data/web/reviewer.js
21 | aqt_data/web/webview.js
22 | aqt_data/web/toolbar.js
23 | dist
24 | aqt.egg-info
25 | build
26 | i18n/anki.pot
27 |
--------------------------------------------------------------------------------
/qt/.isort.cfg:
--------------------------------------------------------------------------------
1 | [settings]
2 | skip=aqt/forms,anki/backend_pb2.py,backend_pb2.pyi
3 | multi_line_output=3
4 | include_trailing_comma=True
5 | force_grid_wrap=0
6 | use_parentheses=True
7 | line_length=88
8 | ensure_newline_before_comments=true
9 | known_first_party=anki
10 |
--------------------------------------------------------------------------------
/qt/.pylintrc:
--------------------------------------------------------------------------------
1 | [MESSAGES CONTROL]
2 | disable=C,R,
3 | fixme,
4 | unused-wildcard-import,
5 | attribute-defined-outside-init,
6 | redefined-builtin,
7 | wildcard-import,
8 | broad-except,
9 | bare-except,
10 | unused-argument,
11 | unused-variable,
12 | redefined-outer-name,
13 | global-statement,
14 | protected-access,
15 | arguments-differ,
16 |
--------------------------------------------------------------------------------
/qt/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | This folder deal with all of the front end of anki. Contrary to what
6 | its name suggest, it does not contains only code which deal with qt.
7 |
8 | # designer
9 | This subfolder contains Qt Creator files, used to generate the
10 | front-end windows.
11 |
12 | # aqt
13 | This file contains all front-end code dealing with the windows created
14 | in designer. It also contains code to direcetly generate a few form windows.
15 |
16 | # ts
17 | Contains all of the files related to the "web" part of the
18 | back-end. Contrary to its name, it does not only contains typescript,
19 | but also html, css.
20 |
21 | # aqt_data
22 | Contains some web related library (mathjax, jquery, jquery-ui... )
23 |
24 | # ftl
25 | Contains English version of String displayed to users. It currently
26 | only contains most recent strings, as most string as directly in the
27 | code.
28 |
29 | # polib
30 | Files related to the [polib library](https://pypi.org/project/polib/),
31 | related to translation.
32 |
33 | # tests
34 | Contains tests related to the back-end. Currently related to add-ons
35 | and translations
36 |
37 | # tools
38 | Contains tools used to compile back-end code into something that can
39 | be executed in anki.
40 |
--------------------------------------------------------------------------------
/qt/anki.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Anki
3 | Comment=An intelligent spaced-repetition memory training program
4 | GenericName=Flashcards
5 | Exec=anki %f
6 | TryExec=anki
7 | Icon=anki
8 | Categories=Education;Languages;KDE;Qt;
9 | Terminal=false
10 | Type=Application
11 | Version=1.0
12 | MimeType=application/x-apkg;application/x-anki;application/x-ankiaddon;
13 |
--------------------------------------------------------------------------------
/qt/anki.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/anki.png
--------------------------------------------------------------------------------
/qt/anki.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Anki 2.1 collection package
6 |
7 |
8 |
9 |
10 | Anki 2.0 deck package
11 |
12 |
13 |
14 |
15 | Anki 2.1 add-on package
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/qt/aqt/.gitignore:
--------------------------------------------------------------------------------
1 | buildinfo.py
2 | colors.py
3 |
--------------------------------------------------------------------------------
/qt/aqt/pinnedmodules.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | # this file is imported as part of the bundling process to ensure certain
5 | # modules are included in the distribution
6 |
7 | # pylint: disable=import-error,unused-import
8 |
9 | # included implicitly in the past, and relied upon by some add-ons
10 | import cgi
11 | import decimal
12 |
13 | # useful for add-ons
14 | import logging
15 | import logging.config
16 | import logging.handlers
17 |
18 | # required by requests library
19 | import queue
20 | import typing
21 | import uuid
22 |
23 | # included implicitly in the past, and relied upon by some add-ons
24 | import PyQt5.QtSvg
25 | import socks
26 |
27 | # legacy compat
28 | import anki.storage
29 | import anki.sync
30 | from anki.utils import isLin, isWin
31 |
32 | # included implicitly in the past, and relied upon by some add-ons
33 |
34 |
35 | # external module access in Windows
36 | if isWin:
37 | import pythoncom
38 | import win32com
39 | import pywintypes
40 |
41 | if isLin:
42 | import fcntl
43 |
--------------------------------------------------------------------------------
/qt/aqt/py.typed:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt/py.typed
--------------------------------------------------------------------------------
/qt/aqt/schema_change_tracker.py:
--------------------------------------------------------------------------------
1 | # Copyright: Ankitects Pty Ltd and contributors
2 | # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | from __future__ import annotations
5 |
6 | import enum
7 |
8 | from aqt import AnkiQt
9 |
10 |
11 | class Change(enum.Enum):
12 | NO_CHANGE = 0
13 | BASIC_CHANGE = 1
14 | SCHEMA_CHANGE = 2
15 |
16 |
17 | class ChangeTracker:
18 | _changed = Change.NO_CHANGE
19 |
20 | def __init__(self, mw: AnkiQt):
21 | self.mw = mw
22 |
23 | def mark_basic(self):
24 | if self._changed == Change.NO_CHANGE:
25 | self._changed = Change.BASIC_CHANGE
26 |
27 | def mark_schema(self) -> bool:
28 | "If false, processing should be aborted."
29 | if self._changed != Change.SCHEMA_CHANGE:
30 | if not self.mw.confirm_schema_modification():
31 | return False
32 | self._changed = Change.SCHEMA_CHANGE
33 | return True
34 |
35 | def changed(self) -> bool:
36 | return self._changed != Change.NO_CHANGE
37 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/.gitignore:
--------------------------------------------------------------------------------
1 | *.css
2 |
3 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/browsersel.js:
--------------------------------------------------------------------------------
1 | /* CSS Browser Selector v0.4.0 (Nov 02, 2010) Rafael Lima (http://rafael.adm.br). CC BY 2.5. */function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);
2 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/anki-logo-thin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/anki-logo-thin.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/media-record.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/media-record.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/more.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/paperclip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/paperclip.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/refresh.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_bold.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_clear.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_cloze.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_cloze.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_italic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_italic.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_sub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_sub.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_super.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_super.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/imgs/text_under.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/imgs/text_under.png
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/conf.js:
--------------------------------------------------------------------------------
1 | window.MathJax = {
2 | jax: ["input/TeX", "output/CommonHTML"],
3 | extensions: ["tex2jax.js"],
4 | TeX: {
5 | extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js", "mhchem.js"]
6 | },
7 | tex2jax: {
8 | displayMath: [["\\[", "\\]"]],
9 | processRefs: false,
10 | processEnvironments: false,
11 | },
12 | messageStyle: "none",
13 | skipStartupTypeset: true,
14 | showMathMenu: false,
15 | AuthorInit: function () {
16 | MathJax.Hub.processSectionDelay = 0;
17 | MathJax.Hub.processUpdateTime = 0;
18 | MathJax.Hub.processUpdateDelay = 0;
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/extensions/HTML-CSS/handle-floats.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/extensions/HTML-CSS/handle-floats.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Extension["HTML-CSS/handle-floats"]={version:"2.7.1"};MathJax.Hub.Startup.signal.Post("HTML-CSS handle-floats Ready");MathJax.Ajax.loadComplete("[MathJax]/extensions/HTML-CSS/handle-floats.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/extensions/TeX/autobold.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/extensions/TeX/autobold.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Extension["TeX/autobold"]={version:"2.7.1"};MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.InputJax.TeX;a.prefilterHooks.Add(function(d){var c=d.script.parentNode.insertBefore(document.createElement("span"),d.script);c.visibility="hidden";c.style.fontFamily="Times, serif";c.appendChild(document.createTextNode("ABCXYZabcxyz"));var b=c.offsetWidth;c.style.fontWeight="bold";if(b&&c.offsetWidth===b){d.math="\\boldsymbol{"+d.math+"}"}c.parentNode.removeChild(c)});MathJax.Hub.Startup.signal.Post("TeX autobold Ready")});MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/autobold.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/aqt_data/web/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u0311":c.ACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/CombDiacritMarks.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/CombDiactForSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/CombDiactForSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u20DB":c.ACCENT,"\u20DC":c.ACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/CombDiactForSymbols.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/Dingbats.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/Dingbats.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2772":c.OPEN},postfix:{"\u2773":c.CLOSE}}});MathJax.Ajax.loadComplete(a.optableDir+"/Dingbats.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/GeneralPunctuation.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/GeneralPunctuation.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2016":[0,0,b.ORD,{fence:true,stretchy:true}],"\u2018":[0,0,b.OPEN,{fence:true}],"\u201C":[0,0,b.OPEN,{fence:true}]},postfix:{"\u2016":[0,0,b.ORD,{fence:true,stretchy:true}],"\u2019":[0,0,b.CLOSE,{fence:true}],"\u201D":[0,0,b.CLOSE,{fence:true}]}}});MathJax.Ajax.loadComplete(a.optableDir+"/GeneralPunctuation.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/GreekAndCoptic.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/GreekAndCoptic.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u03F6":c.REL}}});MathJax.Ajax.loadComplete(a.optableDir+"/GreekAndCoptic.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/Latin1Supplement.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/Latin1Supplement.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u00B0":c.ORD,"\u00B4":c.ACCENT,"\u00B8":c.ACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/Latin1Supplement.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/LetterlikeSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/LetterlikeSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2145":c.ORD21,"\u2146":[2,0,b.ORD]}}});MathJax.Ajax.loadComplete(a.optableDir+"/LetterlikeSymbols.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/MiscMathSymbolsA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/MiscMathSymbolsA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u27E6":c.OPEN,"\u27EA":c.OPEN,"\u27EC":c.OPEN},postfix:{"\u27E7":c.CLOSE,"\u27EB":c.CLOSE,"\u27ED":c.CLOSE}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscMathSymbolsA.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/MiscSymbolsAndArrows.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/MiscSymbolsAndArrows.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u2B45":c.RELSTRETCH,"\u2B46":c.RELSTRETCH}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscSymbolsAndArrows.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/MiscTechnical.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/MiscTechnical.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u23B4":c.WIDEACCENT,"\u23B5":c.WIDEACCENT,"\u23DC":c.WIDEACCENT,"\u23DD":c.WIDEACCENT,"\u23E0":c.WIDEACCENT,"\u23E1":c.WIDEACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscTechnical.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/SpacingModLetters.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/SpacingModLetters.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u02CD":c.WIDEACCENT,"\u02DA":c.ACCENT,"\u02DD":c.ACCENT,"\u02F7":c.WIDEACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/SpacingModLetters.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/element/mml/optable/SupplementalArrowsA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/element/mml/optable/SupplementalArrowsA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u27F0":c.RELSTRETCH,"\u27F1":c.RELSTRETCH,"\u27FB":c.WIDEREL,"\u27FD":c.WIDEREL,"\u27FE":c.WIDEREL,"\u27FF":c.WIDEREL}}});MathJax.Ajax.loadComplete(a.optableDir+"/SupplementalArrowsA.js")})(MathJax.ElementJax.mml);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/AsciiMath/config.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/AsciiMath/config.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.InputJax.AsciiMath=MathJax.InputJax({id:"AsciiMath",version:"2.7.1",directory:MathJax.InputJax.directory+"/AsciiMath",extensionDir:MathJax.InputJax.extensionDir+"/AsciiMath",config:{fixphi:true,useMathMLspacing:true,displaystyle:true,decimalsign:"."}});MathJax.InputJax.AsciiMath.Register("math/asciimath");MathJax.InputJax.AsciiMath.loadComplete("config.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/config.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/config.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.InputJax.MathML=MathJax.InputJax({id:"MathML",version:"2.7.1",directory:MathJax.InputJax.directory+"/MathML",extensionDir:MathJax.InputJax.extensionDir+"/MathML",entityDir:MathJax.InputJax.directory+"/MathML/entities",config:{useMathMLspacing:false}});MathJax.InputJax.MathML.Register("math/mml");MathJax.InputJax.MathML.loadComplete("config.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/f.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/f.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{Fcy:"\u0424",FilledSmallSquare:"\u25FC",Fouriertrf:"\u2131",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",filig:"\uFB01",fjlig:"\u0066\u006A",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",forall:"\u2200",forkv:"\u2AD9",fpartint:"\u2A0D",frac12:"\u00BD",frac13:"\u2153",frac14:"\u00BC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\u00BE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044"});MathJax.Ajax.loadComplete(a.entityDir+"/f.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/h.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/h.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{HARDcy:"\u042A",Hcirc:"\u0124",HilbertSpace:"\u210B",HorizontalLine:"\u2500",Hstrok:"\u0126",hArr:"\u21D4",hairsp:"\u200A",half:"\u00BD",hamilt:"\u210B",hardcy:"\u044A",harr:"\u2194",harrcir:"\u2948",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hercon:"\u22B9",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",horbar:"\u2015",hslash:"\u210F",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010"});MathJax.Ajax.loadComplete(a.entityDir+"/h.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/j.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/j.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{Jcirc:"\u0134",Jcy:"\u0419",Jsercy:"\u0408",Jukcy:"\u0404",jcirc:"\u0135",jcy:"\u0439",jsercy:"\u0458",jukcy:"\u0454"});MathJax.Ajax.loadComplete(a.entityDir+"/j.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/k.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/k.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{KHcy:"\u0425",KJcy:"\u040C",Kappa:"\u039A",Kcedil:"\u0136",Kcy:"\u041A",kcedil:"\u0137",kcy:"\u043A",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045C"});MathJax.Ajax.loadComplete(a.entityDir+"/k.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/m.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/m.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{Map:"\u2905",Mcy:"\u041C",MediumSpace:"\u205F",Mellintrf:"\u2133",Mu:"\u039C",mDDot:"\u223A",male:"\u2642",maltese:"\u2720",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",mcy:"\u043C",mdash:"\u2014",measuredangle:"\u2221",micro:"\u00B5",mid:"\u2223",midast:"\u002A",midcir:"\u2AF0",middot:"\u00B7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",mp:"\u2213",mstpos:"\u223E",mumap:"\u22B8"});MathJax.Ajax.loadComplete(a.entityDir+"/m.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/q.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/q.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{QUOT:"\u0022",qint:"\u2A0C",qprime:"\u2057",quaternions:"\u210D",quatint:"\u2A16",quest:"\u003F",questeq:"\u225F",quot:"\u0022"});MathJax.Ajax.loadComplete(a.entityDir+"/q.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/w.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/w.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",wedgeq:"\u2259",wp:"\u2118",wr:"\u2240",wreath:"\u2240"});MathJax.Ajax.loadComplete(a.entityDir+"/w.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/x.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/x.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",xhArr:"\u27FA",xharr:"\u27F7",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0"});MathJax.Ajax.loadComplete(a.entityDir+"/x.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/y.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/y.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{YAcy:"\u042F",YIcy:"\u0407",YUcy:"\u042E",Yacute:"\u00DD",Ycirc:"\u0176",Ycy:"\u042B",Yuml:"\u0178",yacute:"\u00FD",yacy:"\u044F",ycirc:"\u0177",ycy:"\u044B",yicy:"\u0457",yucy:"\u044E",yuml:"\u00FF"});MathJax.Ajax.loadComplete(a.entityDir+"/y.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/MathML/entities/z.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/MathML/entities/z.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | (function(a){MathJax.Hub.Insert(a.Parse.Entity,{ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017D",Zcy:"\u0417",Zdot:"\u017B",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zacute:"\u017A",zcaron:"\u017E",zcy:"\u0437",zdot:"\u017C",zeetrf:"\u2128",zhcy:"\u0436",zwj:"\u200D",zwnj:"\u200C"});MathJax.Ajax.loadComplete(a.entityDir+"/z.js")})(MathJax.InputJax.MathML);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/input/TeX/config.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/input/TeX/config.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.InputJax.TeX=MathJax.InputJax({id:"TeX",version:"2.7.1",directory:MathJax.InputJax.directory+"/TeX",extensionDir:MathJax.InputJax.extensionDir+"/TeX",config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%",equationNumbers:{autoNumber:"none",formatNumber:function(a){return a},formatTag:function(a){return"("+a+")"},formatID:function(a){return"mjx-eqn-"+String(a).replace(/[:"'<>&]/g,"")},formatURL:function(b,a){return a+"#"+escape(b)},useLabelIds:true}},resetEquationNumbers:function(){}});MathJax.InputJax.TeX.Register("math/tex");MathJax.InputJax.TeX.loadComplete("config.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9484:[694,-306,500,55,444],9488:[694,-306,500,55,444],9492:[366,22,500,55,444],9496:[366,22,500,55,444],9585:[694,195,889,0,860],9586:[694,195,889,0,860]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/BoxDrawing.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{770:[845,-561,0,-2347,13],771:[899,-628,0,-2332,-3]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{10003:[706,34,833,84,749],10016:[716,22,833,48,786]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/Dingbats.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9416:[709,175,902,8,894]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/EnclosedAlphanum.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8245:[560,-43,275,12,244]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/GeneralPunctuation.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9632:[689,0,778,55,722],9633:[689,0,778,55,722],9650:[575,20,722,84,637],9651:[575,20,722,84,637],9654:[539,41,778,83,694],9660:[576,19,722,84,637],9661:[576,19,722,84,637],9664:[539,41,778,83,694],9674:[716,132,667,56,611]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/GeometricShapes.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{989:[605,85,778,55,719],1008:[434,6,667,37,734]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/GreekAndCoptic.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{160:[0,0,250,0,0],165:[683,0,750,11,738],174:[709,175,947,32,915],240:[749,21,556,42,509]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/Latin1Supplement.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{295:[695,13,540,42,562]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/LatinExtendedA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8463:[695,13,540,42,562],8487:[684,22,722,44,675],8498:[695,1,556,55,497],8502:[763,21,667,-22,687],8503:[764,43,444,-22,421],8504:[764,43,667,54,640],8513:[705,23,639,37,577]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/LetterlikeSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{10731:[716,132,667,56,611]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MiscMathSymbolsB.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9733:[694,111,944,49,895]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MiscSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8994:[378,-122,778,55,722],8995:[378,-143,778,55,722]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MiscTechnical.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{57350:[430,23,222,-20,240],57351:[431,24,389,-20,407],57352:[605,85,778,55,719],57353:[434,6,667,37,734],57356:[752,284,778,82,693],57357:[752,284,778,82,693],57358:[919,421,778,82,694],57359:[801,303,778,82,694],57360:[801,303,778,82,694],57361:[919,421,778,82,694],57366:[828,330,778,82,694],57367:[752,332,778,82,694],57368:[828,330,778,82,694],57369:[752,333,778,82,693],57370:[634,255,778,84,693],57371:[634,254,778,82,691]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/PUA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{710:[845,-561,2333,-14,2346],732:[899,-628,2333,1,2330]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/SpacingModLetters.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"]={directory:"Fraktur/Bold",family:"MathJax_Fraktur",weight:"bold",testString:"MathJax Fraktur",Ranges:[[0,127,"BasicLatin"],[128,57343,"Other"],[58112,58128,"PUA"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Fraktur-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"],{160:[0,0,250,0,0],8216:[708,-411,254,53,187],8217:[692,-394,254,58,193]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/Other.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"],{58113:[630,27,587,64,512],58114:[693,212,394,37,408],58115:[681,219,387,36,384],58116:[473,212,593,67,531],58117:[684,27,393,33,387],58120:[679,220,981,32,875],58121:[717,137,727,17,633]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/PUA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur={directory:"Fraktur/Regular",family:"MathJax_Fraktur",testString:"MathJax Fraktur",Ranges:[[0,127,"BasicLatin"],[128,57343,"Other"],[58112,58128,"PUA"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Fraktur"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur,{160:[0,0,250,0,0],8216:[708,-410,215,45,158],8217:[692,-395,215,49,163]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/Other.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur,{58112:[683,32,497,75,430],58113:[616,30,498,35,432],58114:[680,215,333,29,339],58115:[679,224,329,28,318],58116:[471,214,503,52,449],58117:[686,20,333,26,315],58118:[577,21,334,29,347],58119:[475,22,501,10,514]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/PUA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Greek-bold"]={directory:"Greek/Bold",family:"MathJax_Greek",weight:"bold",testString:"\u0393 \u03A5 \u039B",32:[0,0,250,0,0],160:[0,0,250,0,0],915:[680,0,692,39,643],916:[698,0,958,56,901],920:[696,10,894,64,829],923:[698,0,806,40,765],926:[675,0,767,48,718],928:[680,0,900,39,860],931:[686,0,831,64,766],933:[697,0,894,64,829],934:[686,0,831,64,766],936:[686,0,894,64,829],937:[696,1,831,51,779]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Greek-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Greek/Bold/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Greek={directory:"Greek/Regular",family:"MathJax_Greek",testString:"\u0393 \u03A5 \u039B",32:[0,0,250,0,0],160:[0,0,250,0,0],915:[680,0,625,25,582],916:[716,0,833,46,786],920:[705,22,778,56,722],923:[716,0,694,32,661],926:[677,0,667,42,624],928:[680,0,750,25,724],931:[683,0,722,55,666],933:[705,0,778,55,722],934:[683,0,722,56,665],936:[683,0,778,55,722],937:[704,0,722,44,677]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Greek"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Greek/Regular/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{768:[706,-503,0,-461,-237],769:[706,-503,0,-339,-115],770:[694,-520,0,-449,-127],771:[694,-552,0,-479,-97],772:[607,-540,0,-495,-81],774:[694,-500,0,-473,-103],775:[695,-525,0,-373,-203],776:[695,-535,0,-479,-97],778:[702,-536,0,-415,-161],779:[714,-511,0,-442,-82],780:[660,-515,0,-445,-131],824:[711,210,0,-734,-161]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8407:[723,-513,0,-542,-33]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/CombDiactForSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8194:[0,0,500,0,0],8195:[0,0,999,0,0],8196:[0,0,333,0,0],8197:[0,0,250,0,0],8198:[0,0,167,0,0],8201:[0,0,167,0,0],8202:[0,0,83,0,0],8211:[300,-249,575,0,574],8212:[300,-249,1150,0,1149],8216:[694,-329,319,58,245],8217:[694,-329,319,74,261],8220:[694,-329,603,110,564],8221:[694,-329,603,38,492],8224:[702,211,511,64,446],8225:[702,202,511,64,446],8230:[171,-1,1295,74,1221],8242:[563,-33,344,35,331]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/GeneralPunctuation.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{9651:[711,-1,1022,69,953],9657:[540,39,575,33,542],9661:[500,210,1022,68,953],9667:[539,38,575,33,542],9711:[711,211,1150,65,1084]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/GeometricShapes.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{160:[0,0,250,0,0],168:[695,-535,575,96,478],172:[371,-61,767,64,702],175:[607,-540,575,80,494],176:[702,-536,575,160,414],177:[728,35,894,64,829],180:[706,-503,575,236,460],215:[530,28,894,168,726],247:[597,96,894,64,828]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/Latin1Supplement.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{305:[452,8,394,24,367]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/LatinExtendedA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{567:[451,201,439,-12,420]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/LatinExtendedB.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8463:[694,8,668,45,642],8465:[702,8,831,64,798],8467:[702,19,474,-1,446],8472:[461,210,740,72,726],8476:[711,16,831,42,824],8501:[694,0,703,64,638]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/LetterlikeSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{10216:[750,249,447,127,382],10217:[750,249,447,64,319]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MiscMathSymbolsA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{9824:[719,129,894,64,829],9825:[711,24,894,65,828],9826:[719,154,894,64,828],9827:[719,129,894,32,861],9837:[750,17,447,64,381],9838:[741,223,447,57,389],9839:[724,224,447,63,382]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MiscSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8968:[750,248,511,194,493],8969:[750,248,511,17,317],8970:[749,248,511,194,493],8971:[749,248,511,17,317],8994:[405,-108,1150,65,1084],8995:[392,-126,1150,64,1085]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MiscTechnical.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{710:[694,-520,575,126,448],711:[660,-515,575,130,444],713:[607,-540,575,80,494],714:[706,-503,575,236,460],715:[706,-503,575,114,338],728:[694,-500,575,102,472],729:[695,-525,575,202,372],730:[702,-536,575,160,414],732:[694,-552,575,96,478]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/SpacingModLetters.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{10815:[686,0,900,39,860],10927:[696,199,894,96,797],10928:[697,199,894,96,797]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/SuppMathOperators.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{10229:[518,17,1805,64,1741],10230:[518,17,1833,96,1773],10231:[518,17,2126,64,2061],10232:[547,46,1868,64,1804],10233:[547,46,1870,64,1804],10234:[547,46,2126,64,2060],10236:[518,17,1833,65,1773]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/SupplementalArrowsA.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{768:[697,-500,0,-222,-74],769:[697,-500,0,-173,39],770:[694,-527,0,-251,17],771:[668,-558,0,-265,60],772:[589,-544,0,-282,54],774:[694,-515,0,-237,62],775:[669,-548,0,-165,-41],776:[669,-554,0,-251,45],778:[716,-542,0,-199,3],779:[697,-503,0,-248,65],780:[638,-502,0,-236,29]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{8211:[285,-248,511,91,554],8212:[285,-248,1022,117,1038],8216:[694,-379,307,197,362],8217:[694,-379,307,213,377],8220:[694,-379,514,243,606],8221:[694,-379,514,176,538]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/GeneralPunctuation.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{160:[0,0,250,0,0]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/Latin1Supplement.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{8463:[695,13,540,42,562]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/LetterlikeSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{768:[699,-505,0,-394,-205],769:[699,-505,0,-297,-107],770:[694,-531,0,-388,-113],771:[668,-565,0,-417,-84],772:[590,-544,0,-431,-70],774:[694,-515,0,-408,-93],775:[669,-549,0,-310,-191],776:[669,-554,0,-405,-96],778:[715,-542,0,-353,-148],779:[701,-510,0,-378,-80],780:[644,-513,0,-386,-115],824:[716,215,0,-639,-140]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{9651:[716,0,889,59,828],9657:[505,5,500,26,474],9661:[500,215,889,59,828],9667:[505,5,500,26,473],9711:[715,215,1000,56,944]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/GeometricShapes.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{9824:[727,130,778,55,723],9825:[716,33,778,55,723],9826:[727,162,778,55,723],9827:[726,130,778,28,750],9837:[750,22,389,55,332],9838:[734,223,389,65,324],9839:[723,223,389,55,333]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/MiscSymbols.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{730:[715,-542,500,147,352]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/SpacingModLetters.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-bold"],{768:[694,-537,0,-458,-218],769:[694,-537,0,-334,-93],770:[694,-537,0,-442,-109],771:[694,-548,0,-458,-93],772:[660,-560,0,-474,-77],774:[694,-552,0,-470,-80],775:[695,-596,0,-356,-194],776:[695,-595,0,-459,-91],778:[694,-538,0,-365,-119],779:[694,-537,0,-440,-94],780:[657,-500,0,-442,-109]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Bold/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-bold"]={directory:"SansSerif/Bold",family:"MathJax_SansSerif",weight:"bold",testString:"MathJax SansSerif ^ _",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_SansSerif-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Bold/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-italic"],{768:[694,-527,0,-270,-87],769:[694,-527,0,-190,63],770:[694,-527,0,-310,33],771:[677,-543,0,-301,60],772:[631,-552,0,-314,64],774:[694,-508,0,-284,73],775:[680,-576,0,-180,-54],776:[680,-582,0,-273,40],778:[693,-527,0,-227,-2],779:[694,-527,0,-287,63],780:[654,-487,0,-283,60]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Italic/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-italic"]={directory:"SansSerif/Italic",family:"MathJax_SansSerif",style:"italic",testString:"MathJax SansSerif ^ _",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_SansSerif-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Italic/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_SansSerif,{768:[694,-527,0,-417,-199],769:[694,-527,0,-302,-84],770:[694,-527,0,-422,-79],771:[677,-543,0,-417,-84],772:[631,-552,0,-431,-70],774:[694,-508,0,-427,-74],775:[680,-576,0,-302,-198],776:[680,-582,0,-397,-104],778:[694,-527,0,-319,-99],779:[694,-527,0,-399,-84],780:[654,-487,0,-422,-79]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Regular/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_SansSerif={directory:"SansSerif/Regular",family:"MathJax_SansSerif",testString:"MathJax SansSerif ^ _",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_SansSerif"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Regular/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Script={directory:"Script/Regular",family:"MathJax_Script",testString:"MATHJAX SCRIPT",skew:{65:0.389,66:0.194,67:0.278,68:0.111,69:0.139,70:0.222,71:0.25,72:0.333,73:0.333,74:0.417,75:0.361,76:0.306,77:0.444,78:0.389,79:0.167,80:0.222,81:0.278,82:0.194,83:0.333,84:0.222,85:0.25,86:0.222,87:0.25,88:0.278,89:0.194,90:0.306},Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Script"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Script/Regular/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Script,{160:[0,0,250,0,0]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Script/Regular/Other.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter,{768:[611,-485,0,-409,-195],769:[611,-485,0,-331,-117],770:[611,-460,0,-429,-97],771:[611,-466,0,-438,-88],772:[577,-500,0,-452,-74],774:[611,-504,0,-446,-79],776:[612,-519,0,-421,-104],778:[619,-499,0,-344,-182],780:[577,-449,0,-427,-99]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/CombDiacritMarks.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter={directory:"Typewriter/Regular",family:"MathJax_Typewriter",testString:"MathJax Typewriter |",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Typewriter"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter,{160:[0,0,250,0,0],305:[431,-1,525,72,462],567:[431,228,525,48,376],915:[611,0,525,25,488],916:[623,0,525,35,489],920:[621,10,525,56,468],923:[623,-1,525,30,495],926:[611,-1,525,33,491],928:[611,-1,525,16,508],931:[611,-1,525,40,484],933:[622,-1,525,38,486],934:[611,-1,525,41,483],936:[611,-1,525,37,487],937:[622,-1,525,32,492],2018:[611,-287,525,175,349],2019:[681,-357,525,176,350],8242:[623,-334,525,211,313]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/Other.js");
20 |
--------------------------------------------------------------------------------
/qt/aqt_data/web/mathjax/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js:
--------------------------------------------------------------------------------
1 | /*
2 | * /MathJax/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js
3 | *
4 | * Copyright (c) 2009-2017 The MathJax Consortium
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_WinChrome={directory:"WinChrome/Regular",family:"MathJax_WinChrome",testString:"> T d \u23A6 \u2A00",skew:{84:0.0278,58096:0.0319},32:[0,0,250,0,0],62:[540,40,778,83,694],84:[717,68,545,34,833],100:[694,11,511,101,567],160:[0,0,250,0,0],8899:[750,249,833,55,777],9126:[1155,644,667,0,347],10752:[949,449,1511,56,1454],58096:[720,69,644,38,947],58097:[587,85,894,96,797]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_WinChrome"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/WinChrome/Regular/Main.js"]);
20 |
--------------------------------------------------------------------------------
/qt/designer/icons.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | icons/anki.png
4 | icons/tag.svg
5 | icons/deck.svg
6 | icons/notetype.svg
7 | icons/heart.svg
8 | icons/collection.svg
9 | icons/media-record.png
10 |
11 |
12 |
--------------------------------------------------------------------------------
/qt/designer/icons/anki.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/designer/icons/anki.png
--------------------------------------------------------------------------------
/qt/designer/icons/deck.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
--------------------------------------------------------------------------------
/qt/designer/icons/heart.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
--------------------------------------------------------------------------------
/qt/designer/icons/media-record.png:
--------------------------------------------------------------------------------
1 | ../../aqt_data/web/imgs/media-record.png
--------------------------------------------------------------------------------
/qt/designer/icons/notetype.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/qt/designer/icons/tag.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/qt/ftl/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/qt/ftl/addons.ftl:
--------------------------------------------------------------------------------
1 | addons-possibly-involved = Add-ons possibly involved: { $addons }
2 | addons-failed-to-load =
3 | An add-on you installed failed to load. If problems persist, please go to the Tools>Add-ons menu, and disable or delete the add-on.
4 |
5 | When loading '{$name}':
6 | {$traceback}
7 | # Shown in the add-on configuration screen (Tools>Add-ons>Config), in the title bar
8 | addons-config-window-title = Configure '{$name}'
9 | addons-config-validation-error = There was a problem with the provided configuration: {$problem}, at path {$path}, against schema {$schema}.
10 |
--------------------------------------------------------------------------------
/qt/ftl/preferences.ftl:
--------------------------------------------------------------------------------
1 | # shown instead of the 'night mode' option when night mode is forced on because
2 | # macOS is in dark mode
3 | preferences-dark-mode-active = macOS is in dark mode
4 |
5 | preferences-dark-mode-disable =
6 | To show Anki in light mode while macOS is in dark mode, please
7 | see the Night Mode section of the manual.
8 |
--------------------------------------------------------------------------------
/qt/ftl/profiles.ftl:
--------------------------------------------------------------------------------
1 | profiles-folder-readme =
2 | This folder stores all of your Anki data in a single location,
3 | to make backups easy. To tell Anki to use a different location,
4 | please see:
5 |
6 | {$link}
7 |
--------------------------------------------------------------------------------
/qt/ftl/scripts/fetch-latest-translations:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | echo "Downloading latest translations..."
6 |
7 | if [ ! -d repo ]; then
8 | git clone https://github.com/ankitects/anki-desktop-ftl repo
9 | fi
10 |
11 | (cd repo && git pull)
12 |
--------------------------------------------------------------------------------
/qt/ftl/scripts/upload-latest-templates:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # expects to be run from the ftl folder
4 | #
5 |
6 | set -eu -o pipefail ${SHELLFLAGS}
7 |
8 | test -d repo || exit 1
9 |
10 | rsync -av --delete *.ftl repo/desktop/templates/
11 | (cd repo && git add desktop; git commit -m update || true; git push)
12 |
--------------------------------------------------------------------------------
/qt/po/.gitignore:
--------------------------------------------------------------------------------
1 | .build
2 | repo
3 | ftl
4 | strings.json
5 |
--------------------------------------------------------------------------------
/qt/po/requirements.txt:
--------------------------------------------------------------------------------
1 | polib
2 |
--------------------------------------------------------------------------------
/qt/po/scripts/build-mo-files:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # build mo files
4 | #
5 |
6 | set -eu -o pipefail ${SHELLFLAGS}
7 |
8 | targetDir="../aqt_data/locale/gettext"
9 | mkdir -p $targetDir
10 |
11 | echo "Compiling *.po..."
12 | for file in repo/desktop/*/anki.po
13 | do
14 | outdir=$(echo "$file" | \
15 | perl -pe "s%repo/desktop/(.*)/anki.po%$targetDir/\1/LC_MESSAGES%")
16 | outfile="$outdir/anki.mo"
17 | mkdir -p $outdir
18 | if ! msgmerge -q "$file" repo/desktop/anki.pot | msgfmt - --output-file="$outfile"; then
19 | echo "error building $file";
20 | exit 1;
21 | fi;
22 | done
23 |
--------------------------------------------------------------------------------
/qt/po/scripts/copy-qt-files:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | out=../aqt_data/locale/qt
6 | mkdir -p "$out"
7 |
8 | qtTranslations="$(python -c "from PyQt5.QtCore import *; import sys; sys.stdout.write(QLibraryInfo.location(QLibraryInfo.TranslationsPath))")"
9 |
10 | case "$(uname -s)" in
11 | CYGWIN*|MINGW*|MSYS*)
12 | qtTranslations="$(cygpath -u "${qtTranslations}")"
13 | ;;
14 | esac
15 |
16 | rsync -a "$qtTranslations/" "$out/"
17 |
--------------------------------------------------------------------------------
/qt/po/scripts/fetch-latest-translations:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | echo "Downloading latest translations..."
6 |
7 | if [ ! -d repo ]; then
8 | git clone https://github.com/ankitects/anki-desktop-i18n repo
9 | fi
10 |
11 | (cd repo && git pull)
12 |
--------------------------------------------------------------------------------
/qt/po/scripts/update-po-template:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # update template .pot file from source code strings
4 | #
5 |
6 | set -eu -o pipefail ${SHELLFLAGS}
7 |
8 | topDir=$(dirname $0)/../../../
9 | cd $topDir
10 |
11 | all=all.files
12 | echo "Updating anki.pot..."
13 | for i in pylib/anki/{*.py,importing/*.py}; do
14 | echo $i >> $all
15 | done
16 | for i in qt/aqt/{*.py,forms/*.py}; do
17 | echo $i >> $all
18 | done
19 |
20 | xgettext -cT: -s --no-wrap --files-from=$all --output=qt/po/repo/desktop/anki.pot
21 | rm $all
22 |
--------------------------------------------------------------------------------
/qt/po/scripts/upload-latest-template:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | scripts/update-po-template
6 | (cd repo && git add desktop; git commit -m update; git push)
7 |
--------------------------------------------------------------------------------
/qt/pyproject.toml:
--------------------------------------------------------------------------------
1 | [build-system]
2 | # Minimum requirements for the build system to execute.
3 | # https://stackoverflow.com/questions/48048745/setup-py-require-a-recent-version-of-setuptools-before-trying-to-install
4 | requires = ["setuptools", "wheel"]
5 |
--------------------------------------------------------------------------------
/qt/requirements.dev:
--------------------------------------------------------------------------------
1 | mock
2 |
--------------------------------------------------------------------------------
/qt/requirements.qt:
--------------------------------------------------------------------------------
1 | pyqt5==5.15.0
2 | pyqtwebengine==5.15.0
3 |
4 |
5 |
--------------------------------------------------------------------------------
/qt/runanki:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import aqt
4 | aqt.run()
5 |
--------------------------------------------------------------------------------
/qt/tests/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | Contains tests related to the back-end. Currently related to add-ons
6 | and translations
7 |
--------------------------------------------------------------------------------
/qt/tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/qt/tests/__init__.py
--------------------------------------------------------------------------------
/qt/tests/test_i18n.py:
--------------------------------------------------------------------------------
1 | import anki.lang
2 | from anki.rsbackend import TR
3 |
4 |
5 | def test_no_collection_i18n():
6 | anki.lang.set_lang("zz", "")
7 | tr2 = anki.lang.current_i18n.translate
8 | no_uni = anki.lang.without_unicode_isolation
9 | assert no_uni(tr2(TR.STATISTICS_REVIEWS, reviews=2)) == "2 reviews"
10 |
11 | anki.lang.set_lang("ja", "")
12 | tr2 = anki.lang.current_i18n.translate
13 | assert no_uni(tr2(TR.STATISTICS_REVIEWS, reviews=2)) == "2 枚の復習カード"
14 |
--------------------------------------------------------------------------------
/qt/tools/anki-wait.bat:
--------------------------------------------------------------------------------
1 | cd ..
2 | set PYTHONPATH=../lib
3 | python anki
4 | pause
5 |
--------------------------------------------------------------------------------
/qt/tools/build_ui.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # generate python files based on the designer ui files. pyuic5 and pyrcc5
4 | # should be on the path.
5 | #
6 |
7 | set -eu -o pipefail ${SHELLFLAGS}
8 |
9 | if [ ! -d "designer" ]
10 | then
11 | echo "Please run this from the project root"
12 | exit
13 | fi
14 |
15 | mkdir -p aqt/forms
16 |
17 | init=aqt/forms/__init__.py
18 | temp=aqt/forms/scratch
19 | rm -f $init $temp
20 | echo "# This file auto-generated by build_ui.sh. Don't edit." > $init
21 | echo "__all__ = [" >> $init
22 |
23 | echo "Generating forms.."
24 | for i in designer/*.ui
25 | do
26 | base=$(basename $i .ui)
27 | py="aqt/forms/${base}.py"
28 | echo " \"$base\"," >> $init
29 | echo "from . import $base" >> $temp
30 | if [ $i -nt $py ]; then
31 | echo " * "$py
32 | pyuic5 --from-imports $i -o $py.tmp
33 | (cat < $py
34 | # -*- coding: utf-8 -*-
35 | # pylint: disable=unsubscriptable-object,unused-import
36 | from anki.lang import _
37 | EOF
38 | rm $py.tmp
39 | fi
40 | done
41 | echo "]" >> $init
42 | cat $temp >> $init
43 | rm $temp
44 |
45 | echo "Building resources.."
46 | pyrcc5 designer/icons.qrc -o aqt/forms/icons_rc.py
47 |
--------------------------------------------------------------------------------
/qt/tools/extract_scss_colors.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: UTF-8 -*-
3 | import re
4 |
5 | import json
6 |
7 | colors = {}
8 |
9 | for line in open("ts/scss/_vars.scss"):
10 | line = line.strip()
11 | if not line:
12 | continue
13 | m = re.match(r"^\$(.+): (.+);$", line)
14 | if not m:
15 | print("failed to match", line)
16 | continue
17 |
18 | var = m.group(1)
19 | val = m.group(2)
20 |
21 | colors[var] = val
22 |
23 | with open("aqt/colors.py", "w") as buf:
24 | buf.write("# this file is auto-generated from _vars.scss\n")
25 | buf.write("colors = " + json.dumps(colors))
26 |
--------------------------------------------------------------------------------
/qt/tools/runanki.system.in:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import sys
4 | sys.path.append("@PREFIX@/share/anki")
5 |
6 | import aqt
7 | aqt.run()
8 |
--------------------------------------------------------------------------------
/qt/tools/typecheck-setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Anki bundles sip 5 generated typings that allow type checking Qt code when
4 | # installed next to the original modules. Attempting to use them as a separate
5 | # stubs distribution with MYPYPATH yielded a bunch of errors which I was not
6 | # able to resolve. A solution that doesn't require modifying the python install
7 | # would be welcome!
8 |
9 | set -eu -o pipefail ${SHELLFLAGS}
10 |
11 | # https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash
12 | if [[ -z "${OS+x}" ]]; then
13 | OS=unknown;
14 | fi
15 |
16 | TOOLS="$(cd "`dirname "$0"`"; pwd)"
17 | modDir="$(python -c 'import PyQt5, sys, os; sys.stdout.write(os.path.dirname(sys.modules["PyQt5"].__file__))')"
18 |
19 | # fix broken stubs in pyqt5.15.0 release
20 | (cd "$modDir" && perl -i'' -pe 's/(\s*None) =/$1_ =/' *.pyi && touch py.typed)
21 |
--------------------------------------------------------------------------------
/qt/ts/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "printWidth": 88,
4 | "tabWidth": 4,
5 | "semi": true
6 | }
7 |
--------------------------------------------------------------------------------
/qt/ts/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "anki-dtop-js",
3 | "version": "1.0.0",
4 | "description": "Anki desktop js support files",
5 | "scripts": {
6 | "build": "tsc --build && sass --no-source-map scss:../aqt_data/web",
7 | "pretty": "prettier --write src/*.ts",
8 | "check-pretty": "prettier --check src/*.ts"
9 | },
10 | "private": true,
11 | "author": "Ankitects Pty Ltd",
12 | "license": "AGPL-3.0-or-later",
13 | "devDependencies": {
14 | "@types/jquery": "^3.3.31",
15 | "@types/jqueryui": "^1.12.9",
16 | "@types/mathjax": "0.0.36",
17 | "prettier": "^1.19.1",
18 | "sass": "^1.25.0",
19 | "typescript": "^3.7.3"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/qt/ts/scss/_card_counts.scss:
--------------------------------------------------------------------------------
1 | @use 'vars';
2 |
3 | .review-count {
4 | color: vars.$day-review-count;
5 | }
6 |
7 | .new-count {
8 | color: vars.$day-new-count;
9 | }
10 |
11 | .learn-count {
12 | color: vars.$day-learn-count;
13 | }
14 |
15 | .zero-count {
16 | color: vars.$day-zero-count;
17 | }
18 |
19 | .nightMode {
20 | .review-count {
21 | color: vars.$night-review-count;
22 | }
23 |
24 | .new-count {
25 | color: vars.$night-new-count;
26 | }
27 |
28 | .learn-count {
29 | color: vars.$night-learn-count;
30 | }
31 |
32 | .zero-count {
33 | color: vars.$night-zero-count;
34 | }
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/qt/ts/scss/overview.scss:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | @use 'vars';
5 | @use 'card_counts';
6 |
7 | .smallLink {
8 | font-size: 10px;
9 | }
10 |
11 | h3 {
12 | margin-bottom: 0;
13 | }
14 |
15 | .descfont {
16 | padding: 1em;
17 | color: vars.$day-slightly-grey-text;
18 | }
19 |
20 | .description {
21 | white-space: pre-wrap;
22 | }
23 |
24 | #fulldesc {
25 | display: none;
26 | }
27 |
28 | .descmid {
29 | width: 70%;
30 | margin: 0 auto 0;
31 | text-align: left;
32 | }
33 |
34 | .dyn {
35 | text-align: center;
36 | }
37 |
38 | .nightMode {
39 | .descfont {
40 | color: vars.$night-slightly-grey-text;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/qt/ts/scss/reviewer-bottom.scss:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | @use 'vars';
5 | @use 'card_counts';
6 |
7 | body {
8 | margin: 0;
9 | padding: 0;
10 | }
11 |
12 | button {
13 | min-width: 60px;
14 | white-space: nowrap;
15 | margin: 0.5em;
16 | }
17 |
18 | .hitem {
19 | margin-top: 2px;
20 | }
21 |
22 | .stat {
23 | padding-top: 5px;
24 | }
25 |
26 | .stat2 {
27 | padding-top: 3px;
28 | font-weight: normal;
29 | }
30 |
31 | .stattxt {
32 | padding-left: 5px;
33 | padding-right: 5px;
34 | white-space: nowrap;
35 | }
36 |
37 | #ansbut { margin-bottom: 1em; }
38 |
39 | .nobold {
40 | font-weight: normal;
41 | display: inline-block;
42 | padding-top: 4px;
43 | }
44 |
45 | .spacer {
46 | height: 18px;
47 | }
48 |
49 | .spacer2 {
50 | height: 16px;
51 | }
52 |
53 | #outer {
54 | border-top: 1px solid vars.$day-border;
55 | }
56 |
57 | #innertable {
58 | padding: 3px;
59 | }
60 |
61 | .nightMode {
62 | #outer {
63 | border-top-color: vars.$night-faint-border;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/qt/ts/scss/toolbar-bottom.scss:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | #header {
5 | border-bottom: 0;
6 | margin-bottom: 6px;
7 | margin-top: 0;
8 | padding: 9px;
9 | }
10 |
--------------------------------------------------------------------------------
/qt/ts/scss/webview.scss:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | @use 'vars';
5 | @use 'buttons';
6 |
7 | body {
8 | margin: 2em;
9 | color: vars.$day-text-fg;
10 |
11 | // currently this is injected via webview.py to try to match the
12 | // system background color
13 | // background: vars.$day-window-bg;
14 | }
15 |
16 | h1 {
17 | margin-bottom: 0.2em;
18 | }
19 |
20 | a {
21 | color: vars.$day-link;
22 | }
23 |
24 | body.nightMode {
25 | color: vars.$night-text-fg;
26 | background: vars.$night-window-bg;
27 | }
28 |
29 | body.nightMode::-webkit-scrollbar {
30 | background: vars.$night-window-bg;
31 | }
32 |
33 | body.nightMode::-webkit-scrollbar:horizontal {
34 | height: 12px;
35 | }
36 |
37 | body.nightMode::-webkit-scrollbar:vertical {
38 | width: 12px;
39 | }
40 |
41 | body.nightMode::-webkit-scrollbar-thumb {
42 | background: vars.$fusion-button-hover-bg;
43 | border-radius: 8px;
44 | }
45 |
46 | body.nightMode::-webkit-scrollbar-thumb:horizontal {
47 | min-width: 50px;
48 | }
49 |
50 | body.nightMode::-webkit-scrollbar-thumb:vertical {
51 | min-height: 50px;
52 | }
53 |
54 | .nightMode {
55 | a {
56 | color: vars.$night-link;
57 | }
58 | }
59 |
60 | body { overscroll-behavior: none; }
61 |
--------------------------------------------------------------------------------
/qt/ts/src/deckbrowser.ts:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | $(init);
5 |
6 | function init() {
7 | $("tr.deck").draggable({
8 | scroll: false,
9 |
10 | // can't use "helper: 'clone'" because of a bug in jQuery 1.5
11 | helper: function(event) {
12 | return $(this).clone(false);
13 | },
14 | delay: 200,
15 | opacity: 0.7,
16 | });
17 | $("tr.deck").droppable({
18 | drop: handleDropEvent,
19 | hoverClass: "drag-hover",
20 | });
21 | $("tr.top-level-drag-row").droppable({
22 | drop: handleDropEvent,
23 | hoverClass: "drag-hover",
24 | });
25 | }
26 |
27 | function handleDropEvent(event, ui) {
28 | const draggedDeckId = ui.draggable.attr("id");
29 | const ontoDeckId = $(this).attr("id") || "";
30 |
31 | pycmd("drag:" + draggedDeckId + "," + ontoDeckId);
32 | }
33 |
--------------------------------------------------------------------------------
/qt/ts/src/overview.ts:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | $(function() {
5 | $("#study").focus();
6 | });
7 |
--------------------------------------------------------------------------------
/qt/ts/src/toolbar.ts:
--------------------------------------------------------------------------------
1 | enum SyncState {
2 | NoChanges = 0,
3 | Normal,
4 | Full,
5 | }
6 |
7 | function updateSyncColor(state: SyncState) {
8 | const elem = document.getElementById("sync");
9 | switch (state) {
10 | case SyncState.NoChanges:
11 | elem.classList.remove("full-sync", "normal-sync");
12 | break;
13 | case SyncState.Normal:
14 | elem.classList.add("normal-sync");
15 | elem.classList.remove("full-sync");
16 | break;
17 | case SyncState.Full:
18 | elem.classList.add("full-sync");
19 | elem.classList.remove("normal-sync");
20 | break;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/qt/ts/src/types/global.d.ts:
--------------------------------------------------------------------------------
1 | declare function pycmd(cmd: string, result_callback?: (arg: any) => void): any;
2 |
--------------------------------------------------------------------------------
/qt/ts/src/webview.ts:
--------------------------------------------------------------------------------
1 | /* Copyright: Ankitects Pty Ltd and contributors
2 | * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */
3 |
4 | // prevent backspace key from going back a page
5 | document.addEventListener("keydown", function(evt: KeyboardEvent) {
6 | if (evt.keyCode !== 8) {
7 | return;
8 | }
9 | let isText = 0;
10 | const node = evt.target as Element;
11 | const nn = node.nodeName;
12 | if (nn === "INPUT" || nn === "TEXTAREA") {
13 | isText = 1;
14 | } else if (nn === "DIV" && (node as HTMLDivElement).contentEditable) {
15 | isText = 1;
16 | }
17 | if (!isText) {
18 | evt.preventDefault();
19 | }
20 | });
21 |
--------------------------------------------------------------------------------
/qt/ts/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6",
4 | "module": "commonjs",
5 | "lib": [
6 | "es6",
7 | "dom"
8 | ],
9 | "rootDir": "src",
10 | "outDir": "../aqt_data/web",
11 | "strict": true,
12 | /* Enable all strict type-checking options. */
13 | "noImplicitAny": false,
14 | /* Raise error on expressions and declarations with an implied 'any' type. */
15 | "strictNullChecks": false,
16 | /* Enable strict null checks. */
17 | "noImplicitThis": false,
18 | /* Raise error on 'this' expressions with an implied 'any' type. */
19 | "esModuleInterop": true
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/rslib/.gitignore:
--------------------------------------------------------------------------------
1 | Cargo.lock
2 | src/backend_proto.rs
3 | .build
4 | target
5 |
--------------------------------------------------------------------------------
/rslib/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | This file contains all of the rust part of the back-end of Anki. It
6 | does not deal with connecting rust with python, this is dealt in
7 | [rspy](../rspy).
8 |
9 | # ftl
10 | This subfolder contains the english version of strings which are
11 | related to the back-end and should be shown to the users.
12 |
13 | # src
14 | This subfolder contains the source code of the rust part of the
15 | back-end.
16 |
17 | # tests
18 | This subfolder contains unit tests for the rust part of the back-end.
19 |
--------------------------------------------------------------------------------
/rslib/README.md:
--------------------------------------------------------------------------------
1 | To build from scratch, please see https://github.com/ankitects/anki
2 |
--------------------------------------------------------------------------------
/rslib/ftl/.gitignore:
--------------------------------------------------------------------------------
1 | repo
2 |
--------------------------------------------------------------------------------
/rslib/ftl/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | Each .ftl file contains English version of strings, related to the
6 | back-end, and that may be shown to the user.
7 |
--------------------------------------------------------------------------------
/rslib/ftl/card-templates.ftl:
--------------------------------------------------------------------------------
1 | card-templates-changes-will-affect-notes =
2 | { $count ->
3 | [one] Changes below will affect the { $count } note that uses this card type.
4 | *[other] Changes below will affect the { $count } notes that use this card type.
5 | }
6 | card-templates-card-type = Card Type:
7 | card-templates-front-template = Front Template
8 | card-templates-back-template = Back Template
9 | card-templates-template-styling = Styling
10 | card-templates-front-preview = Front Preview
11 | card-templates-back-preview = Back Preview
12 | card-templates-preview-box = Preview
13 | card-templates-template-box = Template
14 | card-templates-sample-cloze = This is a {"{{c1::"}sample{"}}"} cloze deletion.
15 | card-templates-fill-empty = Fill Empty Fields
16 |
--------------------------------------------------------------------------------
/rslib/ftl/deck-config.ftl:
--------------------------------------------------------------------------------
1 | # Used in the deck configuration screen to show how many decks are used
2 | # by a particular configuration group, eg "Group1 (used by 3 decks)"
3 | deck-config-used-by-decks =
4 | used by { $decks ->
5 | [one] 1 deck
6 | *[other] { $decks } decks
7 | }
8 | deck-config-default-name = Default
9 |
--------------------------------------------------------------------------------
/rslib/ftl/empty-cards.ftl:
--------------------------------------------------------------------------------
1 | empty-cards-for-note-type = Empty cards for { $notetype }:
2 | empty-cards-count-line =
3 | { $empty_count } of { $existing_count } cards empty ({ $template_names }).
4 | empty-cards-window-title = Empty Cards
5 | empty-cards-preserve-notes-checkbox = Keep notes with no valid cards
6 | empty-cards-delete-button = Delete
7 | empty-cards-not-found = No empty cards.
8 | empty-cards-deleted-count = Deleted { $cards ->
9 | [one] { $cards } card.
10 | *[other] { $cards } cards.
11 | }
12 | empty-cards-delete-empty-cards = Delete Empty Cards
13 | empty-cards-delete-empty-notes = Delete Empty Notes
14 | empty-cards-deleting = Deleting...
15 |
--------------------------------------------------------------------------------
/rslib/ftl/filtering.ftl:
--------------------------------------------------------------------------------
1 | # True if a card is due/ready for review
2 | filtering-is-due = Due
3 |
--------------------------------------------------------------------------------
/rslib/ftl/findreplace.ftl:
--------------------------------------------------------------------------------
1 | findreplace-notes-updated = { $total ->
2 | [one] {$changed} of {$total} note updated
3 | *[other] {$changed} of {$total} notes updated
4 | }
5 |
--------------------------------------------------------------------------------
/rslib/ftl/importing.ftl:
--------------------------------------------------------------------------------
1 | importing-failed-debug-info = Import failed. Debugging info:
2 |
--------------------------------------------------------------------------------
/rslib/ftl/network.ftl:
--------------------------------------------------------------------------------
1 | network-offline = Please check your internet connection.
2 | network-timeout = Connection timed out. Please try again on a different network.
3 | network-proxy-auth = Your proxy requires authentication.
4 | network-other = A network error occurred.
5 |
6 | network-details = Error details: {$details}
7 |
--------------------------------------------------------------------------------
/rslib/ftl/notetypes.ftl:
--------------------------------------------------------------------------------
1 | ## Default field names in newly created note types
2 |
3 | notetypes-front-field = Front
4 | notetypes-back-field = Back
5 | notetypes-add-reverse-field = Add Reverse
6 | notetypes-text-field = Text
7 | notetypes-back-extra-field = Back Extra
8 |
9 | ## Default note type names
10 |
11 | notetypes-basic-name = Basic
12 | notetypes-basic-reversed-name = Basic (and reversed card)
13 | notetypes-basic-optional-reversed-name = Basic (optional reversed card)
14 | notetypes-basic-type-answer-name = Basic (type in the answer)
15 | notetypes-cloze-name = Cloze
16 |
17 | ## Default card template names
18 |
19 | notetypes-card-1-name = Card 1
20 | notetypes-card-2-name = Card 2
21 |
22 |
--------------------------------------------------------------------------------
/rslib/ftl/scripts/fetch-latest-translations:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | echo "Downloading latest translations..."
6 |
7 | if [ ! -d repo ]; then
8 | git clone https://github.com/ankitects/anki-core-i18n repo
9 | fi
10 |
11 | (cd repo && git pull)
12 |
--------------------------------------------------------------------------------
/rslib/ftl/scripts/upload-latest-templates:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # expects to be run from the ftl folder
4 | #
5 |
6 | set -eu -o pipefail ${SHELLFLAGS}
7 |
8 | test -d repo || exit 1
9 |
10 | rsync -av --delete *.ftl repo/core/templates/
11 | (cd repo && git add core; git commit -m update || true; git push)
12 |
13 |
--------------------------------------------------------------------------------
/rslib/ftl/search.ftl:
--------------------------------------------------------------------------------
1 | search-invalid = Invalid search - please check for typing mistakes.
2 |
--------------------------------------------------------------------------------
/rslib/rust-toolchain:
--------------------------------------------------------------------------------
1 | nightly-2020-02-27
2 |
--------------------------------------------------------------------------------
/rslib/rustfmt.toml:
--------------------------------------------------------------------------------
1 | ignore = ["backend_proto.rs"]
2 |
--------------------------------------------------------------------------------
/rslib/src/decks/counts.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | use crate::{collection::Collection, decks::DeckID, err::Result};
5 | use std::collections::HashMap;
6 |
7 | #[derive(Debug)]
8 | pub(crate) struct DueCounts {
9 | pub new: u32,
10 | pub review: u32,
11 | pub learning: u32,
12 | }
13 |
14 | impl Collection {
15 | pub(crate) fn due_counts(
16 | &mut self,
17 | limit_to: Option<&str>,
18 | ) -> Result> {
19 | let days_elapsed = self.timing_today()?.days_elapsed;
20 | let learn_cutoff = self.learn_cutoff();
21 | if let Some(limit) = limit_to {
22 | self.storage
23 | .due_counts_limited(self.sched_ver(), days_elapsed, learn_cutoff, limit)
24 | } else {
25 | self.storage
26 | .due_counts(self.sched_ver(), days_elapsed, learn_cutoff)
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/rslib/src/i18n/.gitignore:
--------------------------------------------------------------------------------
1 | autogen.rs
2 |
--------------------------------------------------------------------------------
/rslib/src/i18n/ftl/.gitignore:
--------------------------------------------------------------------------------
1 | *.ftl
2 |
--------------------------------------------------------------------------------
/rslib/src/lib.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | #![deny(unused_must_use)]
5 |
6 | pub mod backend;
7 | mod backend_proto;
8 | pub mod card;
9 | pub mod cloze;
10 | pub mod collection;
11 | pub mod config;
12 | pub mod dbcheck;
13 | pub mod deckconf;
14 | pub mod decks;
15 | pub mod err;
16 | pub mod findreplace;
17 | pub mod i18n;
18 | pub mod latex;
19 | pub mod log;
20 | pub mod media;
21 | pub mod notes;
22 | pub mod notetype;
23 | mod preferences;
24 | pub mod prelude;
25 | pub mod revlog;
26 | pub mod sched;
27 | pub mod search;
28 | pub mod serde;
29 | pub mod storage;
30 | mod sync;
31 | pub mod tags;
32 | pub mod template;
33 | pub mod template_filters;
34 | pub mod text;
35 | pub mod timestamp;
36 | pub mod types;
37 | pub mod undo;
38 | pub mod version;
39 |
--------------------------------------------------------------------------------
/rslib/src/media/schema.sql:
--------------------------------------------------------------------------------
1 | create table media (
2 | fname text not null primary key,
3 | csum text, -- null indicates deleted file
4 | mtime int not null, -- zero if deleted
5 | dirty int not null
6 | ) without rowid;
7 |
8 | create index idx_media_dirty on media (dirty) where dirty=1;
9 |
10 | create table meta (dirMod int, lastUsn int); insert into meta values (0, 0);
11 |
--------------------------------------------------------------------------------
/rslib/src/notetype/header.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{article}
2 | \special{papersize=3in,5in}
3 | \usepackage[utf8]{inputenc}
4 | \usepackage{amssymb,amsmath}
5 | \pagestyle{empty}
6 | \setlength{\parindent}{0in}
7 | \begin{document}
8 |
--------------------------------------------------------------------------------
/rslib/src/notetype/styling.css:
--------------------------------------------------------------------------------
1 | .card {
2 | font-family: arial;
3 | font-size: 20px;
4 | text-align: center;
5 | color: black;
6 | background-color: white;
7 | }
8 |
--------------------------------------------------------------------------------
/rslib/src/prelude.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | pub use crate::{
5 | card::CardID,
6 | collection::Collection,
7 | deckconf::DeckConfID,
8 | decks::DeckID,
9 | err::{AnkiError, Result},
10 | notes::NoteID,
11 | notetype::NoteTypeID,
12 | revlog::RevlogID,
13 | timestamp::{TimestampMillis, TimestampSecs},
14 | types::Usn,
15 | };
16 | pub use slog::{debug, Logger};
17 |
--------------------------------------------------------------------------------
/rslib/src/revlog.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | use crate::define_newtype;
5 |
6 | define_newtype!(RevlogID, i64);
7 |
--------------------------------------------------------------------------------
/rslib/src/search/deck_order.sql:
--------------------------------------------------------------------------------
1 | drop table if exists sort_order;
2 | create temporary table sort_order (
3 | pos integer primary key,
4 | did integer not null unique
5 | );
6 | insert into sort_order (did)
7 | select
8 | id
9 | from decks
10 | order by
11 | name;
--------------------------------------------------------------------------------
/rslib/src/search/mod.rs:
--------------------------------------------------------------------------------
1 | mod cards;
2 | mod notes;
3 | mod parser;
4 | mod sqlwriter;
5 |
6 | pub use cards::SortMode;
7 |
--------------------------------------------------------------------------------
/rslib/src/search/notes.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | use super::{parser::Node, sqlwriter::SqlWriter};
5 | use crate::collection::Collection;
6 | use crate::err::Result;
7 | use crate::notes::NoteID;
8 | use crate::search::parser::parse;
9 |
10 | impl Collection {
11 | pub fn search_notes(&mut self, search: &str) -> Result> {
12 | let top_node = Node::Group(parse(search)?);
13 | let writer = SqlWriter::new(self);
14 | let (sql, args) = writer.build_notes_query(&top_node)?;
15 |
16 | let mut stmt = self.storage.db.prepare(&sql)?;
17 | let ids: Vec<_> = stmt
18 | .query_map(&args, |row| row.get(0))?
19 | .collect::>()?;
20 |
21 | Ok(ids)
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/rslib/src/search/notetype_order.sql:
--------------------------------------------------------------------------------
1 | drop table if exists sort_order;
2 | create temporary table sort_order (
3 | pos integer primary key,
4 | ntid integer not null unique
5 | );
6 | insert into sort_order (ntid)
7 | select
8 | id
9 | from notetypes
10 | order by
11 | name;
--------------------------------------------------------------------------------
/rslib/src/search/template_order.sql:
--------------------------------------------------------------------------------
1 | drop table if exists sort_order;
2 | create temporary table sort_order (
3 | pos integer primary key,
4 | ntid integer not null,
5 | ord integer not null,
6 | unique(ntid, ord)
7 | );
8 | insert into sort_order (ntid, ord)
9 | select
10 | ntid,
11 | ord
12 | from templates
13 | order by
14 | name
--------------------------------------------------------------------------------
/rslib/src/serde.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | use serde::Deserialize as DeTrait;
5 | pub(crate) use serde_aux::field_attributes::{
6 | deserialize_bool_from_anything, deserialize_number_from_string,
7 | };
8 | use serde_json::Value;
9 |
10 | pub(crate) fn default_on_invalid<'de, T, D>(deserializer: D) -> Result
11 | where
12 | T: Default + DeTrait<'de>,
13 | D: serde::de::Deserializer<'de>,
14 | {
15 | let v: Value = DeTrait::deserialize(deserializer)?;
16 | Ok(T::deserialize(v).unwrap_or_default())
17 | }
18 |
--------------------------------------------------------------------------------
/rslib/src/storage/card/add_card.sql:
--------------------------------------------------------------------------------
1 | insert into cards (
2 | id,
3 | nid,
4 | did,
5 | ord,
6 | mod,
7 | usn,
8 | type,
9 | queue,
10 | due,
11 | ivl,
12 | factor,
13 | reps,
14 | lapses,
15 | left,
16 | odue,
17 | odid,
18 | flags,
19 | data
20 | )
21 | values
22 | (
23 | (
24 | case
25 | when ?1 in (
26 | select
27 | id
28 | from cards
29 | ) then (
30 | select
31 | max(id) + 1
32 | from cards
33 | )
34 | else ?1
35 | end
36 | ),
37 | ?,
38 | ?,
39 | ?,
40 | ?,
41 | ?,
42 | ?,
43 | ?,
44 | ?,
45 | ?,
46 | ?,
47 | ?,
48 | ?,
49 | ?,
50 | ?,
51 | ?,
52 | ?,
53 | ?
54 | )
--------------------------------------------------------------------------------
/rslib/src/storage/card/add_or_update.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into cards (
3 | id,
4 | nid,
5 | did,
6 | ord,
7 | mod,
8 | usn,
9 | type,
10 | queue,
11 | due,
12 | ivl,
13 | factor,
14 | reps,
15 | lapses,
16 | left,
17 | odue,
18 | odid,
19 | flags,
20 | data
21 | )
22 | values
23 | (
24 | ?,
25 | ?,
26 | ?,
27 | ?,
28 | ?,
29 | ?,
30 | ?,
31 | ?,
32 | ?,
33 | ?,
34 | ?,
35 | ?,
36 | ?,
37 | ?,
38 | ?,
39 | ?,
40 | ?,
41 | ?
42 | )
--------------------------------------------------------------------------------
/rslib/src/storage/card/fix_due_new.sql:
--------------------------------------------------------------------------------
1 | update cards
2 | set
3 | due = (
4 | case
5 | when type = 0
6 | and queue != 4 then 1000000 + due % 1000000
7 | else due
8 | end
9 | ),
10 | mod = ?1,
11 | usn = ?2
12 | where
13 | due != (
14 | case
15 | when type = 0
16 | and queue != 4 then 1000000 + due % 1000000
17 | else due
18 | end
19 | )
20 | and due >= 1000000;
--------------------------------------------------------------------------------
/rslib/src/storage/card/fix_due_other.sql:
--------------------------------------------------------------------------------
1 | update cards
2 | set
3 | due = (
4 | case
5 | when queue = 2
6 | and due > 100000 then ?1
7 | else min(max(round(due), -2147483648), 2147483647)
8 | end
9 | ),
10 | mod = ?2,
11 | usn = ?3
12 | where
13 | due != (
14 | case
15 | when queue = 2
16 | and due > 100000 then ?1
17 | else min(max(round(due), -2147483648), 2147483647)
18 | end
19 | );
--------------------------------------------------------------------------------
/rslib/src/storage/card/fix_ivl.sql:
--------------------------------------------------------------------------------
1 | update cards
2 | set
3 | ivl = min(max(round(ivl), 0), 2147483647),
4 | mod = ?1,
5 | usn = ?2
6 | where
7 | ivl != min(max(round(ivl), 0), 2147483647)
--------------------------------------------------------------------------------
/rslib/src/storage/card/fix_odue.sql:
--------------------------------------------------------------------------------
1 | update cards
2 | set
3 | odue = (
4 | case
5 | when odue > 0
6 | and (
7 | type = 1
8 | or queue = 2
9 | )
10 | and not odid then 0
11 | else min(max(round(odue), -2147483648), 2147483647)
12 | end
13 | ),
14 | mod = ?1,
15 | usn = ?2
16 | where
17 | odue != (
18 | case
19 | when odue > 0
20 | and (
21 | type = 1
22 | or queue = 2
23 | )
24 | and not odid then 0
25 | else min(max(round(odue), -2147483648), 2147483647)
26 | end
27 | );
--------------------------------------------------------------------------------
/rslib/src/storage/card/get_card.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | nid,
4 | did,
5 | ord,
6 | cast(mod as integer),
7 | usn,
8 | type,
9 | queue,
10 | due,
11 | cast(ivl as integer),
12 | factor,
13 | reps,
14 | lapses,
15 | left,
16 | odue,
17 | odid,
18 | flags,
19 | data
20 | from cards
--------------------------------------------------------------------------------
/rslib/src/storage/card/update_card.sql:
--------------------------------------------------------------------------------
1 | update cards
2 | set
3 | nid = ?,
4 | did = ?,
5 | ord = ?,
6 | mod = ?,
7 | usn = ?,
8 | type = ?,
9 | queue = ?,
10 | due = ?,
11 | ivl = ?,
12 | factor = ?,
13 | reps = ?,
14 | lapses = ?,
15 | left = ?,
16 | odue = ?,
17 | odid = ?,
18 | flags = ?,
19 | data = ?
20 | where
21 | id = ?
--------------------------------------------------------------------------------
/rslib/src/storage/config/add.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into config (key, usn, mtime_secs, val)
3 | values
4 | (?, ?, ?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/config/get.sql:
--------------------------------------------------------------------------------
1 | select
2 | val
3 | from config
4 | where
5 | key = ?
--------------------------------------------------------------------------------
/rslib/src/storage/deck/alloc_id.sql:
--------------------------------------------------------------------------------
1 | select
2 | case
3 | when ?1 in (
4 | select
5 | id
6 | from decks
7 | ) then (
8 | select
9 | max(id) + 1
10 | from decks
11 | )
12 | else ?1
13 | end;
--------------------------------------------------------------------------------
/rslib/src/storage/deck/cards_for_deck.sql:
--------------------------------------------------------------------------------
1 | select
2 | id
3 | from cards
4 | where
5 | did = ?1
6 | or (
7 | odid != 0
8 | and odid = ?1
9 | )
--------------------------------------------------------------------------------
/rslib/src/storage/deck/due_counts.sql:
--------------------------------------------------------------------------------
1 | select
2 | did,
3 | -- new
4 | sum(queue = ?1),
5 | -- reviews
6 | sum(
7 | queue = ?2
8 | and due <= ?3
9 | ),
10 | -- learning
11 | sum(
12 | (
13 | case
14 | -- v2 scheduler
15 | ?4
16 | when 2 then (
17 | queue = ?5
18 | and due < ?6
19 | )
20 | or (
21 | queue = ?7
22 | and due <= ?3
23 | )
24 | else (
25 | -- v1 scheduler
26 | case
27 | when queue = ?5
28 | and due < ?6 then left / 1000
29 | when queue = ?7
30 | and due <= ?3 then 1
31 | else 0
32 | end
33 | )
34 | end
35 | )
36 | )
37 | from cards
38 | where
39 | queue >= 0
--------------------------------------------------------------------------------
/rslib/src/storage/deck/get_deck.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | name,
4 | mtime_secs,
5 | usn,
6 | common,
7 | kind
8 | from decks
--------------------------------------------------------------------------------
/rslib/src/storage/deck/missing-decks.sql:
--------------------------------------------------------------------------------
1 | select
2 | distinct did
3 | from cards
4 | where
5 | did not in (
6 | select
7 | id
8 | from decks
9 | );
--------------------------------------------------------------------------------
/rslib/src/storage/deck/update_deck.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into decks (id, name, mtime_secs, usn, common, kind)
3 | values
4 | (?, ?, ?, ?, ?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/deckconf/add.sql:
--------------------------------------------------------------------------------
1 | insert into deck_config (id, name, mtime_secs, usn, config)
2 | values
3 | (
4 | (
5 | case
6 | when ?1 in (
7 | select
8 | id
9 | from deck_config
10 | ) then (
11 | select
12 | max(id) + 1
13 | from deck_config
14 | )
15 | else ?1
16 | end
17 | ),
18 | ?,
19 | ?,
20 | ?,
21 | ?
22 | );
--------------------------------------------------------------------------------
/rslib/src/storage/deckconf/add_or_update.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into deck_config (id, name, mtime_secs, usn, config)
3 | values
4 | (?, ?, ?, ?, ?);
--------------------------------------------------------------------------------
/rslib/src/storage/deckconf/get.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | name,
4 | mtime_secs,
5 | usn,
6 | config
7 | from deck_config
8 |
--------------------------------------------------------------------------------
/rslib/src/storage/deckconf/update.sql:
--------------------------------------------------------------------------------
1 | update deck_config
2 | set
3 | name = ?,
4 | mtime_secs = ?,
5 | usn = ?,
6 | config = ?
7 | where
8 | id = ?;
--------------------------------------------------------------------------------
/rslib/src/storage/graves/add.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or ignore into graves (usn, oid, type)
3 | values
4 | (?, ?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/note/add.sql:
--------------------------------------------------------------------------------
1 | insert into notes (
2 | id,
3 | guid,
4 | mid,
5 | mod,
6 | usn,
7 | tags,
8 | flds,
9 | sfld,
10 | csum,
11 | flags,
12 | data
13 | )
14 | values
15 | (
16 | (
17 | case
18 | when ?1 in (
19 | select
20 | id
21 | from notes
22 | ) then (
23 | select
24 | max(id) + 1
25 | from notes
26 | )
27 | else ?1
28 | end
29 | ),
30 | ?,
31 | ?,
32 | ?,
33 | ?,
34 | ?,
35 | ?,
36 | ?,
37 | ?,
38 | 0,
39 | ""
40 | )
--------------------------------------------------------------------------------
/rslib/src/storage/note/add_or_update.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into notes (
3 | id,
4 | guid,
5 | mid,
6 | mod,
7 | usn,
8 | tags,
9 | flds,
10 | sfld,
11 | csum,
12 | flags,
13 | data
14 | )
15 | values
16 | (
17 | ?,
18 | ?,
19 | ?,
20 | ?,
21 | ?,
22 | ?,
23 | ?,
24 | ?,
25 | ?,
26 | 0,
27 | ""
28 | )
--------------------------------------------------------------------------------
/rslib/src/storage/note/get.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | guid,
4 | mid,
5 | mod,
6 | usn,
7 | tags,
8 | flds
9 | from notes
--------------------------------------------------------------------------------
/rslib/src/storage/note/is_orphaned.sql:
--------------------------------------------------------------------------------
1 | select
2 | count(id) = 0
3 | from cards
4 | where
5 | nid = ?;
--------------------------------------------------------------------------------
/rslib/src/storage/note/update.sql:
--------------------------------------------------------------------------------
1 | update notes
2 | set
3 | guid = ?,
4 | mid = ?,
5 | mod = ?,
6 | usn = ?,
7 | tags = ?,
8 | flds = ?,
9 | sfld = ?,
10 | csum = ?
11 | where
12 | id = ?
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/add_notetype.sql:
--------------------------------------------------------------------------------
1 | insert into notetypes (id, name, mtime_secs, usn, config)
2 | values
3 | (
4 | (
5 | case
6 | when ?1 in (
7 | select
8 | id
9 | from notetypes
10 | ) then (
11 | select
12 | max(id) + 1
13 | from notetypes
14 | )
15 | else ?1
16 | end
17 | ),
18 | ?,
19 | ?,
20 | ?,
21 | ?
22 | );
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/add_or_update.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into notetypes (id, name, mtime_secs, usn, config)
3 | values
4 | (?, ?, ?, ?, ?);
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/delete_cards_for_template.sql:
--------------------------------------------------------------------------------
1 | delete from cards
2 | where
3 | nid in (
4 | select
5 | id
6 | from notes
7 | where
8 | mid = ?
9 | )
10 | and ord = ?;
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/existing_cards.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | nid,
4 | ord,
5 | -- original deck
6 | (
7 | case
8 | odid
9 | when 0 then did
10 | else odid
11 | end
12 | ),
13 | -- new position if card is empty
14 | (
15 | case
16 | type
17 | when 0 then (
18 | case
19 | odue
20 | when 0 then max(0, due)
21 | else max(odue, 0)
22 | end
23 | )
24 | else null
25 | end
26 | )
27 | from cards c
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/field_names_for_notes.sql:
--------------------------------------------------------------------------------
1 | select
2 | distinct name
3 | from fields
4 | where
5 | ntid in (
6 | select
7 | mid
8 | from notes
9 | where
10 | id in
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/get_fields.sql:
--------------------------------------------------------------------------------
1 | select
2 | ord,
3 | name,
4 | config
5 | from fields
6 | where
7 | ntid = ?
8 | order by
9 | ord
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/get_notetype.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | name,
4 | mtime_secs,
5 | usn,
6 | config
7 | from notetypes
8 |
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/get_notetype_names.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | name
4 | from notetypes
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/get_templates.sql:
--------------------------------------------------------------------------------
1 | select
2 | ord,
3 | name,
4 | mtime_secs,
5 | usn,
6 | config
7 | from templates
8 | where
9 | ntid = ?
10 | order by
11 | ord
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/get_use_counts.sql:
--------------------------------------------------------------------------------
1 | select
2 | nt.id,
3 | nt.name,
4 | (
5 | select
6 | count(*)
7 | from notes n
8 | where
9 | nt.id = n.mid
10 | )
11 | from notetypes nt
12 | order by
13 | nt.name
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/update_fields.sql:
--------------------------------------------------------------------------------
1 | insert into fields (ntid, ord, name, config)
2 | values
3 | (?, ?, ?, ?);
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/update_notetype_config.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into notetype_config (ntid, config)
3 | values
4 | (?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/update_notetype_core.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or replace into notetypes (id, name, mtime_secs, usn, config)
3 | values
4 | (?, ?, ?, ?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/notetype/update_templates.sql:
--------------------------------------------------------------------------------
1 | insert into templates (ntid, ord, name, mtime_secs, usn, config)
2 | values
3 | (?, ?, ?, ?, ?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/revlog/add.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or ignore into revlog (
3 | id,
4 | cid,
5 | usn,
6 | ease,
7 | ivl,
8 | lastIvl,
9 | factor,
10 | time,
11 | type
12 | )
13 | values
14 | (?, ?, ?, ?, ?, ?, ?, ?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/revlog/fix_props.sql:
--------------------------------------------------------------------------------
1 | update revlog
2 | set
3 | ivl = min(max(round(ivl), -2147483648), 2147483647),
4 | lastIvl = min(max(round(lastIvl), -2147483648), 2147483647)
5 | where
6 | ivl != min(max(round(ivl), -2147483648), 2147483647)
7 | or lastIvl != min(max(round(lastIvl), -2147483648), 2147483647)
--------------------------------------------------------------------------------
/rslib/src/storage/revlog/get.sql:
--------------------------------------------------------------------------------
1 | select
2 | id,
3 | cid,
4 | usn,
5 | ease,
6 | ivl,
7 | lastIvl,
8 | factor,
9 | time,
10 | type
11 | from revlog
--------------------------------------------------------------------------------
/rslib/src/storage/tag/add.sql:
--------------------------------------------------------------------------------
1 | insert
2 | or ignore into tags (tag, usn)
3 | values
4 | (?, ?)
--------------------------------------------------------------------------------
/rslib/src/storage/upgrades/schema11_downgrade.sql:
--------------------------------------------------------------------------------
1 | drop table config;
2 | drop table deck_config;
3 | drop table tags;
4 | drop table fields;
5 | drop table templates;
6 | drop table notetypes;
7 | drop table decks;
8 | drop index idx_cards_odid;
9 | drop index idx_notes_mid;
10 | update col
11 | set
12 | ver = 11;
--------------------------------------------------------------------------------
/rslib/src/storage/upgrades/schema14_upgrade.sql:
--------------------------------------------------------------------------------
1 | create table deck_config (
2 | id integer primary key not null,
3 | name text not null collate unicase,
4 | mtime_secs integer not null,
5 | usn integer not null,
6 | config blob not null
7 | );
8 | create table config (
9 | key text not null primary key,
10 | usn integer not null,
11 | mtime_secs integer not null,
12 | val blob not null
13 | ) without rowid;
14 | create table tags (
15 | tag text not null primary key collate unicase,
16 | usn integer not null
17 | ) without rowid;
18 | update col
19 | set
20 | ver = 14;
--------------------------------------------------------------------------------
/rslib/src/version.rs:
--------------------------------------------------------------------------------
1 | // Copyright: Ankitects Pty Ltd and contributors
2 | // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3 |
4 | use lazy_static::lazy_static;
5 |
6 | pub fn version() -> &'static str {
7 | include_str!("../../meta/version").trim()
8 | }
9 |
10 | pub fn buildhash() -> &'static str {
11 | include_str!("../../meta/buildhash").trim()
12 | }
13 |
14 | pub(crate) fn sync_client_version() -> &'static str {
15 | lazy_static! {
16 | static ref VER: String = format!(
17 | "anki,{} ({}),{}",
18 | version(),
19 | buildhash(),
20 | std::env::consts::OS
21 | );
22 | }
23 | &VER
24 | }
25 |
--------------------------------------------------------------------------------
/rslib/tests/support/ftl/ja/test.ftl:
--------------------------------------------------------------------------------
1 | valid-key = キー
2 | two-args-key = {$one}と{$two}
3 |
--------------------------------------------------------------------------------
/rslib/tests/support/ftl/templates/test.ftl:
--------------------------------------------------------------------------------
1 | valid-key = a valid key
2 | only-in-english = not translated
3 | two-args-key = two args: {$one} and {$two}
4 | plural = You have {$hats ->
5 | [one] 1 hat
6 | *[other] {$hats} hats
7 | }.
8 |
--------------------------------------------------------------------------------
/rslib/tests/support/mediacheck.anki2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Arthur-Milchior/anki/9e752b4c03dafc5173eb3474a14ed141be56d5fd/rslib/tests/support/mediacheck.anki2
--------------------------------------------------------------------------------
/rspy/.cargo/config:
--------------------------------------------------------------------------------
1 | [target.'cfg(target_os="macos")']
2 | rustflags = ["-Clink-arg=-mmacosx-version-min=10.7"]
3 |
--------------------------------------------------------------------------------
/rspy/.gitignore:
--------------------------------------------------------------------------------
1 | .build
2 | target
3 | Cargo.lock
4 |
--------------------------------------------------------------------------------
/rspy/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "ankirspy"
3 | version = "2.1.28" # automatically updated
4 | edition = "2018"
5 | authors = ["Ankitects Pty Ltd and contributors "]
6 | license = "AGPL-3.0-or-later"
7 | description = "Anki's Rust library code Python bindings"
8 | readme = "README.md"
9 |
10 | [dependencies]
11 | anki = { path = "../rslib" }
12 | tokio = "0.2.11"
13 |
14 | [dependencies.pyo3]
15 | version = "0.8.0"
16 | features = ["extension-module"]
17 |
18 | [lib]
19 | name = "ankirspy"
20 | crate-type = ["cdylib"]
21 |
22 | [patch.crates-io]
23 | hyper = { git = "https://github.com/ankitects/hyper.git", branch = "gai-cancel-panic" }
24 |
--------------------------------------------------------------------------------
/rspy/FILES.md:
--------------------------------------------------------------------------------
1 | As the file with [same name in parent directory](../FILES.md), this
2 | document contains a succint description of the content of each file
3 | from this folder.
4 |
5 | This document contais the code allowing Python to call the rust
6 | back-end. The time lost by communicating being theoritically smaller
7 | than the time won by doing the computation in Python.
8 |
9 | As far as my experience is, it's not actually the case, at least when
10 | you need to do a lot of read query to the database.
11 |
--------------------------------------------------------------------------------
/rspy/README.md:
--------------------------------------------------------------------------------
1 | To build from scratch, please see https://github.com/ankitects/anki
2 |
--------------------------------------------------------------------------------
/rspy/requirements.txt:
--------------------------------------------------------------------------------
1 | maturin>=0.8.0
2 |
--------------------------------------------------------------------------------
/rspy/rust-toolchain:
--------------------------------------------------------------------------------
1 | nightly-2020-02-27
2 |
--------------------------------------------------------------------------------
/run:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail ${SHELLFLAGS}
4 |
5 | make -C $(dirname $0) run RUNFLAGS="$*"
6 |
--------------------------------------------------------------------------------