GitHub 플레이 버드 마크 다운을 렌더링하기위한 명령 줄 유틸리티가 있습니까?
GitHub 플레이 버드 마크 다운 파일 을 가져 와서 HTML로 렌더링 하는 명령 줄 유틸리티가 있는지 궁금합니다 .
웹 사이트 콘텐츠를 만들기 위해 GitHub 위키를 사용하고 있습니다. 서버에서 리포지토리를 복제 한 다음 일반 HTML로 처리하려고합니다. GitHub에 나타나는 것은 내 웹 사이트를 찾는 방법과 정확히 일치하는 것이 중요합니다. 또한와 함께 분리 된 블록을 사용하고 ~~~
싶습니다. 따라서 표준 Markdown 구문 만 사용하고 싶지 않습니다.
Node.js에 연결할 수 있다고 생각하는 JavaScript 라이브 미리보기를 조금 보았지만 더 이상 사용되지 않는다고 말합니다. 레드 카펫 저장소를 살펴 봤지만 명령 행 인터페이스가있는 것처럼 보이지 않습니다.
그러나 내 솔루션을 롤백했지만 여기에 다른 솔루션보다 분명히 좋은 솔루션은 없으므로 선택한 답변없이 질문을 남길 것입니다.
파이썬으로 작은 CLI를 작성하고 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에서와 같이 정확하게 렌더링합니다
- 울타리 블록
- 파이썬 API
- 2.0에 추가 된 링크 된 파일 (감사, vladwing !) 간 탐색
- 2.0에 추가 된 단일 파일 (감사, iliggio !)로 내보내기
- 신규 : 3.0 에서 읽기
stdin
및 내보내기stdout
이것이 누군가를 돕기를 바랍니다. 확인하십시오 .
GitHub 풍미 마크 다운에 대한 빠르고 쉬운 방법을 찾지 못했지만 약간 더 일반적인 버전 인 Pandoc을 찾았습니다 . Markdown, Rest, HTML 등을 포함하여 여러 형식으로 변환합니다.
또한 Makefile
모든 .md 파일을 .html로 변환하기 위해 ( 개발 , 마크 다운 및 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 $@
아마도 이것이 도움이 될 수 있습니다.
gem install github-markdown
문서가 없지만 골룸 문서 에서 얻었습니다 . 보면 rubydoc.info 사용할 수있는 것처럼, 그것은 본다 :
require 'github/markdown'
puts GitHub::Markdown.render_gfm('your markdown string')
루비 코드에서. 스크립트로 쉽게 감싸서 명령 줄 유틸리티로 만들 수 있습니다.
#!/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
. 이것은 소독없이 생산에 사용하기에 안전하지 않습니다.
pip3 install --user markdown
python3 -m markdown readme.md > readme.html
GitHub 확장을 처리하지 않지만 아무것도 아닌 것보다 낫습니다. GitHub 추가를 처리하기 위해 모듈을 확장 할 수 있다고 생각합니다.
당신은 Node.js를 언급 아마 당신이 원하는,하지만 이후 : 나는 Node.js를 기반으로, 하나를 만들어 오늘 그래서 나는 GitHub의에 커밋하기 전에 내 로컬 드라이브에 GitHub의 맛을 마크 다운 문서를 미리 볼 수있는 좋은 도구를 찾을 수 없습니다 : HTTPS : //github.com/ypocat/gfms
따라서 귀하의 질문이 여전히 실제 인 경우 showdown.js를 위키에 재사용 할 수 있습니다. 그렇지 않다면 아마도 내가했던 것과 같은 문제에 직면 한 다른 사람들 이이 질문과 그것에 대한 대답을 찾을 수 있습니다.
터미널에서 README.md 파일을 읽으려면 다음을 사용하십시오.
pandoc README.md | lynx -stdin
Pandoc은이를 Lynx가 터미널에서 렌더링하는 HTML 형식으로 출력합니다.
그것은 잘 작동합니다 : 그것은 내 터미널을 채우고, 바로 가기가 아래에 표시 되고, 스크롤 할 수 있으며, 링크가 작동합니다! 글꼴 크기는 하나 뿐이지 만 색상 + 들여 쓰기 + 정렬이 그에 해당합니다.
설치:
sudo apt-get install pandoc lynx
GitHub에는 사용할 수 있는 Markdown API 가 있습니다.
표시된을 사용하십시오 . GitHub Flavored Markdown을 지원하며 Node.js 모듈 및 명령 줄에서 사용할 수 있습니다.
예를 들면 다음과 같습니다.
$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
이것은 Pandoc 사용에 대한 @ barry-staes의 답변에 대한 후속 조치 입니다. Mac에 있다면 Homebrew도 마찬가지입니다.
brew install pandoc
Pandoc은 markdown_github
이름을 통해 GFM을 입력 형식으로 지원합니다 .
파일로 출력
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 통합
대부분의 편집자가 허용하는 것처럼 항상 현재 선택 또는 현재 문서를 위의 하나에 파이프 할 수 있습니다. Markdown 번들에 pandoc
사용되는 기본 Markdown 프로세서 를 대체 하도록 환경을 쉽게 구성 할 수도 있습니다 .
먼저, 다음 내용으로 쉘 스크립트를 작성하십시오 (이것을 호출하겠습니다 ghmarkdown
).
#!/bin/bash
# Note included, optional --email-obfuscation arg
pandoc -f markdown_github --email-obfuscation=references
그런 다음 TM_MARKDOWN
변수 (Preferences → Variables에서)를로 설정 /path/to/ghmarkdown
하면 기본 Markdown 프로세서가 대체됩니다.
Atom의 미리보기 기능과 유사한 도구를 독립형 응용 프로그램으로 만들었습니다. 이것이 당신이 찾고있는 것인지 확실하지 않지만 도움이 될 수 있습니다. -https : //github.com/yoshuawuyts/vmd
pandoc
와 함께 browser
잘 작동합니다.
용법: cat README.md | pandoc -f markdown_github | browser
설치 (Mac OSX를 사용한다고 가정) :
$ brew install pandoc
$ brew install browser
또는 데비안 / 우분투에서 : apt-get install pandoc browser
https://softwareengineering.stackexchange.com/a/128721/24257 도 참조 하십시오 .
[Github] Markdown 파일을 렌더링하는 방법에 관심이 있으시면 Sundown 라이브러리에 대한 Ruby 인터페이스 인 Redcarpet 을 확인하십시오 .
Redcarpet 을 사용하는 Ruby 스크립트 는 로컬 Ruby가있는 경우 "명령 줄 유틸리티"가됩니다.
마지막 해결책은 Python Markdown 을 사용하는 것이 었습니다 . 펜스 블록을 고정시키는 내 확장 을 굴 렸습니다 .
GFM Markdown 문서를 탐색 할 수있는 정말 훌륭하고 간단한 도구가 있습니다.
GFMS-Github Flavored Markdown 서버
마크 다운 파일이 포함 된 디렉토리에서 시작할 수있는 간단하고 가벼운 (구성이 필요하지 않음) HTTP 서버입니다.
풍모:
- 완벽한 GFM 마크 다운 지원
- 소스 코드 구문 강조
- 파일 및 디렉토리 찾아보기
- 멋진 결과물 (및 구성 가능한 CSS 스타일 시트)
- PDF로 내보내기
GitHub는 Atom (Chromium을 기반으로 하며 패키지에 Node.js 모듈을 사용) 이라는 멋진 모듈 식 텍스트 편집기를 개발했습니다 .
사전 설치된 기본 패키지 Markdown Preview를 사용하면 Ctrl+ Shift+를 사용하여 미리보기를 별도의 탭에 표시 할 수 있습니다 M.
나는 전체 구문을 테스트하지는 않았지만 GitHub에서 왔기 때문에 미리보기의 구문이 구문과 다릅니다 ( ~~~
작업을 사용하는 펜싱 블록 ).
이제는 기술적으로 명령 줄 기반이 아니지만 Node.js를 사용하여 DOM 기반 렌더러로 출력하여 Node.js 기반 웹 서버에서 GitHub 구문 기반 HTML을 렌더링하거나 편집하는 데 도움이 될 수 있습니다. / his README.md 오프라인.
이 의견을 바탕으로 and를 사용하여 Github Markdown API 에 도달하는 하나의 라이너를 작성했습니다 .curl
jq
이 bash 함수를 명령 행 또는 다음에 붙여 넣으십시오 ~/.bash_profile
.
mdsee(){
HTMLFILE="$(mktemp -u).html"
cat "$1" | \
jq --slurp --raw-input '{"text": "\(.)", "mode": "markdown"}' | \
curl -s --data @- https://api.github.com/markdown > "$HTMLFILE"
echo $HTMLFILE
open "$HTMLFILE"
}
그리고 렌더링 된 HTML 브라우저 내 실행을 보려면 :
mdsee readme.md
교체 open "$HTMLFILE"
로 lynx "$HTMLFILE"
당신이 순수 터미널 솔루션이 필요합니다.
@ barry-stae의 솔루션을 개선합니다. 이 스 니펫을 ~ / .bashrc에 붙이십시오.
function mdviewer(){
pandoc $* | lynx -stdin
}
그런 다음 명령 줄에서 파일을 빠르게 볼 수 있습니다. SSH / Telnet 세션에서도 잘 작동합니다.
mdviewer README.md
늦은 추가이지만 showdownjs 에는 MD를 HTML로 구문 분석하는 데 사용할 수있는 CLI 도구가 있습니다.
나는 그 목적을 위해 한 줄짜리 Ruby 스크립트를 사용했다. (별도의 파일로 가야했지만). 먼저 문서를 푸시 할 각 클라이언트 시스템에서이 명령을 한 번 실행하십시오.
gem install github-markup
gem install commonmarker
다음으로이 스크립트를 클라이언트 이미지에 설치하고 호출하십시오 render-readme-for-javadoc.rb
.
require 'github/markup'
puts 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 : StackOverflow-flavor Markdown에는 도움이되지 않습니다.이 답변에서 실패한 것 같습니다.
http://tmpvar.com/markdown.html 당신을 위해 이것을 할 웹 사이트를 찾았습니다 . 마크 다운에 붙여 넣으면 표시됩니다. 잘 작동하는 것 같습니다!
그러나 코드의 구문 강조 옵션을 처리하지 않는 것 같습니다. 즉, ~~~ruby
기능이 작동하지 않습니다. 그냥 '루비'를 인쇄합니다.
Pandoc --from=gfm
을 GitHub Flavored Markdown 옵션과 함께 다음 과 같이 사용합니다.
$ pandoc my_file.md --from=gfm -t html -o my_file.html
elink의 일반 사용자에 대한 @ barry-stae 및 @Sandeep 답변을 개선하면 .bashrc에 다음을 추가합니다.
function mdviewer() {
pandoc $* | elinks --force-html
}
pandoc (및 elink)를 설치하는 것을 잊지 마십시오.
를 기반으로 짐 림의 대답 , 나는 GitHub의 마크 다운 보석을 설치했다. 여기에는 명령 행에서 파일 이름을 사용하고 동등한 HTML을 표준 출력에 쓰는 gfm이라는 스크립트가 포함되었습니다. 파일을 디스크에 저장하고 표준 브라우저를 실행으로 열도록 약간 수정했습니다.
#!/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)
'빠르고 더러운'접근 방식은 wget
유틸리티 대신 위키 HTML 페이지를 복제하는 대신 다운로드하는 것입니다. 예를 들어, GitHub에서 Hystrix 위키를 다운로드 한 방법입니다 ( 우분투 리눅스를 사용하고 있습니다).
$ 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
첫 번째 호출은 위키 항목 페이지와 모든 종속 항목을 다운로드합니다. 두 번째는 모든 하위 페이지를 호출합니다. 을 열어서 위키를 찾아 볼 수 있습니다 Netflix/Hystrix/wiki.1.html
.
두 호출이 wget
모두 필요합니다. 두 번째 것을 실행하면 페이지를 올바르게 표시하는 데 필요한 일부 종속성이 누락됩니다.
Markdown 파일에서 문서를 생성해야하고 GitHub 스타일이 매우 좋기 때문에 최근에 원하는 것을 만들었습니다. 시도 해봐. Node.js로 작성되었습니다.
'Programming' 카테고리의 다른 글
Pandas의 map, applymap 및 apply 메소드의 차이점 (0) | 2020.02.22 |
---|---|
JDK 코드를 실행할 때 Java JIT가 부정 행위를합니까? (0) | 2020.02.22 |
파이썬에서 다른 파일에서 함수 호출 (0) | 2020.02.22 |
Swift 클래스의 정적 및 클래스 함수 / 변수? (0) | 2020.02.22 |
Mockito가 여러 번 호출되는 메소드의 인수를 캡처 할 수 있습니까? (0) | 2020.02.22 |