【问题标题】:How do I escape slash in org-mode?如何在 org-mode 中转义斜线?
【发布时间】:2013-03-10 16:54:06
【问题描述】:

foo /bar/ baz为例,导出为HTML时变成foo <i>bar</i> baz,现在我想导出成原来的样式foo /bar/ baz,怎么实现呢?我试过foo \/bar\/ baz,但是输出变成了foo \/bar\/ baz

我知道这是一个简单的问题,我用谷歌搜索了很多,但只找到了这个:Escape pipe-character in org-mode,答案说斜线转义工作正常,但对我来说,似乎不太好。


编辑:

搜索org模式邮件列表后,我在这里找到一个讨论和解决方案:http://thread.gmane.org/gmane.emacs.orgmode/50743

有两种方法可以做到这一点:

  1. 设置选项#+OPTIONS: *:nil 关闭所有强调符号
  2. 修改变量org-emphasis-alist,删除相关内容

对我来说,第一个解决方案是可以接受的,也很简单。

【问题讨论】:

  • 我很欣赏人们给出的答案,但它们只是说明 orgmode 确实需要一个适当的转义机制。我在 orgmode 中使用标记遇到过很多这样的情况,它们并不总是可以通过这样的变通方法解决。
  • 例如,换行符会中断/italics/ 处理,所以如果我想让它们斜体,我必须将整个段落放在一行上。

标签: emacs org-mode


【解决方案1】:

在空格和正斜杠之间放置一个零宽度空格(U+200B;在 Emacs 中使用 Ctrl-x 8 RET 200B RET 插入)。

组织模式文本

What do we see?
- /foo/
- ​/foo/

在第二个“foo”行的第一个正斜杠之前插入一个零宽度空格(不可见,因为它的宽度为零)在导出后生成以下 HTML:

<div id="content">
<h1 class="title">What do we see?</h1>

<ul>
<li><i>foo</i>
</li>
<li>​/foo/
</li>
</ul>

</div>

零宽度空间也被导出,并最终在您期望的 &lt;li&gt;/foo/ 之间。

【讨论】:

    【解决方案2】:

    如果您可以容忍斜线之间的空格,foo / bar / bas 将使用文字斜线导出。或者,您可以使用=foo /bar/ baz= 逐字逐句制作整个字符串。

    我怀疑这些都不是你想要的,但它们可以很容易地完成并且可能已经足够好了。

    编辑 如果 URL 需要斜杠,则应使用 orgmode 链接语法,例如 [[http://foo/bar.baz]]

    【讨论】:

    • 嗨@lsta,谢谢你的回答,你是对的,你提到的两个不是我想要的。由于斜杠是 URI 的一部分,例如 href="/blog/post1/",因此额外的空格和逐字字符串不适合这种情况。
    • 嗨@KelvinHu,我已经编辑了答案以解决网址问题。
    • 嗨@lsta,实际上它不是像http://example.com/blog/post1/这样的完整URL,它只是一个URI,像/blog/post1/,所以我不能使用链接语法。不过,感谢您的回答,我已经想出了如何解决这个问题,请参阅我的问题的“编辑”部分。
    【解决方案3】:

    (为了完整起见,我将在此处重新发布my answer...)

    您还可以将相关文本格式化为 verbatimcode

    Org 模式不处理代码中的文本和逐字字符串 具体语法;它是逐字导出的。

    因此,您可以尝试=foo | bar=(代码)或foo ~|~ bar(逐字)之类的方法。不过,它确实会改变输出格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多