2017-03-13 1 views
2

(비슷한 질문이 있습니다 here,하지만 파이썬 코드를 사용하여 마크 다운 셀을 읽는 것입니다 .Jupyter Notebook 프런트 엔드 확장과 같은 JavaScript를 사용하여 코드 셀의 소스 코드를 읽으 려합니다.)Javascript Jupyter Notebook 코드 셀 내용을 얻는 방법?

코드에 대한 분석을 수행하려고합니다. 우리가 여기에 각

enter image description here

을 볼 수 있듯이 : 나는 단순히 Jupyter 노트북의 DOM을 검사하는 경우에는, 그것은 중첩 div의 진정한 DOM 악몽 (중복 그들 중 아마 반)로 밝혀 소스 코드의 문자 자체 요소에 있습니다. 당연히 나는 코드 셀의 코드를 얻기 위해 태그에서 모든 것을 꺼내어 다시 연결하기를별로 좋아하지 않습니다. 셀의 소스 코드를 얻는 쉬운 방법이 있습니까?

일부 Jupyter JS API가 작동합니까? (노트 자체가 실제로 커널에 보내는 코드를 어떻게 얻었 을까? 이미이 일을하고있는 뭔가가 있어야한다.) 아니면 jQuery 코드의 작은 조각은 모든 내용물을 얻는 데 매우 영리한가?

커널을 백엔드에서 평가하기 전에 어떻게 든 코드 셀 내용을 가로 챌 수 있다고 생각할 수도 있습니다.하지만 아직 어떻게 해야할지 모르며 JS가 포함 된 HTML을 출력해야합니다. 실행될 때 코드 셀의 출력에서 ​​즉시 실행되는 함수. 실제 코드의 출력이 인 경우 코드 셀의 출력에서 ​​코드 분석 결과를 얻으려면이 작업이 복잡해질 수 있습니다. 어쩌면 그것은 생각보다 덜 복잡 할 수도 있지만, JS 사이드에서 코드를 얻는 것이 더 편할 것입니다 ...

답변

2

주이터 cell.js 파일을보십시오 here - Jupyter 자체가 셀과 상호 작용하는 데 사용하는 함수를 나열합니다. 특히, get_text() 함수는 셀의 내용을 반환합니다. (이 세포의 모든 유형에서 작동 - 코드 세포에만 특정 기능을위한 codecell.js 파일을 살펴)

브라우저에서이를 테스트하는 빠른 방법 - 첫번째를 얻기 위해 글로벌 Jupyter 객체의 notebook 인스턴스에 액세스 노트북의 전지 :

var cell = Jupyter.notebook.get_cell(0);

이제 우리는 셀을 가지고 - 우리가 그 안에 코드를 읽을 수 있습니다! 사용

var code = cell.get_text();

+0

'getValue'도 작동하는 것 같다, 감사 – Zelphir

관련 문제