hascard 0.5.0.0 → 0.5.0.1
raw patch · 5 files changed
+27/−21 lines, 5 filesdep ~brickdep ~megaparsecdep ~strictPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: brick, megaparsec, strict, vty
API changes (from Hackage documentation)
- States: popupState :: forall s_aemP. Lens' (Popup s_aemP) PopupState
+ States: popupState :: forall s_aeEk. Lens' (Popup s_aeEk) PopupState
Files
- ChangeLog.md +5/−0
- README.md +1/−1
- hascard.cabal +14/−14
- src/Types.hs +5/−5
- src/UI/Cards.hs +2/−1
ChangeLog.md view
@@ -1,4 +1,9 @@ # Changelog for hascard+## 0.5.0.1+Fixed bugs:+- When generating new decks from correct or incorrect cards, 'Nothing' was added as the first line+- When a gap was the last part of a sentence, the newline was not shown correctly+ ## 0.5.0.0 New: - References to files can be added inside cards, such that the corresponding files opens when encountering that card. The file opens in a different window using the default application for opening files of that file type configured on your computer. This can be used to add images to questions. The syntax is described [here](https://github.com/Yvee1/hascard#including-files) in the readme.
README.md view
@@ -25,7 +25,7 @@ - [Miscellaneous info](#miscellaneous-info) ## Installation-Installation on Windows is not possible sadly, aside from WSL. This is because hascard depends on vty which only supports unix operating systems (this includes macOS).+Installation on Windows is not possible sadly, aside from WSL. This is because hascard depends on vty which only supports UNIX-like operating systems (this includes macOS). ### Homebrew (for macOS) For macOS users an installation using homebrew is provided via a custom tap. You can run
hascard.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 79b1be93322160d8b18065165e9cddfd67acd720d9bb7049de3e40cfdd1f4665+-- hash: 1d4e635de828a7e15a8bd625beef9e07cce44188802eeaeece13d342c4d94a2b name: hascard-version: 0.5.0.0+version: 0.5.0.1 synopsis: A TUI for reviewing notes using 'flashcards' written with markdown-like syntax. description: Hascard is a text-based user interface for reviewing notes using flashcards. Cards are written in markdown-like syntax. Please see the README file on GitHub at <https://github.com/Yvee1/hascard#readme> for more information. category: Application@@ -58,11 +58,11 @@ src build-depends: base >=4.7 && <5- , brick >=0.52.1 && <0.56+ , brick >=0.52.1 && <0.60 , containers >0.6.0 && <0.7 , directory >=1.3.3 && <1.4 , filepath >=1.4.2 && <1.5- , megaparsec >=8.0.0 && <8.1+ , megaparsec >=8.0.0 && <10 , microlens >=0.4.11 && <0.5 , microlens-platform >=0.4.1 && <0.5 , mwc-random >=0.14 && <0.15@@ -71,13 +71,13 @@ , process >=1.6.5 && <1.7 , random-fu >=0.2.7 && <0.3 , split >=0.2.3 && <0.3- , strict >=0.3.2 && <0.4+ , strict >=0.3.2 && <0.5 , tasty >=1.2.1 && <1.3 , tasty-hunit >=0.10.0 && <0.11 , tasty-quickcheck >=0.10.1 && <0.11 , text >=1.2.3 && <1.3 , vector >=0.12.0 && <0.13- , vty >=5.28.2 && <5.31+ , vty >=5.28.2 && <5.33 , word-wrap >=0.4.1 && <0.5 default-language: Haskell2010 @@ -90,12 +90,12 @@ ghc-options: -threaded -rtsopts -with-rtsopts=-N build-depends: base >=4.7 && <5- , brick >=0.52.1 && <0.56+ , brick >=0.52.1 && <0.60 , containers >0.6.0 && <0.7 , directory >=1.3.3 && <1.4 , filepath >=1.4.2 && <1.5 , hascard- , megaparsec >=8.0.0 && <8.1+ , megaparsec >=8.0.0 && <10 , microlens >=0.4.11 && <0.5 , microlens-platform >=0.4.1 && <0.5 , mwc-random >=0.14 && <0.15@@ -104,13 +104,13 @@ , process >=1.6.5 && <1.7 , random-fu >=0.2.7 && <0.3 , split >=0.2.3 && <0.3- , strict >=0.3.2 && <0.4+ , strict >=0.3.2 && <0.5 , tasty >=1.2.1 && <1.3 , tasty-hunit >=0.10.0 && <0.11 , tasty-quickcheck >=0.10.1 && <0.11 , text >=1.2.3 && <1.3 , vector >=0.12.0 && <0.13- , vty >=5.28.2 && <5.31+ , vty >=5.28.2 && <5.33 , word-wrap >=0.4.1 && <0.5 default-language: Haskell2010 @@ -124,12 +124,12 @@ ghc-options: -threaded -rtsopts -with-rtsopts=-N build-depends: base >=4.7 && <5- , brick >=0.52.1 && <0.56+ , brick >=0.52.1 && <0.60 , containers >0.6.0 && <0.7 , directory >=1.3.3 && <1.4 , filepath >=1.4.2 && <1.5 , hascard- , megaparsec >=8.0.0 && <8.1+ , megaparsec >=8.0.0 && <10 , microlens >=0.4.11 && <0.5 , microlens-platform >=0.4.1 && <0.5 , mwc-random >=0.14 && <0.15@@ -138,12 +138,12 @@ , process >=1.6.5 && <1.7 , random-fu >=0.2.7 && <0.3 , split >=0.2.3 && <0.3- , strict >=0.3.2 && <0.4+ , strict >=0.3.2 && <0.5 , tasty >=1.2.1 && <1.3 , tasty-hunit >=0.10.0 && <0.11 , tasty-quickcheck >=0.10.1 && <0.11 , text >=1.2.3 && <1.3 , vector >=0.12.0 && <0.13- , vty >=5.28.2 && <5.31+ , vty >=5.28.2 && <5.33 , word-wrap >=0.4.1 && <0.5 default-language: Haskell2010
src/Types.hs view
@@ -36,14 +36,14 @@ instance Show Card where show card = let showHeader h = "# " <> h <> "\n" in case card of- Definition h img descr -> showHeader h <> show img <> "\n" <> descr- OpenQuestion h img p -> showHeader h <> show img <> "\n" <> show p+ Definition h img descr -> showHeader h <> maybe "" show img <> "\n" <> descr+ OpenQuestion h img p -> showHeader h <> maybe "" show img <> "\n" <> show p MultipleChoice h img c inc -> - showHeader h <> show img <> "\n" <> showMultipleChoice c inc+ showHeader h <> maybe "" show img <> "\n" <> showMultipleChoice c inc MultipleAnswer h img opts ->- showHeader h <> show img <> "\n" <> unlines' (NE.toList (NE.map show opts))+ showHeader h <> maybe "" show img <> "\n" <> unlines' (NE.toList (NE.map show opts)) Reorder h img elts -> - showHeader h <> show img<> "\n" <> unlines' (NE.toList (NE.map showReorder elts))+ showHeader h <>maybe "" show img <> "\n" <> unlines' (NE.toList (NE.map showReorder elts)) -- alt file data External = Image String String
src/UI/Cards.hs view
@@ -200,9 +200,10 @@ let startsWithSpace = head s == ' ' s' = if startsWithSpace then " " <> replicate padding 'X' <> tail s else replicate padding 'X' ++ s lastLetter = last s+ prefix = if head s `elem` ['\n', '\r'] then T.pack " " else T.empty postfix = if lastLetter == ' ' then T.pack [lastLetter] else T.empty ts = wrapTextToLines wrapSettings w (pack s') & ix 0 %~ (if startsWithSpace then (T.pack " " `T.append`) . T.drop (padding + 1) else T.drop padding)- ts' = ts & _last %~ (`T.append` postfix)+ ts' = prefix : (ts & _last %~ (`T.append` postfix)) padding' = textWidth (last ts') + (if length ts' == 1 then 1 else 0) * padding in (map txt (filter (/=T.empty) ts'), padding', True) else