pandoc-link-context 1.4.0.0 → 1.4.1.0
raw patch · 4 files changed
+41/−32 lines, 4 filesdep ~basesetup-changedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- Setup.hs +1/−0
- pandoc-link-context.cabal +9/−6
- src/Text/Pandoc/LinkContext.hs +27/−26
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for pandoc-link-context +## 1.4.1.0++- Relax `base` version constraint+ ## 1.4.0.0 - Remove definition list handling. Fixes https://github.com/srid/emanote/issues/275
Setup.hs view
@@ -1,2 +1,3 @@ import Distribution.Simple+ main = defaultMain
pandoc-link-context.cabal view
@@ -1,8 +1,10 @@ cabal-version: 2.2 name: pandoc-link-context-version: 1.4.0.0+version: 1.4.1.0 synopsis: Extract "contextual links" from Pandoc-description: A library to pull out all links with their surrounding context in your Pandoc documents. Useful for software dealing with wiki-links and Zettelkasten.+description:+ A library to pull out all links with their surrounding context in your Pandoc documents. Useful for software dealing with wiki-links and Zettelkasten.+ category: Text license: BSD-3-Clause license-file: LICENSE@@ -16,7 +18,7 @@ hs-source-dirs: src exposed-modules: Text.Pandoc.LinkContext build-depends:- base >=4.12 && < 4.17+ , base >=4.12 && <4.99.0.0.0 , containers , pandoc-types , relude >=0.7.0.0@@ -29,11 +31,12 @@ default-extensions: FlexibleContexts FlexibleInstances+ ImportQualifiedPost LambdaCase OverloadedStrings- RecordWildCards- ScopedTypeVariables- TupleSections+ RecordWildCards+ ScopedTypeVariables+ TupleSections TypeApplications ViewPatterns
src/Text/Pandoc/LinkContext.hs view
@@ -1,47 +1,48 @@ module Text.Pandoc.LinkContext (queryLinksWithContext) where import Data.List (nub)-import qualified Data.Map.Strict as Map-import qualified Text.Pandoc.Builder as B+import Data.Map.Strict qualified as Map+import Text.Pandoc.Builder qualified as B import Text.Pandoc.Definition (Block, Inline (Link), Pandoc (..))-import qualified Text.Pandoc.Walk as W+import Text.Pandoc.Walk qualified as W type Url = Text -- | Attributes other than id and class type OtherAttr = (Text, Text) --- | Query the pandoc document for all links------ Return a map, containing the "surrounding context" (as Pandoc blocks) for--- each link.+{- | Query the pandoc document for all links++ Return a map, containing the "surrounding context" (as Pandoc blocks) for+ each link.+-} queryLinksWithContext :: Pandoc -> Map Url (NonEmpty ([OtherAttr], [Block])) queryLinksWithContext =- fmap (fmap $ second nub)- . Map.fromListWith (<>)- . W.query go+ fmap (fmap $ second nub)+ . Map.fromListWith (<>)+ . W.query go where go :: Block -> [(Url, NonEmpty ([OtherAttr], [Block]))] go blk =- fmap (\(url, attr) -> (url, one (attr, [blk]))) $ case blk of- B.Para is ->- queryLinkUrls is- B.Plain is ->- queryLinkUrls is- B.LineBlock is ->- queryLinkUrls is- B.Header _ _ is ->- queryLinkUrls is- _ -> mempty+ fmap (\(url, attr) -> (url, one (attr, [blk]))) $ case blk of+ B.Para is ->+ queryLinkUrls is+ B.Plain is ->+ queryLinkUrls is+ B.LineBlock is ->+ queryLinkUrls is+ B.Header _ _ is ->+ queryLinkUrls is+ _ -> mempty queryLinkUrls :: W.Walkable Inline b => b -> [(Url, [OtherAttr])] queryLinkUrls =- W.query (maybeToList . getLinkUrl)+ W.query (maybeToList . getLinkUrl) getLinkUrl :: Inline -> Maybe (Url, [OtherAttr]) getLinkUrl = \case- Link (_, _, attrs) _inlines (url, title) -> do- -- Put title in attrs, as it *is* an attribute- pure (url, ("title", title) : attrs)- _ ->- Nothing+ Link (_, _, attrs) _inlines (url, title) -> do+ -- Put title in attrs, as it *is* an attribute+ pure (url, ("title", title) : attrs)+ _ ->+ Nothing