citeproc-hs 0.3.9 → 0.3.10
raw patch · 4 files changed
+15/−11 lines, 4 filesdep +network-uridep ~network
Dependencies added: network-uri
Dependency ranges changed: network
Files
- citeproc-hs.cabal +4/−4
- src/Text/CSL/Eval.hs +2/−2
- src/Text/CSL/Eval/Names.hs +8/−5
- src/Text/CSL/Output/Pandoc.hs +1/−0
citeproc-hs.cabal view
@@ -1,6 +1,6 @@ name: citeproc-hs-version: 0.3.9-homepage: http://gorgias.mine.nu/repos/citeproc-hs/+version: 0.3.10+homepage: http://istitutocolli.org/repos/citeproc-hs/ synopsis: A Citation Style Language implementation in Haskell description: citeproc-hs is a library for rendering@@ -112,7 +112,7 @@ Text.CSL.Output.Pandoc Text.CSL.Output.Plain Text.CSL.Test- other-modules: Paths_citeproc_hs+ Paths_citeproc_hs ghc-options: -funbox-strict-fields -Wall ghc-prof-options: -prof -auto-all hs-source-dirs: src@@ -125,7 +125,7 @@ cpp-options: -DUSE_BIBUTILS if flag(network)- build-depends: network >= 2, HTTP >= 4000.0.9+ build-depends: network >= 2.6, network-uri >= 2.6, HTTP >= 4000.0.9 extensions: CPP cpp-options: -DUSE_NETWORK
src/Text/CSL/Eval.hs view
@@ -106,8 +106,8 @@ | Group fm d l <- el = when' ((/=) [] <$> tryGroup l) $ return . outputList fm d =<< evalElements l | Date _ _ _ _ _ _ <- el = evalDate el- | Label s f fm _ <- el = formatLabel f fm True s -- FIXME !!- | Term s f fm p <- el = formatLabel f fm p s+ | Label s f fm p <- el = formatLabel f fm True False s -- FIXME !!+ | Term s f fm p <- el = formatLabel f fm p True s | Names s n fm d sub <- el = modify (\st -> st { contNum = [] }) >> ifEmpty (evalNames False s n d) (withNames s el $ evalElements sub)
src/Text/CSL/Eval/Names.hs view
@@ -36,7 +36,7 @@ sb == "editor" && sa == "translator" = do aa <- getAgents' sa ab <- getAgents' sb- if aa == ab+ if aa /= [] && aa == ab then modify (\s -> s { edtrans = True }) >> evalNames True [sa] nl d else evalNames True ns nl d@@ -107,7 +107,7 @@ | NameLabel f fm pl <- n = when' (isVarSet s) $ do b <- gets edtrans- res <- formatLabel f fm (isPlural pl $ length as) $ if b then "editortranslator" else s+ res <- formatLabel f fm (isPlural pl $ length as) False $ if b then "editortranslator" else s modify $ \st -> st { edtrans = False } updateEtal [res] return res@@ -320,15 +320,18 @@ then w ++ ws else w ++ ' ':ws -formatLabel :: Form -> Formatting -> Bool -> String -> State EvalState [Output]-formatLabel f fm p s+formatLabel :: Form -> Formatting -> Bool -> Bool -> String -> State EvalState [Output]+formatLabel f fm p isTerm s | "locator" <- s = when' (gets (citeLocator . cite . env) >>= return . (/=) []) $ do (l,v) <- getLocVar form (\fm' -> return . flip OLoc emptyFormatting . output fm') id l ('-' `elem` v) | "page" <- s = checkPlural | "volume" <- s = checkPlural | "ibid" <- s = format' s p- | otherwise = if isRole s then form (\fm' x -> [OLabel x fm']) id s p else format s p+ | not isTerm+ , isRole s = do a <- getAgents' (if s == "editortranslator" then "editor" else s)+ if a /= [] then form (\fm' x -> [OLabel x fm']) id s p else return []+ | otherwise = format s p where isRole = flip elem ["author", "collection-editor", "composer", "container-author" ,"director", "editor", "editorial-director", "editortranslator"
src/Text/CSL/Output/Pandoc.hs view
@@ -23,6 +23,7 @@ , toCapital , startWithPunct , endWithPunct+ , isPunctuationInQuote ) where import Data.Char ( toUpper, toLower )