aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2021-05-25 16:54:42 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2021-05-25 16:54:42 +0200
commitd46ea7d7da3f842d265f09730c90cfc3691576ef (patch)
treea37126d86fa62f57063b8c36403541d5ec1a0adf
parent8511f6fdf6c9fbc2cc926538bca4ae9f554b4ed9 (diff)
downloadpandoc-d46ea7d7da3f842d265f09730c90cfc3691576ef.tar.gz
Jira: add support for "smart" links
Support has been added for the new `[alias|https://example.com|smart-card]` syntax.
-rw-r--r--pandoc.cabal2
-rw-r--r--src/Text/Pandoc/Readers/Jira.hs2
-rw-r--r--src/Text/Pandoc/Writers/Jira.hs2
-rw-r--r--stack.yaml2
-rw-r--r--test/Tests/Readers/Jira.hs8
-rw-r--r--test/Tests/Writers/Jira.hs8
6 files changed, 22 insertions, 2 deletions
diff --git a/pandoc.cabal b/pandoc.cabal
index 4e10e01f3..241196d7c 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -470,7 +470,7 @@ library
http-client-tls >= 0.2.4 && < 0.4,
http-types >= 0.8 && < 0.13,
ipynb >= 0.1 && < 0.2,
- jira-wiki-markup >= 1.3.5 && < 1.4,
+ jira-wiki-markup >= 1.4 && < 1.5,
mtl >= 2.2 && < 2.3,
network >= 2.6,
network-uri >= 2.6 && < 2.8,
diff --git a/src/Text/Pandoc/Readers/Jira.hs b/src/Text/Pandoc/Readers/Jira.hs
index a3b415f09..cf111f173 100644
--- a/src/Text/Pandoc/Readers/Jira.hs
+++ b/src/Text/Pandoc/Readers/Jira.hs
@@ -172,6 +172,8 @@ jiraLinkToPandoc linkType alias url =
Jira.Email -> link ("mailto:" <> url') "" alias'
Jira.Attachment -> linkWith ("", ["attachment"], []) url' "" alias'
Jira.User -> linkWith ("", ["user-account"], []) url' "" alias'
+ Jira.SmartCard -> linkWith ("", ["smart-card"], []) url' "" alias'
+ Jira.SmartLink -> linkWith ("", ["smart-link"], []) url' "" alias'
-- | Get unicode representation of a Jira icon.
iconUnicode :: Jira.Icon -> Text
diff --git a/src/Text/Pandoc/Writers/Jira.hs b/src/Text/Pandoc/Writers/Jira.hs
index cf4dadebc..1351814e9 100644
--- a/src/Text/Pandoc/Writers/Jira.hs
+++ b/src/Text/Pandoc/Writers/Jira.hs
@@ -280,6 +280,8 @@ toJiraLink (_, classes, _) (url, _) alias = do
| Just email <- T.stripPrefix "mailto:" url' = (Jira.Email, email)
| "user-account" `elem` classes = (Jira.User, dropTilde url)
| "attachment" `elem` classes = (Jira.Attachment, url)
+ | "smart-card" `elem` classes = (Jira.SmartCard, url)
+ | "smart-link" `elem` classes = (Jira.SmartLink, url)
| otherwise = (Jira.External, url)
dropTilde txt = case T.uncons txt of
Just ('~', username) -> username
diff --git a/stack.yaml b/stack.yaml
index 809157425..16e5ad2cf 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -9,7 +9,7 @@ packages:
extra-deps:
- hslua-1.3.0
- hslua-module-path-0.1.0
-- jira-wiki-markup-1.3.5
+- jira-wiki-markup-1.4.0
- random-1.2.0
- unicode-collation-0.1.3
- citeproc-0.4
diff --git a/test/Tests/Readers/Jira.hs b/test/Tests/Readers/Jira.hs
index cb7dde4ea..b7194a3b9 100644
--- a/test/Tests/Readers/Jira.hs
+++ b/test/Tests/Readers/Jira.hs
@@ -167,6 +167,14 @@ tests =
, "user with description" =:
"[John Doe|~johndoe]" =?>
para (linkWith ("", ["user-account"], []) "~johndoe" "" "John Doe")
+
+ , "'smart' link" =:
+ "[x|http://example.com|smart-link]" =?>
+ para (linkWith ("", ["smart-link"], []) "http://example.com" "" "x")
+
+ , "'smart' card" =:
+ "[x|http://example.com|smart-card]" =?>
+ para (linkWith ("", ["smart-card"], []) "http://example.com" "" "x")
]
, "image" =:
diff --git a/test/Tests/Writers/Jira.hs b/test/Tests/Writers/Jira.hs
index d8e856e34..00a7ae931 100644
--- a/test/Tests/Writers/Jira.hs
+++ b/test/Tests/Writers/Jira.hs
@@ -61,6 +61,14 @@ tests =
, "user link with user as description" =:
linkWith ("", ["user-account"], []) "~johndoe" "" "~johndoe" =?>
"[~johndoe]"
+
+ , "'smart' link" =:
+ para (linkWith ("", ["smart-link"], []) "http://example.com" "" "x") =?>
+ "[x|http://example.com|smart-link]"
+
+ , "'smart' card" =:
+ para (linkWith ("", ["smart-card"], []) "http://example.org" "" "x") =?>
+ "[x|http://example.org|smart-card]"
]
, testGroup "spans"