小编Til*_*und的帖子

在pandoc表中为odt/docx输出添加样式规则(表格边框)

我正在使用knitr和pandoc通过markdown生成一些odt/docx报告,现在我想知道如何制作表格.主要是我有兴趣添加规则(至少在标题下方的顶部,底部和一个,但是能够在表格中添加任意的规则也很好).

通过pandoc(没有任何特殊参数)从pandoc文档运行以下示例只会产生一个"普通"表,没有任何规则/颜色/指南(在任何一个-t odt或中-t docx).

+---------------+---------------+--------------------+
| Fruit         | Price         | Advantages         |
+===============+===============+====================+
| Bananas       | $1.34         | - built-in wrapper |
|               |               | - bright color     |
+---------------+---------------+--------------------+
| Oranges       | $2.10         | - cures scurvy     |
|               |               | - tasty            |
+---------------+---------------+--------------------+
Run Code Online (Sandbox Code Playgroud)

我已经通过"样式"查看了在引用.docx/.odt中指定表格格式的可能性,但在"表格标题"和"表格内容"样式之外没有发现任何明显的东西,这两种样式似乎只涉及格式化表格中的文字.

由于对WYSIWYG风格的文档处理器不太熟悉,我对如何继续而感到迷茫.

docx odt pandoc

21
推荐指数
3
解决办法
1万
查看次数

使用管道(-core)的错误处理方法是什么?

我正在为我的一个小项目写一些管道 - core/attoparsec管道.我希望每个解析器都提供一个管道,等待ByteString输入到解析器并产生任何解析的值(重新启动解析器).没有错误处理,它将具有类似的类型

parserP :: Monad m => Parser a -> Pipe ByteString a m r
Run Code Online (Sandbox Code Playgroud)

现在,我不确定如何处理解析错误.我目前的想法是:

  • 将错误添加到返回类型(即返回值Either ParseError r而不仅仅是r)
  • 要求monad提供错误处理机制(即要求monad管道被接管实现MonadError)
  • 强制单子通过采取管在提供错误的机制ErrorT e m a任何单子m
  • 添加参数,让用户指定行为(类似于(ParseError -> P.Pipe ByteString a m r),在解析错误的情况下简单地绑定到这样提供的管道)

第一个解决方案似乎是错误的,因为使用管道的返回类型进行错误处理似乎更像是一个黑客攻击.一方面,它使管道组成更加丑陋,似乎或多或少被最终解决方案所包含(除了可能失去让下游管道能够通过使用tryAwait从错误中恢复并停止等待值的能力?).

第二种解决方案似乎不对,但我无法完全理解为什么.可能因为它(可能?)还需要一个参数将ParseError转换为monad所具有的任何错误类型(除非我们希望monad实现MonadError ParseError,这似乎会导致大量的簿记).最后,我似乎无法记得看到MonadError这么多,这表明使用它存在一些问题.

第三种解决方案适用于我的情况,因为管道将是管道的一部分,用户指定的monad(IO)不应该关心解析错误(它会将网络数据解析为产生用户的格式)指定的类型).但它看起来并不那么优雅,并且会再次(可能?)导致在任何其他环境中使用过很多书籍.

我没有真正考虑过最终的解决方案,但似乎有点费解.

对于这个特殊情况的任何想法我都会感激不尽(如果我离开并且遗漏了一些明显的东西,我就不会感到惊讶),以及任何(或多或少相关)关于管道中错误处理的讨论的参考( -core)/ conduit/interatee等

编辑:另一种可能性可能只采取一个monadic动作(而不是一个完整的管道),虽然我不太确定它是否可能只是概括,专业甚至相当于第四个.

error-handling haskell

4
推荐指数
1
解决办法
382
查看次数

标签 统计

docx ×1

error-handling ×1

haskell ×1

odt ×1

pandoc ×1