á áá
á ááľ á°á áá ááľáĽ á áľááá˝ á¨áľááľ á¨á°á áŤááľáá ááľáĽ á ááľ ááľá°áľ á°á ááˇá
áľá áĽá
áá
á˝áá á¨á°áááá á áĽááŤá áĽááľá áááá áŠáá¨áá˛á˛ á¨áá°á á¨á˘áŽááááľ áľáá
ááľ á¤áľ - á á´ááľ áá°ááľá áá-Vasily Alferov áĽá Elizaveta Vasilenko á¨"á°ááŁáŤá ááłáĽ áĽá á˘ááááá˛ááľ" ááá ááĽá á ááᾠᨠ3 á áááľ á°ááŞáá˝ ááᢠááááłá˝áá á¨á°ááŁá ááŽááŤááá áá
á á¨ááá¨á á 2 áá á¨áŠáá¨áá˛á˛á áááľ á á˛á¤á ááľáŽáŞá á°á¨áłáłá áľáá
ááśá˝ ááᢠáŤá˛á á á áá áá á Google Summer of Code ááŽááŤá ááľáĽ áĽá¨á°áłá°á áá, á áá
ááľáĽ á ááŽáááą áĄáľá ááŞááľ á ááľáŹá ááľáĽ á¨á áááĽáŤ ááŤáá˝á á áá°áá á áá áááá.
á¨ááľá°áľ á áá¸áľ
á¨áłááá áłáłá á¨áááľ ááá ááŽáááśá˝ áŁáá¤áśá˝áŁ á áĽáľááłá¸á ááľáĽ ááłá°á á¨áááá ááŽááŤááŽá˝áŁ á°ááŁáŤá ááŽááŤááá á°ááŤááŞáá˝ áĽá á ááá áľá Haskell á¨áááą áá¸áᢠá áá á ááľ á¨ááá á áá á¨á°ááŁáĄ á¨áááł á áá á¨áááľ ááá á¨ááľáŹá ááŽáááśá˝ ááá˘áá˝ á áľááŤá á°á°á á°áĄ - HSR Hochschule fĂźr Technik Rapperswil - áľá áááśáťá¸á áááááá áĽá á áłá˛áľ á°áá˝ á áĽáľááłá¸á áá ááááľ áĽáá˛áŤáľááŁá¸á áááľá¨áá˘
ááś á¨Twitter
áááááĽáŠ á áŁá ááá áá-áľá ááŽáááľá áĽááľ ááłáŚá˝á á áľááľáá ááťá áĽá áá° á ááááš ááá áŤáľáááááłá, áĽááąá áľá ááŽáááľá á ááá áą áá˝ áá áá¨á ááá áá. á á°á¨ááŞá, á ááááŞáŤá áá, á¨ááŽáááśáš á°áŤá˛áá˝ áá áĽá¨á°áŠ áĽáá°áá áĽá áá áá°á¨á áĽááłáá áľ á¨ááľá¨á á áŁá á á áአááááá á°ááł á°á¨ááľ á áá¸á. á¨ááŤá ááááľ áŤáá¸á á°áá˝ á°áŤá˛áášá áááá áĽá áľá á°ááŁáŽáš á áááá áá áá.
áĽáľáŤáá á¨áŤáłá˝á áááľ ááŽáááśá˝ á¨áááᣠááá áá áááŁá ááᎠááľá¨á áĽááááááᣠáľááá áĽáá° áá°á á á°áłáłááá˝ á°áááá ááᢠá áśáľáľ áááľ ááľáĽ, á¨áááľ á¨ááá˘áá˝ áĄáľá áá á áá°áá. á¨áŽáľ áĽá á¨ááĽáł áááááľ á¨á፠áĽááľ á ááŽáááľ á°áŤá˛áá˝ áĽá á áľá°áá á á áľáŤááá˝ ááŤá¨á áŤááá ááľá°ááĽá á áŁá áá¤áłá áŤá°áááá - á ZuriHac ááĽá á á˛áľ á¨áááľá á áŤáŁá˘áá˝ ááá¨áłáľ á˝ááá áĽá áááľ áá ááá á¨á°ááŤáŠ áĄáľáá˝á áááłáľ á˝ááá ᣠá áĽáŤááłááą á ááľ á°ááŁá á á ááá áᢠá¨ááŽáááśáš.
á¨áá ááááľ á á°á¨á᪠á ááŤáł ááááŽá˝ áĽá á¨ááľá°ááľ áááá˝ á ZuriHac á°á°áĽá°ááᢠá á°áá áááľ áľáá ááśá˝á áĽááľáłááłááᢠá ááááŞáŤááš á¨áááŤáľá áŠáá¨áá˛á˛ á ááľáŹ áááá áľá á°áá¨áĄ á áááŹá˛á ááááśá˝ á°ááአ- á á áááŹá˛á ááááśá˝ áĽá áááśá˝ ááŤá¨á ááŤá¨áá ááá áŤááŁá¸á ááááśá˝ áááᢠá áá ááááᣠᨠHaskell ááľáŤážá˝ á ááą á¨ááá á˛áá áááśá áááľáŁ á áá¤á˝á˛ áŽáááá°á ááľáĽ á¨á áááľ á˘ááŹáá˝á áĽáá´áľ áĽáá°áá°áŤ á°áááŻáá˘
á á˛áá áááśá áááľ áľáá
ááľ. ááś á¨Twitter
á hackathon áá áľ á¨á°áŤááąáľ á¨ááľá°ááľ áááá˝ áĽáá° á°áłáłááá˝ á¨áľáá á á°á¨á á áśáľáľ ááľáŚá˝ á°á¨áááá. á¨ááŽáááśá˝á áááľ áá°áááá á°áłáłááá˝ á¨ááááĄáľ á°ááŁáŤáľá á á˝áá á°á¨á á¨á°ááᥠáá áŠá˘ áľááš áá á°ááŁá˘ á¨ááá á¨á°ááŁá ááŽááŤááŽá˝ áá á á¨á°áĽ á á˛áľ áá¤áá˝á á á°áľáł ááá ááᢠᨠAndrei Mokhov áĽá Simon Peyton Jones ááááŽá˝á ááá¨áłáľ áá á áŠáá¨áá˛á˛ ááľáĽ á¨áá°áľáá á°ááŁáŤá ááŽááŤááá áľáá ááľ á áŁá á áá áá áá˘
á¨ááá áą áááᣠááááąá áá°á á á°áłáłááá˝ áĽá á¨ááŽáááľ á°áŤá˛áá˝ áá ááᢠá áá ááááŞáŤ áá áááłá°á áááá¨áťáá˝á á áľááĽá°áá, á¨á፠á áá á ááĽááľ á¨á°á áŁáŁá áááá ááľáĽ áá° á°á¨ááᥠá°áłáłááá˝ áááá á°áááá.
áĽá á áá áľáá°áłá°áááŁá¸á á¨áááľ ááŽáááśá˝ áĽáááááŤáá.
Pandoc
á Pandoc á¨áá°áá á¨á°ááľ á
áá¸áśá˝ ááááᢠá áŁá˘áŤá áá á ááľ áá ááŤáá á á, ááá áá áá
áľáá á¨á˝áá áá á ááŁáŁáá.
áĽááἠááᣠPandoc ááĽáŤááłááą áĽááľ á
áá¸áśá˝ ááĽá°á áááŁá á áá°áĽáᢠáĽáá°áá
á áááľ á¨á°ááŤáŠ áááŚá˝á ááá°áá áá°á á á¨áľá-á
áá áááľá áĽá
á áá áááá: á ááááŞáŤ, á°ááą á áá áá° áአááľáŁá ááŤá¨áá áááá á°á°áááá, á¨ááŤá á¨áá
ááľáŁá áááá á á°áᨠá
áááľ áŤáá á°ááľ ááá áŤá. ááá˘ááš á¨ááľáĽ áááááá âASTâ áĽáá áá áŠáłáᣠáĽáąá á¨á áĽáľáľáŤááľ á ááŁáĽ áá ááá
$ cat example.html
<h1>Hello, World!</h1>
$ pandoc -f html -t native example.html
[Header 1 ("hello-world",[],[]) [Str "Hello,",Space,Str "World!"]]
ᨠHaskell áá á˘áŤááľ á áľááš á¨á°áŠ á ááŁá˘áá˝ áááśá á Haskell ááľáĽ áĽáá°á°áťá á¨áá áľáá˝ ááłá ááááľ áá˝ááᥠá¨áá áľááá áá áᾠᨠPandoc ááľáŁá ááá áŽá˝ ááĽá¨ááá áááá ááᣠáá á á á°áááś áĽáá´áľ áĽáá°áá¨ááá á áááľá ááአá¨á°áá ᨠááᢠá Haskell áááłá á áá°á á á¤á°-áá˝áááľ ááľáĽá˘
áľááá , áĽáá ááľáĽ á¨ááľáĽ áááá á áĽáŤááłááą á¨ááľáĽ ááľááá ááááľ ááľáĽ á°á°ááá á¨á°á ፠ááá á áááá áá¨áľ áá˝áá. áááłáᣠá áááá á°á¨á áá á¨á ááľ á áŤá áááá á á - á¨ááááŞáŤá á°á¨á áŤáľá âáá-á ááâáŁ[]áŁ[] áŁá áŞáŤáľ áŤááᢠá áá áŤáľá ááľáĽ á¨á°á°á áá á¨"áá" ááĽá¨ááá áááá á áᣠá¨ááŤá ááá°áľ áĽá "á áá!"
áĽáá°áááá¨áąáľ, ááľáŁá áááá á¨á¤á˝á˛á¤áá¤á áĽáá á¨á°áᨠá áá°áá. áĽáŤááłááą á¨ááľáĽ ááľááá ááááľ áľá ááŽáš á áťáťá á¨á°áá°á áá¨á á¨áá°áĽá áľ áá á˛áá á á áášá á¨á°ááąá áľáááá áááľ ááááá˘
áá° áľáá áŤá á°á¨á á¨áá¨áľá á¨á á ááá á°ááľ á¨ááἠá áááľ áĽáá°áá¨á°áá ááááťá.
data Pandoc = Pandoc Meta [Block]
áĽáá áĽáá á áľááá á¨áá á¨á°á ááąáľ ááľáŁá áŤáá˝ áá, áĽá ááł áľá á°ááą ááłá˘ááááá˝á áá, áááłá áááľ, á¨ááĽá¨áľ áá, á°áŤá˛áá˝ - áá áá°ááŤáŠ á áááśá˝ á¨á°áᨠáá, áĽá Pandoc á¨á°áťá á¨á áá¸áľ áá° á˛á°á¨áá áĽáá˛á áŤááá áá¨á áááá¨áľ ááááŤá. á áá¸áľ.
ááá áááľ ááťáá á¨áĽáá ááááľ ááá˘áá˝ - áááłá ᣠáŤáľá ááá á ááá˝ (á ááá˝) - áŁá
áŞáá˝á áĽá áá
á°á-á°á¨á áŤáá˝á áááá áĽáá° ááááŽá˝ ááá°áą - ááľáá ᣠáĽáá° á ááľ á°ááĽá˘ áááłáᣠSpace ááá Str á¨á˘áááá á áááľ ááá˘áá˝ áá¸áᣠáĽá á¨á¤á˝á˛á¤áá¤á áááŤá áá° áŤáą áአá˘áááá ááá¨áŤáᢠá¨áĽááá
á ááááśá˝ áá ááş ááľá áľ ááá áááł á ááłá¨áá, ááá áá áĽáá
ááá áĽáá°áá˝á áἠáá á
á¨áááááᣠá¨áááśá ááááľ ááááľ ááᢠáá áááľ á ááľ ááááľ áŁáś á°ááľ á á, áĽá á°ááśá˝ á ááľ áá áá°á¨á°áŠ áá˝áá. á ááŁá˘áá˝á á áá˝áá áľ áá ááá áá áá ááš áá - á¨áááá° á áááᎠá áá áá á°ááľá áá° áááá˝ áá¨ááá ᣠáĽáŤááłááąá áá¨áĽáť áá°áá°á áĽá áááá ááá á á ááľ á°ááľ ááľáĽ ááľááŁáľ áá˝áá ᢠá áá áááł ááłá˘ááá˝á á¨ááá á¨á°ááą áááá˝ á á ááľ áá áá°á á°áŁá.
á¨áá´á¤ááľ áá° á¤á˝á˛á¤áá¤á á˛ááአá ááááŞáŤ LaTeXReader á¨ááŁá áአááá á¨áá¤áľ á°ááąá áá° AST áááá ááᣠá ááá á HTMLWriter á¨ááŁá áá ááá ASTá áá° HTML áááá ááᢠááá á ááá´áá¸á ááľáá áááŁáá áŁáá áŤáľ á¨áááŁáá˝ ááĽá ááťá á áŤáľáááá - ááĽáŤááłááą á á˛áľ á áá¸áľ á ááŁá˘ áĽá á¸áá ááťá á á áá, áĽá ááá ááá á¨áá˝á áĽááľ áááŁáá˝ á áŤáľ-á°á áá°ááá.
á áśááľáá á ááá´áá¸á ááá á áŁáááŤáá˝ áá¨á á áá á˛á°ááĽá áĽáá˛á áŤáá á ááá´áá¸á á¨áŤáą áľáááśá˝ áĽááłááľ ááá˝ ááᢠá áŁá á ááá á á ááŁáĽ áá áá áááŚá˝á á¨ááľá¨á áá áá. ááᥠá áŁá á¨áŁáľ á¨áá á ááá á ááŁá˘áá˝ áĽá á¸áááá˝ ááľáĽ áŤááá áŽáľ ááá¨á á ááĽááľ. áááłáᣠPandoc ááá˘áá˝ á¨áááĽáá¸á áá°ááá˝ á ááą ááľáĽáľáĽ á¨á á¨á´á á áá¸áśá˝á áá°áá ááᢠá áá Pandoc á áŁá ááá á áá á¨áŚá˝á áĽáť ááá á áá˝ááᣠá áááľáľáŁ á ááśá˝ áĽá á áĽáŤááłááą áááľ ááľáĽ áŤáá áĽá´áľá˘ áááłáᣠá á¤á˝á˛á¤áá¤á ááľáĽ áŤáá á¨áŽááľáá áŁá ᪠á ááá á˝á ááŁááᢠááá áŁá ᪠á ááą ááááŤáľ á á¨á´ááá˝á á ááá ááá á˘áŤááľ áĽá á áááśá˝ áááá¨á á¨á°ááá° áĽá áľ á áááá áá - á áá áá á¨áľ á á¨á´áááš á áá ááááľ ááá áááἠáĽááłááŁá¸á ááá˝ á áá°áá ááľáŁá áááá . ááá áá á ááľ á¨á°áá°á áĽááł á¨áá¨áĄ á áá, á¨á á¨á´ááá˝ áá á áĽáŽ ááľáŤáľá á¨áá°áá áááá á ááŁá˘áá˝ áĽá á¸áááá˝á áá ááá ááá¨á áŤáľáááááłá.
ᨠHaskell ááá á¨á°áá¨á á á°áŤá˛ááš áá°ááŁáŤá ááŽááŤáá˝ áŁáá¸á áłáá
áá
á ááááŤáľ áĽáť á áá°ááᢠHaskell á á°áá á¨á
áá áá°áľ á˝ááłáá˝ ááłáááᢠá ááľ ááłá á¤á°-áá˝áááľ ááá˘
á á áአá°áĽáŤááˇáᣠáááśá˝ á ááľ ááá ááááŞáŤ á˛áᣠáĽá á¨á፠áá ááá°áá°á áŤáááááᢠáááłáᣠá áá ááłááĄ-
whileParser :: Parser Stmt
whileParser = whiteSpace >> statement
á ááááŞáŤ áŚáłáá ááá á áŤáľáááááłá, áĽá ááááŤá - á á°á¨ááŞá á¨ááá°á áľá˛á ááááľ á áá.
á°ááá ááááśá˝ áá°áá°á áŤáá°áłáŤ áá° áá áááááľ áŤáááááᢠáááłá,
statement :: Parser Stmt
statement = parens statement <|> sequenceOfStmt
ááááŤáá á á áá áááá ἠááá¨á á ááĽá ááá áĽá ááááŤáá˝á á á á°á á°á¨á°á áááá ἠááá¨á á ááĽá áááľ ááá˘
á áááŹá˛á ááááśá˝ á ááááľ ááááśá˝ á ááŤá ááá áŤáááááᢠáááłáᣠá¨áśá á°ááŁá á ááłááľ ááľáá°áŤáá˝á áĽáá˛áŤáἠááááą (áá á¨LaTeXReader áĽááá°á á°ááŁá ááá˘) áá á áĽáá¨áľ áĽáááá¨á°á
const <$> tok <*> tok
á á°á¨áłáłá áááľ ááááśá˝á áŤááĽá á¨ááááŞáŤáá ááááłá.
ááĽááá áá áááá˝áŁ Haskell á¨ááŤááአá°ááłááłá áŚááŹá°áŽá˝ á ááľáŁ áá á ᨠReader ááŽááŤááá áĽáá° ASCII áĽá ἠáááľááᢠáá á áľáá áŽáľ áĽáť áŤá°ááá˘
á°ááŁáŽáťá˝á á¨LaTeXReader áá á¨á°áŤáŤá áá áŠá˘ á¨áŤá˛á á°ááŁá á LaTeX ááľáĽ áĽá áá˝á áááťá á¨áá á ááá ᨠmbox áĽá hbox áľáááá˝á áá°áá áá áᢠá¤ááá¤áľ á LaTeX á°ááśá˝ ááľáĽ á˘áááŤá áĽáá˛ááĽáŠ á¨ááŤáľá˝áááľá á¨á¤áááŤá áľááá á¨áá°áá áááááľ áá á¨áŁáľá˘
Hatrace
UNIX á¨áááľá áŚááŹá˛áá á˛áľá°áá˝ áĽááá áá á¨ááľáŹáľ á˛áľá°á áĽáŞá áá°ááĽáŤáᢠá¨ááŽááŤá á á¨áŁá˘áá˝á á áá¨á áĽá á ááľáá°á á áá áá, áá á ááŽááŤá á¨ááŤá°ááá¸áá á¨áľáááľ áĽáŞáá˝ ááá¨áłá°á áŤáľá˝áááłá. áááłáᣠá áŁá á ááá á¨áľáľáŤá áááá፠á¨ááľáĽ ááľáĽ ptraceá áá áááá˘
Hatrace á Haskell ááľáĽ ááá¨áłá°á á áááá˝ á¨áá°áĽ á¤á°-áá˝áááľ ááᢠáĽáááłá áá ptrace áŤáą á áŁá á¨á°ááłá°á áá áĽá áĽáąá á ááĽáł ááá áá á á°ááá á¨á°ááŁáŤá ááááá˝ á áŁá á¨áŁáľ ááá˘
Hatrace á áá áá áĽáá° áľáłáá˝ áá°áŤá áĽá á°ááłáłá ááááŽá˝á ááá ááᢠá¨áľáľáŹáľ á¨ááá¨á á¨áááľ áĽáť áłááá ááá áŤá á áááá˝ á¨áá°áĽ á¤á°-áá˝áááľ á ááá ááá˘
á hatrace áĽáá á GHC Haskell áááá áŞáŤ ááľáĽ á ááľ á°áľ á¨ááá áľá á°áľ áŤááá - á á°áłáłá° á á˝á áľ á˛áá°á á¨á°áłáłáą á¨ááľ áááá˝á áŤáááŤá áĽá áĽáá°áá á˛ááá á áá°á áľáĽáᢠá áľáááľ áĽáŞáá˝ áľááŞááľ ááá áľá á°áąá á á áľá°ááá áááł á á ááľ áá áááŁááľ á°á˝ááᣠá áááá° ááá°á áá áľá á°áąá á áááľ á°á áłáľ ááľáĽ áĽáá°áá áĽáá˛á°áŤá á áľáááłáá˘
áá° á¤á°-áá˝áááľ á¨áľáááľ áĽáŞ á áááážá˝á á¨áá¨áá - á¤áááŹáł brk á¨áá¨ááᣠáĽá áŤá˛á á¤áá¤ááá á ááááᢠá áľáŤá˝á áá¤áśá˝ áá á áááľá¨áľ, á¤á°-áá˝áááľá á˛á áá á¨áĽááá
á á¨áľáááľ áĽáŞáá˝ ááááŽá˝ á á áá ááá áĽá á áľááá áá áá ááťáá.
ááá: hab.com