Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Markdown/HTML images not displaying #89

Closed
alexandermichels opened this issue Feb 23, 2022 · 8 comments
Closed

Markdown/HTML images not displaying #89

alexandermichels opened this issue Feb 23, 2022 · 8 comments
Labels
bug Something isn't working

Comments

@alexandermichels
Copy link

Description

When using nbclassic (0.3.5 tested, others may be affected) images in notebooks made with Markdown (![](logo.png)) and HTML (<img src="logo.png">) do not work. Markdown images show a blank cell and HTML images show a broken image icon. Clicking on the image and "Open image in New Tab" directs to "/edit/logo.png". This same bug was reported in the jupyter/notebook repo (jupyter/notebook#6267), but through some debugging I believe it is an nbclassic issue. I have been able to reproduce the issue running the container itself locally and on JupyterHub.

Reproduce

  1. Launch the container. I used the command: docker run -it -p 8888:8888 -p 8889:8889 jupyter/minimal-notebook:2022-01-12. I mapped two ports because I used the terminal in Jupyter to run jupyter nbclassic.
  2. Open the terminal and run jupyter nbclassic.
  3. Create a notebook with the default Python 3 kernel.
  4. Get some image. I used !wget -O logo.png cybergisx.cigi.illinois.edu/hub/logo.
  5. Try to display the image with ![](logo.png) or <img src="logo.png">.

We had this issue when we upgraded our JupyterHub (https://cybergisx.cigi.illinois.edu/) and debugged it through a lot of trial and error.

Expected behavior

I expect the images to display just as they do in jupyter/notebook. The image below shows the result from the reproduce procedure with notebook on the left and nbclassic on the right, both displaying the same notebook:

notebookvsnbclassic

Context

  • Operating System and version: jupyter/minimal-notebook:2022-01-12 run with Docker on top of Linux Mint 20
  • Browser and version: Version 98.0.4758.80 (Official Build) (64-bit)
  • Jupyter version:
> jupyter --version
Selected Jupyter core packages...
IPython          : 7.31.0
ipykernel        : 6.6.1
ipywidgets       : not installed
jupyter_client   : 7.1.0
jupyter_core     : 4.9.1
jupyter_server   : 1.13.1
jupyterlab       : 3.2.6
nbclient         : 0.5.9
nbconvert        : 6.4.0
nbformat         : 5.1.3
notebook         : 6.4.6
qtconsole        : not installed
traitlets        : 5.1.1
> jupyter nbclassic --version
6.4.6
> pip list | grep nbclassic
nbclassic                     0.3.5
Troubleshoot Output
$PATH:
        /opt/conda/bin
        /opt/conda/condabin
        /opt/conda/bin
        /usr/local/sbin
        /usr/local/bin
        /usr/sbin
        /usr/bin
        /sbin
        /bin

sys.path:
/opt/conda/bin
/opt/conda/lib/python39.zip
/opt/conda/lib/python3.9
/opt/conda/lib/python3.9/lib-dynload
/opt/conda/lib/python3.9/site-packages

sys.executable:
/opt/conda/bin/python

sys.version:
3.9.7 | packaged by conda-forge | (default, Sep 29 2021, 19:20:46)
[GCC 9.4.0]

platform.platform():
Linux-5.4.0-99-generic-x86_64-with-glibc2.31

which -a jupyter:
/opt/conda/bin/jupyter
/opt/conda/bin/jupyter

pip list:
Package Version
----------------------------- ---------
alembic 1.7.5
anyio 3.5.0
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
async-generator 1.10
attrs 21.4.0
Babel 2.9.1
backcall 0.2.0
backports.functools-lru-cache 1.6.4
bleach 4.1.0
blinker 1.4
brotlipy 0.7.0
certifi 2021.10.8
certipy 0.1.3
cffi 1.15.0
charset-normalizer 2.0.10
colorama 0.4.4
conda 4.11.0
conda-package-handling 1.7.3
cryptography 36.0.1
debugpy 1.5.1
decorator 5.1.1
defusedxml 0.7.1
entrypoints 0.3
flit_core 3.6.0
greenlet 1.1.2
idna 3.1
importlib-metadata 4.10.0
importlib-resources 5.4.0
ipykernel 6.6.1
ipython 7.31.0
ipython-genutils 0.2.0
jedi 0.18.1
Jinja2 3.0.3
json5 0.9.5
jsonschema 4.3.3
jupyter-client 7.1.0
jupyter-core 4.9.1
jupyter-server 1.13.1
jupyter-telemetry 0.1.0
jupyterhub 2.0.2
jupyterlab 3.2.6
jupyterlab-pygments 0.1.2
jupyterlab-server 2.10.3
libmambapy 0.19.1
Mako 1.1.6
mamba 0.19.1
MarkupSafe 2.0.1
matplotlib-inline 0.1.3
mistune 0.8.4
nbclassic 0.3.5
nbclient 0.5.9
nbconvert 6.4.0
nbformat 5.1.3
nest-asyncio 1.5.4
notebook 6.4.6
oauthlib 3.1.1
packaging 21.3
pamela 1.0.0
pandocfilters 1.5.0
parso 0.8.3
pexpect 4.8.0
pickleshare 0.7.5
pip 21.3.1
prometheus-client 0.12.0
prompt-toolkit 3.0.24
psutil 5.9.0
ptyprocess 0.7.0
pycosat 0.6.3
pycparser 2.21
pycurl 7.44.1
Pygments 2.11.2
PyJWT 2.3.0
pyOpenSSL 21.0.0
pyparsing 3.0.6
pyrsistent 0.18.0
PySocks 1.7.1
python-dateutil 2.8.2
python-json-logger 2.0.1
pytz 2021.3
pyzmq 22.3.0
requests 2.27.1
ruamel.yaml 0.17.19
ruamel.yaml.clib 0.2.6
ruamel-yaml-conda 0.15.80
Send2Trash 1.8.0
setuptools 60.5.0
six 1.16.0
sniffio 1.2.0
SQLAlchemy 1.4.29
terminado 0.12.1
testpath 0.5.0
tornado 6.1
tqdm 4.62.3
traitlets 5.1.1
urllib3 1.26.8
wcwidth 0.2.5
webencodings 0.5.1
websocket-client 1.2.3
wheel 0.37.1
zipp 3.7.0

conda list:
# packages in environment at /opt/conda:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 1_gnu conda-forge
alembic 1.7.5 pyhd8ed1ab_0 conda-forge
anyio 3.5.0 py39hf3d152e_0 conda-forge
argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py39h3811e60_1 conda-forge
async_generator 1.10 py_0 conda-forge
attrs 21.4.0 pyhd8ed1ab_0 conda-forge
babel 2.9.1 pyh44b312d_0 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 py_2 conda-forge
backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
bleach 4.1.0 pyhd8ed1ab_0 conda-forge
blinker 1.4 py_1 conda-forge
brotlipy 0.7.0 py39h3811e60_1003 conda-forge
bzip2 1.0.8 h7f98852_4 conda-forge
c-ares 1.18.1 h7f98852_0 conda-forge
ca-certificates 2021.10.8 ha878542_0 conda-forge
certifi 2021.10.8 py39hf3d152e_1 conda-forge
certipy 0.1.3 py_0 conda-forge
cffi 1.15.0 py39h4bc2ebd_0 conda-forge
charset-normalizer 2.0.10 pyhd8ed1ab_0 conda-forge
colorama 0.4.4 pyh9f0ad1d_0 conda-forge
conda 4.11.0 py39hf3d152e_0 conda-forge
conda-package-handling 1.7.3 py39h3811e60_1 conda-forge
configurable-http-proxy 4.5.0 node17_h7e777a6_2 conda-forge
cryptography 36.0.1 py39h95dcef6_0 conda-forge
debugpy 1.5.1 py39he80948d_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
entrypoints 0.3 pyhd8ed1ab_1003 conda-forge
flit-core 3.6.0 pyhd8ed1ab_0 conda-forge
greenlet 1.1.2 py39he80948d_1 conda-forge
icu 69.1 h9c3ff4c_0 conda-forge
idna 3.1 pyhd3deb0d_0 conda-forge
importlib-metadata 4.10.0 py39hf3d152e_0 conda-forge
importlib_resources 5.4.0 pyhd8ed1ab_0 conda-forge
ipykernel 6.6.1 py39hef51801_0 conda-forge
ipython 7.31.0 py39hf3d152e_0 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
jedi 0.18.1 py39hf3d152e_0 conda-forge
jinja2 3.0.3 pyhd8ed1ab_0 conda-forge
json5 0.9.5 pyh9f0ad1d_0 conda-forge
jsonschema 4.3.3 pyhd8ed1ab_0 conda-forge
jupyter_client 7.1.0 pyhd8ed1ab_0 conda-forge
jupyter_core 4.9.1 py39hf3d152e_1 conda-forge
jupyter_server 1.13.1 pyhd8ed1ab_0 conda-forge
jupyter_telemetry 0.1.0 pyhd8ed1ab_1 conda-forge
jupyterhub 2.0.2 hd8ed1ab_0 conda-forge
jupyterhub-base 2.0.2 pyhd8ed1ab_0 conda-forge
jupyterlab 3.2.6 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.1.2 pyh9f0ad1d_0 conda-forge
jupyterlab_server 2.10.3 pyhd8ed1ab_0 conda-forge
krb5 1.19.2 hcc1bbae_3 conda-forge
ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge
libarchive 3.5.2 hccf745f_1 conda-forge
libcurl 7.81.0 h2574ce0_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 h516909a_1 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 11.2.0 h1d223b6_11 conda-forge
libgomp 11.2.0 h1d223b6_11 conda-forge
libiconv 1.16 h516909a_0 conda-forge
libmamba 0.19.1 h3985d26_0 conda-forge
libmambapy 0.19.1 py39h8bfa403_0 conda-forge
libnghttp2 1.43.0 h812cca2_1 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libsolv 0.7.19 h780b84a_5 conda-forge
libssh2 1.10.0 ha56f1ee_2 conda-forge
libstdcxx-ng 11.2.0 he4da1e4_11 conda-forge
libuv 1.42.0 h7f98852_0 conda-forge
libxml2 2.9.12 h885dcf4_1 conda-forge
libzlib 1.2.11 h36c2ea0_1013 conda-forge
lz4-c 1.9.3 h9c3ff4c_1 conda-forge
lzo 2.10 h516909a_1000 conda-forge
mako 1.1.6 pyhd8ed1ab_0 conda-forge
mamba 0.19.1 py39hfa8f2c8_0 conda-forge
markupsafe 2.0.1 py39h3811e60_1 conda-forge
matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge
mistune 0.8.4 py39h3811e60_1005 conda-forge
nbclassic 0.3.5 pyhd8ed1ab_0 conda-forge
nbclient 0.5.9 pyhd8ed1ab_0 conda-forge
nbconvert 6.4.0 py39hf3d152e_0 conda-forge
nbformat 5.1.3 pyhd8ed1ab_0 conda-forge
ncurses 6.2 h58526e2_4 conda-forge
nest-asyncio 1.5.4 pyhd8ed1ab_0 conda-forge
nodejs 17.1.0 h8ca31f7_2 conda-forge
notebook 6.4.6 pyha770c72_0 conda-forge
oauthlib 3.1.1 pyhd8ed1ab_0 conda-forge
openssl 1.1.1l h7f98852_0 conda-forge
packaging 21.3 pyhd8ed1ab_0 conda-forge
pamela 1.0.0 py_0 conda-forge
pandoc 2.16.2 h7f98852_0 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
pexpect 4.8.0 pyh9f0ad1d_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pip 21.3.1 pyhd8ed1ab_0 conda-forge
prometheus_client 0.12.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.24 pyha770c72_0 conda-forge
psutil 5.9.0 py39h3811e60_0 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pybind11-abi 4 hd8ed1ab_3 conda-forge
pycosat 0.6.3 py39h3811e60_1009 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pycurl 7.44.1 py39h72e3413_1 conda-forge
pygments 2.11.2 pyhd8ed1ab_0 conda-forge
pyjwt 2.3.0 pyhd8ed1ab_1 conda-forge
pyopenssl 21.0.0 pyhd8ed1ab_0 conda-forge
pyparsing 3.0.6 pyhd8ed1ab_0 conda-forge
pyrsistent 0.18.0 py39h3811e60_0 conda-forge
pysocks 1.7.1 py39hf3d152e_4 conda-forge
python 3.9.7 hb7a2778_3_cpython conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.1 pyh9f0ad1d_0 conda-forge
python_abi 3.9 2_cp39 conda-forge
pytz 2021.3 pyhd8ed1ab_0 conda-forge
pyzmq 22.3.0 py39h37b5a0c_1 conda-forge
readline 8.1 h46c0cb4_0 conda-forge
reproc 14.2.3 h7f98852_0 conda-forge
reproc-cpp 14.2.3 h9c3ff4c_0 conda-forge
requests 2.27.1 pyhd8ed1ab_0 conda-forge
ruamel.yaml 0.17.19 py39h3811e60_0 conda-forge
ruamel.yaml.clib 0.2.6 py39h3811e60_0 conda-forge
ruamel_yaml 0.15.80 py39h3811e60_1006 conda-forge
send2trash 1.8.0 pyhd8ed1ab_0 conda-forge
setuptools 60.5.0 py39hf3d152e_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
sniffio 1.2.0 py39hf3d152e_2 conda-forge
sqlalchemy 1.4.29 py39h3811e60_0 conda-forge
sqlite 3.37.0 h9cd32fc_0 conda-forge
terminado 0.12.1 py39hf3d152e_1 conda-forge
testpath 0.5.0 pyhd8ed1ab_0 conda-forge
tk 8.6.11 h27826a3_1 conda-forge
tornado 6.1 py39h3811e60_2 conda-forge
tqdm 4.62.3 pyhd8ed1ab_0 conda-forge
traitlets 5.1.1 pyhd8ed1ab_0 conda-forge
tzdata 2021e he74cb21_0 conda-forge
urllib3 1.26.8 pyhd8ed1ab_1 conda-forge
wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge
webencodings 0.5.1 py_1 conda-forge
websocket-client 1.2.3 pyhd8ed1ab_0 conda-forge
wheel 0.37.1 pyhd8ed1ab_0 conda-forge
xz 5.2.5 h516909a_1 conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
yaml-cpp 0.6.3 he1b5a44_4 conda-forge
zeromq 4.3.4 h9c3ff4c_1 conda-forge
zipp 3.7.0 pyhd8ed1ab_0 conda-forge
zlib 1.2.11 h36c2ea0_1013 conda-forge
zstd 1.5.1 ha95c52a_0 conda-forge

conda env:
name: base
channels:
- conda-forge
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=1_gnu
- alembic=1.7.5=pyhd8ed1ab_0
- anyio=3.5.0=py39hf3d152e_0
- argon2-cffi=21.3.0=pyhd8ed1ab_0
- argon2-cffi-bindings=21.2.0=py39h3811e60_1
- async_generator=1.10=py_0
- attrs=21.4.0=pyhd8ed1ab_0
- babel=2.9.1=pyh44b312d_0
- backcall=0.2.0=pyh9f0ad1d_0
- backports=1.0=py_2
- backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
- bleach=4.1.0=pyhd8ed1ab_0
- blinker=1.4=py_1
- brotlipy=0.7.0=py39h3811e60_1003
- bzip2=1.0.8=h7f98852_4
- c-ares=1.18.1=h7f98852_0
- ca-certificates=2021.10.8=ha878542_0
- certifi=2021.10.8=py39hf3d152e_1
- certipy=0.1.3=py_0
- cffi=1.15.0=py39h4bc2ebd_0
- charset-normalizer=2.0.10=pyhd8ed1ab_0
- colorama=0.4.4=pyh9f0ad1d_0
- conda=4.11.0=py39hf3d152e_0
- conda-package-handling=1.7.3=py39h3811e60_1
- configurable-http-proxy=4.5.0=node17_h7e777a6_2
- cryptography=36.0.1=py39h95dcef6_0
- debugpy=1.5.1=py39he80948d_0
- decorator=5.1.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- entrypoints=0.3=pyhd8ed1ab_1003
- flit-core=3.6.0=pyhd8ed1ab_0
- greenlet=1.1.2=py39he80948d_1
- icu=69.1=h9c3ff4c_0
- idna=3.1=pyhd3deb0d_0
- importlib-metadata=4.10.0=py39hf3d152e_0
- importlib_resources=5.4.0=pyhd8ed1ab_0
- ipykernel=6.6.1=py39hef51801_0
- ipython=7.31.0=py39hf3d152e_0
- ipython_genutils=0.2.0=py_1
- jedi=0.18.1=py39hf3d152e_0
- jinja2=3.0.3=pyhd8ed1ab_0
- json5=0.9.5=pyh9f0ad1d_0
- jsonschema=4.3.3=pyhd8ed1ab_0
- jupyter_client=7.1.0=pyhd8ed1ab_0
- jupyter_core=4.9.1=py39hf3d152e_1
- jupyter_server=1.13.1=pyhd8ed1ab_0
- jupyter_telemetry=0.1.0=pyhd8ed1ab_1
- jupyterhub=2.0.2=hd8ed1ab_0
- jupyterhub-base=2.0.2=pyhd8ed1ab_0
- jupyterlab=3.2.6=pyhd8ed1ab_0
- jupyterlab_pygments=0.1.2=pyh9f0ad1d_0
- jupyterlab_server=2.10.3=pyhd8ed1ab_0
- krb5=1.19.2=hcc1bbae_3
- ld_impl_linux-64=2.36.1=hea4e1c9_2
- libarchive=3.5.2=hccf745f_1
- libcurl=7.81.0=h2574ce0_0
- libedit=3.1.20191231=he28a2e2_2
- libev=4.33=h516909a_1
- libffi=3.4.2=h7f98852_5
- libgcc-ng=11.2.0=h1d223b6_11
- libgomp=11.2.0=h1d223b6_11
- libiconv=1.16=h516909a_0
- libmamba=0.19.1=h3985d26_0
- libmambapy=0.19.1=py39h8bfa403_0
- libnghttp2=1.43.0=h812cca2_1
- libsodium=1.0.18=h36c2ea0_1
- libsolv=0.7.19=h780b84a_5
- libssh2=1.10.0=ha56f1ee_2
- libstdcxx-ng=11.2.0=he4da1e4_11
- libuv=1.42.0=h7f98852_0
- libxml2=2.9.12=h885dcf4_1
- libzlib=1.2.11=h36c2ea0_1013
- lz4-c=1.9.3=h9c3ff4c_1
- lzo=2.10=h516909a_1000
- mako=1.1.6=pyhd8ed1ab_0
- mamba=0.19.1=py39hfa8f2c8_0
- markupsafe=2.0.1=py39h3811e60_1
- matplotlib-inline=0.1.3=pyhd8ed1ab_0
- mistune=0.8.4=py39h3811e60_1005
- nbclassic=0.3.5=pyhd8ed1ab_0
- nbclient=0.5.9=pyhd8ed1ab_0
- nbconvert=6.4.0=py39hf3d152e_0
- nbformat=5.1.3=pyhd8ed1ab_0
- ncurses=6.2=h58526e2_4
- nest-asyncio=1.5.4=pyhd8ed1ab_0
- nodejs=17.1.0=h8ca31f7_2
- notebook=6.4.6=pyha770c72_0
- oauthlib=3.1.1=pyhd8ed1ab_0
- openssl=1.1.1l=h7f98852_0
- packaging=21.3=pyhd8ed1ab_0
- pamela=1.0.0=py_0
- pandoc=2.16.2=h7f98852_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.3=pyhd8ed1ab_0
- pexpect=4.8.0=pyh9f0ad1d_2
- pickleshare=0.7.5=py_1003
- pip=21.3.1=pyhd8ed1ab_0
- prometheus_client=0.12.0=pyhd8ed1ab_0
- prompt-toolkit=3.0.24=pyha770c72_0
- psutil=5.9.0=py39h3811e60_0
- ptyprocess=0.7.0=pyhd3deb0d_0
- pybind11-abi=4=hd8ed1ab_3
- pycosat=0.6.3=py39h3811e60_1009
- pycparser=2.21=pyhd8ed1ab_0
- pycurl=7.44.1=py39h72e3413_1
- pygments=2.11.2=pyhd8ed1ab_0
- pyjwt=2.3.0=pyhd8ed1ab_1
- pyopenssl=21.0.0=pyhd8ed1ab_0
- pyparsing=3.0.6=pyhd8ed1ab_0
- pyrsistent=0.18.0=py39h3811e60_0
- pysocks=1.7.1=py39hf3d152e_4
- python=3.9.7=hb7a2778_3_cpython
- python-dateutil=2.8.2=pyhd8ed1ab_0
- python-json-logger=2.0.1=pyh9f0ad1d_0
- python_abi=3.9=2_cp39
- pytz=2021.3=pyhd8ed1ab_0
- pyzmq=22.3.0=py39h37b5a0c_1
- readline=8.1=h46c0cb4_0
- reproc=14.2.3=h7f98852_0
- reproc-cpp=14.2.3=h9c3ff4c_0
- requests=2.27.1=pyhd8ed1ab_0
- ruamel.yaml=0.17.19=py39h3811e60_0
- ruamel.yaml.clib=0.2.6=py39h3811e60_0
- ruamel_yaml=0.15.80=py39h3811e60_1006
- send2trash=1.8.0=pyhd8ed1ab_0
- setuptools=60.5.0=py39hf3d152e_0
- six=1.16.0=pyh6c4a22f_0
- sniffio=1.2.0=py39hf3d152e_2
- sqlalchemy=1.4.29=py39h3811e60_0
- sqlite=3.37.0=h9cd32fc_0
- terminado=0.12.1=py39hf3d152e_1
- testpath=0.5.0=pyhd8ed1ab_0
- tk=8.6.11=h27826a3_1
- tornado=6.1=py39h3811e60_2
- tqdm=4.62.3=pyhd8ed1ab_0
- traitlets=5.1.1=pyhd8ed1ab_0
- tzdata=2021e=he74cb21_0
- urllib3=1.26.8=pyhd8ed1ab_1
- wcwidth=0.2.5=pyh9f0ad1d_2
- webencodings=0.5.1=py_1
- websocket-client=1.2.3=pyhd8ed1ab_0
- wheel=0.37.1=pyhd8ed1ab_0
- xz=5.2.5=h516909a_1
- yaml=0.2.5=h7f98852_2
- yaml-cpp=0.6.3=he1b5a44_4
- zeromq=4.3.4=h9c3ff4c_1
- zipp=3.7.0=pyhd8ed1ab_0
- zlib=1.2.11=h36c2ea0_1013
- zstd=1.5.1=ha95c52a_0
prefix: /opt/conda

Command Line Output
[I 2022-02-23 21:33:00.296 ServerApp] jupyterlab | extension was successfully linked.
[W 2022-02-23 21:33:00.303 NotebookApp] 'ip' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config beforeour next release.
[W 2022-02-23 21:33:00.303 NotebookApp] 'port' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2022-02-23 21:33:00.303 NotebookApp] 'port' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[I 2022-02-23 21:33:00.547 ServerApp] nbclassic | extension was successfully linked.
[I 2022-02-23 21:33:00.585 ServerApp] nbclassic | extension was successfully loaded.
[I 2022-02-23 21:33:00.587 LabApp] JupyterLab extension loaded from /opt/conda/lib/python3.9/site-packages/jupyterlab
[I 2022-02-23 21:33:00.587 LabApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 2022-02-23 21:33:00.593 ServerApp] jupyterlab | extension was successfully loaded.
[I 2022-02-23 21:33:00.594 ServerApp] The port 8888 is already in use, trying another port.
[I 2022-02-23 21:33:00.594 ServerApp] The port 8889 is already in use, trying another port.
[I 2022-02-23 21:33:00.595 ServerApp] Serving notebooks from local directory: /home/jovyan
[I 2022-02-23 21:33:00.595 ServerApp] Jupyter Server 1.13.1 is running at:
[I 2022-02-23 21:33:00.595 ServerApp] http://e3a803f59c56:8890/lab?token=c8554df40c6ffdd409fcdd2c124d9c1eb9268c95cc40d039
[I 2022-02-23 21:33:00.595 ServerApp]  or http://127.0.0.1:8890/lab?token=c8554df40c6ffdd409fcdd2c124d9c1eb9268c95cc40d039
[I 2022-02-23 21:33:00.595 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2022-02-23 21:33:00.600 ServerApp]
To access the server, open this file in a browser:
    file:///home/jovyan/.local/share/jupyter/runtime/jpserver-159-open.html
Or copy and paste one of these URLs:
    http://e3a803f59c56:8890/lab?token=c8554df40c6ffdd409fcdd2c124d9c1eb9268c95cc40d039
 or http://127.0.0.1:8890/lab?token=c8554df40c6ffdd409fcdd2c124d9c1eb9268c95cc40d039
@alexandermichels alexandermichels added the bug Something isn't working label Feb 23, 2022
@welcome
Copy link

welcome bot commented Feb 23, 2022

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! 🤗

If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
welcome
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! 👋

Welcome to the Jupyter community! 🎉

@jedbrown
Copy link

jedbrown commented Aug 9, 2022

I'm having the same issue with nbclassic-0.4.3 for local images. It works for remote images (<img src="https://...png" />) but not for local images (<img src="local.png" />). The local images work if I open the same notebook in Lab.

@jedbrown
Copy link

jedbrown commented Aug 9, 2022

Hmm, I can work around this by prepending /files/ to relative paths, as in <img src="/files/local.png" /> or ![](/files/local.png).

$ jupyter --version
Selected Jupyter core packages...
IPython          : 7.31.1
ipykernel        : 6.4.2
ipywidgets       : 7.7.1
jupyter_client   : 7.3.4
jupyter_core     : 4.11.1
jupyter_server   : 1.18.1
jupyterlab       : 3.4.4
nbclient         : 0.5.13
nbconvert        : 6.5.0
nbformat         : 5.4.0
notebook         : 6.4.12
qtconsole        : 5.2.2
traitlets        : 5.1.1

@jedbrown
Copy link

This is quite disruptive when publishing notebooks via jupyter-book because the extra /files/ that I have to manually add to my notebooks to appease nbclassic aren't rewritten by jupyter-book. Does anyone know a workaround?

I'm tied to nbclassic when presenting in class because I use the RISE extension, but I also publish as a website using jupyter-book. Or maybe @choldgraf has a tip to get jupyter-book to do this path substitution as a work-around until this nbclassic issue is resolved?

@scmmmh
Copy link

scmmmh commented Sep 12, 2022

This is likely to be fixed in #148.

@jedbrown
Copy link

Thanks! I can confirm local images work as expected after pip install git+https://github.com/jupyter/nbclassic@main.

@alexandermichels
Copy link
Author

Working for me as well! Thanks!

@echarles
Copy link
Member

Closing based on previous positive reports. Thx all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants