├── README.md
├── ipynb-viewer
├── .gitignore
├── README.md
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
├── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── BenchmarkNotebook.ipynb
│ ├── BenchmarkNotebook.json
│ ├── JupViewer.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ └── serviceWorker.js
└── yarn.lock
└── static
├── JupAsBlogDesk.png
├── JupDarkMobile.png
├── LightThemeMobile.png
├── SupportCoverImages.png
├── desktop_notebook.png
├── markdown_notebook.png
└── notebook_mobile.png
/README.md:
--------------------------------------------------------------------------------
1 | # React-Jupyter-Viewer
2 |
3 | ## IMPORTANT!!!!
4 | I'm looking for contributors. I noticed that quite a lot of developers find this tool useful and at the same time I feel guilty that I cannot devote enough time to this project due to personal committments. Please reachout in case anyone wants to contribute!
5 |
6 | Join the following Slack Workspace for any queries:
7 |
8 | https://join.slack.com/t/reactjupytern-0nc7370/shared_invite/zt-140lhgtlg-HaVJNl5OTEdeK1ZomArVZA
9 |
10 |
11 |
12 | ### Use jupyter notebooks as a blog
13 | The only reason why I am creating this component is to be able to publish my .ipynb notebooks on my GitHub pages as blog post. I have too many notebooks lying around with my programming notes. I'm too lazy to boot a ipython kernel to view one of my notebooks. Hence, this component.
14 |
15 | I like the default notebook viewer provided by github but there are a few features that would make it more usable for me, which are mostly these: **downloading it as a PDF, dark mode, mobile-enabled view and ability to publish my notebooks as blogs**
16 |
17 | Drop me a message if anyone wanna contribute.
18 |
19 | 
20 |
21 | (cover image src: https://notionpress.com/blog/wp-content/uploads/2018/06/Cover-design.png)
22 |
23 | ### Feature Roadmap
24 |
25 | * [X] Load from local file
26 | * [X] Load from URL
27 | * [X] Code blocks
28 | * [X] Render markdown blocks
29 | * [X] Render image blocks
30 | * [X] Render Error blocks
31 | * [X] Add tags to distinguish outputs
32 | * [X] Cell block numbering
33 | * [X] Header Tab (Showing name of notebook and date etc.)
34 | * [X] Hide code execution number (toggle)
35 | * [X] Theme Toggle
36 | * [X] Markdown Dark Theme
37 | * [X] Resolve Relative Markdown sources for images
38 | * [ ] Split as A4 size pages
39 | * [ ] Side-by-side view
40 | * [ ] Download notebook as pdf (will have to enable wordwrap while downloading it as pdf)
41 | * [ ] text/html code block parser
42 | * [ ] Markdown based index
43 |
44 | ----
45 |
46 | #### Desirable Props
47 |
48 | prop | priority | description
49 | ---------|----------|-------------
50 | file | Critical | Load a file from storage
51 | url | Critical | Load a file from storage
52 | theme | good to have| Change from dark to light
53 | blog title| Critical | Title for the blog.
54 | blog cover|good to have| An option to put in cover pic for your blog
55 |
56 | ---
57 |
58 | ### Usage
59 | Note that the notebook URL must be the raw_notebook url on github. Click on the 'raw' button in github notebook preview to get the raw source.
60 |
61 | ```javascript
62 | import React from 'react';
63 | import './App.css';
64 | import JupViewer from './JupViewer'
65 |
66 | const ipynb = require('./BenchmarkNotebook.ipynb')
67 |
68 | class App extends React.Component {
69 | render() {
70 | return (
71 |
72 |
79 |
80 | )
81 | }
82 | }
83 |
84 | export default App;
85 |
86 | ```
87 | ---
88 |
89 | ### Desktop Preview
90 | 
91 |
92 |
93 |
94 | ### Mobile Preview with theme toggle
95 | Dark|Light
96 | ----|----
97 | |
98 |
99 |
100 | ---
101 |
102 | ### Dependencies
103 | * react-ace
104 | * react-markdown
105 | * antd (UI lib cuz I'm too lazy)
106 |
--------------------------------------------------------------------------------
/ipynb-viewer/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/ipynb-viewer/README.md:
--------------------------------------------------------------------------------
1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
2 |
3 | ## Available Scripts
4 |
5 | In the project directory, you can run:
6 |
7 | ### `yarn start`
8 |
9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11 |
12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console.
14 |
15 | ### `yarn test`
16 |
17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
19 |
20 | ### `yarn build`
21 |
22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance.
24 |
25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed!
27 |
28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
29 |
30 | ### `yarn eject`
31 |
32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
33 |
34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
35 |
36 | Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
37 |
38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
39 |
40 | ## Learn More
41 |
42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
43 |
44 | To learn React, check out the [React documentation](https://reactjs.org/).
45 |
46 | ### Code Splitting
47 |
48 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
49 |
50 | ### Analyzing the Bundle Size
51 |
52 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
53 |
54 | ### Making a Progressive Web App
55 |
56 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
57 |
58 | ### Advanced Configuration
59 |
60 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
61 |
62 | ### Deployment
63 |
64 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
65 |
66 | ### `yarn build` fails to minify
67 |
68 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
69 |
--------------------------------------------------------------------------------
/ipynb-viewer/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ipynb-viewer",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "antd": "^3.24.2",
7 | "markdown-it": "^10.0.0",
8 | "react": "^16.11.0",
9 | "react-ace": "^8.0.0",
10 | "react-dom": "^16.11.0",
11 | "react-markdown": "^4.2.2",
12 | "react-scripts": "3.2.0"
13 | },
14 | "scripts": {
15 | "start": "react-scripts start",
16 | "build": "react-scripts build",
17 | "test": "react-scripts test",
18 | "eject": "react-scripts eject"
19 | },
20 | "eslintConfig": {
21 | "extends": "react-app"
22 | },
23 | "browserslist": {
24 | "production": [
25 | ">0.2%",
26 | "not dead",
27 | "not op_mini all"
28 | ],
29 | "development": [
30 | "last 1 chrome version",
31 | "last 1 firefox version",
32 | "last 1 safari version"
33 | ]
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/ipynb-viewer/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/ipynb-viewer/public/favicon.ico
--------------------------------------------------------------------------------
/ipynb-viewer/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | React App
28 |
29 |
30 | You need to enable JavaScript to run this app.
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/ipynb-viewer/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/ipynb-viewer/public/logo192.png
--------------------------------------------------------------------------------
/ipynb-viewer/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/ipynb-viewer/public/logo512.png
--------------------------------------------------------------------------------
/ipynb-viewer/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/ipynb-viewer/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/App.css:
--------------------------------------------------------------------------------
1 | .App {
2 | text-align: center;
3 | }
4 |
5 | .App-logo {
6 | height: 40vmin;
7 | }
8 |
9 | .App-header {
10 | background-color: #282c34;
11 | min-height: 100vh;
12 | display: flex;
13 | flex-direction: column;
14 | align-items: center;
15 | justify-content: center;
16 | font-size: calc(10px + 2vmin);
17 | color: white;
18 | }
19 |
20 | .App-link {
21 | color: #09d3ac;
22 | }
23 |
24 | .darkTheme > * {
25 | background-color: #2F3129;
26 | color: white;
27 | }
28 |
29 | .MDImg img {
30 | max-width: 100%;
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import logo from './logo.svg';
3 | import './App.css';
4 | import JupViewer from './JupViewer'
5 |
6 | const ipynb = require('./BenchmarkNotebook.ipynb')
7 |
8 | class App extends React.Component {
9 | render() {
10 | return (
11 |
12 |
20 |
21 | )
22 | }
23 | }
24 |
25 |
26 | export default App;
27 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render( , div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/BenchmarkNotebook.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "class Node:\n",
10 | " def __init__(self, node_id, obj=None):\n",
11 | " self.par = []\n",
12 | " self.chids = []\n",
13 | " self.name = node_id\n",
14 | " \n",
15 | "def get_root(node):\n",
16 | " if not node.par:\n",
17 | " return [node]\n",
18 | " all_parents = []\n",
19 | " for par in node.par:\n",
20 | " all_parents.extend(get_root(par))\n",
21 | " return all_parents"
22 | ]
23 | },
24 | {
25 | "cell_type": "code",
26 | "execution_count": 2,
27 | "metadata": {},
28 | "outputs": [],
29 | "source": [
30 | "root = Node('Root', obj=\"Hi this is root\")"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 3,
36 | "metadata": {},
37 | "outputs": [],
38 | "source": [
39 | "n1 = Node('node1', obj=\"Node 1\")\n",
40 | "n1.par.append(root)"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "execution_count": 4,
46 | "metadata": {},
47 | "outputs": [],
48 | "source": [
49 | "n2 = Node('node2', obj=\"Node 2\")\n",
50 | "n2.par.append(root)"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 5,
56 | "metadata": {},
57 | "outputs": [],
58 | "source": [
59 | "n2_2 = Node('node2_2', obj=\"Node 2 ka baccha\")\n",
60 | "n2_2.par.append(n2)"
61 | ]
62 | },
63 | {
64 | "cell_type": "markdown",
65 | "metadata": {},
66 | "source": [
67 | "### Another disjoint tree\n",
68 | "\n",
69 | "\n"
70 | ]
71 | },
72 | {
73 | "cell_type": "markdown",
74 | "metadata": {},
75 | "source": [
76 | "### Traversal"
77 | ]
78 | },
79 | {
80 | "cell_type": "code",
81 | "execution_count": 129,
82 | "metadata": {},
83 | "outputs": [
84 | {
85 | "data": {
86 | "text/plain": [
87 | "['Root']"
88 | ]
89 | },
90 | "execution_count": 129,
91 | "metadata": {},
92 | "output_type": "execute_result"
93 | }
94 | ],
95 | "source": [
96 | "rts_list = get_root(n1)\n",
97 | "[r.name for r in rts_list]"
98 | ]
99 | },
100 | {
101 | "cell_type": "code",
102 | "execution_count": 132,
103 | "metadata": {},
104 | "outputs": [
105 | {
106 | "data": {
107 | "text/plain": [
108 | "['Root', 'Root of Tree 2']"
109 | ]
110 | },
111 | "execution_count": 132,
112 | "metadata": {},
113 | "output_type": "execute_result"
114 | }
115 | ],
116 | "source": [
117 | "[r.name for r in get_root(n2_2)]"
118 | ]
119 | },
120 | {
121 | "cell_type": "code",
122 | "execution_count": null,
123 | "metadata": {},
124 | "outputs": [],
125 | "source": [
126 | "# root T2\n",
127 | "# / \\ /\n",
128 | "# n1 n2 t1\n",
129 | "# | \\ /\n",
130 | "# [] n2_2\n",
131 | "# |\n",
132 | "# []"
133 | ]
134 | },
135 | {
136 | "cell_type": "code",
137 | "execution_count": 5,
138 | "metadata": {},
139 | "outputs": [
140 | {
141 | "name": "stdout",
142 | "output_type": "stream",
143 | "text": [
144 | "(720, 1280)\n"
145 | ]
146 | },
147 | {
148 | "data": {
149 | "image/png": "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\n",
150 | "text/plain": [
151 | ""
152 | ]
153 | },
154 | "metadata": {},
155 | "output_type": "display_data"
156 | }
157 | ],
158 | "source": [
159 | "import cv2\n",
160 | "import matplotlib.pyplot as plt\n",
161 | "import numpy as np\n",
162 | "import sys\n",
163 | "%matplotlib inline\n",
164 | "\n",
165 | "im = cv2.imread('/home/shiv/Pictures/pcikleee.jpg',0)\n",
166 | "h,w = im.shape[:2]\n",
167 | "print(im.shape)\n",
168 | "plt.imshow(im,cmap='gray')\n",
169 | "plt.show()"
170 | ]
171 | },
172 | {
173 | "cell_type": "markdown",
174 | "metadata": {},
175 | "source": [
176 | "### Loop traversal and multiline output"
177 | ]
178 | },
179 | {
180 | "cell_type": "code",
181 | "execution_count": 9,
182 | "metadata": {},
183 | "outputs": [
184 | {
185 | "name": "stdout",
186 | "output_type": "stream",
187 | "text": [
188 | "0\n",
189 | "1\n",
190 | "2\n",
191 | "3\n",
192 | "4\n",
193 | "5\n",
194 | "6\n",
195 | "7\n",
196 | "8\n",
197 | "9\n"
198 | ]
199 | }
200 | ],
201 | "source": [
202 | "for i in range(10):\n",
203 | " print(i)"
204 | ]
205 | },
206 | {
207 | "cell_type": "code",
208 | "execution_count": 10,
209 | "metadata": {},
210 | "outputs": [
211 | {
212 | "data": {
213 | "text/plain": [
214 | "{1: 2, 4: 'hello', 'test_jey': ['anotherobject']}"
215 | ]
216 | },
217 | "execution_count": 10,
218 | "metadata": {},
219 | "output_type": "execute_result"
220 | }
221 | ],
222 | "source": [
223 | "# TEST for an object print\n",
224 | "obj = {1:2, 4:'hello', 'test_jey':['anotherobject']}\n",
225 | "obj"
226 | ]
227 | },
228 | {
229 | "cell_type": "code",
230 | "execution_count": 11,
231 | "metadata": {},
232 | "outputs": [
233 | {
234 | "name": "stdout",
235 | "output_type": "stream",
236 | "text": [
237 | "{1: 2, 4: 'hello', 'test_jey': ['anotherobject']}\n"
238 | ]
239 | }
240 | ],
241 | "source": [
242 | "print(obj)"
243 | ]
244 | },
245 | {
246 | "cell_type": "code",
247 | "execution_count": 12,
248 | "metadata": {},
249 | "outputs": [
250 | {
251 | "data": {
252 | "text/plain": [
253 | "35"
254 | ]
255 | },
256 | "execution_count": 12,
257 | "metadata": {},
258 | "output_type": "execute_result"
259 | }
260 | ],
261 | "source": [
262 | "a = 35\n",
263 | "a\n"
264 | ]
265 | },
266 | {
267 | "cell_type": "code",
268 | "execution_count": 13,
269 | "metadata": {},
270 | "outputs": [
271 | {
272 | "name": "stdout",
273 | "output_type": "stream",
274 | "text": [
275 | "35\n"
276 | ]
277 | }
278 | ],
279 | "source": [
280 | "print(a)"
281 | ]
282 | },
283 | {
284 | "cell_type": "code",
285 | "execution_count": 1,
286 | "metadata": {},
287 | "outputs": [
288 | {
289 | "ename": "ZeroDivisionError",
290 | "evalue": "division by zero",
291 | "output_type": "error",
292 | "traceback": [
293 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
294 | "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
295 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
296 | "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero"
297 | ]
298 | }
299 | ],
300 | "source": [
301 | "1/0"
302 | ]
303 | },
304 | {
305 | "cell_type": "markdown",
306 | "metadata": {},
307 | "source": [
308 | "### Complex markdown\n",
309 | "\n",
310 | "#### Tables?\n",
311 | "\n",
312 | "col 1 | col 2\n",
313 | "------|------\n",
314 | "A|B\n",
315 | "C|D"
316 | ]
317 | },
318 | {
319 | "cell_type": "code",
320 | "execution_count": null,
321 | "metadata": {},
322 | "outputs": [],
323 | "source": []
324 | }
325 | ],
326 | "metadata": {
327 | "kernelspec": {
328 | "display_name": "Python 3",
329 | "language": "python",
330 | "name": "python3"
331 | },
332 | "language_info": {
333 | "codemirror_mode": {
334 | "name": "ipython",
335 | "version": 3
336 | },
337 | "file_extension": ".py",
338 | "mimetype": "text/x-python",
339 | "name": "python",
340 | "nbconvert_exporter": "python",
341 | "pygments_lexer": "ipython3",
342 | "version": "3.6.8"
343 | }
344 | },
345 | "nbformat": 4,
346 | "nbformat_minor": 2
347 | }
348 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/BenchmarkNotebook.json:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "class Node:\n",
10 | " def __init__(self, node_id, obj=None):\n",
11 | " self.par = []\n",
12 | " self.chids = []\n",
13 | " self.name = node_id\n",
14 | " \n",
15 | "def get_root(node):\n",
16 | " if not node.par:\n",
17 | " return [node]\n",
18 | " all_parents = []\n",
19 | " for par in node.par:\n",
20 | " all_parents.extend(get_root(par))\n",
21 | " return all_parents"
22 | ]
23 | },
24 | {
25 | "cell_type": "code",
26 | "execution_count": 2,
27 | "metadata": {},
28 | "outputs": [],
29 | "source": [
30 | "root = Node('Root', obj=\"Hi this is root\")"
31 | ]
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 3,
36 | "metadata": {},
37 | "outputs": [],
38 | "source": [
39 | "n1 = Node('node1', obj=\"Node 1\")\n",
40 | "n1.par.append(root)"
41 | ]
42 | },
43 | {
44 | "cell_type": "code",
45 | "execution_count": 4,
46 | "metadata": {},
47 | "outputs": [],
48 | "source": [
49 | "n2 = Node('node2', obj=\"Node 2\")\n",
50 | "n2.par.append(root)"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 124,
56 | "metadata": {},
57 | "outputs": [],
58 | "source": [
59 | "n2_2 = Node('node2_2', obj=\"Node 2 ka baccha\")\n",
60 | "n2_2.par.append(n2)"
61 | ]
62 | },
63 | {
64 | "cell_type": "markdown",
65 | "metadata": {},
66 | "source": [
67 | "### Another disjoint tree\n",
68 | ""
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 125,
74 | "metadata": {},
75 | "outputs": [],
76 | "source": [
77 | "T2 = Node('Root of Tree 2', obj=\"Tree 2\")"
78 | ]
79 | },
80 | {
81 | "cell_type": "code",
82 | "execution_count": 126,
83 | "metadata": {},
84 | "outputs": [],
85 | "source": [
86 | "t1 = Node('node1 T2', obj=\"Node 1\")\n",
87 | "t1.par.append(T2)"
88 | ]
89 | },
90 | {
91 | "cell_type": "code",
92 | "execution_count": 131,
93 | "metadata": {},
94 | "outputs": [],
95 | "source": [
96 | "n2_2.par.append(t1)"
97 | ]
98 | },
99 | {
100 | "cell_type": "markdown",
101 | "metadata": {},
102 | "source": [
103 | "### Traversal"
104 | ]
105 | },
106 | {
107 | "cell_type": "code",
108 | "execution_count": 129,
109 | "metadata": {},
110 | "outputs": [
111 | {
112 | "data": {
113 | "text/plain": [
114 | "['Root']"
115 | ]
116 | },
117 | "execution_count": 129,
118 | "metadata": {},
119 | "output_type": "execute_result"
120 | }
121 | ],
122 | "source": [
123 | "rts_list = get_root(n1)\n",
124 | "[r.name for r in rts_list]"
125 | ]
126 | },
127 | {
128 | "cell_type": "code",
129 | "execution_count": 132,
130 | "metadata": {},
131 | "outputs": [
132 | {
133 | "data": {
134 | "text/plain": [
135 | "['Root', 'Root of Tree 2']"
136 | ]
137 | },
138 | "execution_count": 132,
139 | "metadata": {},
140 | "output_type": "execute_result"
141 | }
142 | ],
143 | "source": [
144 | "[r.name for r in get_root(n2_2)]"
145 | ]
146 | },
147 | {
148 | "cell_type": "code",
149 | "execution_count": null,
150 | "metadata": {},
151 | "outputs": [],
152 | "source": [
153 | "# root T2\n",
154 | "# / \\ /\n",
155 | "# n1 n2 t1\n",
156 | "# | \\ /\n",
157 | "# [] n2_2\n",
158 | "# |\n",
159 | "# []"
160 | ]
161 | },
162 | {
163 | "cell_type": "code",
164 | "execution_count": 5,
165 | "metadata": {},
166 | "outputs": [
167 | {
168 | "name": "stdout",
169 | "output_type": "stream",
170 | "text": [
171 | "(720, 1280)\n"
172 | ]
173 | },
174 | {
175 | "data": {
176 | "image/png": "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\n",
177 | "text/plain": [
178 | ""
179 | ]
180 | },
181 | "metadata": {},
182 | "output_type": "display_data"
183 | }
184 | ],
185 | "source": [
186 | "import cv2\n",
187 | "import matplotlib.pyplot as plt\n",
188 | "import numpy as np\n",
189 | "import sys\n",
190 | "%matplotlib inline\n",
191 | "\n",
192 | "im = cv2.imread('/home/shiv/Pictures/pcikleee.jpg',0)\n",
193 | "h,w = im.shape[:2]\n",
194 | "print(im.shape)\n",
195 | "plt.imshow(im,cmap='gray')\n",
196 | "plt.show()"
197 | ]
198 | },
199 | {
200 | "cell_type": "code",
201 | "execution_count": null,
202 | "metadata": {},
203 | "outputs": [],
204 | "source": []
205 | }
206 | ],
207 | "metadata": {
208 | "kernelspec": {
209 | "display_name": "Python 3",
210 | "language": "python",
211 | "name": "python3"
212 | },
213 | "language_info": {
214 | "codemirror_mode": {
215 | "name": "ipython",
216 | "version": 3
217 | },
218 | "file_extension": ".py",
219 | "mimetype": "text/x-python",
220 | "name": "python",
221 | "nbconvert_exporter": "python",
222 | "pygments_lexer": "ipython3",
223 | "version": "3.6.8"
224 | }
225 | },
226 | "nbformat": 4,
227 | "nbformat_minor": 2
228 | }
229 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/JupViewer.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {
3 | Card, Spin,
4 | Tag, Col, Row, Typography,
5 | Switch
6 | } from 'antd';
7 | import { render } from "react-dom";
8 | import AceEditor from "react-ace";
9 | import "ace-builds/src-noconflict/mode-python";
10 | import "ace-builds/src-noconflict/theme-monokai";
11 | import "ace-builds/src-noconflict/theme-kuroir";
12 | import "ace-builds/src-noconflict/theme-terminal";
13 | import './App.css';
14 |
15 | const ReactMarkdown = require('react-markdown')
16 | const { Meta } = Card;
17 |
18 | class JupViewer extends React.Component {
19 | state = {
20 | //file_path
21 | fpath: "",
22 | fbase_path: "",
23 | // Editor Theme
24 | ed_theme: 'darkTheme',
25 | text_ed_theme: 'monokai',
26 | //themes:
27 | background_theme: "black",
28 | background_text_theme: 'white',
29 | // background_input_theme: '#2F3129',
30 | background_input_theme: '#272822',
31 | background_output_theme: '#2F3129',
32 | loading: true,
33 | notebook_json: null,
34 | placeholder_component: "Loading....",
35 |
36 | // Gutter
37 | gutterVisible: false
38 | }
39 |
40 | validURL(str) {
41 | var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
42 | '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
43 | '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
44 | '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
45 | '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
46 | '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
47 | return !!pattern.test(str);
48 | }
49 |
50 | async componentDidMount() {
51 | if (!!this.props.file) {
52 | var fbase = this.props.file.split('/');
53 | fbase.pop();
54 | this.setState({
55 | fpath: this.props.file,
56 | fbase_path: fbase.join('/') + '/'
57 | })
58 | await fetch(this.props.file)
59 | .then((r) => r.text())
60 | .then(async (text) => {
61 | try {
62 | var notebook_json = JSON.parse(text)
63 | this.setState({
64 | notebook_json: notebook_json,
65 | loading: false,
66 | placeholder_component: 'Notebook loaded'
67 | })
68 | console.log(this.state.notebook_json)
69 | } catch (error) {
70 | alert('OOps! Unable to load json')
71 | this.setState({
72 | notebook_json: { "message": "Unable to parse .ipynb file" },
73 | loading: false,
74 | placeholder_component: 'Oops! We have problem opening the notebook'
75 | })
76 | }
77 | })
78 | }
79 | }
80 |
81 | praseSource(source) {
82 | var cell_content = ``
83 | for (var code in source) {
84 | cell_content += source[code]
85 | }
86 | return cell_content
87 | }
88 |
89 | parseMD(source) {
90 | var cell_content = ``
91 | for (var code in source) {
92 | var rgx = new RegExp(/src="(.*?)"/)
93 | var new_source = source[code]
94 | var old_source = source[code].match(rgx)
95 | if (!!old_source && !this.validURL(old_source[1])) {
96 | new_source = source[code].replace(/src="(.*?)"/, 'src="' + this.state.fbase_path + old_source[1] + '"')
97 | // console.log(new_source)
98 | } else {
99 | var rgx2 = new RegExp(/\!\[(.*?)\]\((.*?)[\s|\)]/)
100 | var s2 = source[code].match(rgx2)
101 | if (!!s2 && !this.validURL(s2[2])) {
102 | // console.log(s2[2])
103 | // console.log(this.validURL(s2[2]))
104 | // console.log(new_source.replace(s2[2], this.state.fbase_path + s2[2]))
105 | new_source = new_source.replace(s2[2], this.state.fbase_path + s2[2])
106 | }
107 | }
108 | //
109 | cell_content += new_source
110 | }
111 | return cell_content
112 | }
113 |
114 | praseOutputs(outputs) {
115 | if (outputs.length == 0) {
116 | return ""
117 | }
118 | // Handle "data" type cells
119 | var text_plain = ``
120 | var stdout = ``
121 | var errors = ``
122 | var img_data = `data:image/png;base64,`
123 |
124 | //booleans
125 | var stdout_found = false
126 | var text_found = false
127 | var error_found = false
128 | var img_found = false
129 |
130 | //maxlines for each output type
131 | var lines_stdout = 3
132 | var lines_text_plain = 3
133 | var lines_error_trace = 3
134 | for (var outs in outputs) {
135 | if ("data" in outputs[outs]) {
136 |
137 | if ("text/plain" in outputs[outs]["data"]) {
138 | for (var text in outputs[outs]['data']['text/plain']) {
139 | text_plain += outputs[outs]['data']['text/plain'][text]
140 | }
141 | text_found = true
142 | lines_text_plain = outputs[outs]["data"]["text/plain"].length
143 | }
144 | if ("image/png" in outputs[outs]["data"]) {
145 | img_data += outputs[outs]["data"]["image/png"]
146 | img_found = true
147 | }
148 | }
149 | if ("name" in outputs[outs]) {
150 | for (var text in outputs[outs]["text"]) {
151 | stdout += outputs[outs]["text"][text]
152 | }
153 | stdout_found = true
154 | lines_stdout = outputs[outs]["text"].length
155 | }
156 | // Check for errors
157 | if ("ename" in outputs[outs]) {
158 | errors += outputs[outs]['ename'] + "\n" + outputs[outs]["evalue"] + "\n"
159 | // for (var trace in outputs[outs]["traceback"]) {
160 | // errors += outputs[outs]["traceback"][trace]
161 | // }
162 | error_found = true
163 | lines_error_trace = outputs[outs]["traceback"].length
164 | }
165 | }
166 |
167 | var return_template = (
168 |
169 |
200 |
201 |
data:text/plain
203 |
228 |
229 |
data:image/png
231 |
238 |
239 |
267 |
268 | )
269 |
270 |
271 | return return_template
272 | }
273 |
274 |
275 | themeChanger(ev) {
276 | if (ev) {
277 | this.setState({
278 | // Editor Theme
279 | ed_theme: 'darkTheme',
280 | text_ed_theme: 'monokai',
281 | //themes:
282 | background_theme: "black",
283 | background_text_theme: 'white',
284 | // background_input_theme: '#2F3129',
285 | background_input_theme: '#272822',
286 | background_output_theme: '#2F3129',
287 | })
288 | }
289 | else {
290 | this.setState({
291 | // Editor Theme
292 | ed_theme: 'lightTheme',
293 | text_ed_theme: 'kuroir',
294 | //themes:
295 | background_theme: "white",
296 | background_text_theme: 'black',
297 | // background_input_theme: '#2F3129',
298 | background_input_theme: '#E8E9E8',
299 | background_output_theme: '#F1F1F2',
300 | })
301 | }
302 | console.log(`switch to ${ev}`);
303 | }
304 |
305 | gutterChanger(ev) {
306 | if (ev) {
307 | this.setState({
308 | gutterVisible: true
309 | })
310 | }
311 | else {
312 | this.setState({
313 | gutterVisible: false
314 | })
315 | }
316 | }
317 |
318 | render() {
319 | console.log(this.props.file)
320 | return (
321 |
322 |
323 |
324 |
325 | {/* This is where the blog metadata and the cover will go */}
326 |
327 |
338 |
339 |
340 |
341 | {this.props.title}
347 | {this.props.subtitle}
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 | {this.state.loading ? "Unknown" : this.state.notebook_json['metadata']['kernelspec']['display_name']}
380 |
387 |
393 |
394 |
395 |
396 |
397 |
398 | {
399 | this.state.loading ?
: (this.state.notebook_json['cells'].map(item => (
400 |
411 |
412 |
417 |
418 |
423 |
431 | I [ {item['execution_count']} ]:
432 |
433 |
434 |
435 |
436 |
437 |
442 |
443 | {item['cell_type'] == "code" ? (
444 |
478 | ) :
479 |
480 | }
499 |
500 |
501 |
502 |
503 | {
504 | item['cell_type'] == 'markdown' ?
:
505 | (
506 |
511 |
512 |
513 |
521 | O [ {item['execution_count']} ]:
522 |
523 |
524 |
529 | {this.praseOutputs(item['outputs'])}
530 |
531 |
532 |
533 | )
534 | }
535 |
536 | )))
537 | }
538 |
539 |
540 |
541 |
542 | )
543 | }
544 | }
545 |
546 |
547 | export default JupViewer;
548 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
5 | sans-serif;
6 | -webkit-font-smoothing: antialiased;
7 | -moz-osx-font-smoothing: grayscale;
8 | }
9 |
10 | code {
11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
12 | monospace;
13 | }
14 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/index.js:
--------------------------------------------------------------------------------
1 | import "antd/dist/antd.css";
2 | import React from 'react';
3 | import ReactDOM from 'react-dom';
4 | import './index.css';
5 | import App from './App';
6 | import * as serviceWorker from './serviceWorker';
7 |
8 | ReactDOM.render( , document.getElementById('root'));
9 |
10 | // If you want your app to work offline and load faster, you can change
11 | // unregister() to register() below. Note this comes with some pitfalls.
12 | // Learn more about service workers: https://bit.ly/CRA-PWA
13 | serviceWorker.unregister();
14 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ipynb-viewer/src/serviceWorker.js:
--------------------------------------------------------------------------------
1 | // This optional code is used to register a service worker.
2 | // register() is not called by default.
3 |
4 | // This lets the app load faster on subsequent visits in production, and gives
5 | // it offline capabilities. However, it also means that developers (and users)
6 | // will only see deployed updates on subsequent visits to a page, after all the
7 | // existing tabs open on the page have been closed, since previously cached
8 | // resources are updated in the background.
9 |
10 | // To learn more about the benefits of this model and instructions on how to
11 | // opt-in, read https://bit.ly/CRA-PWA
12 |
13 | const isLocalhost = Boolean(
14 | window.location.hostname === 'localhost' ||
15 | // [::1] is the IPv6 localhost address.
16 | window.location.hostname === '[::1]' ||
17 | // 127.0.0.1/8 is considered localhost for IPv4.
18 | window.location.hostname.match(
19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
20 | )
21 | );
22 |
23 | export function register(config) {
24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
25 | // The URL constructor is available in all browsers that support SW.
26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
27 | if (publicUrl.origin !== window.location.origin) {
28 | // Our service worker won't work if PUBLIC_URL is on a different origin
29 | // from what our page is served on. This might happen if a CDN is used to
30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374
31 | return;
32 | }
33 |
34 | window.addEventListener('load', () => {
35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
36 |
37 | if (isLocalhost) {
38 | // This is running on localhost. Let's check if a service worker still exists or not.
39 | checkValidServiceWorker(swUrl, config);
40 |
41 | // Add some additional logging to localhost, pointing developers to the
42 | // service worker/PWA documentation.
43 | navigator.serviceWorker.ready.then(() => {
44 | console.log(
45 | 'This web app is being served cache-first by a service ' +
46 | 'worker. To learn more, visit https://bit.ly/CRA-PWA'
47 | );
48 | });
49 | } else {
50 | // Is not localhost. Just register service worker
51 | registerValidSW(swUrl, config);
52 | }
53 | });
54 | }
55 | }
56 |
57 | function registerValidSW(swUrl, config) {
58 | navigator.serviceWorker
59 | .register(swUrl)
60 | .then(registration => {
61 | registration.onupdatefound = () => {
62 | const installingWorker = registration.installing;
63 | if (installingWorker == null) {
64 | return;
65 | }
66 | installingWorker.onstatechange = () => {
67 | if (installingWorker.state === 'installed') {
68 | if (navigator.serviceWorker.controller) {
69 | // At this point, the updated precached content has been fetched,
70 | // but the previous service worker will still serve the older
71 | // content until all client tabs are closed.
72 | console.log(
73 | 'New content is available and will be used when all ' +
74 | 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
75 | );
76 |
77 | // Execute callback
78 | if (config && config.onUpdate) {
79 | config.onUpdate(registration);
80 | }
81 | } else {
82 | // At this point, everything has been precached.
83 | // It's the perfect time to display a
84 | // "Content is cached for offline use." message.
85 | console.log('Content is cached for offline use.');
86 |
87 | // Execute callback
88 | if (config && config.onSuccess) {
89 | config.onSuccess(registration);
90 | }
91 | }
92 | }
93 | };
94 | };
95 | })
96 | .catch(error => {
97 | console.error('Error during service worker registration:', error);
98 | });
99 | }
100 |
101 | function checkValidServiceWorker(swUrl, config) {
102 | // Check if the service worker can be found. If it can't reload the page.
103 | fetch(swUrl)
104 | .then(response => {
105 | // Ensure service worker exists, and that we really are getting a JS file.
106 | const contentType = response.headers.get('content-type');
107 | if (
108 | response.status === 404 ||
109 | (contentType != null && contentType.indexOf('javascript') === -1)
110 | ) {
111 | // No service worker found. Probably a different app. Reload the page.
112 | navigator.serviceWorker.ready.then(registration => {
113 | registration.unregister().then(() => {
114 | window.location.reload();
115 | });
116 | });
117 | } else {
118 | // Service worker found. Proceed as normal.
119 | registerValidSW(swUrl, config);
120 | }
121 | })
122 | .catch(() => {
123 | console.log(
124 | 'No internet connection found. App is running in offline mode.'
125 | );
126 | });
127 | }
128 |
129 | export function unregister() {
130 | if ('serviceWorker' in navigator) {
131 | navigator.serviceWorker.ready.then(registration => {
132 | registration.unregister();
133 | });
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/static/JupAsBlogDesk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/JupAsBlogDesk.png
--------------------------------------------------------------------------------
/static/JupDarkMobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/JupDarkMobile.png
--------------------------------------------------------------------------------
/static/LightThemeMobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/LightThemeMobile.png
--------------------------------------------------------------------------------
/static/SupportCoverImages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/SupportCoverImages.png
--------------------------------------------------------------------------------
/static/desktop_notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/desktop_notebook.png
--------------------------------------------------------------------------------
/static/markdown_notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/markdown_notebook.png
--------------------------------------------------------------------------------
/static/notebook_mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shvbsle/React-Jupyter-Viewer/048288c61a6670d6eaebe09d30fb32942a0ee965/static/notebook_mobile.png
--------------------------------------------------------------------------------