워드프레스에 IPython 노트북 게시하기
나는 워드프레스 블로그에 올릴 수 있도록 IPython 노트북을 html 파일로 변환하려고 합니다.다음 명령을 사용하여 노트북용 html 파일을 생성했습니다.
ipython nbconvert notebook.ipynb
그런 다음 HTML 코드를 복사하여 '텍스트' 탭에 붙여넣었습니다.결과 블로그 게시물은 ipython 노트북처럼 보이지만, 문제는 마크다운 방정식이 나타나지 않고 제목이 이상하게 보인다는 것입니다.워드프레스 블로그 게시물에 아이피톤 노트북을 성공적으로 표시한 사람이 있습니까?만약 그렇다면, 어떻게?
2013년 11월 블로그 기사 http://www.josephhardinee.com/blog/ ?p=46에서 저자는 변환 프로세스를 빠르게 진행합니다.
그는 방정식 표시가 작동하도록 Simple Mathjax 플러그인을 설치해야 한다고 언급했습니다.
이제, 제가 자체 호스팅된 Wordpress 블로그에서 작동하기 위해 테스트한 것은 다음과 같습니다.
- nbconvert의 html 출력을 복사하여 붙여넣습니다(안에 있는 것만).
<body>
tag)를 입력합니다. - 그렇지 않으면 이미지가 표시되지 않으므로 Worpress HTML 코드 구문 분석을 사용할 수 없습니다(블로그 게시물에서 설명).가능한 두 가지 방법은 아래를 참조하십시오.
- 플러그인을 사용하거나 우편 코드에서 수동으로 Mathjax 활성화
Mathjax 플러그인 포함
테스트하지 않았습니다.Simple Mathjax
플러그인, 하지만 있습니다.LaTeX for WordPress
그게 나한테 효과가 있어요.
수동 Mathjax 활성화
nbconvert 출력에서 붙여넣기 복사 두 개<script>
Mathjax를 활성화하는 태그:
라이브러리 로드:
<script src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" type="text/javascript"></script>
시작:
<script type="text/javascript">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
},
displayAlign: 'left', // Change this to 'center' to center equations.
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}}
}
});
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}
}
init_mathjax();
</script>
코드 HTML 구문 분석 사용 안 함
블로그 게시물은 노트북 이미지가 작동하도록 PS 자동 포맷 해제 플러그인을 활성화할 것을 제안합니다.테스트는 성공적으로 완료했지만 한 가지 단점이 있습니다. 다른 게시물의 렌더링이 잘못되었다는 점입니다.그것은 상당한 문제입니다!
저는 대신 사후 조정이 가능한 원시 HTML 플러그인을 테스트했습니다.이미지가 작동하도록 만들었습니다.Disable automatic paragraphs
플러그인이 포스트 편집기에 새 상자를 만듭니다.
남은 문제:
노트북이 이 방법으로 잘 표시되어야 하지만 코드 셀의 구문 강조 표시가 제대로 표시되도록 하려면 아직 작업이 남아 있습니다.그러나 Python 소스 코드는 이미 CodeMirror에 의해 구문 분석되므로 적절한 CSS 코드를 로드하는 것에 불과합니다.
한 가지 접근 방식은 iframe을 사용하여 노트북을 내장하는 것입니다.이 독창적인 아이디어는 블로그 게시물 http://onsnetwork.org/eimd/2014/08/08/how-to-enter-ipython-notebooks-to-wordpress/, 에서 나왔지만 저는 몇 가지 개선 사항을 만들었습니다.이를 위한 간단한 방법은 다음과 같습니다.
- 합니다.
Raw HTML
플러그인을 Wordpress에 연결합니다.이 작업은 한 번만 수행하면 됩니다. - 합니다. HTML로 변환합니다.
ipython nbconvert YOUR_NOTEBOOK.ipynb
- 결과 HTML을 Wordpress에 미디어 파일로 업로드합니다.업로드할 URL을 기록합니다.
사이에
raw
태그가 게시물에 있습니다.예:[raw] <iframe id="ipython_notebook_frame" style="height: 500px; width: 100%; padding: 0; border: none;" src="URL_OF_NOTEBOOK"> </iframe> [/raw]
안타깝게도 높이가 결코 맞지 않고 성가신 가로 스크롤 막대가 생기는 경향이 있기 때문에 이 간단한 접근 방식은 잘 작동하지 않습니다.그러나 업로드된 html은 블로그 게시물과 동일한 도메인에서 호스팅되므로 일부 javascript를 사용하여 수정할 수 있습니다.다음 레시피는 너비와 높이를 올바르게 설정하여 깨끗한 블로그 게시물을 생성하는 데 상당히 효과적인 것 같습니다.
[raw]
<script type="text/javascript">
function resizeIframe(ifrm) {
ifrm.style.height = ifrm.contentWindow.document.body.scrollHeight + 'px';
// Setting the width here, or setting overflowX to "hidden"both
// seem to work. It may be that one turns out to be better; for
// now I set the height.
ifrm.style.width = ifrm.contentWindow.document.body.scrollWidth + 'px';
}
</script>
<script type="text/javascript">
function onLoad() {
var ifrm = document.getElementById('ipython_notebook_frame');
setTimeout(resizeIframe, 0, ifrm);
}
</script>
<iframe id="ipython_notebook_frame"
style="height: 500px; width: 100%; padding: 0; border: none;"
src="URL_OF_NOTEBOOK">
</iframe>
<script type="text/javascript">
// By deleting and reinstating the iframe src, and by using setTimeout
// rather than resizing directly we convince Safari to render the
// page. I've lost the link for where I found this trick, so
// can't properly credit it.
var iframe = document.getElementById('ipython_notebook_frame');
iframe.onload = onLoad;
var iSrc = iframe.src;
iframe.src = '';
iframe.src = iSrc;
</script>
[/raw]
이에 대한 자세한 내용과 예제를 보려면 다음 게시물을 참조하십시오. http://www.bitsofbits.com/2015/01/19/ipython-notebooks-in-wordpress
언급URL : https://stackoverflow.com/questions/20849988/posting-ipython-notebook-in-wordpress
'sourcecode' 카테고리의 다른 글
C/C++용 CoffeeScript와 유사한 언어 (0) | 2023.07.23 |
---|---|
__future__import print_function에서 사용하면 Python2 스타일의 인쇄가 중단되는 이유는 무엇입니까? (0) | 2023.07.23 |
동적 선택 필드 만들기 (0) | 2023.07.18 |
Python [Errno 98] 주소가 이미 사용 중입니다. (0) | 2023.07.18 |
'http setup.py 설치'와 'http 설치'의 차이점 (0) | 2023.07.18 |