Есть ли утилита командной строки для рендеринга GitHub со вкусом Markdown? - PullRequest
387 голосов
/ 08 октября 2011

Мне интересно, есть ли утилита командной строки для получения файла Markdown со вкусом GitHub и рендеринга его в HTML.

Я использую вики GitHub для создания контента сайта. Я клонировал репозиторий на своем сервере и хотел бы обработать его в обычном HTML. Для меня важно, что то, что появляется на GitHub, именно так и должно выглядеть для моего сайта. Мне также очень хотелось бы использовать огороженные блоки с ~~~, поэтому я бы предпочел не использовать только стандартный синтаксис Markdown.

Я немного заглянул в предварительный просмотр JavaScript, думая, что смогу подключить его к Node.js, но они говорят, что он устарел. Я посмотрел на репозиторий redcarpet, но он не похож на интерфейс командной строки.

Я накатил свое собственное решение, однако, поскольку ни одно решение здесь явно не лучше, чем другие, я оставлю вопрос без выбранного ответа.

Ответы [ 25 ]

427 голосов
/ 09 декабря 2012

Я написал небольшой CLI на Python и добавил поддержку GFM.Он называется Grip (Github Readme Instant Preview) .

Установите его с помощью:

$ pip install grip

И использовать его просто:

$ grip

Затем посетите localhost:5000, чтобы просмотреть файл readme.md в этом месте.

Вы также можете указать свой собственный файл:

$ grip CHANGES.md

и изменить порт:

$ grip 8080

И, конечно, специально отображать GitHub-Flavored Markdown, опционально с контекстом репозитория:

$ grip --gfm --context=username/repo issue.md

Примечательные особенности:

  • Отображает страницы в точности как на GitHub
  • Огороженные блоки
  • Python API
  • Перемещение между связанными файлами (спасибо, vladwing !) добавлено в 2.0
  • Экспорт в один файл (спасибо, iliggio !) добавлено в 2.0
  • Новое: Считано из stdin и экспортировано в stdout добавлено в 3.0

Надеюсь, это кому-то поможет. Проверьте это .

112 голосов
/ 08 ноября 2011

Я не нашел быстрого и легкого метода для GitHub со вкусом Markdown, но я нашел немного более общую версию - Pandoc . Он преобразует из / в ряд форматов, включая Markdown, Rest, HTML и др.

Я также разработал Makefile для преобразования всех файлов .md в .html (по большей части к примеру на Writing, Markdown и Pandoc ):

# 'Makefile'
MARKDOWN = pandoc --from gfm --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 $@
29 голосов
/ 14 ноября 2012

Может быть, это может помочь:

gem install github-markdown

Документация не существует, но я получил ее из gollum документации. Глядя на rubydoc.info , похоже, что вы можете использовать:

require 'github/markdown'  
puts GitHub::Markdown.render_gfm('your markdown string')

в вашем коде Ruby. Вы можете легко обернуть это в скрипт, чтобы превратить его в утилиту командной строки:

#!/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. Обратите внимание, что это небезопасно для использования в производстве без очистки.

28 голосов
/ 21 августа 2012
pip3 install --user markdown
python3 -m markdown readme.md > readme.html

Он не обрабатывает расширения GitHub, но лучше, чем ничего.Я считаю, что вы можете расширить модуль для обработки дополнений GitHub.

23 голосов
/ 29 января 2012

Возможно, это не то, что вам нужно, но, поскольку вы упомянули Node.js: я не смог найти хороший инструмент для предварительного просмотра документации GitHub Flavored Markdown на моем локальном диске перед их фиксацией в GitHub, поэтому сегодня я создал один на основе Node. js: https://github.com/ypocat/gfms

Так что, возможно, вы сможете повторно использовать showdown.js из него для вашей Wiki, если ваш вопрос все еще актуален. Если нет, то, возможно, другие люди, столкнувшиеся с той же проблемой, что и я, найдут (как и я) этот вопрос и ответ на него.

16 голосов
/ 23 июня 2014

GitHub имеет API Markdown , который вы можете использовать.

15 голосов
/ 16 декабря 2014

Для чтения файла README.md в терминале я использую:

pandoc README.md | lynx -stdin

Pandoc выводит его в формате HTML, который Lynx отображает в вашем терминале.

Отлично работает: он заполняет мой терминал, ниже показаны ярлыки, я могу пролистать, и ссылки работают! Хотя есть только один размер шрифта, но цвета + отступы + выравнивание компенсируют это.

Установка:

sudo apt-get install pandoc lynx
13 голосов
/ 25 октября 2012

Используйте с отметкой .Он поддерживает GitHub Flavored Markdown, может использоваться как модуль Node.js и из командной строки.

Примером может быть:

$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
10 голосов
/ 12 января 2015

Это в основном продолжение ответа @ barry-staes за использование Pandoc . У Homebrew это также есть, если вы на Mac:

brew install pandoc

Pandoc поддерживает GFM в качестве формата ввода через имя markdown_github.

Вывод в файл

cat foo.md | pandoc -f markdown_github > foo.html

Открыть в Рысь

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 .

Сначала создайте сценарий оболочки со следующим содержимым (я назову его ghmarkdown):

#!/bin/bash
# Note included, optional --email-obfuscation arg
pandoc -f markdown_github --email-obfuscation=references

Затем можно установить переменную TM_MARKDOWN (в Предпочтения → Переменные) на /path/to/ghmarkdown, и она заменит процессор уценки по умолчанию.

9 голосов
/ 24 февраля 2015

Я создал инструмент, похожий на функциональность предварительного просмотра Atom, но как отдельное приложение.Не уверен, что это то, что вы ищете, но это может быть полезно.- https://github.com/yoshuawuyts/vmd

vmd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...