如何在github markdown中嵌入来自repo的代码?

时间:2012-04-23 12:49:56

标签: github markdown

有没有办法在Githubs markdown中嵌入文件内容(来自项目仓库)?

我有一个代码示例,并希望将其嵌入项目自述文件中。

3 个答案:

答案 0 :(得分:4)

你目前无法做到这一点。您必须复制代码示例并将其粘贴到README文件中的三个刻度之间。这是一个例子:

``` Ruby
class MyClass
end
```

这当然是静态的,您必须在代码更改时手动更新它。

答案 1 :(得分:1)

@Petros的回答是(仍然)正确,但是对此我感到非常恼火,我创建了一个工具来自动执行复制并使您的自述文件与源保持同步-https://github.com/zakhenry/embedme

接受的答案中的用法示例

在代码围栏中插入注释

```rb
# path/to/your/file.rb
```

运行npx embedme README.md(假设您已安装Nodejs)

自述文件将就地编写,文件的内容将在您的注释之后

```rb
# path/to/your/file.rb
class MyClass
end
```

请注意,由于评论仍然存在,因此您可以愉快地再次运行npx embedme README.md,并且不会进行任何更改。

如果您有CI,也可以运行npx embedme --verify README.md,如果它检测到差异,则将返回1(这意味着源已更新,而没有更新自述文件)。

答案 2 :(得分:0)

您可以编写一个脚本,该脚本将从公共存储库加载源代码,然后将其显示在容器中。这是一个MD文件的示例,该文件从github加载数据并将其显示在容器中。

## Welcome to the Simple Alarm Server Example
This page will load and show a code example. 


<div id="code-element"></div>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
      axios({
      method: 'get',
      url: 'https://raw.githubusercontent.com/iotify/nsim-examples/master/functional-testing/alarm-server.js'
       })
      .then(function (response) {
         document.getElementById("code-element").innerHTML = response.data;
      });
</script>