Zastanawiam się, czy istnieje narzędzie wiersza polecenia do pobierania pliku Markdown o smaku GitHub i renderowania go w formacie HTML.
Używam wiki GitHub do tworzenia treści na stronie. Sklonowałem repozytorium na moim serwerze i chciałbym następnie przetworzyć je na zwykły kod HTML. Ważne jest dla mnie, że to, co pojawia się na GitHub, jest dokładnie tak, jak powinno wyglądać moja strona internetowa. Bardzo chciałbym również używać bloków ogrodzonych ~~~
, więc wolałbym nie używać tylko standardowej składni Markdown.
Zajrzałem trochę do podglądu na żywo JavaScript, myśląc, że mógłbym podłączyć go do Node.js, ale mówią, że jest przestarzały. Przeglądałem repozytorium redcarpet, ale nie wygląda na to, żeby miało interfejs wiersza poleceń.
Rzuciłem jednak swoje własne rozwiązanie, ponieważ żadne rozwiązanie tutaj nie jest wyraźnie lepsze od innych, pozostawię pytanie bez wybranej odpowiedzi.
źródło
--out
argument do uchwycenia w celu renderowania do pliku HTML zamiast przeglądarki, czy byłoby to dopuszczalne?--export
opcję, która renderuje GFM i jego style w jednym pliku. Czy to odpowiada na pytanie?Odpowiedzi:
Napisałem mały CLI w Pythonie i dodałem obsługę GFM. Nazywa się Grip (Github Readme Instant Preview) .
Zainstaluj z:
Aby z niego skorzystać, po prostu:
Następnie odwiedź,
localhost:5000
aby wyświetlićreadme.md
plik w tej lokalizacji.Możesz także określić własny plik:
I zmień port:
I, oczywiście, specjalnie renderuj Markdown o smaku GitHub, opcjonalnie z kontekstem repozytorium:
Ważne funkcje:
stdin
i eksport dostdout
dodanego w 3.0Mam nadzieję, że to pomoże komuś tutaj. Sprawdź to .
źródło
grip
działa od razu po wyjęciu z pudełka.Nie znalazłem szybkiej i łatwej metody dla Markdown o smaku GitHub, ale znalazłem nieco bardziej ogólną wersję - Pandoc . Konwertuje z / do wielu formatów, w tym Markdown, Rest, HTML i innych.
Opracowałem również plik
Makefile
do konwersji wszystkich plików .md do .html (w dużej części do przykładu w Writing, Markdown i Pandoc ):źródło
<pre/>
źródło wieloliniowe w źródle GFM, Pandoc umieści w nim<br/>
tagi podziałów linii, podczas gdy renderer GitHub, chociaż usuwa wiodące białe znaki, w przeciwnym razie wydaje się pozostawić treść w spokoju.brew install pandoc
gfm
animarkdown_github
poprawnie nie renderują takich elementów jak bloki kodu.Może to może pomóc:
Nie istnieje żadna dokumentacja, ale mam ją z dokumentacji gollum . Patrząc na rubydoc.info , wygląda na to, że możesz użyć:
w twoim kodzie Ruby. Możesz to łatwo zawinąć w skrypt, aby zamienić go w narzędzie wiersza poleceń:
Wykonaj to za pomocą
./render.rb path/to/my/markdown/file.md
. Należy pamiętać, że nie jest to bezpieczne do użycia w produkcji bez odkażania.źródło
Nie obsługuje rozszerzeń GitHub, ale jest lepszy niż nic. Wierzę, że możesz rozszerzyć moduł, aby obsługiwał dodatki GitHub.
źródło
Prawdopodobnie nie to, czego chcesz, ale ponieważ wspomniałeś o Node.js: nie mogłem znaleźć dobrego narzędzia do podglądania dokumentacji GitHub Flavored Markdown na moim dysku lokalnym przed przekazaniem ich do GitHub, więc dzisiaj stworzyłem jedną, opartą na Node.js: https : //github.com/ypocat/gfms
Być może możesz użyć ponownie pliku showdown.js na swojej Wiki, jeśli twoje pytanie jest nadal aktualne. Jeśli nie, być może inne osoby, które borykają się z tym samym problemem, co ja, znajdą (tak jak ja) to pytanie i odpowiedź na nie.
źródło
Aby odczytać plik README.md w terminalu, którego używam:
Pandoc wysyła go w formacie HTML, który Lynx renderuje w twoim terminalu.
Działa świetnie: wypełnia mój terminal, skróty są pokazane poniżej, mogę przewijać, a linki działają! Jest tylko jeden rozmiar czcionki, ale rekompensują to kolory + wcięcie + wyrównanie.
Instalacja:
źródło
pandoc readme.md -o readme.md.html
i otworzyć wynikowy plik.function md { pandoc $@ | lynx -stdin }
GitHub ma API Markdown, którego możesz użyć.
źródło
jq --slurp --raw-input '{"text": "\(.)", "mode": "markdown"}' < README.md | curl --data @- https://api.github.com/markdown > README.html
grip
... Ty wybrałeś. : PUżyj zaznaczonego . Obsługuje GitHub Flavored Markdown, może być używany jako moduł Node.js i z wiersza poleceń.
Przykładem może być:
źródło
^D
?Jest to głównie kontynuacja odpowiedzi @ barry-staes na użycie Pandoc . Homebrew ma to również, jeśli jesteś na komputerze Mac:
Pandoc obsługuje GFM jako format wejściowy poprzez
markdown_github
nazwę.Dane wyjściowe do pliku
Otwórz w Lynx
Otwórz w domyślnej przeglądarce w systemie OS X
Integracja TextMate
Zawsze możesz potokować bieżący wybór lub bieżący dokument do jednego z powyższych, jak pozwala na to większość edytorów. Możesz także łatwo skonfigurować środowisko, aby
pandoc
zastępowało domyślny procesor Markdown używany przez pakiet Markdown .Najpierw utwórz skrypt powłoki z następującą zawartością (zadzwonię
ghmarkdown
):Następnie możesz ustawić
TM_MARKDOWN
zmienną (w Preferencjach → Zmienne) na/path/to/ghmarkdown
, i zastąpi ona domyślny procesor Markdown.źródło
Stworzyłem narzędzie podobne do funkcji podglądu Atom, ale jako samodzielna aplikacja. Nie jestem pewien, czy tego właśnie szukasz, ale może być pomocny. - https://github.com/yoshuawuyts/vmd
źródło
pandoc
zbrowser
działa dla mnie dobrze.Stosowanie:
cat README.md | pandoc -f markdown_github | browser
Instalacja (Zakładając, że używasz Mac OSX):
$ brew install pandoc
$ brew install browser
Lub na Debian / Ubuntu:
apt-get install pandoc browser
źródło
apt-get isntall pandoc
zrobi, nie trzeba używać niepewnych, lokalnych rzeczy, takich jak napar.Zobacz także https://softwareengineering.stackexchange.com/a/128721/24257 .
Skrypt Ruby, który korzysta z Redcarpet , będzie „narzędziem wiersza poleceń”, jeśli będziesz mieć lokalnego Ruby
źródło
Opierając się na tym komentarzu , napisałem jedno-linijkę, aby trafić do Github Markdown API przy użyciu
curl
ijq
.Wklej tę funkcję bash do wiersza poleceń lub do
~/.bash_profile
:A następnie, aby zobaczyć renderowany HTML uruchomiony w przeglądarce:
Wymień
open "$HTMLFILE"
sięlynx "$HTMLFILE"
jeśli potrzebujesz czystego roztworu terminala.źródło
GitHub (od tego czasu) opracował ładny modułowy edytor tekstów o nazwie Atom (oparty na Chromium i używa modułów Node.js do pakietów).
Domyślnie preinstalowany pakiet Podgląd Markdown umożliwia wyświetlanie podglądu w osobnej zakładce za pomocą Ctrl+ Shift+ M.
Nie testowałem jej pełnej składni, ale ponieważ pochodzi ona z GitHub, byłbym bardzo zaskoczony, gdyby składnia podglądu była inna niż ich (blokowanie ogrodzeń przy użyciu
~~~
pracy).Teraz, chociaż technicznie nie jest oparty na wierszu poleceń, używa Node.js i wyświetla dane wyjściowe do renderera opartego na DOM , co może pomóc każdemu, kto próbuje renderować HTML oparty na składni GitHub na serwerze internetowym opartym na Node.js, lub po prostu edytować / jego plik README.md offline.
źródło
Moim ostatecznym rozwiązaniem było użycie Python Markdown . Zwinąłem własne przedłużenie, które naprawiło bloki ogrodzenia.
źródło
Istnieje naprawdę ładne i proste narzędzie do przeglądania dokumentów GFM Markdown:
GFMS - Github Flavored Markdown Server
Jest to prosty i lekki (nie wymaga konfiguracji) serwer HTTP, który możesz uruchomić w dowolnym katalogu zawierającym pliki Markdown, aby je przeglądać.
Funkcje:
źródło
W tym celu udało mi się użyć jednowierszowego skryptu Ruby (chociaż musiał on znajdować się w osobnym pliku). Najpierw uruchom te polecenia raz na każdym komputerze klienckim, z którego będziesz wypychać dokumenty:
Następnie zainstaluj ten skrypt na obrazie klienta i nazwij go
render-readme-for-javadoc.rb
:Na koniec wywołaj to w ten sposób:
ETA: To nie pomoże ci w StackOverflow-flavour Markdown, który wydaje się zawodzić w tej odpowiedzi.
źródło
Używam Pandoc z opcją
--from=gfm
GitHub Flavored Markdown w następujący sposób:źródło
pandoc: Unknown reader: gfm
. Przejście do 2.2.1 naprawia to.sudo apt install pandoc
?Poprawa rozwiązania @ barry-stae. Wklej ten fragment w ~ / .bashrc
Następnie możemy szybko wyświetlić plik z wiersza poleceń. Działa również ładnie w sesjach SSH / Telnet.
źródło
Późne dodawanie, ale showdownjs ma narzędzie CLI, którego możesz użyć do parsowania MD na HTML.
źródło
Znalazłem stronę internetową, która zrobi to za Ciebie: http://tmpvar.com/markdown.html . Wklej swoje Markdown, a wyświetli się dla ciebie. Wygląda na to, że działa dobrze!
Wydaje się jednak, że nie obsługuje opcji podświetlania składni kodu; oznacza to, że
~~~ruby
funkcja nie działa. Po prostu drukuje „rubin”.źródło
Poprawiając odpowiedzi na @ barry-stae i @Sandeep dla zwykłych użytkowników elinks, dodałbyś następujące .bashrc:
Nie zapomnij zainstalować pandoc (i elinks).
źródło
Na podstawie odpowiedzi Jima Lima zainstalowałem klejnot GitHub Markdown. Obejmuje to skrypt o nazwie gfm, który pobiera nazwę pliku w wierszu poleceń i zapisuje równoważny kod HTML na standardowe wyjście. Zmodyfikowałem to nieco, aby zapisać plik na dysku, a następnie otworzyć standardową przeglądarkę z uruchomieniem:
źródło
ruby,
ogórki itp.) Wydają się być rozpoznawane jako ogrodzenia (ponieważ są renderowane w tekście o stałej szerokości), nie ma podświetlania składni. Masz pomysł, dlaczego?Podejście „szybkie i brudne” polega na pobraniu stron HTML wiki za pomocą
wget
narzędzia, zamiast klonowania. Na przykład w ten sposób pobrałem wiki Hystrix z GitHub (używam Ubuntu Linux):Pierwsze wywołanie spowoduje pobranie strony wejściowej wiki i wszystkich jej zależności. Drugi wywoła na nim wszystkie podstrony. Możesz teraz przeglądać wiki, otwierając
Netflix/Hystrix/wiki.1.html
.Pamiętaj, że oba połączenia z
wget
są konieczne. Jeśli po prostu uruchomisz drugi, stracisz pewne zależności wymagane do prawidłowego wyświetlania stron.źródło
Niedawno zrobiłem, co chcesz, ponieważ potrzebowałem wygenerować dokumentację z plików Markdown, a styl GitHub jest całkiem niezły. Spróbuj. Jest napisany w Node.js.
gfm
źródło