##### Views

(Difference between revisions)
 Revision as of 23:21, 13 March 2006 (edit)← Previous diff Current revision (01:56, 5 September 2012) (edit) (undo) (→Inline formatting with <hask>) (7 intermediate revisions not shown.) Line 1: Line 1: - '''Syntax highlighting''' works for a bunch of languages including Haskell, using GeSHi and Jason Dagit's Haskell file, somewhat modified. + '''Syntax highlighting''' works for a bunch of languages including Haskell, using [http://qbnz.com/highlighter/ GeSHi] and [http://web.archive.org/web/20070503183148/http://www.codersbase.com/index.php/Geshi_haskell Jason Dagit's Haskell file], somewhat modified. == Block formatting with <haskell> == == Block formatting with <haskell> == Line 11: Line 11: import Prelude import Prelude - foo :: (Monad m) -> m (Int,Int) + foo :: (Monad m) => m (Int,Int) foo = (x-2,x - 1) where foo = (x-2,x - 1) where x = 3 x = 3 Line 21: Line 21: putStr ("And the answer is: " ++(show (fst a))++"\n") putStr ("And the answer is: " ++(show (fst a))++"\n") - - : Question: Would it be possible to have an markup tag, say <haskell-pretty> which would utilize the <math> environment to produce neat looking things like $\operatorname{foo} :: \forall \alpha \beta . \alpha \rightarrow \beta$, corresponding to foo :: forall a b. a -> b. == Inline formatting with <hask> == == Inline formatting with <hask> == Line 29: Line 27: Inline highlighting is a bit of a hack at the moment, and may be buggy. Inline highlighting is a bit of a hack at the moment, and may be buggy. + + :It is indeed, see [[User:benmachine/hasktag bug]] --[[User:Benmachine|benmachine]] 01:56, 5 September 2012 (UTC) == Styles == == Styles == Line 44: Line 44: * known modules: brown * known modules: brown - I may also indent the entire block, similar to <blockquote>. + I also indent the entire block by 2em. See [[MediaWiki:Common.css]]. - —[[User:Ashley Y|Ashley Y]] 07:46, 10 March 2006 (UTC) + —[[User:Ashley Y|Ashley Y]] 10:49, 19 March 2006 (UTC) == Other languages == == Other languages == - This works for certain other languages too. For lisp, for instance, use <pre-lisp>...</pre-lisp> to format a block of lisp, and <code-lisp>...</code-lisp> to format text inline. <haskell> the same as <pre-haskell> and <hask> the same as <code-haskell>. + This works for certain other languages too. For lisp, for instance, use <pre-lisp>...</pre-lisp> to format a block of lisp, and <code-lisp>...</code-lisp> to format text inline. <haskell> is the same as <pre-haskell> and <hask> is the same as <code-haskell>.

## Current revision

Syntax highlighting works for a bunch of languages including Haskell, using GeSHi and Jason Dagit's Haskell file, somewhat modified.

## 1 Block formatting with <haskell>

To highlight syntax of a block of Haskell, enclose it in <haskell>...</haskell>. This uses the <pre> element. For instance:

{-
My program
-}
import Prelude

foo :: (Monad m) => m (Int,Int)
foo = (x-2,x - 1) where
x = 3

-- The main function
main :: IO ()
main = do
a <- foo
putStr ("And the answer is: " ++(show (fst a))++"\n")

## 2 Inline formatting with <hask>

To highlight syntax of inline Haskell snippets, enclose the span in <hask>...</hask>. This uses the <code> element, which is inline. For instance:
import Prelude
.

Inline highlighting is a bit of a hack at the moment, and may be buggy.

It is indeed, see User:benmachine/hasktag bug --benmachine 01:56, 5 September 2012 (UTC)

## 3 Styles

For Haskell (only) I have deliberately removed all formatting apart from foreground colour, and those I have tried to keep dark so as not to be visually distracting.

This is what I am trying to achieve:

• keywords (including symbols): blue
• value literals: dark green
• known value identifiers (including symbols): green
• known type identifiers: red
• known classes: purple
• known modules: brown

I also indent the entire block by 2em. See MediaWiki:Common.css.

Ashley Y 10:49, 19 March 2006 (UTC)

## 4 Other languages

This works for certain other languages too. For lisp, for instance, use <pre-lisp>...</pre-lisp> to format a block of lisp, and <code-lisp>...</code-lisp> to format text inline. <haskell> is the same as <pre-haskell> and <hask> is the same as <code-haskell>.