Commit graph

2772 commits

Author SHA1 Message Date
Damien Elmes
264f0d3a7f option to invert paste handling in prefs 2020-01-16 12:39:33 +10:00
Damien Elmes
a40086c537 fix preview button shortcut
Qt 'helpfully' erases any existing shortcuts when .setText() is called,
and as PyQt's generated forms set the text after the shortcut is set,
it gets lost.

https://anki.tenderapp.com/discussions/ankidesktop/38038-does-ctrlshiftp-doesnt-trigger-preview-in-browse
2020-01-16 12:39:30 +10:00
Damien Elmes
1780ada400 don't change current deck if custom study fails to create
just a quick fix for now

https://anki.tenderapp.com/discussions/ankidesktop/37834-bug-custom-study-session-created-even-when-there-are-no-cards-that-match-selected-criteria
2020-01-16 12:39:27 +10:00
Damien Elmes
cd15329d59 revert to the old wrap() behaviour
wrap2() was introduced recently to try and resolve an issue where
styling outside of the wrapped section was getting lost. eg,

<b>some [text] etc</b>

When the user created a cloze deletion or added math tags to the [text]
part, the text ended up not being bold - the inner portion is displayed
without styling.

wrap2() used setFormat("inserttext", ...), which did fix that issue
- but it also introduced multiple new issues:

- any HTML inside the selected area, including newlines and images,
was lost
- the unicode entities inserted when creating a cloze deletion in
RTL mode end up inserted as plain text

For now, I'm just going to revert to the old behaviour. If anyone
has a suggestion for an approach that is able to preserve both the
inner formatting and the surrounding formatting, a pull request
or post on the forums would be appreciated!
2020-01-16 12:39:24 +10:00
Damien Elmes
fb9d59fe63 if profile is corrupt and is reset, need to set default lang again
Fixes https://anki.tenderapp.com/discussions/ankidesktop/37994-traceback-error-with-windows-64bit-standard-installation
2020-01-14 15:49:28 +10:00
Damien Elmes
1e9d4fbe9a fix startup when prefs.db not readable
If we fail to open the Anki 2.0 prefs.db file, on the second try
we need to revert to a new file instead of trying the same broken
file again.
2020-01-14 15:49:24 +10:00
Damien Elmes
6ad992c475 if pm.meta() fails, need to unset pm
This prevents a startup failure caused by trying to set
the UI scale when .meta() is not working. Startup still
fails, but the correct message is displayed now.
2020-01-14 15:49:08 +10:00
Damien Elmes
cead2f9741 request type hints in new contributions 2020-01-14 15:48:58 +10:00
Damien Elmes
5615d372e5 include py.typed for mypy
these builds are now available on
https://github.com/ankitects/anki-typecheck

The add-on docs will be updated shortly to provide info on
using the new hooks and type checking.
2020-01-14 15:48:43 +10:00
Damien Elmes
d839becaa2 add license to wheels and option to skip bundling extra files 2020-01-14 15:48:38 +10:00
Damien Elmes
0aeda4f476 stray space 2020-01-14 15:48:18 +10:00
Damien Elmes
e2d212f64a mark anki and aqt modules as having typing info
This means once they're installed via develop or a wheel, add-ons
will be able to more easily typecheck their code against the Anki
code.
2020-01-14 15:48:05 +10:00
Damien Elmes
c7f81c85d1 update version 2020-01-14 15:47:32 +10:00
Damien Elmes
c69ccb5015 revert the template changes for the 2.1.17 release 2020-01-11 20:15:31 +10:00
Damien Elmes
84d22046d4 fix type:cloze handling 2020-01-11 19:38:41 +10:00
Damien Elmes
a51a4e4d31 drop pystache and move legacy code into separate file 2020-01-11 19:38:30 +10:00
Damien Elmes
dc8b854ada drop pystache comparison 2020-01-11 18:15:13 +10:00
Damien Elmes
7cde51e884 ignore extra { chars in replacement
This will still show a trailing } with {{{field}}}, but will at
least show the field content instead of 'unknown field'.
2020-01-11 18:02:24 +10:00
Damien Elmes
feb0a31bba static->const 2020-01-11 13:06:48 +10:00
Damien Elmes
0ccc9e98a8 drop unnecessary capitalized cloze handling 2020-01-11 13:03:43 +10:00
Damien Elmes
389bf07b52 handle mathjax+cloze case
instead of trying to selectively change clozes from c to C, just
strip HTML from inside the mathjax sections instead
2020-01-11 12:57:32 +10:00
Damien Elmes
cc09ca34d4 cloze: support
MathJax still to do
2020-01-11 12:07:06 +10:00
Damien Elmes
94a72f970a type: and hint: support
We may need to keep handling hints in the Python code for now until
i18n is sorted out.
2020-01-11 09:35:41 +10:00
Damien Elmes
7d7656d86f add ruby filters 2020-01-10 21:04:52 +10:00
Damien Elmes
d4553e9488 add some text helpers 2020-01-10 21:01:23 +10:00
Damien Elmes
96c8784024 add copyright headers to some files 2020-01-10 21:00:48 +10:00
Damien Elmes
deca82ca9d skip rslib doctests, we don't use them and they're slower 2020-01-10 18:06:21 +10:00
Damien Elmes
3f724e5c98 replace fields and apply standard filters in rslib
The filters still need to be implemented.
2020-01-10 18:02:26 +10:00
Damien Elmes
f7ff0d1c17 flatten->render; pass field content in
This is paving the way to move the standard filters into Rust.

Non-empty fields are now determined in Rust, using a single regex
instead of the overkill stripHTMLMedia(). The old implementation
has been moved into the Pystache code for now.
2020-01-10 14:59:29 +10:00
Damien Elmes
c010bb0a37 make sure pyenv is active when fixing 2020-01-10 13:07:12 +10:00
Damien Elmes
ff7ff5c2b9 fix next_day_at being off by a day before the rollover 2020-01-10 08:21:52 +10:00
Damien Elmes
1152db5998 update translations
update translations
2020-01-10 08:21:52 +10:00
Damien Elmes
a5613523ee rework new timezone code
We now store the UTC offset that was in effect at creation time,
and use that to determine the starting date.
2020-01-09 16:58:27 +10:00
Damien Elmes
91e215d2c5
Update CONTRIBUTORS
Minor tweak that will add my noreply email to the list of contributors so merging pull requests doesn't fail.
2020-01-09 08:13:07 +10:00
Damien Elmes
5a9af48178 fix type:cloze, and remove misleading comments 2020-01-09 08:05:49 +10:00
Damien Elmes
afe391c18b
Merge pull request #419 from glutanimate/add-develop-target-to-main-makefile
Split root develop steps into separate develop target
2020-01-09 08:05:30 +10:00
Damien Elmes
9704346ecf
Merge pull request #418 from glutanimate/addcards-addnote-hook
Add hook for AddCards.addNote
2020-01-09 08:05:20 +10:00
Glutanimate
8ff506f184 Split root develop steps into separate develop target
Allows development tools to directly debug qt/runanki while using
`make develop` as a debugging pre-launch task.
2020-01-08 21:44:46 +01:00
Glutanimate
cda296748d Add hook for AddCards.addNote 2020-01-08 21:29:28 +01:00
Damien Elmes
02720ec604 fix CI failing
unsure why this doesn't fail locally, using the same mypy version
2020-01-08 20:49:40 +10:00
Damien Elmes
c0a69587f3 fix type answer filter 2020-01-08 20:29:15 +10:00
Damien Elmes
ad17c765e6 ignore template closing characters outside of a tag 2020-01-08 20:29:04 +10:00
Damien Elmes
0087eee6d9 handle conditional replacement in Rust
This extends the existing Rust code to handle conditional
replacement. The replacement of field names and filters to text
remains in Python, so that add-ons can still define their own
field modifiers.

The code is currently running the old Pystache rendering and the
new implementation in parallel, and will print a message to the
console if they don't match. If you notice any problems, please
let me know.
2020-01-08 20:28:04 +10:00
Damien Elmes
031c4e814f move filter reversal into pystache 2020-01-08 18:59:05 +10:00
Damien Elmes
b014822253 use hooks for the built in filters as well
To support cloze deletions, we add back support for 'extra', but
using a simpler one character split instead of parens.
2020-01-08 18:08:24 +10:00
Damien Elmes
1f2e00690f move the rest of Anki's code out of pystache
In the process of factoring out the field filtering, the "extra"
and "fullname" args are just passed in as a blank string now.
Extra was functionality that allowed a field modifier to be defined
as "filtername(arg1,arg2):field", and fullname was the name of the
field including any provided field modifiers. From grepping through
the add-ons on AnkiWeb, neither appears to have been used.
2020-01-08 17:15:46 +10:00
Damien Elmes
5ce964e91d remove cloze handling in conditionals
As far as I can tell, this was not functional, as "{{#cloze:Text}}"
becomes cq-1:Text, which doesn't match the regex
2020-01-08 16:10:19 +10:00
Damien Elmes
83f0e15213 show stdout/stderr when running tests 2020-01-08 15:52:51 +10:00
Damien Elmes
29e476f482 no longer try fields with : in their names
it's not supported by the card generation code, and the card
layout screen will automatically fix note types
2020-01-08 14:42:54 +10:00
Damien Elmes
706ed225ca move furigana/hint filters into template2 2020-01-08 12:30:08 +10:00