From 53d7b8175ff897391fda84eb3dc71af31d364f7e Mon Sep 17 00:00:00 2001 From: defanor Date: Sun, 26 Nov 2017 08:52:32 +0300 Subject: Distinguish image denotations from those for links Some kind of image support can be introduced in the future, and it's not quite correct to present images as links. --- Pancake/Printing.hs | 1 + Pancake/Rendering.hs | 5 +++-- pancake.el | 13 +++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Pancake/Printing.hs b/Pancake/Printing.hs index c16e820..bace403 100644 --- a/Pancake/Printing.hs +++ b/Pancake/Printing.hs @@ -89,6 +89,7 @@ showSexps uri ro = , showSexp s] showDenotation :: Denotation -> String showDenotation (Link u) = list ["link", ".", encodeStr $ show u] + showDenotation (Image u) = list ["image", ".", encodeStr $ show u] showDenotation (Math m) = list ["math", ".", encodeStr m] showDenotation (Heading l) = list ["heading", ".", show l] diff --git a/Pancake/Rendering.hs b/Pancake/Rendering.hs index 5393b77..e5c5ae4 100644 --- a/Pancake/Rendering.hs +++ b/Pancake/Rendering.hs @@ -42,6 +42,7 @@ data Listing = Bulleted -- | Denotations: information that can be ignored, but can also be -- used to improve the UI. data Denotation = Link URI + | Image URI | Math String | Heading Int deriving (Show, Eq) @@ -336,7 +337,7 @@ readInline (P.Link attr alt (url, title)) = do (URI "" Nothing "" "" ('#':_)) -> Magenta _ -> Cyan st <- get - pure $ (map $ Denote (Link uri) . Fg color) t ++ + pure $ map (Denote (Link uri) . Fg color) t ++ [Fg Blue $ fromString (concat ["[", showRef (referenceDigits $ rsConf st) cnt, "]"])] Nothing -> pure [fromString title] @@ -353,7 +354,7 @@ readInline (P.Image attr alt (url, title)) = do (_, alt') -> alt' cnt <- storeLink uri st <- get - pure $ (map $ Denote (Link uri) . Fg Cyan) t ++ + pure $ map (Denote (Image uri) . Fg Cyan) t ++ [Fg Blue $ fromString (concat ["[", showRef (referenceDigits $ rsConf st) cnt, "]"])] readInline (P.Note bs) = do diff --git a/pancake.el b/pancake.el index b56e417..46d0ddb 100644 --- a/pancake.el +++ b/pancake.el @@ -175,7 +175,7 @@ (defun pancake-button-action (button) "An action to be invoked on button activation." - (funcall 'browse-url (button-get button 'uri))) + (funcall 'browse-url (button-get button 'pancake-uri))) (defun pancake-print-elem (element) "Translate ELEMENT into a string." @@ -204,7 +204,16 @@ (`(denotation (link . ,uri) . ,rest) (pancake-print-line rest) (make-text-button start (point) - 'uri uri + 'pancake-uri uri + 'pancake-type 'link + 'help-echo uri + 'follow-link t + 'action #'pancake-button-action)) + (`(denotation (image . ,uri) . ,rest) + (pancake-print-line rest) + (make-text-button start (point) + 'pancake-uri uri + 'pancake-type 'image 'help-echo uri 'follow-link t 'action #'pancake-button-action)) -- cgit v1.2.3