如何在github& gitlab问题中将markdown“``code blocks```中的长行换行?

时间:2016-12-20 08:51:19

标签: github markdown gitlab linewrap

例如:

```
some very long line; some very long line; some very long line; some very long line; some very long line; some very long line; some very long line; some very long line; some very long line; some very long line; 
```

将强制用户滚动github / gitlab问题。 有没有办法在code block内进行软线包装?

我已经阅读了相关问题,但它们似乎有所不同(例如jekyll等)。

编辑:手动编辑代码以限制为80列不是一个可行的选择(例如,从编译器输出/日志等粘贴时;这需要做很多工作而且不是必需的)

8 个答案:

答案 0 :(得分:17)

一个快速的解决方法是引用您的代码块,例如

<块引用>

this line is very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very long

确保将三个反引号与很长的行保持一致。像这样:

> ```this line is very long```

答案 1 :(得分:6)

我当前使用的不完善的解决方法是替换

``` 

带有单个反引号:

`

...然后逐行执行。对于较大的代码块而言,这是不可行的,而且对于标记查看者来说,突出显示代码更加困难。因此,这种“逐行”解决方法远不如真正包含在```中的代码换行。

答案 2 :(得分:3)

看起来这还不可能。但你可以使用一些扩展来解决标记问题 - 这个chrome extension非常酷, 有关更多信息,请参阅此github thread here

答案 3 :(得分:0)

为自己找到以下解决方案,并在“ github”上对其进行了测试:

1)创建后缀为“ .md”的文件

2)使用 << em> div > 标签解决请求的目标-将长行分成几行,将其标记为一行。

示例:

<div>I am
very
long line</div>

将被视为以下内容:

I am very long line

答案 4 :(得分:0)

在输出HTML文件的CSS下方添加 要么 在链接的CSS

中对其进行编辑

code {
  white-space : pre-wrap !important;
}

答案 5 :(得分:0)

使用扩展名,例如User Css

默认pre code和gitlab的代码


pre code,  /* stackoverflow */
.md:not(.use-csslab) pre code
 {
  white-space: pre-wrap;
}

pre code pre-wrap

或使用其他扩展名,例如JSScript triks

切换“自动换行”:

在JS部分中添加开关init:

var ws = function(i,e) { 
  $("pre code").filter(function(){
   var _t = $(this).parent();
    return !_t.has("input[switch").length 
      && _t.get(0).scrollWidth > _t.innerWidth();
  }).before("<input type='checkbox' checked switch title='Wrap/Unwrap' />");
}
$("body").on("change", ws).change();
$(window).bind("scroll", ws);

在CSS部分中添加样式:

pre {position:relative;}
input[type="checkbox"][switch] {
  position: absolute;
  display: block;
  right:0.5em;
  top:0.5em;
}
pre input[switch]:checked + code { white-space: pre-wrap; }
/* pre input[switch]:not(:checked) + code { white-space: pre; } */

enter image description here

答案 6 :(得分:0)

方法1-Ruby

如果您安装了ruby,则可以在终端中执行此操作。 首先转到您的终端并运行以下命令:

ruby -e 'puts "Paste your string here: \n"; str = gets.chomp; puts "Here you go:\n\n"; puts str.scan(/.{1,80}/).join("\n")'

然后将要输出的字符串数据从任何位置复制到剪贴板,并将其粘贴到终端提示中。您应该每80个字符在新行中分割一次输出。

方法2-Vim

如果已安装vim,则只需将字符串放入vim。

打开vim并输入

:set paste

点击进入。然后键入p将字符串粘贴到编辑器中。然后做:

:%s/.\{80}/&\r/g

现在,您可以将文本复制回剪贴板,方便您使用。

答案 7 :(得分:0)

对于支持 Markdown 的非 github 地方,扩展@Tarun 的答案(这对常规 HTML 页面很有用)如下:

如果您无权访问外部 CSS,只需在同一页面上添加以下 <style>

<style>
  code {
    white-space : pre-wrap !important;
    word-break: break-word;
  }
</style>

该页面上的所有代码块都将自动换行。 word-break: break-word 将避免跨行打断单词。

(SO 的问题特别是关于 Github 问题,但将其作为答案放在这里,因为这是 Google 上第一个出现在 Markdown 代码块中包装行的链接 - 从对类似答案点赞)