代码之家  ›  专栏  ›  技术社区  ›  Саша ЧерныÑ

将GFM突出显示的代码块转换为堆栈溢出突出显示的代码块

  •  1
  • Саша Ð§ÐµÑ€Ð½Ñ‹Ñ  · 技术社区  · 8 年前

    1、问题

    我无法转换 GFM highlighted code block Stack Overflow highlighted code block .


    2、示例

    例如,我需要转换:

    Do not change this line
    
    ```markdown
    Sasha great!
        Sasha nice!
    She is beautiful, surprise!
    ```
    
    Do not change this line
    

    收件人:

    Do not change this line
    
    <!-- language: lang-markdown -->
    
        Sasha great!
            Sasha nice!
        She is beautiful, surprise!
    
    Do not change this line
    

    3、问题

    为了突出显示代码块,我需要在代码块内每行的开头添加选项卡。我不明白,我怎么能做到。


    4、没有帮助

    我的示例regex:

    • 发现 :

      \`\`\`(.+?)\n((.+?\n)+)\`\`\`
      
    • 代替 :

      <!-- language: lang-\1 -->\n\n\t\2
      

    Demonstration on Regex101 .

    我得到的结果是:

    Do not change this line
    
    <!-- language: lang-markdown -->
    
        Sasha great!
        Sasha nice!
    She is beautiful, surprise!
    
    
    Do not change this line
    

    仅为代码块内的第一行在开头添加制表符号。我能做什么,在代码块内每行的开头添加制表符?

    1 回复  |  直到 8 年前
        1
  •  2
  •   revo shanwije    8 年前

    由于您使用的是Sublime文本查找/替换功能,并且不涉及任何编程语言,因此需要大约两个步骤才能实现您的愿望。

    对于第一步,请尝试搜索:

    (?m)(?:^```\h*\S+\s+\K|\G(?!\A))^(?!```)(.*\R+)(?:```)?
    

    并替换为:

    \t\1
    

    Live demo

    第二个查找/替换过程是添加HTML注释,以便搜索:

    (?m)^```\h*(\S+)
    

    并将其替换为:

    <!-- language: lang-\1 -->\n
    

    Live demo

    推荐文章