2016-01-25 3 views
0

У меня есть файл .rmd, который я хочу добавить в GitHub. Чтобы результаты были видимыми вместе с кодом, я преобразовал свой файл .rmd в .md через RStudio.Сохранять выделение кода при преобразовании .Rmd в .md

После преобразования, однако, код (r-) больше не выделяется, когда я просматриваю файл .md на GitHub. Я заметил, что блок кода в файле .md идентифицируется с помощью 4 раз вместо трех обратных ссылок + определение языка. Таким образом, очевидно, что определение языка из файла .rmd теряется.

Как это исправить?

Примечание: Для воспроизведения вы можете просто открыть новый .rmd файл в RStudio и изменить заголовок YAML для:

--- 
title: "TestRun" 
output: 
md_document: 
variant: markdown_github 
--- 

Помощь очень ценится!

ответ

2

Отклонение важно в YAML.

Вот пример из R Markdown documentation:

--- 
output: 
    md_document: 
    variant: markdown_github 
--- 

Этот YAML документ имеет отображение с ключом output, значение которого является отображение с одним ключом, md_document, значение которого является отображение с одним ключом, variant , значением которого является скаляр markdown_github.

Эквивалент в формате JSON (например) будет:

{ "output": { 
    "md_document": { 
     "variant": "markdown_github" 
    } 
    } 
} 

Вот ваш документ (без учета title ключ для ясности):

--- 
output: 
md_document: 
variant: markdown_github 
--- 

Ваш документ имеет отображение с ключом output , значение которого представляет собой отображение с двумя ключами, md_document (с пустым значением или null) и variant (со скалярным значением markdown_github). Эквивалент JSON будет:

{ "output": { 
    "md_document": null, 
    "variant": "markdown_github" 
    } 
} 

Посмотрите разницу?

+0

Thx, ну так ответ на мой вопрос буквально был: «пустое пространство». Ницца :-) –

1

Защищенные кодовые блоки (обратные метки + определение языка) являются нестандартным (хотя и более распространенным) способом маркировки блоков кода. Поэтому он не понимается всеми реализациями Markdown. Фактически, standard Markdown не дает возможности идентифицировать язык блока кода. В этом случае при переходе на стандартный Markdown эта информация будет соответственно утеряна. Если вы хотите сохранить эту информацию, я бы предложил преобразовать ее в нечто другое, что стандартное Markdown. Хотя, согласно другому ответу, если вы исправите конфигурацию YAML, тогда вы будете использовать нестандартную GitHub Flavored Markdown, которая поддерживает блокированные блоки кода.

Если вам действительно нужен стандартный Markdown, вы можете обнаружить, что механизм подсветки JavaScript послужит вам в порядке. Некоторые из лучших движков подсветки JavaScript имеют довольно хорошее определение языка, поэтому вам обычно не нужно указывать язык блоков кода.

Смежные вопросы