Есть ли утилита командной строки для рендеринга GitHub?
Мне интересно, есть ли утилита командной строки для принятия файла GitHub Marked и рендеринга его в HTML.
Я использую вики GitHub для создания содержимого веб-сайта. Я клонировал репозиторий на своем сервере и хотел бы обработать его в обычный HTML. Для меня важно, что то, что появляется на GitHub, - это именно то, как он должен искать мой сайт. Я также очень хотел бы использовать огражденные блоки с ~~~
, поэтому я бы предпочел не использовать только стандартный синтаксис Markdown.
Я немного посмотрел в предварительный просмотр JavaScript в JavaScript, чтобы подключить его к Node.js, но они говорят, что он устарел. Я посмотрел репозиторий redcarpet, но это не похоже на интерфейс командной строки.
Я выполнил свое собственное решение, однако, поскольку решение здесь явно лучше других, я оставлю вопрос без ответа.
Ответы
Ответ 1
Я написал небольшой CLI в Python и добавил поддержку GFM. Он называется Grip (мгновенный просмотр Github Readme).
Установите его с помощью:
$ pip install grip
И использовать его просто:
$ grip
Затем посетите localhost:5000
, чтобы просмотреть файл readme.md
в этом месте.
Вы также можете указать свой собственный файл:
$ grip CHANGES.md
И измените порт:
$ grip 8080
И, конечно же, специально создайте GitHub-Flavored Markdown, необязательно с контекстом репозитория:
$ grip --gfm --context=username/repo issue.md
Известные функции:
- Отображает страницы так, как на GitHub
- Огороженные блоки
- API Python
- Перемещение между связанными файлами (спасибо, vladwing!) добавлено в 2.0
- Экспорт в один файл (спасибо, iliggio!) добавлен в 2.0
- Новое: Чтение из
stdin
и экспорт в stdout
, добавленный в 3.0
Надеюсь, это поможет кому-то здесь. Проверьте это.
Ответ 2
Я не нашел быстрый и легкий метод для Markdown, настроенный на GitHub, но я нашел несколько более общую версию - Pandoc. Он преобразует из/в несколько форматов, включая Markdown, Rest, HTML и другие.
Я также разработал Makefile
для преобразования всех файлов .md в .html(в значительной степени к примеру в Writing, Markdown и Pandoc):
# 'Makefile'
MARKDOWN = pandoc --from markdown_github --to html --standalone
all: $(patsubst %.md,%.html,$(wildcard *.md)) Makefile
clean:
rm -f $(patsubst %.md,%.html,$(wildcard *.md))
rm -f *.bak *~
%.html: %.md
$(MARKDOWN) $< --output [email protected]
Ответ 3
Возможно, это может помочь:
gem install github-markdown
Документация не существует, но я получил ее из документации gollum. Рассматривая rubydoc.info, похоже, вы можете использовать:
require 'github/markdown'
puts GitHub::Markdown.render_gfm('your markdown string')
в вашем коде Ruby. Вы можете легко переносить это в script, чтобы превратить его в утилиту командной строки:
#!/usr/bin/env ruby
# render.rb
require 'github/markdown'
puts GitHub::Markdown.render_gfm File.read(ARGV[0])
Выполните его с помощью ./render.rb path/to/my/markdown/file.md
. Обратите внимание, что это небезопасно для использования в производстве без дезинфекции.
Ответ 4
sudo pip install markdown
python -m markdown readme.md > readme.html
Он не обрабатывает расширения GitHub, но лучше, чем ничего. Я считаю, что вы можете расширить модуль для обработки дополнений GitHub.
Ответ 5
Наверное, не то, что вы хотите, но так как вы упомянули Node.js: я не смог найти хороший инструмент для предварительного просмотра документации GitHub Flavored Markdown на моем локальном диске, прежде чем передавать их в GitHub, поэтому сегодня я создал его на основе Node.js: https://github.com/ypocat/gfms
Итак, возможно, вы можете повторно использовать showdown.js для своей Wiki, если ваш вопрос по-прежнему актуальен. Если нет, возможно, другие люди, столкнувшиеся с той же проблемой, что и я, найдут (как и я) этот вопрос и этот ответ на него.
Ответ 6
Используйте marked. Он поддерживает GitHub Flavored Markdown, может использоваться как модуль Node.js и из командной строки.
Пример:
$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
Ответ 7
GitHub имеет API Markdown, который вы можете использовать.
Ответ 8
Чтобы прочитать файл README.md в терминале, я использую:
pandoc README.md | lynx -stdin
Pandoc выводит его в формате HTML, который Lynx отображает в вашем терминале.
Он отлично работает: он заполняет мой терминал, ярлыки показаны ниже, я могу прокручивать, и ссылки работают!
Тем не менее, существует только один размер шрифта, но цвета + выравнивание + выравнивание составляют это.
Установка:
sudo apt-get install pandoc lynx
Ответ 9
Я создал инструмент, аналогичный функциям Atom Preview, но как отдельное приложение. Не уверен, что это то, что вы ищете, но это может быть полезно. - https://github.com/yoshuawuyts/vmd
![vmd]()
Ответ 10
В основном это ответ на вопрос @barry-staes для использования Pandoc. У Homebrew тоже есть это, если вы на Mac:
brew install pandoc
Pandoc поддерживает GFM как формат ввода с помощью имени markdown_github
.
Выход в файл
cat foo.md | pandoc -f markdown_github > foo.html
Открыть в Lynx
cat foo.md | pandoc -f markdown_github | lynx -stdin # To open in Lynx
Открыть в браузере по умолчанию в OS X
cat foo.md | pandoc -f markdown_github > foo.html && open foo.html # To open in the default browser on OS X`
Интеграция TextMate
Вы всегда можете подключить текущий или текущий документ к одному из вышеперечисленных, как это позволяет большинство редакторов. Вы также можете легко настроить среду, чтобы pandoc
заменил процессор Markdown по умолчанию, используемый пакетом Markdown.
Сначала создайте оболочку script со следующим содержимым (я назову это ghmarkdown
):
#!/bin/bash
# Note included, optional --email-obfuscation arg
pandoc -f markdown_github --email-obfuscation=references
Затем вы можете установить переменную TM_MARKDOWN
(в настройках → Переменные) на /path/to/ghmarkdown
, и она заменит процессор Markdown по умолчанию.
Ответ 11
pandoc
с browser
работает хорошо для меня.
Использование: cat README.md | pandoc -f markdown_github | browser
Установка (Предположим, вы используете Mac OSX):
-
$ brew install pandoc
-
$ brew install browser
Или на Debian/Ubuntu: apt-get install pandoc browser
Ответ 12
Также см. https://softwareengineering.stackexchange.com/a/128721/24257.
Если вам интересно, как мы [Github] выставляем файлы Markdown, вы можете проверить Redcarpet, наш Ruby интерфейс к библиотеке Sundown.
Ruby- script, которые используют Redcarpet, будет "утилитой командной строки", если у вас будет локальный Ruby
Ответ 13
Моим окончательным решением было использовать Python Markdown. Я развернул мой собственный расширение, которое зафиксировало блоки забора.
Ответ 14
Существует действительно хороший и простой инструмент для просмотра документов GFM Markdown:
GFMS - Gritub Flavored Markdown Server
Это простой и легкий (без настройки) HTTP-сервер, который вы можете запустить в любом каталоге, содержащем файлы разметки, чтобы просмотреть их.
Особенности:
- Поддержка Full GFM Markdown
- Выделение синтаксиса исходного кода
- Просмотр файлов и каталогов
- Хороший внешний вид (и настраиваемые таблицы стилей CSS)
- Экспорт в PDF
Ответ 15
GitHub (с тех пор) разработал красивый модульный текстовый редактор под названием Atom (на основе Chromium и использует Node.js для пакетов).
Предустановленный пакет по умолчанию Markdown Preview позволяет отображать предварительный просмотр на отдельной вкладке с помощью Ctrl + Shift + M.
Я не тестировал его полный синтаксис, но поскольку он поступает из GitHub, я был бы очень удивлен, если синтаксис предварительного просмотра отличается от их (блокированные блоки с использованием ~~~
работают).
Теперь, хотя он не является технически основанной на командной строке, он использует Node.js и выводит на DOM, который может помочь любому, кто пытается отобразить HTML на основе синтаксиса GitHub на веб-сервере с Node.js или просто отредактировать его/ее README.md в автономном режиме.
Ответ 16
Улучшение решения @barry-stae. Привяжите этот фрагмент в ~/.bashrc
function mdviewer(){
pandoc $* | lynx -stdin
}
Затем мы можем быстро просмотреть файл из командной строки. Также отлично работает над сеансами SSH/Telnet.
mdviewer README.md
Ответ 17
Я нашел веб-сайт, который сделает это за вас: http://tmpvar.com/markdown.html. Вставьте в свой Markdown, и он отобразит его для вас. Кажется, все работает отлично!
Однако, похоже, он не обрабатывает параметр подсветки синтаксиса для кода; то есть функция ~~~ruby
не работает. Он просто печатает "ruby".
Ответ 18
Позднее добавление, но showdownjs имеет инструмент CLI, который вы можете использовать для разбора MD в HTML.
Ответ 19
На основе Джим Лим ответ, я установил GitHub Markdown gem. Это включало script, называемый gfm, который принимает имя файла в командной строке и записывает эквивалентный HTML в стандартный вывод. Я немного изменил это, чтобы сохранить файл на диске, а затем открыть стандартный браузер с помощью запуска:
#!/usr/bin/env ruby
HELP = <<-help
Usage: gfm [--readme | --plaintext] [<file>]
Convert a GitHub-Flavored Markdown file to HTML and write to standard output.
With no <file> or when <file> is '-', read Markdown source text from standard input.
With `--readme`, the files are parsed like README.md files in GitHub.com. By default,
the files are parsed with all the GFM extensions.
help
if ARGV.include?('--help')
puts HELP
exit 0
end
root = File.expand_path('../../', __FILE__)
$:.unshift File.expand_path('lib', root)
require 'github/markdown'
require 'tempfile'
require 'launchy'
mode = :gfm
mode = :markdown if ARGV.delete('--readme')
mode = :plaintext if ARGV.delete('--plaintext')
outputFilePath = File.join(Dir.tmpdir, File.basename(ARGF.path)) + ".html"
File.open(outputFilePath, "w") do |outputFile |
outputFile.write(GitHub::Markdown.to_html(ARGF.read, mode))
end
outputFileUri = 'file:///' + outputFilePath
Launchy.open(outputFileUri)
Ответ 20
"Быстрый и грязный" подход заключается в загрузке HTML-страниц wiki с помощью утилиты wget
вместо клонирования. Например, так я загрузил вики Hystrix из GitHub (я использую Ubuntu Linux):
$ wget -e robots=off -nH -E -H -k -K -p https://github.com/Netflix/Hystrix/wiki
$ wget -e robots=off -nH -E -H -k -K -I "Netflix/Hystrix/wiki" -r -l 1 https://github.com/Netflix/Hystrix/wiki
Первый вызов будет загружать страницу входа в wiki и все ее зависимости. Второй вызовет все подстраницы на нем. Вы можете просмотреть wiki, открыв Netflix/Hystrix/wiki.1.html
.
Обратите внимание, что оба вызова wget
необходимы. Если вы просто запустите второй, вы пропустите некоторые зависимости, необходимые для правильного отображения страниц.
Ответ 21
Улучшение на @barry-stae и @Sandeep ответов для обычных пользователей elinks, которые вы добавили бы в .bashrc:
function mdviewer() {
pandoc $* | elinks --force-html
}
Не забудьте установить pandoc (и elinks).
Ответ 22
Мне удалось использовать однострочный Ruby script для этой цели (хотя он должен был идти в отдельный файл). Во-первых, запустите эти команды один раз на каждом клиентском компьютере, из которого вы будете выталкивать документы:
gem install github-markup
gem install commonmarker
Затем установите этот script в образ вашего клиента и назовите его render-readme-for-javadoc.rb
:
`` `
требуется "github/markup"
помещает GitHub:: Markup.render_s (GitHub:: Markups:: MARKUP_MARKDOWN, File.read('README.md'))
`` `
Наконец, вызовите его следующим образом:
ruby ./render-readme-for-javadoc.rb >> project/src/main/javadoc/overview.html
ETA: Это не поможет вам с Markdown от StackOverflow, который, кажется, терпит неудачу в этом ответе.
Ответ 23
Недавно я сделал то, что вам нужно, потому что мне нужно было создавать документацию из файлов Markdown, а стиль GitHub довольно приятный. Попробуй. Он написан в Node.js.
gfm