文本格式化工具

pro*_*eek 14 software-rec formatting text-processors

我以文本格式做笔记,例如:

##待办事项列表
1. 这样做
2. 这样做

## 某物
### 任何事物
1. 这样做
2. 这样做 

是否有工具可以将此文本更改为 HTML 或 LaTeX 格式?我找到了Sphinx,因为它用于 Python 代码格式。如果有一个用于更通用文本格式的工具,那就太好了。

Red*_*ick 30

自从我写下面的答案已经快八年了,我不再使用 Grutatxt,现在几乎只使用 MultiMarkdown,它为 Markdown 添加了许多有用的扩展——我最常用的扩展功能是表格。

Markdown 有许多扩展,它们不是 100% 兼容的,但如果您注意使用通用的功能子集,它们几乎可以互换使用

  • 多降价
  • Github 风格的 Markdown
  • PHP降价额外

许多应用程序和语言对 Markdown 的超集都有很好的支持。我已经使用 PHP、Perl 和 Go (golang) 支持扩展 Markdown

有许多桌面和移动应用程序支持带有实时预览等功能的 Markdown 编辑。不过我仍然使用纯文本编辑器。

我个人不使用 Pandoc,但我相信它维护良好,可能是最通用的轻量级标记处理器。它应该在任何人的候选名单上。


我建议从查看 MarkdownTextileGrutatxt 开始。但是有很多:

纯文本标记和工具列表

其他列表

Grutatxt

我喜欢 Grutatxt,因为在我看来它最接近朴素的纯文本,因此纯文本非常易读。我使用 GrutaTxt 生成 HTML 和 PDF(通过 LaTeX)它可以很好地处理表格,据我所知 Markdown 没有。我有一个 Perl 脚本来添加目录并插入 CSS 样式表。我使用 recode 将字符编码转换为 UTF8。我在一个简单的 makefile 中拥有所有这些,因此我可以编辑文本文件并键入make以将其发布为网页(和 PDF 同时发布)。

GrutaTxt、ASCIIDOC 和 APT 的标记比较

NL= 换行,SP= 空格字符

Title
  Markdown      Title NL =====
  Grutatxt      Title NL =====
  ASCIIDOC      Title NL =====
  APT           --- NL Title NL --- NL Author NL --- NL Date

H1
  Markdown      Head NL ====   or # Head #
  Grutatxt      Head NL ====
  ASCIIDOC      Head NL ----   or   == Head
  APT           * Head

H2
  Markdown      Head NL ----   or ## Head ##
  Grutatxt      Head NL ----
  ASCIIDOC      Head NL ~~~~   or   === Head
  APT           ** Head

H3
  Markdown      ### Head ###
  Grutatxt      Head NL ~~~~
  ASCIIDOC      head NL ^^^^   or   ==== Head
  APT           *** Head

H4
  Markdown      -
  Grutatxt      -
  ASCIIDOC      Head NL ++++   or   ===== Head
  APT           **** Head       

Bold
  Markdown      **word**
  Grutatxt      *word*
  ASCIIDOC      .word
  APT           <<word>>

Italic
  Markdown      *word*
  Grutatxt      _word_
  ASCIIDOC      -
  APT           <word>

Code
  Markdown      `words`
  Grutatxt      `words'
  ASCIIDOC      `words`
  APT           <<<words>>>

Line Break
  Markdown      words SP SP NL
  Grutatxt      -
  ASCIIDOC      -
  APT           words \ NL words

Non breaking space
  Markdown      -
  Grutatxt      -
  ASCIIDOC      -
  APT           word\ word

Comment
  Markdown      -
  Grutatxt      -
  ASCIIDOC      -
  APT           ~~ comments

HyperLink
  Markdown      [name](http://a.b.c)
  Grutatxt      http://a.b.c(name)
  ASCIIDOC      <<a.b.c, name>>
  APT           http://a.b.c
                {{{http://a.b.c}name}}

Anchor
  Markdown      -
  Grutatxt      -
  ASCIIDOC      [[name]]
  APT           {name}

Unordered List
  Markdown      SP SP - words
  Grutatxt      SP * words
  ASCIIDOC      SP - words
  APT           SP * words

Ordered List
  Markdown      SP SP 1. words
  Grutatxt      SP # words
  ASCIIDOC      -
  APT           [[1]] words

Definition
  Markdown      -
  Grutatxt      SP * term: definition
  ASCIIDOC      term:: NL definition
  APT           [term] definition

Table
  Markdown      -
  Grutatxt      +---+---+
                | a | b |
                +---+---+
  ASCIIDOC      ~~~~~
                h,h,h
                ~~~~~
                a,b,c
                d,e,f
                ~~~~~
  APT           *---*---+---:
                |ctr|lft|rgt|
                *---*---+---:
                caption

Image
  Markdown      ![alt](http://a.b.c.png)
  Grutatxt      << NL <img src="cow.jpg" /> NL >>
  ASCIIDOC      -
  APT           [cow.jpg] caption

Preformatted
  Markdown      SP SP SP SP words    or <pre> NL words NL </pre>
  Grutatxt      SP words
  ASCIIDOC      SP words
  APT           --- NL words NL ---

Horizontal Rule
  Markdown      NL ------ NL      
  Grutatxt      ____
  ASCIIDOC      -
  APT           ====

Citation
  Markdown      -
  Grutatxt      ``words
  ASCIIDOC      -
  APT           -
Run Code Online (Sandbox Code Playgroud)