Github: Как встроить gist в README.md?

Можно ли вставлять gits в файл README.md, который находится в репозитории github?

Что-то вроде:

<code id="gist-3167145"></code>

Ответ 1

Обновление. Мой ответ работает с страницами github, построенными через jekyll. Я использую теги script в методе уценки, который затем обрабатывается jekyll.

Так как markdown поддерживает html, можно просто использовать тег <script> для вставки gist.

Просто скопируйте URL-адрес вставки, предоставленный github

введите описание изображения здесь

.. и вставьте его в файл сметки.

Пример: Скопируйте ниже и вставьте файл отметки.

<script src="https://gist.github.com/nisrulz/11c0d63428b108f10c83.js"></script>

.. и вот что вы получите

введите описание изображения здесь

Ответ 2

Нет, извините, это невозможно. Вам придется либо иметь ссылку на него в вашем README.md, либо скопировать его содержимое.

Github Flavored Markdown покажет вам, что вы можете поместить в свой файл README.md.

Ответ 3

Вы можете сделать это, если используете препроцессор уценки, например Gitdown:

/**
 * Resolve Gist (https://gist.github.com/)
 *
 * @param {Object} config
 * @param {String} config.id Gist ID.
 * @param {String} config.fileName Gist file name. Default to gistfile1.txt.
 */
gitdown.registerHelper('gist', {
    compile: function (config) {
        config = config || {};
        config.fileName = config.fileName || 'gistfile1.txt';

        if (!config.id) {
            throw new Error('Gist ID must be provided.');
        }

        return new Promise(function (resolve) {
            var https = require('https');

            https.get({
                host: 'api.github.com',
                path: '/gists/' + config.id,
                headers: {
                    // User agent is required to communicate with Github API.
                    'user-agent': 'Gitdown – gist'
                }
            }, function(res) {
                var body = '';

                res.setEncoding('utf8');

                res.on('data', function (d) {
                    body += d;
                });

                res.on('end', function () {
                    var gist = JSON.parse(body);

                    if (!gist.files) {
                        throw new Error('Gist ("' + config.id + '") not found.');
                    }

                    if (!gist.files[config.fileName]) {
                        throw new Error('File ("' + config.fileName + '") is not part of the gist ("' + config.id + '").');
                    }

                    resolve(gist.files['gistfile1.txt'].content);
                });
            });
        });
    }
});

Затем в вашей уценке вы ссылаетесь на Gist с помощью JSON-крючка, например

{"gitdown": "gist", "id": "d3e4212c799252bac5fa"}

Эта функция должна стать частью Gitdown в ближайшем будущем (есть открытая проблема, https://github.com/gajus/gitdown/issues/7).