Commit graph

32 commits

Author SHA1 Message Date
Damien Elmes
c525a75fa3 drop plus_one test 2020-01-17 18:54:38 -07:00
Damien Elmes
a9378b1e99 _localOffsetForDate() was broken
It was including the elapsed time of day when calculating
the offset, leading to incorrect results
2020-01-17 18:52:36 -07:00
Damien Elmes
21098c43b5 save filters and field name separately 2020-01-16 18:47:21 +10:00
Damien Elmes
2e8bdb580a show missing field errors in the same way as the other errors 2020-01-16 18:47:21 +10:00
Damien Elmes
52bd10063e more useful template error message 2020-01-16 18:47:21 +10:00
Damien Elmes
ce77759177 allow an empty field name if filters are provided
This is to make it easier for add-ons to provide extra content that
degrades nicely on platforms that don't have the add-on.
2020-01-15 18:48:23 +10:00
Damien Elmes
c84c3bce72 fix overlapping clozes 2020-01-14 07:07:21 +10:00
Damien Elmes
8eceedd2e5 more template rendering tweaks
- The front and back are rendered in one call now. If the front
side contains no custom filters, we can bake {{FrontSide}} into the
rear side. If it did contain custom filters, we return the partially
complete rear template instead, and the calling code can inject
the FrontSide in after it has been fully rendered.

- Instead of modifying "cloze" into something like "cq-2", the card
ordinal and whether we're rendering the question or answer are now
passed in to the rendering filters as context.

- The Rust code doesn't need to support filter names split on '-'
anymore.

- Drop the "Show" part of hint descriptions so i18n support can be
deferred.

- Ignore blank filter names caused by user using two colons instead
of one.

- Fixed hint field and text transposition.
2020-01-12 21:34:07 +10:00
Damien Elmes
c486a4bf6d fix type:cloze handling 2020-01-11 19:38:41 +10:00
Damien Elmes
524a27dd08 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
9028018277 static->const 2020-01-11 13:06:48 +10:00
Damien Elmes
41d155a6ee drop unnecessary capitalized cloze handling 2020-01-11 13:03:43 +10:00
Damien Elmes
e7c3218724 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
cf5457da25 cloze: support
MathJax still to do
2020-01-11 12:07:06 +10:00
Damien Elmes
d671f091ff 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
3510eb1861 add ruby filters 2020-01-10 21:04:52 +10:00
Damien Elmes
ab841d9ebe add some text helpers 2020-01-10 21:01:23 +10:00
Damien Elmes
ca6793c940 add copyright headers to some files 2020-01-10 21:00:48 +10:00
Damien Elmes
f101c34df7 skip rslib doctests, we don't use them and they're slower 2020-01-10 18:06:21 +10:00
Damien Elmes
3a14c247c8 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
8f3df55da2 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
f3071df403 fix next_day_at being off by a day before the rollover 2020-01-10 08:21:52 +10:00
Damien Elmes
31ebf0473f 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
c0604c596b ignore template closing characters outside of a tag 2020-01-08 20:29:04 +10:00
Damien Elmes
520275bea3 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
3a27b2481f fix days_elapsed moving backwards 2020-01-07 09:29:43 +10:00
Damien Elmes
2c5ee82dcf add failing test for days_elapsed calculation
the current code was causing the day to move backwards:

at day 7 hour 23:59, elap is 1
at day 8 hour 0:59, elap is 0
at day 8 hour 1:59, elap is 0
at day 8 hour 2:59, elap is 1
at day 8 hour 3:59, elap is 1
at day 8 hour 4:59, elap is 2

as mentioned in https://github.com/ankitects/anki/pull/416
2020-01-07 09:29:43 +10:00
Damien Elmes
9057c8ec85 make sure rust tests rerun on source change; don't hide output 2020-01-07 09:29:43 +10:00
Damien Elmes
ddb304aad2 add some more protobuf messages 2020-01-06 12:18:20 +10:00
Damien Elmes
c88694333b update readme, remove submodule readmes 2020-01-04 12:21:58 +10:00
Damien Elmes
c0438373dd move license info into one place 2020-01-03 09:41:30 +10:00
Damien Elmes
2a00e0a6b0 tweaking the folder names again
hopefully that's the last of it
2020-01-03 07:48:38 +10:00