jgm / pandoc

Universal markup converter
https://pandoc.org
Other
33.89k stars 3.34k forks source link

extract-media doesn't correctly modify ipynb to reference extracted medias (keeps using base64) #7780

Open pbacellar opened 2 years ago

pbacellar commented 2 years ago

Explain the problem.

When running: pandoc test.ipynb --extract-media=images -o output_test.ipynb

I would expect pandoc to extract the images from the ipynb into a folder and to modify the ipynb json to use the images in the folder. Instead, pandoc extracts the images but doesn't seem to correctly modify the json.

Original notebook:

  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "72a30dad",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },

Output notebook

  {
   "attachments": {
    "images/image.png": {
     "image/png": "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\nb4EnI/yEwJMR+hZ4MkLfAk9G6FvgyQh9CzwZoW+BJyP0LfBkhL4FnozQt8CTkS9dulTfNggEtQWz\n2+31bYNAUFuI+ETgyQh9CzwZoW+BJyP0LfBkGsT9l3a7PTc3t76tuG5CQkK8vLyuXU9QfzQIfefm\n5rZu3bq+rbhuMjIyIiIi6tsKQVWI+ETgyQh9ewLjxo2rbxMaKELfAk9G6FvgyTSI/mWFrF69+tix\nY78v9/f3nzZt2g3vtqCgQJZli8VS/SZvvvlmXFxct27dbvigglqFuO3Y/j3fHj5+OSdHkbybNm3e\nOS6+5203GVkD1ndCQkKPHj0AWK3W1NTUgQMHRkVFATAYDNdqWhWffvppZGRkQkJCzVjZsDm8cHTi\n6vTSVUkyhYS3GnLvQ3PG95OrfORbzuF//2Bv2f/OcAAj4uOLxq/8anx0LRnJ1StvLVywelvahUJH\ncETb4SMmzBp9V/WbF57as/iN1PSCslfTn00/cWj/3o+bdkj6++SGq+/Q0FB9obi4WF9t2bLlVXWc\nTqfJdCOvRfzjwCQ5ZZ7rnb9Kcd7+nf9cueSF4zz8swntq2j1c8r8yZfHH984vA4sXDslacEB9sTk\np2+P9Dr63RfzFk4567N+5bCo6rQtPPXV1JfX2jSytIhJuLtP+5bNzWS7eProzu07Tuf8kjJresPV\ndxXMmjUrKSnp22+/LSgomDhx4qxZsx577LHIyEgAnPOZM2fqqydPnty+fXt2dra3t3eXLl0SEhJS\nUlIuXLiQnp5+8uTJ5ORkp9O5Y8eOY8eOWa3WiIiIIUOG6P9UeXl5mzZtOnv2rJ+fX8+ePev7dP9H\nDPcOKLtYjRg+nCckfLbqDUxIqZvDc5VLcqXdPNV+Ztq/Lvec/8n0AeEA+vXsY9vbb/myDRj25LX3\nrOQuXLDeplFkz9H/N6G/2f189LYxnXr0T/z8rdkb0rIba/9y69at7dq1GzVqVGUVioqKUlNTIyMj\nk5KS+vTps3fv3iNHjkycOLFNmza9evWaOHEigHXr1p09e3bo0KFJSUmhoaHvvfdeXl6eoigrVqwo\nKSkZNWpU//799+zZ0xjHViuFycM7BDiLfyTgh8Wjo+4co5Q9v4xG9orv/vzBlwb0e+BQTn7mguZd\nun1X5NS3bVs+O65Pv6geAwY8/vKBPHcwwB1rUl7qNXBAVNf42HsfmbN2X+m+RsTHj9p3dMbjY6Pi\n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\n"
    }
   },
   "cell_type": "markdown",
   "id": "c8a133ea",
   "metadata": {},
   "source": [
    "![image.png](attachment:images/image.png)"
   ]
  },

Expected output json

  {
   "cell_type": "markdown",
   "id": "c8a133ea",
   "metadata": {},
   "source": [
    "![image.png](images/image.png)"
   ]
  },

This extraction process and redirection works fine with htmls:

Running pandoc test.ipynb --self-contained --metadata title="test" -o test.html produces a self contained html with base64 images.

<div class="cell markdown">
<p><img src="data:image/png;base64,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" alt="image.png" /></p>
</div>

Then pandoc test.html --extract-media=images -o output_test.html produces the expected output

<div class="cell markdown">
<p><img src="images/a64e5ef009d0a68c566f86a4d0f05df7a3f94536.png" alt="image.png" /></p>
</div>

You can find this simple test ipynb notebook attached Thanks in advance,

Pandoc version?

OS: Manjaro

pandoc 2.14.1
Compiled with pandoc-types 1.22, texmath 0.12.3.1, skylighting 0.11,
citeproc 0.4.1, ipynb 0.1.0.1
jgm commented 2 years ago

I'm really not sure what the best behavior is. Isn't it considered good practice for ipynbs to embed the necessary images? Mightn't someone want to extract the contained images without destroying this feature of the ipynb?

pbacellar commented 2 years ago

I didn't know that was good practice, but I don't see how the behavior I expected should cause harm in that regard.

Someone interested in extracting the images while keeping the ipynb unchanged could simply discard the output file or pipe it to /dev/null and keep using the original. This way, both use cases would be covered.

Do you think this could be unwanted behavior?

jgm commented 2 years ago

I don't know, I'd like to hear from more ipynb users. @ickc any comments on this?

ickc commented 2 years ago

Isn't it considered good practice for ipynbs to embed the necessary images?

I'm not sure if this is a "good practice", or just that being self-contained by default is better for adoption. ipynb comes from the desire to replicate Mathematica notebook experience for data science using Python (and later on generalize to other languages.)

And it is more practical for generated assets (say a function plotting an image in png) within the same notebook as well. Then within the jupyter process, it is referencing something inside the data structure it is holding, rather than a reference to an external path that requires separate IOs.

Also, I've seen some people, just like how we would normally author in markdown, write markdown in Jupyter cell that references external image links. In this case it is no different than the "Expected output json" above.

Mightn't someone want to extract the contained images without destroying this feature of the ipynb?

Perhaps in this case they could just extract the media without outputting the file (and discard the stdout)?

Practically speaking, I don't think the proposed change would impact current users negatively for the above reasons. A few observations: