PR #2592์์ @Carreau ๋ Markdown ์
์์ Python ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ ๊ตฌ๋ฌธ์ {{x}}
๊ตฌ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์์ด๋์ด๋ฅผ ์ข์ํ์ง๋ง ํด๊ฒฐํด์ผ ํ ๋ช ๊ฐ์ง ์ฌํญ์ด ์์ต๋๋ค.
{{}}
๋ง์กฑํฉ๋๊น?๊ทธ๋์, ์ด๊ฒ์ ์ฃฝ์์ต๋๊น? ์ด์ ์ค๋ ๋๊ฐ ์ง์ ํ ๊ฒ์ฒ๋ผ ์ข์ ๊ฒ์ ๋๊น? ๋ด๊ฐ ๊ตฌํํ ๊ธฐ์ ์ด ์์์ผ๋ฉด ํ๋ ๋ฐ๋์ ๋ฒํ ์ฃ์กํฉ๋๋ค (๋๋ ์์ต๋๋ค)ํ์ง๋ง ๋๋ ํ์คํ ์ฌ์ฉํ ๊ฒ์ ๋๋ค ...
์ฃฝ์ง ์์์ต๋๋ค. ๋จผ์ ๋ช ๊ฐ์ง ์์ ์ ์ํํด์ผ ํฉ๋๋ค.
๋๋ ์ด๊ฒ ์ ๋ํด ์ฌ๊ธฐ ์ ์ฌ๊ธฐ ์์ ์ด์ค ์ค๋ณต ์ด๋ผ๋ ๊ฒ์ ๋ฐ๊ฒฌ ํ๊ธฐ ์ํด์ ๋ง SO ์์ ์ต๋๋ค .
๋ด 2c๊ฐ ๋ ๊ฒ์ ๋๋ค
error
๋จ์ด, or a dirty great stack trace ] ์ต์
ํน์ ๊ตฌ๋ฌธ์ ์นํธํ๋ ๊ฒ์ด ์๋๋ผ({{}}๊ฐ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค), ๋ค์์ R์ ๋ํ ๋น๊ต ๊ฐ๋ฅํ ๋์์ธ์ ๋๋ค. http://www.rstudio.com/ide/docs/authoring/using_markdown ).
๋ฃจ๋๋งํฌ ์ฌ์ฉ
:+1:
:+1:, ์ด๊ฒ์ ๋งค์ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ ๋๋ค!
http://blog.rstudio.org/2014/06/18/r-markdown-v2/ ์ ๋์ผํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. R ์คํ์ผ ๊ตฌ๋ถ ๊ธฐํธ, ์ฆ ๊ฐ๊ฐ ๋จ์ผ ๋ฐ ์ผ์ค ๋ฐฑํฑ์ ์ฌ์ฉํ๋ฉด ์ฝ๋ ํ์(์ some code snippet/example
)์ _evaluating_ ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ ํ์(์: ์: my_var
) - ๋๋ ์ด๊ฒ์ด ๋งค์ฐ ์ค์ฉ์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค(์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด).
์ฌ์ฉ ์ฌ๋ก๋ "_2014๋ Morgan County์ ํ๊ท ์ค์ ๋ฅ ์ 8.4%๋ก 2009๋ ์ 10.3%์์ ๊ฐ์ํ์ต๋๋ค._"์ ๊ฐ์ด ๊ณ์ฐ๋ ๊ฐ์ด ํฌํจ๋ ๋ ธํธ๋ถ ์ฐ๋ฌธ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ์ด ์์์ ๋ฐฑ๋ถ์จ๊ณผ ์ฐ๋๊ฐ ๋ค์์์ ๊ณ์ฐ๋๋ ๊ฒ์ ์์ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ.
๋ ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก๋ "์ค๋งํธ ๋ฌธ์"๋ก, ๋ฐ์ดํฐ์์ ํ ์คํธ์ ๊ทธ๋ํฝ์ด ์๋์ผ๋ก (์ฌ) ์์ฑ๋ฉ๋๋ค(๊ฐ๋ ์ฑ์ ์ํด ์ฝ๋๋ฅผ ์จ๊ธธ ์ ์์).
์ ์ฉํ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ rstudio์ "knitr" ๋ชจ๋ธ์ ์ ๋ง ์ข์ํฉ๋๋ค(ํ๋์ ๋งํฌ๋ค์ด ๋ฌธ์, ์ฝ๋ ๋ธ๋ก์ด ํด์๋๊ณ , ๋งํฌ๋ค์ด์์ ๊ฐ์ ์ฌ์ฉํ ์ ์์ -> PDF/html/...๋ก ๋ณํ๋์ด ์ ๋ ๊ธฐ์ฌ๋ก ๊ฒ์ํ ์ ์์ต๋๋ค. ๋ ธํธ๋ถ๊ณผ ๋ค๋ฆ) ๋ ธํธ๋ถ์ด ์ฌ๋ฌ ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์ถ๋ ฅ์ด ํ์๋๋์ง ์ฌ๋ถ์ ์ํฅ์ ๋ฏธ์น๋ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํ ์คํธ์ ๊ฐ์ด ์ด๋ป๊ฒ ํฌํจ๋๋์ง๋ ์ ๊ฒฝ ์ฐ์ง ์์ง๋ง R(nitr/rstudio ํฌํจ)๊ณผ ipython์ด ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๋๋ ruby โโ๋๋ bash์ ์ ์ฌํ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ #{varname ๋๋ statement}๋
๋ฌธ์์ด ๋ด์์ ํผํฉ๋ฉ๋๋ค.
์ ๋ rstudio์ "knitr" ๋ชจ๋ธ์ ์ ๋ง ์ข์ํฉ๋๋ค(ํ๋์ ๋งํฌ๋ค์ด ๋ฌธ์, ์ฝ๋
๋ธ๋ก์ด ํด์๋๊ณ ๋งํฌ๋ค์ด์์ ๊ฐ์ ์ฌ์ฉํ ์ ์์ -> ๋ณํ๋จ
์ ๋ ๊ธฐ์ฌ๋ก ๊ฒ์ํ ์ ์๋ PDF/html/...๋ก. ๋ค๋ฅธ
๋ ธํธ๋ถ์ ์ฌ๋ฌ ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ ํด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ถ๋ ฅ์ด ํ์๋๋์ง ์ฌ๋ถ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค).๊ฐ์ด ํ ์คํธ์ ์ด๋ป๊ฒ ํฌํจ๋์ด ์๋์ง ์๊ดํ์ง ์์ง๋ง ์ฐพ์ ์ ์์ต๋๋ค.
R(nitr/rstudio ํฌํจ)๊ณผ ipython์ด ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ค๋ฉด ์ข์ต๋๋ค.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/ipython/ipython/issues/2958#issuecomment -46875435.
๋๋ ๋ฌผ๋ก ํด์ ์ฝ๋์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์คํ, ๋ ๊ทธ๋ฅ ์ฐ๋ฆฌ๊ฐ, (๊ทธ๊ฒ์ ํ๊ฐ / ํด์์์ด) "๊ทธ๋ฅ"๋์คํ๋ ์ด ์ฝ๋ ์ธํ์ ๋ฅ๋ ฅ์ ์์ ๊ฒ์ด๋ผ๊ณ ๊ฑฑ์ like this
(์ฆ, ์ญ ๋ฐ์ดํ, ๋ง์ฝ R ๊ตฌ๋ฌธ์ )๊ฐ ์ ์ ๋์์ต๋๋ค.
knitr/R ๋งํฌ๋ค์ด์์ ์ฝ๋(์ ์ ํ๊ฒ ๊ฐ์กฐ ํ์๋จ ๋ฑ)๋ฅผ ํ์ํ ์ง ์๋๋ฉด ์ถ๋ ฅ(ํ๋กฏ, ํ ์ด๋ธ ๋ฑ)๋ง ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ ๊ฒฝ์ ๋ฐฐ๊ฒฝ์ ๊ฐ์ง๊ณ ์๊ณ ์ ๋ ผ๋ฌธ์์ ์ด๋ค ์ฝ๋๋ ๋ณด๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ ์ฝ๋๋ฅผ ๊ณผ์ํ๋ ์ต์ ํ๋ ์ฌ์ฉ ์ฌ๋ก(์ ์๊ฐ์๋)์ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค.
@bilderbuchi ์ค ์ฃ์กํฉ๋๋ค, ๊ทํ์ "์ด๊ฒ์ด ์ ์ฉํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค" ๋๊ธ์ ๋งฅ๋ฝ์ ์๋ชป ํด์ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ ๋์ํฉ๋๋ค. ๊ตฌํ๋ ๊ฒ์ด ๋ฌด์์ด๋ ๊ธฐ์กด ๋งํฌ๋ค์ด์ ๊นจ๋จ๋ฆฌ์ง ์์์ผ ํฉ๋๋ค.
์ด๊ฒ์ ํ๋ฅญํ๊ณ IPython์ด knitr์ ์ ์ฌ์ ๋จน๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/python-markdown
์ ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ ๋ง ์ข์ํฉ๋๋ค. ์ ์ ๊ฐ์ ธ์ ์ ํจํ ๋งํฌ๋ค์ด์ผ๋ก ์ ์ฒ๋ฆฌํ๋ฏ๋ก ๋งํฌ๋ค์ด ํ๋ก์ธ์๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
์์ฃผ ์ข์์...๊ณง ์ฌ์ฉํ๊ฒ ์ต๋๋ค
2014๋
8์ 17์ผ ์ผ์์ผ ์คํ 2:18 Jan Schulz [email protected]
์ผ๋ค:
https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/python-markdown
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/ipython/ipython/issues/2958#issuecomment -52431760.
ํฐ ๋ธ๋๋
http://tombrander.com -๋ถ๋์ฐ
http://oswco.com - ์คํ ์ํํธ์จ์ด
3763 ์จ์คํธ ์ญ์จ ๋๋ก
๋ฒ๋ฐ์, AL 35213
์ ํ 205-267-1089
@dartdog
:+1: ์ฐ์ํ. ์ ๋ ์ด์ฉํ๊ฒ ์ต๋๋ค.
@JanSchulz , ๊ฐ์ฌํฉ๋๋ค! python-markdown์ ์ฌ์ฉํด ๋ณด๊ธฐ๋ฅผ ์ ๋ง ๊ธฐ๋ํฉ๋๋ค.
์ด๊ฒ์ ๋ฉ์ธ ipython( jupyter
)์ผ๋ก ๊ฐ์ ธ์ฌ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
์ด๊ฒ์ ๋ฉ์ธ ipython(jupyter)์ ๋ฃ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
์๋ง ๊ณง ์๋๋๋ค. ์ด ์์
์ ์ํํ๋ ค๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ง์ ๋์์ธ์ ์ํํด์ผ ํฉ๋๋ค.
ํนํ ์ฐ๋ฆฌ๋ ๋จ์ง ์๋ก์ด ๊ฒ์ ๋ฐ๋ช
ํ๋ ๋์ ์ ๋งํฌ๋ค์ด ๊ตฌ๋ฌธ์ ํ์ฅํ๋ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์ด ํ์ํ ๊ฒ์
๋๋ค.
์ค์ ๋ก ์ด๊ฒ์ (๋ํ knitr/rmarkdown AFAIK๋) 2๋จ๊ณ ๋ณํ์ ํตํด ์๋ํฉ๋๋ค. ๋จผ์ ์ฝ๋ ๋ธ๋ก์ ์ฝ๋ ์ถ๋ ฅ์ผ๋ก ๊ต์ฒดํ ๋ค์ ๋๋จธ์ง๋ฅผ ํ์ค ๋งํฌ๋ค์ด์ผ๋ก ๋ณํํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ๋งํฌ๋ค์ด์ ํ์ฅ์ด ์๋๋ผ ์ ์ ์ ์ฒ๋ฆฌ๊ธฐ์ ๋๋ค.
์ด๋ ค์ด ์ง๋ฌธ์ ๋งํฌ๋ค์ด ์ ๋ด์์ ์คํ๋๋ ์์์ ๋ณด์ด์ง ์๋ Python ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ฉํ ๊ตฌํ์์ ์ฝ๋ ์คํ์ด ์ ํ๋ ์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋น์ ์ด ์ ๊ทน์ ์ผ๋ก ์ค์นํ๊ณ ํ์ฑํํด์ผ ํ๋ ๋ณ๋์ ํ์ฅ์ธ ํ ์ด๊ฒ์ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค. ๋ํ Python ์ฝ๋๋ ๋ ธํธ๋ถ์ด ์ ๋ขฐํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ์คํ๋ฉ๋๋ค.
๋งํฌ๋ค์ด ์ ์์ ํ์ด์ฌ ์ฝ๋์ ์ถ๋ ฅ ์๋ก ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ์์ค ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ํดํ์ ์ถ๊ฐํ ๊ณํ์ด๋ฏ๋ก ์ด๊ฒ์ด ์ด๋์ ์๋์ง ์ ์ ์์ต๋๋ค.
์ค์ ๋ก ์ด๊ฒ์ (๋ํ knitr/rmarkdown AFAIK๋) 2๋จ๊ณ ๋ณํ์ ํตํด ์๋ํฉ๋๋ค. ๋จผ์ ์ฝ๋ ๋ธ๋ก์ ์ฝ๋ ์ถ๋ ฅ์ผ๋ก ๊ต์ฒดํ ๋ค์ ๋๋จธ์ง๋ฅผ ํ์ค ๋งํฌ๋ค์ด์ผ๋ก ๋ณํํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ๋งํฌ๋ค์ด์ ํ์ฅ์ด ์๋๋ผ ์ ์ ์ ์ฒ๋ฆฌ๊ธฐ์ ๋๋ค.
์ปค์คํ
๋งํฌ๋ค์ด์
๋๋ค. ๊ทธ๊ฒ์ ์ด๋ฏธ ์ฐ๋ฆฌ๊ฐ mathjax์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ๋ถ๋ช
ํ ์ ์ฅํด์ผํฉ๋๋ค
๋
ธํธ๋ถ์ ๋ค์ ์คํํ ๊ฒฝ์ฐ์ ๋๋นํ์ฌ ์ฌ์ ์ฒ๋ฆฌ ๋งํฌ๋ค์ด์ ์ทจ์ํ๋ฏ๋ก ๋งํฌ๋ค์ด์ ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ ๋๊ตฌ๋ ์ฌ์ฉ์ ์ง์ ์ฌ์ ์ฒ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ ์ฒ๋ฆฌ๊ธฐ ๋๋ ํ์ฒ๋ฆฌ๊ธฐ์์ ์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด ํ๊ธฐ๋ฅผ ์ํ๊ฑฐ๋ ๋์ค์ ํ๊ฒ ๋ ๊ฒ๊ณผ ์ถฉ๋ํ ์๋ ์๊ณ ์ถฉ๋ํ์ง ์์ ์๋ ์๋ ๊ณ ์ ํ ๊ตฌ๋ฌธ์ ๋ฐ๋ช
ํฉ๋๋ค.
์ด๋ ค์ด ์ง๋ฌธ์ ๋งํฌ๋ค์ด ์ ๋ด์์ ์คํ๋๋ ์์์ ๋ณด์ด์ง ์๋ Python ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ฉํ ๊ตฌํ์์ ์ฝ๋ ์คํ์ด ์ ํ๋ ์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋น์ ์ด ์ ๊ทน์ ์ผ๋ก ์ค์นํ๊ณ ํ์ฑํํด์ผ ํ๋ ๋ณ๋์ ํ์ฅ์ธ ํ ์ด๊ฒ์ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค. ๋ํ Python ์ฝ๋๋ ๋ ธํธ๋ถ์ด ์ ๋ขฐํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ์คํ๋ฉ๋๋ค.
๋งํฌ๋ค์ด ์ ์์ ํ์ด์ฌ ์ฝ๋์ ์ถ๋ ฅ ์๋ก ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ์์ค ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ํดํ์ ์ถ๊ฐํ ๊ณํ์ด๋ฏ๋ก ์ด๊ฒ์ด ์ด๋์ ์๋์ง ์ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด user_variable๋ก ์ ํํ ์ ์์ต๋๋ค. ์ฆ, user_ns
ํค ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋๋ถ๋ถ์ ์คํ์ ๋ฐฉ์งํด์ผ ํฉ๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด user_variable๋ก ์ ํํ ์ ์์ต๋๋ค. ์ฆ, user_ns ํค ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋๋ถ๋ถ์ ์คํ์ ๋ฐฉ์งํด์ผ ํฉ๋๋ค.
๋ํ ํธ์ถ ๊ธฐ๋ฅ์ ํ์ฉํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. ์ฌ์ํ ๊ฒฝ์ฐ๋ ์ถ๋ ฅ ํ์์ ์ง์ ํ๊ฑฐ๋ ์ฌ์ฉ์ ์ง์ _repr_์ ํธ์ถํ๋ ๊ฒ์ ๋๋ค.
๋๋ ์ด์ ๊ฐ์ ๊ฒ์ด ๊ตฌํ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ์๋ฃจ์ ์ Jinja ํํฐ๋ฅผ ํตํด MD ์ ์ ์คํํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ์ด์ ์ ์ํ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด dexi ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ค๋ฅธ ํํธ์ผ๋ก, ๋๋ ์ด๊ฒ์ด ๋ชจ๋ ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. Jinja๋ ๋งํฌ์ ์ ๋ณต์ก์ฑ์ ์๋นํ ์ฆ๊ฐ์ํค๊ณ Jinja+Markdown์ ์ผ๋ฐ MD์ ๋ค๋ฅธ ๊ฐ์กฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๋ณ๋์ ์ ์ ํ์ผ๋ก ๊ตฌํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
ํ์ฌ ๋งํฌ๋ค์ด์ ๋ํด ์ํ๋๋ ๊ฒ๊ณผ ์ ์ฌํ ์ฝ๋ ์ ์ ์จ๊ธฐ๊ฑฐ๋ ๊ต์ฒดํ๋ ๊ฒ์ด ์ฝ๋์์ ๊ฐ๋ฅํ๋ค๋ฉด ์ด ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
-> text/markdown
๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ ์์ค๊ฐ ์ถ๋ ฅ์ ์ํด ๋ณด์ด์ง ์๊ฑฐ๋ ๋์ฒด๋์ด์ผ ํจ์ ๋ํ๋ด๋ %%pymarkdown
๋ง๋ฒ์ ์ถ๊ฐํฉ๋๋ค. ๋ง์ ์ ์
๋ ฅ ๋ด์์ ๊ฐ๋จํ๊ฒ s&r์ ์ํํฉ๋๋ค.
[ํธ์ง: ์ข์, ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์๊ฐ ์๊ณ qtconsole์์ ์๋ฏธ๊ฐ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค...]
๊ด๋ จ: Mathematica 10์ "๋ณด๊ณ ์"์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค. ์ฐธ์กฐ: http://www.wolfram.com/mathematica/new-in-10/automated-report-generation/
(์์ง) ์์ธํ ๋ค๋ฃจ์ง๋ ์์์ง๋ง ๋ ธํธ๋ถ์ ํ ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ ธํธ๋ถ ํ ์คํธ์ ๋ณ์์ ๋ํ ์ฐธ์กฐ์ ๊ณ์ฐ๋ ์ถ๋ ฅ์ ํฌํจํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ฌ๋ฌ MD ์ ์ ๋์ผํ ๋ณ์์ ๋ํ ์ฌ๋ฌ ์ฐธ์กฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ด๋ค ์ ์ ๋ค์ ๋ ๋๋งํด์ผ ํฉ๋๊น?
@Pipeliner ๋น์ ์ด ๋ฌด์์ ์ป๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. iPython/Jupyter ๋ ธํธ๋ถ์์ ๊ฐ ์ ์ ๋ช ์์ ์ผ๋ก ๋ ๋๋ง๋์ด์ผ ํฉ๋๋ค(์ ๋ด์์ Ctrl-return ๋๋ ๋ฉ๋ด ๋ชจ์์ ์ ->๋ชจ๋ ์คํ). ๋ด๊ฐ ์๊ณ ์๋ ์ค๋๋ ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ๊ฐ์ง๋์ง ์์ต๋๋ค. knitr/rmarkdown์ ์๊ฐํ๊ณ ์์ต๋๊น? knitr/rmarkdown์ ๊ฐ ์ ์ ๊ฒฐ๊ณผ ์บ์๋ฅผ ์ ์งํ๋ ค๊ณ ์๋ํ๊ณ ์ด์ ์ ์ด ๋ณ๊ฒฝ๋ ๋ ์ด๋ฅผ ๋ํฐ๋ก ํ์ํฉ๋๋ค.
์ฌ๋๋ค์ด ์ฌ์ฉํ๋ ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋๋ ipython/jupyter ๋ ธํธ๋ถ์ ์ข์ํ์ง๋ง ๋งํฌ๋ค์ด์์ {{ python variable }}๋ง ํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ์์ ์ํ ๋ฐ์ดํฐ ์ธํธ๋ก ๋ ธํธ๋ถ์ ์ค๋นํ๊ณ ๋์ค์ ์ ์ฒด ์ธํธ๋ฅผ ๊ต์ฒดํ๊ณ ๋ชจ๋ ๊ฒ์ ์ ๋ฐ์ดํธํ๋ ค๋ ๊ฒฝ์ฐ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
PlaceProxy ์์ ฏ์ ์ฌ์ฉํ์ฌ ํ์ด์ง์ html ์ ํ๊ธฐ์์ ์์ ฏ์ ๋ ๋๋งํ ์ ์์ต๋๋ค. ๋งํฌ๋ค์ด์ <span id="myid">placeholder</span>
์ฝ์
ํ ๋ค์ ๋์ค์ ์ฝ๋์์ x=HTML('widget value'), PlaceProxy(child=x, selector='#myid')
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ x.value='something'
๋ฅผ ์ค์ ํ ๋๋ง๋ค ์
๋ฐ์ดํธ๊ฐ ๋งํฌ๋ค์ด์ ํ์๋๋ ์์ ฏ์ ๋ฐ์๋ฉ๋๋ค. PlaceProxy์ ์ ์๋ https://github.com/ipython/ipywidgets/blob/1e407cef864363c66a23781b8d560a6ac18b3370/ipywidgets/widgets/widget_box.py#L70 ์ ์ฐธ์กฐ
๋ฌผ๋ก ๋ง์ ์ฃผ์์ฌํญ์ด ์์ต๋๋ค. ๋งํฌ๋ค์ด์ ํธ์งํ๋ฉด ์์ ฏ์ด ์ฌ๋ผ์ง๋๋ค. ๋ ธํธ๋ถ์ ์ด๋ฉด ์์ ฏ์ด ์์ฑ๋์ง ์์ ํ์๋์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ํตํด ๋งํฌ๋ค์ด ์ ๋ด๋ถ์ ์ถ๋ ฅ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ต์ ์ ๋ฌธ์์ด์ ๊ตฌ์ฑํ๊ณ ๋งํฌ๋ค์ด ์ ์ด ์๋ ์ถ๋ ฅ์ผ๋ก ๋งํฌ๋ค์ด์ ํ์ํ๋ ๊ฒ์ ๋๋ค. ๋์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง๋ ์์ง๋ง ์ ์ ํ๊ฐํ ๋๋ง๋ค ๋งํฌ๋ค์ด์ด ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
์ด ๋
ธํธ๋ถ ํ์ฅ์ ์๋ํ ์ ์์ต๋๋ค.
https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/python-markdown_v3
๋๋ ๋ฌธ์์ด์ ๊ตฌ์ฑํ๊ณ ์ถ์ง ์์๊ณ ํฐ html ๋ฌธ์์ด์ ๊ฐ๋ ๊ฒ์ด ๋๋ฌด ์ง์ ๋ถํด์ง๊ธฐ ๋๋ฌธ์ ์ถ๋ ฅ์ผ๋ก ์ ๋ ฅํ๊ณ ์ถ์ง ์์์ต๋๋ค. ๊น๋ํ ์์ด๋์ด์ง๋ง ์ ๋ ๊ทธ๊ฒ์ ๋ํด ์๊ฐ์กฐ์ฐจ ํ์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํธ๋ฆญ์ ์ํํ๋ ๋ช ๊ฐ์ง ์ข์ ์๋ฃจ์ ์ด ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
์ด ๊ธฐ๋ฅ์ Rmarkdown์์ ์จ ์ฌ๋์๊ฒ ์ ๋ง ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. R์ ๋ฉ์ง ๋ณด๊ณ ์๋ฅผ ๋ง๋๋ ๋ฐ ํจ์ฌ ๋ ๋์ ์์ ์ ์ํํ์ต๋๋ค.
๋
ธํธ๋ถ์์ ์ด ๋ฌธ์ ์ ๋ณต์ ๋ณธ์ ๋ณด์์ต๋๋ค. ์ด๊ฒ์ ์ด๋ฏธ ์ฝ๋ ์
์์ IPython.display.Markdown
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํฉ๋๋ค.
from IPython.display import Markdown
one = 1
two = 2
three = one + two
Markdown("# Title")
Markdown("""
# Math
## Addition
Here is a simple addition example: {one} + {two} = {three}
""".format(one=one, two=two, three=three))
๋ฉ์ง! ์ ํธ๋ฆฌํฐ(๋๋ %%markdown ๋ง๋ฒ)๋ฅผ ์์ฑํ๋ ๊ฒ๋ ์ฌ์ธ ๊ฒ์
๋๋ค.
์ปค๋ ๋ค์์คํ์ด์ค์์ ์๋์ผ๋ก ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์
ํ๋ค:
%%markdown
## Subsection
Here is {one} and {two}
2017๋
4์ 26์ผ ์์์ผ ์คํ 6:35, Grant Nestor ์๋ฆผ @github.com
์ผ๋ค:
๋ ธํธ๋ถ์์ ์ด ๋ฌธ์ ์ ๋ณต์ ๋ณธ์ ๋ณด์์ต๋๋ค. ์ด๊ฒ์ ์ด๋ฏธ ๊ฐ๋ฅํฉ๋๋ค
์ฝ๋ ์ ์์ IPython.display.Markdown ์ฌ์ฉ:[์ด๋ฏธ์ง: ์ด๋ฏธ์ง]
https://cloud.githubusercontent.com/assets/512354/25464012/f434c52c-2aae-11e7-9171-541fb0f6601e.pngIPython.display ๊ฐ์ ธ์ค๊ธฐ ๋งํฌ๋ค์ด์์
ํ๋ = 1
๋ = 2
์ = ํ๋ + ๋๋งํฌ๋ค์ด("#์ ๋ชฉ")
Markdown("""# Math## Addition์ฌ๊ธฐ์ ๊ฐ๋จํ ๋ง์ ์์ ๊ฐ ์์ต๋๋ค: {one} + {two} = {three}""".format(one=one, two=two, three=three))โ
๋น์ ์ด ํ ๋น๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/ipython/ipython/issues/2958#issuecomment-297586914 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AABr0CIHhxwNwQF6MiHHy2M612zRnf5Wks5rz_D4gaJpZM4AchzX
.
--
๋ธ๋ผ์ด์ธ E. ๊ทธ๋ ์ธ์
๋ฌผ๋ฆฌํ ๋ฐ ๋ฐ์ดํฐ ๊ณผํ ๋ถ๊ต์
Cal Poly State University, San Luis Obispo
Twitter ๋ฐ GitHub์ @ellisonbg
[email protected] ๋ฐ [email protected]
@ellisonbg ๊ทธ๊ฒ @Carreau ์ด์ ๊ฐ์ ๊ฒ์ ๊ด์ฌ์ด
๋ํ ์ด๊ฒ์ ๋
ธํธ๋ถ์ ์๋ก์ด ์
ํ๊ทธ ๊ธฐ๋ฅ๊ณผ ๊ฒฐํฉํ๋ฉด( ๋
ธํธ๋ถ 5.0 ๋ฆด๋ฆฌ์ค ๊ฒ์๋ฌผ ์ฐธ์กฐ ) nbconvert๋ฅผ ์ฌ์ฉํ์ฌ ๋
ธํธ๋ถ์ ๋ณํํ ๋ ์
๋ ฅ ์
์ ์จ๊ธธ ์ ์์ด์ผ ํฉ๋๋ค(์: nbconvert-hide
ํ๊ทธ ์ฌ์ฉ). @takluyver nbconvert-hide
ํ๊ทธ๊ฐ ํ์ฌ nbconvert์ ํจ๊ป ์๋ํฉ๋๊น?
์์ง๊น์ง๋ ์๋์ง๋ง nbconvert ํ๊ทธ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ +1! ๋ํ ํ์ฌ ์
๋ ฅ/์ถ๋ ฅ์ ์จ๊ธฐ๋ ์์
์ ํ๊ณ ์์ต๋๋ค.
JupyterLab์ ํด๋น ์ํ๋ฅผ nbconvert์ ์ ์งํ ์ ์์ต๋๋ค.
๋ฉํ๋ฐ์ดํฐ.
2017๋
4์ 27์ผ ๋ชฉ์์ผ ์ค์ 7์ 33๋ถ, Grant Nestor [email protected]
์ผ๋ค:
@ellisonbg https://github.com/ellisonbg ๊ทธ๊ฒ ์ข๊ฒ ๊ณ ์ ์๊ฐ์๋
์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค(Python์์ ๋ ๋๋ง ๋งํฌ๋ค์ด ๋
ํ์ ๋ฐ ๊ธฐํ ๋งํฌ๋ค์ด ๊ธฐ๊ณ๋ฅผ ํ์ฅํ ์ ์๋ ๋ฐฉ์์ผ๋ก
์ฐ์ฅํด์๋ ์๋ฉ๋๋ค). @Carreau https://github.com/Carreau Any
์ด๋ฐ ๊ฒ์ ๊ด์ฌ?๋ํ ์ด๊ฒ์ ๋ ธํธ๋ถ์ ์๋ก์ด ์ ํ๊ทธ ๊ธฐ๋ฅ๊ณผ ๊ฒฐํฉ
(๋ ธํธ๋ถ 5.0 ๋ฆด๋ฆฌ์ค ๊ฒ์๋ฌผ ์ฐธ์กฐ
http://blog.jupyter.org/2017/04/04/jupyter-notebook-5-0/ ), ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
nbconvert๋ฅผ ์ฌ์ฉํ์ฌ ๋ ธํธ๋ถ์ ๋ณํํ ๋ ์ ๋ ฅ ์ ์ ์จ๊ธธ ์ ์์ต๋๋ค.
(์: nbconvert-hide ํ๊ทธ ์ฌ์ฉ). @takluyver https://github.com/takluyver
nbconvert-hide ํ๊ทธ๊ฐ ํ์ฌ nbconvert์ ํจ๊ป ์๋ํฉ๋๊น?โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/ipython/ipython/issues/2958#issuecomment-297731409 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AABr0BNgLTtlzwbrIjqBquzsE9lhLXchks5r0KdAgaJpZM4AchzX
.
--
๋ธ๋ผ์ด์ธ E. ๊ทธ๋ ์ธ์
๋ฌผ๋ฆฌํ ๋ฐ ๋ฐ์ดํฐ ๊ณผํ ๋ถ๊ต์
Cal Poly State University, San Luis Obispo
Twitter ๋ฐ GitHub์ @ellisonbg
[email protected] ๋ฐ [email protected]
@Carreau ์ด์ ๊ฐ์ ๊ฒ์ ๊ด์ฌ์ด
์ด ์์ ๋ฐฉ์์ ์ด๋ฏธ 2013๋ ์ ๋ ผ์๋์์ผ๋ฉฐ AFAICT๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ด์ ์ฐํธ๋ ธ์ต๋๋ค.
--to markdown
๋ฐ nbconvert --to script
"๋งํฌ๋ค์ด" ์ ์ ํ ์คํธ๊ฐ ์ปค๋ ์ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ด๋ ๋ ธํธ๋ถ(IMHO)์ ์๋ฏธ ์ฒด๊ณ๋ฅผ ๊นจ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ๊ท์ฌ์ด ๋์ ๋๋ ์ด ์์ด๋์ด์ ๋ฐ๋ํ ๊ฒ์ ๋๋ค.
๋ํ %%markdown
, %%latex
, %%javascript
... ๋ฑ์ ๋ง๋ฒ์ ์ฐ๋ฆฌ๊ฐ ์ด ํ ๋ก ์ ํ ๋ ์์ฑ๋์์ต๋๋ค.
%%markdown
์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์ด ์๋ ์ ์ฌํ ๋ง๋ฒ์ด ๊ฝค ์ค๋ ์๊ฐ ๋์ ์กด์ฌํด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด์ ์ ์ด ์์ด๋์ด๋ฅผ ์ ํ ์ ์ด ์์ผ๋ฏ๋ก ์ข
๋ฃํ๋ฏ๋ก ์๋๋ฅด์ง ๋ง์ญ์์ค.
๋ด ์๊ฐ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์งํํ์ผ๋ฉฐ @gnestor ์ ์์ด๋์ด๊ฐ ๋ง์์
์ ์์ ๋ฐ๋ฅด๋ฉด ์ฌ์ฉ์๊ฐ ๋งํฌ๋ค์ด ์
์์ ์ปค๋์ ๋ณ์๋ฅผ ์ํ๋ฉด
๋งํฌ๋ค์ด ์
์ ์ปค๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. "๊ทธ๊ฒ์ ๋ฌด๋์ง๋ค.
๋ฉ๋ชจ์ฅ์ ์๋ฏธ"๋ ์ฝ๋ ์
์ ํ์ฉํด์๋ ์ ๋๋ค๊ณ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์ปค๋์์ ์คํ๋๊ณ ์ถ๋ ฅ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฃผ์ ๋ชฉ์ ์ค ํ๋
๋
ธํธ๋ถ ๋ฌธ์์ ํต์ฌ์ ์ปค๋์ด ํ๋ ์ผ์ ๊ธฐ๋กํ๋ ๊ฒ์
๋๋ค.
ํ๋ถํ ์ถ๋ ฅ์ ์ง์ํ๋ ๋ชจ๋ ์ปค๋์์ ๊ตฌํํ๋ ๊ฒ์ ๊ฐ๋จํ๋ฉฐ
์ด๊ฒ์ ๋ค์ด ์คํธ๋ฆผ (nbconvert, import hooks)์ ๊นจ๋จ๋ฆฐ ๋ค์ ๊ทธ ๊ฒ๋ค์ ๊นจ๋จ๋ฆฝ๋๋ค.
๋ฒ๊ทธ๊ฐ ์์ต๋๋ค(๋งํฌ๋ค์ด ์ถ๋ ฅ์ ์ด๋ฏธ ์กด์ฌํฉ๋๋ค).
๊ทธ๋ฌ๋ ipython ์ปค๋ ์ธ๋ถ์์์ด ์์ ์ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค ...
2017๋
4์ 27์ผ ๋ชฉ์์ผ ์ค์ 10์ 29๋ถ, Matthias Bussonnier <
[email protected]>์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@Carreau https://github.com/Carreau ์ด์ ๊ฐ์ ๊ฒ์ ๊ด์ฌ์ด ์์ผ ์ญ๋๊น?
์ด๋ฌํ ์์ ๋ฐฉ์์ ์ด๋ฏธ 2013๋ ์ ๋ ผ์๋์์ผ๋ฉฐ
AFAICT๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ด์ ์ฐํธ๋ ธ์ต๋๋ค.
- ๋ชจ๋ ์ธ์ด์์ %%markdown์ ๋ค์ ๊ตฌํํด์ผ ํฉ๋๋ค.
- ํ ์คํธ๋ฅผ ํ์ํ๋ ค๋ฉด ์ปค๋ ์ธก์์ ๊ณ์ฐ์ด ํ์ํฉ๋๋ค.
- ๋งํฌ๋ค์ด ๋ ๋๋ง์ ์๋ฏธ๋ก ์ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
- ์คํฌ๋ฅ ์ nbconvert --to markdown ๋ฐ nbconvert --to ์คํฌ๋ฆฝํธ
- ์คํฌ๋ฅ ์ ๋ ธํธ๋ถ ์์ ํํฌ.
๊ทธ๊ฒ์ ๋ ธํธ๋ถ(IMHO)์ ์๋ฏธ๋ฅผ ๊นจ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
"๋งํฌ๋ค์ด" ์ ์ ์ปค๋ ์ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๊ทธ๋์ ๊ท์ฌ์ด ๋์ ๋๋ ๊ฐ๋ค
์ด ์์ด๋์ด๋ฅผ ๋ฐ๋ํฉ๋๋ค.๋ํ %%markdown, %%latex, %%javascript ... ๋ฑ์ ๋ง๋ฒ์ด ๋ค์ ์์น์ ์์ฑ๋์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ํ ๋ก ์ ํ๊ณ ์์๋ ์๊ฐ.๋๋ ๋น์ทํ ๋ง๋ฒ์ด ๊ฝค ์ค๋ซ๋์ ์กด์ฌํด ์๋ค๋ ์ ์ ์ ์ํ ๊ฒ์ด๋ค.
https://gist.github.com/bj0/5343292 ๋ฐ ํจ์ฌ ๋ ๊ณ ๊ธ ๊ธฐ๋ฅ
%%markdown์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ข ๋ฃ๋๋ฏ๋ก ์๋๋ฅด์ง ๋ง์ญ์์ค.
๋น์ ์ ์ ์์ด ์์ด๋์ด๋ฅผ ๋ง๋ ์ ์ด ์์ต๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/ipython/ipython/issues/2958#issuecomment-297784026 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AABr0HU-Gb3ENSidykbte53geYqPpy-sks5r0NCAgaJpZM4AchzX
.
--
๋ธ๋ผ์ด์ธ E. ๊ทธ๋ ์ธ์
๋ฌผ๋ฆฌํ ๋ฐ ๋ฐ์ดํฐ ๊ณผํ ๋ถ๊ต์
Cal Poly State University, San Luis Obispo
Twitter ๋ฐ GitHub์ @ellisonbg
[email protected] ๋ฐ [email protected]
์ฐธ์กฐ ๊ตฌํ(ํด๋์ ๋ ธํธ๋ถ ํ์ฅ): https://github.com/ipython-contrib/jupyter_contrib_nbextensions/blob/master/src/jupyter_contrib_nbextensions/nbextensions/python-markdown/main.js
์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(Python์์ ๋งํฌ๋ค์ด ๋ ๋๋ง
์ฒ์์ ๊ทํ์ ์ง์ ์ ์๋ชป ์ฝ์๊ธฐ ๋๋ฌธ์ ๋ช ํํ ํ์๋ฉด - ์ด๊ฒ์ ๋งํฌ๋ค์ด์ html๋ก ๋ ๋๋งํ๋ ๊ฒ์ด ์๋๋ผ ์ปค๋์ ์ฌ์ฉํ์ฌ ๋งํฌ๋ค์ด์ ํ์ ํ๋ ๊ฒ์ ๋๋ค(markdown mimetype์ผ๋ก). html์ ๋ํ ์ค์ ๋ ๋๋ง ๋งํฌ๋ค์ด์ ์ฌ์ ํ โโํด๋ผ์ด์ธํธ ์ธก, nbconvert ๋ฑ์์ ์ํ๋๊ณ ์์ต๋๋ค.
๋๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ์ข์ํ๋ค. ์ปค๋ ์ํ์ ๊ด๋ จ๋ ์ฌ์ด ๋งํฌ๋ค์ด์ ์ํ๋ฉด ์ปค๋์ ์ฌ์ฉํ์ฌ ํด๋น ๋งํฌ๋ค์ด์ ํ์ํฉ๋๋ค. ํด๋น ๋งํฌ๋ค์ด์ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์์ ฏ์ ์ฌ์ฉํ์ธ์(OutputWidget์ ์ฌ์ฉํ๊ฑฐ๋ HTMLWidget๊ณผ ์ ์ฌํ MarkdownWidget์ ๋ง๋ค ์ ์์). ์ด๊ฒ์ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ์ ์จ๊ธฐ๊ฑฐ๋ ํ์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ๊ณผ ํจ๊ป ๋์๊ฒ ๋ง์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋ฐฉ๊ธ ์ด ํฐ์ผ์ ๋ฐ๊ฒฌํ๊ณ SoS ๋ ์์ ์ธ๊ธํ ์ ๊ทผ ๋ฐฉ์, ์ฆ ์ปค๋์์ ๋งํฌ๋ค์ด์ ๋ ๋๋งํ๋ค๋ ์ ์ ์ธ๊ธํ๊ณ ์ถ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก sos๋ ์
์ ํ์ค ์ถ๋ ฅ์ MD(๊ธฐ๋ณธ๊ฐ), HTML ๋ฑ์ผ๋ก ๋ ๋๋งํ๋ %render
๋ง๋ฒ ์ ๊ตฌํํ๊ณ , sos๋ ๋ค๋ฅธ ์ธ์ด๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์์ํ๋ ๋ชจ๋ ํ์ ์ปค๋์ ์ถ๋ ฅ๋ ๋ ๋๋งํฉ๋๋ค.
๋ค์์ ๊ฐ๋จํ ์์ ์ฌํญ์ ๋๋ค. https://github.com/jupyter/nbconvert/issues/320
๋ฌด์จ ์ผ์ด ์ผ์ด๋๋๋ผ๋ RMarkdown๊ณผ๋ ํธํ๋ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ฌ์ฉํ๋
x์ ๊ฐ์ 'rx'์ ๋๋ค.
์ฌ๊ธฐ์ x
๋ R์ ๋ณ์์
๋๋ค.
https://github.com/vatlab/markdown-kernel ์ด ๋ฐ๋์ ํ์ํ ๊ฒ์ ์๋์ง๋ง Jupyter ํ๊ฒฝ์์ Rmarkdown ์ ์ ์ง์ํฉ๋๋ค.
TL;DR: ์ด ์ค๋ ๋๊ฐ ์ฌ์ ํ ์ต์ ์ํ์ ๋๊น? JupyterLab์๋ ์ง์ ์ ์ธ ์๋ฃจ์ ์ด ์์ง๋ง Notebook์๋ ์์ต๋๊น? (2020)
๊ทธ๋์ ... ์ด ์ค๋ ๋๋ฅผ ์ฝ๊ณ ์ ์๋ ๋ค์ํ ํดํน์ ์๋ํ์ต๋๋ค ... 2020๋ ํ์ฌ ์ด ๊ธฐ๋ฅ์ JupyterLab์์ ์ฌ์ ํ ๋ถ๊ฐ๋ฅ/๋๋ฝ๋ ๊ฒ ๊ฐ์ต๋๋ค(๊ธฐ๋ณธ ์ฌ์ดํธ์์ ์ฌ๋๋ค์ด ๋ช ๋ ๋์ ์ฌ์ฉํ๋๋ก ๊ฐ์ํ๊ณ ์์ต๋๊น?). SoS๋ฅผ ์ฌ์ฉํ์ง ์๋ ํ(๋ค๋ฅธ ๋ชจ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ ธํธ๋ถ ์ ์ฉ, ์ฆ ํ๋ ์ค์น์ ๋ ๊ฑฐ์/์ธ๋ชจ์๋ ๊ฒ์ผ๋ก ๋ณด๊ฑฐ๋ ... Jupyter์ "์ฝ๋ + ๋งํฌ๋ค์ด" ํต์ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ํธ๋ฆฌํจ์ ๋ฒ๋ ค์ผ ํฉ๋๋ค).
๋ด๊ฐ ๋์น ๊ฒ์ด ์์ต๋๊น? ๋ฉ์ธ JupyterLab(์ฐธ๊ณ : ์ ์๋ํ๋ Notebooks๊ฐ ์๋๋ผ, 2020๋ ํ์ฌ์๋ Notebooks๊ฐ ๋ถ๋ช ํ ํจ์ฌ ๋ ์ ์๋ํ ๋ ๋ฉ์ธ ํ๋ก์ ํธ๊ฐ Lab์ ๋๋ฌด ์ธ๊ฒ ๋ฐ์ด๋ถ์ธ๋ค๋ ์ฌ์ค์ ์ฝ๊ฐ ๋ฐฐ์ ๊ฐ์ด ๋ญ๋๋ค)์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋งํฌ๋ค์ด์ ์ง์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์ํ๊ณ ๋น๋ถ์์ ์ธ ์์ ๋ฅผ ๋์ด์๋ ๋ชจ๋ ๊ฒ์ ๋ํ ๋ฌธ์ - ์์ฌํ์ ์ผ๋ก ๋งํด์: ์์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์ ์๋ค๋ฉด ๋ฐ์ดํฐ ๋ถ์ ์ ํ์ ์์ ์์คํ ์ ํฌํจํ๋ ์๋ฏธ๊ฐ ๋ฌด์์ ๋๊น?
์ด๊ฒ์ ๋๋ฌด ์๋ชป๋ ๊ฒ ๊ฐ์์ ๋ด๊ฐ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ ๋์ณค์์ ํ๋ฆผ์๋ค๊ณ ์๊ฐํฉ๋๋ค. "SoS + markdown-kernel"์ ํธ๋๋ฅผ ๊นจ๋ ํฐ ๋ง์น์ฒ๋ผ ๋๊ปด์ง์ง๋ง ์๋ํ๊ธฐ ๋๋ฌธ์ ...
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๊ธฐ๋ฅ์ Rmarkdown์์ ์จ ์ฌ๋์๊ฒ ์ ๋ง ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. R์ ๋ฉ์ง ๋ณด๊ณ ์๋ฅผ ๋ง๋๋ ๋ฐ ํจ์ฌ ๋ ๋์ ์์ ์ ์ํํ์ต๋๋ค.