【问题标题】:Emacs mode for Stack Overflow's markdownStack Overflow 降价的 Emacs 模式
【发布时间】:2012-04-30 12:47:51
【问题描述】:

我在 Emacs 中使用 Org-mode 来处理我的所有技术文档。我想使用 Emacs 来准备 Stack Overflow 的问题。有没有一个 Emacs 模式,或者更好的是,一个 Org-mode 的扩展来处理 Stack Overflow 格式?理想情况下,它应该包括 Stack Overflow 问题/评论缓冲区中使用的 markdown 语法支持的所有格式选项。

【问题讨论】:

标签: emacs markdown org-mode


【解决方案1】:

将 Emacs 与 Stack Overflow 集成

As mentioned 你可以使用markdown-mode。要将 markdown-mode 与 Stack Overflow 集成,您可以使用 Firefox 插件 It's All Text,它允许您使用外部编辑器编辑文本区域。设置方法如下:

  1. 安装markdown-mode。如果你使用 Debian 或 Ubuntu,你可以通过发布来安装它

    sudo apt-get install emacs-goodies-el
    

    或者,如果您使用的是 emacs 24(或在 emacs 23 上有 package.el)和 MarmaladeMelpa,您可以使用以下命令安装它

    M-x package-install RET markdown-mode
    
  2. 安装It's All Text

  3. 设置 It's All Text 的首选项以使用 Emacs。您可以将其设置为可执行文件(例如 /usr/bin/emacs)或 the emacsclient
  4. 将以下内容添加到您的 .emacs 以启用 Stack Overflow 和 Stack Exchange 文本区域的降价模式:

    ;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
    (add-to-list 'auto-mode-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))
    

    或者,如果as-external-alist 被定义——如果M-x describe-variable RET as-external-alist 没有失败——它可能会覆盖你的auto-mode-alist。它的格式稍有不同(它是对列表而不是 cons 单元格列表),因此可以使用:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
    
  5. 按下文本区域右下角的蓝色编辑按钮以通过 emacs 对其进行编辑。蓝色的编辑按钮如下图所示:

    下面的截图是一个 Emacs 缓冲区,在 Markdown 模式下编辑这篇文章:

  6. 在 Emacs 中完成编辑后,保存缓冲区以将其发送到 Firefox。

如果您希望其他域具有此功能,则需要更改上面的正则表达式。以下识别 Stack Exchange、Stack Overflow、Ask Ubuntu 和超级用户:

;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
(add-to-list 'auto-mode-alist '("\\(stack\\(exchange\\|overflow\\)\\|superuser\\|askubuntu\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))

在 Org-mode 中使用 markdown-mode

要将 markdow-mode 与 Org-mode 一起使用,您可以使用 its feature for working with source code。有了它,您可以在 Org-mode 缓冲区中包含 markdown 块,您可以通过 markdown-mode 对其进行编辑。您可以按如下方式使用它:

  1. 在 Org 模式缓冲区中时,在换行符上输入 <s,然后按 Tab。这将导致

    #+begin_src 
    
    #+end_src
    
  2. #+begin_src之后输入markdown,这样你就有了

    #+begin_src markdown
    
    #+end_src
    
  3. 在源块内(#+begin_src markdown#+end_src 之间)按 C-c ' 以使用降价模式编辑源块。

  4. 在降价模式下编辑源块。

  5. C-c ' 返回到 Org 模式缓冲区并插入编辑。这可能类似于以下屏幕截图所示:

【讨论】:

  • 如果您安装了as-external(或安装了nxhtml-modeas-external),它可能会完全忽略您对auto-mode-alist 的调整,即您要修改的变量然后as-external-alist
  • @quodlibetor 我会以完全相同的方式修改as-external-alist吗?
  • @N.N.几乎一模一样,但你需要从内部单元格中取出句号,我有这个,它对我有用:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+" markdown-mode))
  • 也许您可以更新此答案以提及SX — Stack Exchange for Emacs :)
  • 其所有文本不再受支持,并且无法与最新版本的 firefox (57+) 一起运行
【解决方案2】:

有降价模式:http://jblevins.org/projects/markdown-mode/

请参阅http://emacswiki.org/emacs/MarkdownMode 进行一些自定义。

这里有一个用于新导出引擎的降价后端: http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-md.el;hb=HEAD

确保将contrib/lisp/ 目录添加到您的load-path

然后是(require 'org-export)(require 'org-md)

M-x org-md-export-to-markdown RET 将导出到 Markdown。

【解决方案3】:

@N.N 的回答也适用于 Chrome,这些变化有详细说明。

Chrome 有Edit with Emacs 扩展名,类似于It's all text。安装后,您会在扩展选项页面找到更多说明。

有一个带有选项的 emacs 自定义组 edit-server,最重要的是,每个站点的主要模式更改的配置与 @N.N 的答案不同:

(add-to-list 'edit-server-url-major-mode-alist
             '("^stackoverflow" . markdown-mode))

另外,为了让编辑服务器在终端 emacs 中工作,我必须禁用 edit-server-new-frame 选项。

【讨论】:

    【解决方案4】:

    Pandoc 支持读取 org-mode 的子集,可以输出 markdown。

    也就是说,你可以在org-mode中继续写,包括写斜体/like this/,然后导出到markdown。 在 emacs 中,您可以通过选择区域、点击 C-u M-S-\ 并输入 pandoc -r org -t markdown 来转换为 markdown,得到如下输出:

    In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.
    

    或者,您可以保存文件并在命令行中进行转换。

    【讨论】:

      【解决方案5】:

      Chrome 也很容易

      这与其说是一个答案,不如说是对我的解决方案的测试 这 Edit with Emacs铬 插件和 Emacs Edit Server 配置为使用markdown-mode 对于 Stackoverflow(以及我使用的其他 Stackexchange 站点)。之后我要做的一切 安装扩展和 MELPA 包已设置

      (setq edit-server-url-major-mode-alist
                   '(("mail.google.com" . org-mode)
                     ("stackoverflow\\.com" . markdown-mode)
                     (".*\\.stackexchange\\.com" . markdown-mode)
                     ("github\\.com" . markdown-mode)))
      

      Gmail 消息支持

      请注意,在上述设置中,我将 org-mode 用于 gmail 消息。还需要 在这里做一些工作,但有可能,稍加努力,起草 您使用 org-mode 的 gmail 消息,然后使用 org-mime 从 您的组织结构化文本。您可以只使用降价和降价到 html 转换。

      【讨论】:

        猜你喜欢
        • 2014-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-22
        • 1970-01-01
        • 2019-10-03
        • 2011-02-14
        • 1970-01-01
        相关资源
        最近更新 更多