【问题标题】:Post a text which will be handled by MathJax发布将由 MathJax 处理的文本
【发布时间】:2013-12-08 14:45:18
【问题描述】:

我在以 html 形式发布文本时遇到问题。 要发布到新页面以显示的文本(来自文本区域) 可能具有以下属性:

  1. 包括两个美元符号之间要由 MathJax 处理的乳胶代码
  2. 需要保留换行符
  3. 可能包含 html 代码,例如输入标签

我尝试了以下方法:

  • 将“\r\n”子字符串替换为html“br”标签,然后将文本发布到div或span的innerHTML 保持换行符。但是我需要事先删除文本中的 html 部分,否则, 如果文本包含“输入”标签,我将在结果页面中有一个输入框!

    更重要的是,如果我删除 html 标签,那么我会不小心删除子字符串,如 ac,(如果''相邻,好像StackOverFlow也处理不了!)

  • 使用 pre 标记保留换行符,然后 MathJax 不起作用!

那么,谁能帮我解决这个问题?提前致谢!顺便说一句,我在我的项目中使用 ruby​​ on rails。

【问题讨论】:

    标签: html mathjax


    【解决方案1】:

    您可以允许 MathJax 处理 <pre> 标记,方法是从配置的 text2jax 块中的 skipTags 数组中删除它们。有关详细信息,请参阅documentation。

    【讨论】:

    • 谢谢!但是我又会面临文本可能包含输入标签(或任何其他HTML标签)的问题,那么我怎样才能将标签显示为输入框以外的纯文本呢?
    • 抱歉,我没有完全理解你想要什么。对于那些不使用 Ruby 的人,您可以使用 text.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">") 来转义存储在变量 text 中的字符串的内容。
    • 你的方法当然也能做到这一点!
    【解决方案2】:

    最后,我像上面提到的Cervone先生一样使用skipTags并将文本放入pre标签中。为了将 HTML 标记转换(并保留)为纯文本格式,我使用了 ruby​​ 提供的一种名为 CGI.escapeHTML 的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      相关资源
      最近更新 更多