如何生成占用整行的Haddock内联代码范围

时间:2016-02-01 22:48:49

标签: haskell haddock

在Haddock中,“内联代码”¹标记<html> <head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <meta name="msapplication-tap-highlight" content="no" /> <access origin="*" /> <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 --> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://google.com"> <link rel="stylesheet" type="text/css" href="css/index.css" /> <title>Hello World</title> </head> <body> <div class="app"> <h1>PhoneGap</h1> <div id="deviceready" class="blink"> <p class="event listening">Connecting to Device</p> <p class="event received">Device is Ready</p> </div> </div> <script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="js/index.js"></script> <script type="text/javascript"> app.initialize(); var start = Date.now(); var xmlhttp; if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == XMLHttpRequest.DONE ) { if(xmlhttp.status == 200){ //alert(Date.now() - start); alert("yeah"); } else if(xmlhttp.status == 400) { alert('There was an error 400'); } else { alert("else: " + xmlhttp.status); } } } xmlhttp.open("GET", "http://google.com", true); xmlhttp.send(); </script> </body> 与“代码块”标记相同,

@...@

如何编写仅包含内联代码范围的单行Haddock注释,而不会将其误解为块?像

这样的评论
@
...
@

呈现为块

code span

而不是所需的内联

  

-- |@/code/ span@

在更多示例帮助的情况下,上下文是我正在编写表示BNF语法的数据类型,因此我有许多类型如下所示:

code span

此示例对应于语法

term ::= name
      |  term + term
      |  print term

因此语法嵌入在Haddock评论中。但是,由于Haddock将这些-- |@/term/ ::=@ data Term = Var Name -- ^@/name/@ | Plus Term Term -- ^@/term/ + /term/@ | Print Term -- ^@print /term/@ 注释解析为块,因此输出不必要地高,并且当某些行具有额外的注释文本(例如,@...@)时不一致。

¹A.k.a。 “monospaced”或“打字机”。

1 个答案:

答案 0 :(得分:1)

这是一个建议的肮脏黑客。你的问题是你的行只有代码而不是文本,对吗?好吧,只需在代码之后添加一些无意义的文本。您可以使用&#xH;格式插入unicode字符的十六进制代码,例如零宽度或不间断空格。我想这会让你说服黑线鳕你是在内联而不是阻止上下文。