Codefolding in Jupiter notebook text editor - jupyter-notebook

Is there a way to get code folding in Jupiter notebook text editor (not the ipynb editor)
e.g., you can use the text editor to edit raw python files:
and I'd like to be able to collapse functions and such (just like in the ipynb editor with the code folding extension)

Related

How to insert an image in markdown in jupyter and export as PDF

I'm trying to export a notebook to pdf via latex, but doesn't work.
If I upload an image in markdown cell,
![image.png](attachment:image.png)
I can see the image in notebook, but when I export to pdf
the final file doesn't open, it says that the file can be danified and can't be open.
But if I put the image via cell code
PATH = "C:/Users/my_folder/"
Image(filename = PATH + "image.png", width=800)
the pdf works well, but I don't like the style, with the grey box on the cell code...
Could someone help me? How to export notebooks with markdown images or how to change the style of exported files in jupyter notebook to something more similar to an article.

How to view a markdown file in jupyter lab properly?

How to view a markdown file in Jupyter lab properly?
The readme file of a git project is written in markdown, as usual. How can one properly view it in Jupyter lab (rendered)? Currently I see the text version only.
A good solution is shown here in the
youtube video
Open the file, right click on the content, "Show markdown preview"
Right click on the open markdown text editor area and you should get a menu option "Show markdown preview". Select that and it will render the text into markdown in another window (side by side by default)

How to paste text in google colaboratory

I am using jupyter notebook on google colaboratory, but when I try to paste text content copied from docx or ppt, it is pasted as an image (it starts as ![image.pdata:image/png;base64,...])
There is no "paste as text" option... For now, I need to type directly on google colaboratory. As I need a complementary ppt file, I copy the text content from the google colaboratory's jupyter notebook to the ppt file... But the problem is there are some contents I have already typed on ppt and Docx...
There is a way to paste text as text in the text cell in jupyter notebook from the google colaboratory?
I know this isn't an elegant answer, but in my case performing the following sequence worked.
Copy from ppt or docx, paste into notepad
Copy from notepad, paste into text cell of google colab
Copy from text cell, paste into code cell of google colab
Use Ctrl + V after locating the cell you want to paste the information in.
Google Collab only allows pasting of plain text.
Paste it into your browser url box to convert to plain text.
Copy from the url box.
Paste into Google collab.

embedding image into jupyter notebook and exporting to HTML

I am running Python 3.7 on Windows using pycharm. I have a jupyter notebook and I would like to embed an image into the notebook. I know all the ways of doing standard embedding with markdown language, BUT ideally what I want is:
a. Embed the image via markdown language, i.e. the notebook cell is in 'markdown' state, not 'Code' state, AND ALSO
b. Have it able to export to HTML and retain that image in the HTML file. i.e. on the notebook. I want to click File -> Download as -> HTML (.html), save the notebook file in .html format, and then when I send it to my buddy, the image that I attached is in the notebook, and he sees it.
I know i could do this in a cell ('code'):
from IPython.display import Image
Image(filename="myfile.jpg")
but I do not want to use 'Code', since when I send to my buddy, he will see the In [] code statement and the Out [] of the image in the notebook html file.
Note: This would be an image that was on my laptop that I would want in the html formatted exported notebook. It is NOT on the web where he could refer to it with a www type statement. Unless I'm crazy, there is no way to do this with markdown command in a cell, the only way to do it (with the image embedded 'permanently' into the .html format of the notebook), would be via a cell that was in 'Code' celltype.
When you use a code cell to show an image and then export the notebook to an HTML file, the image is converted to Base64 and the code directly used in the src attribute of the <img> tag. You can apply the same procedure with images included in markdown cells.
First, encode your image as Base64, e.g. by using one of the online enocders.
Create a markdown cell and include an <img> tag which uses your Base64 code, e.g.:
<img src="data:image/png;base64,CODE_FOLLOWS_HERE" />
Evaluate the cell and you should already see your image.
If you now export your notebook to HTML, the image should be included in the file the same way as images from code cells.
The only disadvantage with this approach is that your markdown cell gets cluttered with the (probably long) Base64 code. However, this is manageable by e.g. using a markdown cell dedicated solely to the image without other content.
You can install the Unofficial Jupyter Notebook Extensions.
It has some interesting extensions (e.g. spell checker, collapsible headings, ...). One of the extensions is Export HTML With Embedded Images which exactly does what you want.
To install Nbextensions using pip do the following:
$ pip install jupyter_contrib_nbextensions
$ pip install jupyter_nbextensions_configurator
$ jupyter contrib nbextension install --user
$ jupyter nbextensions_configurator enable --user
Then you will see in your Jupyter homepage a new tab (Nbextensions), where you can enable and configure different extension.
After enabling the "Export HTML With Embedded Images", you will see the corresponding option in the "File-Download as" menu.
My complete solution is based on Milania and
encoding-an-image-file-with-base64
how-to-base64-encode-an-image-using-python
BytesIO.getvalue
the code
import base64, io, IPython
from PIL import Image as PILImage
image = PILImage.open(image_path)
output = io.BytesIO()
image.save(output, format='PNG')
encoded_string = base64.b64encode(output.getvalue()).decode()
html = '<img src="data:image/png;base64,{}"/>'.format(encoded_string)
IPython.display.HTML(html)
For me, on Visual Studio Code, something like this did the trick (in a markdown cell, as you requested, and a image that you want to embed in your notebook and further be exported to the html output):
<figure>
<img src="./notebook_img/diptera_taxat_yes_no.jpg" width="200"/>
<figcaption>Limit the search on Diptera</figcaption>
</figure>
Where the image is located in "./notebook_img" relative to the location of the notebook (in this sense, the notebook is located in .)
Your buddy will not see the code from above when reading the HTML exported file, so that should satisfy the requested need as far as I understand. He will also not need the folder "notebook_img".

Hyperlink that can lead to a pdf in Jupyter notebook

I'm working with Jupyter notebook and have a question in mind:
If I want to markdown an HTML file or any website, I can just simply do
[name-of-the-website](address-here)
and it will create a link to the page that I want to reference
My question is
Are there any markdown code for PDF reference
IS the code the same with HTML reference (whenver I click into the markdown link, It will create a new tab which can download the file to the computer)
P/s: I'm not talking about coverting the notebook into PDF file
I have found out an answer:
Go to the file PDF that you want to download, for example I want to download this PDF file
Ideas:
Because there should be a HTML link to download the document, if one can find this link, then can proceed to normal markdown HTML file in Jupyter Notebook
Steps:
On the browser, right-click that PDF download link, and then choose Inspect Element (Q) (on Firefox or any browser in use)
It is then open the console that will shown the download HTML file like shown:
href="http://www.montefiore.ulg.ac.be/services/stochastic/pubs/2009/DMWG09/dumont-visapp09-shortpaper.pdf"
One can proceed with normal markdown in Jupyter Notebook
This works for me:
ref.
This is a relative path to the file.

Resources