Skip to content

Instantly share code, notes, and snippets.

@juhasch
Created December 30, 2013 09:51
Show Gist options
  • Save juhasch/8179981 to your computer and use it in GitHub Desktop.
Save juhasch/8179981 to your computer and use it in GitHub Desktop.
Copy/Paste a IPython notebook cell using clipboardData in Chrome.
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example showing how to copy a cell using 'clipboardData' in Chrome"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%javascript\n",
"/* override clipboard 'paste' and insert new cell from json data in clipboard\n",
" * works only with chrome\n",
" */\n",
"window.addEventListener('paste', function(event){\n",
" event.preventDefault();\n",
" var data = event.clipboardData.getData('application/json');\n",
" var new_cell_data = JSON.parse(data);\n",
" var new_cell = IPython.notebook.insert_cell_below(new_cell_data.cell_type);\n",
" new_cell.fromJSON(new_cell_data);\n",
"});\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"javascript": [
"/* override clipboard 'paste' and insert new cell from json data in clipboard\n",
" * works only with chrome\n",
" */\n",
"window.addEventListener('paste', function(event){\n",
" event.preventDefault();\n",
" var data = event.clipboardData.getData('application/json');\n",
" var new_cell_data = JSON.parse(data);\n",
" var new_cell = IPython.notebook.insert_cell_below(new_cell_data.cell_type);\n",
" new_cell.fromJSON(new_cell_data);\n",
"});"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<IPython.core.display.Javascript at 0x4f0ed68>"
]
}
],
"prompt_number": 29
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%javascript\n",
"/* override clipboard 'copy' and copy current cell as json to clipboard\n",
" * works only with chrome\n",
" */\n",
"window.addEventListener('copy', function(event){\n",
" event.preventDefault();\n",
" var cell = IPython.notebook.get_selected_cell(); \n",
" var j = cell.toJSON();\n",
" var json = JSON.stringify(j);\n",
" var data = event.clipboardData.setData('application/json',json);\n",
"});"
],
"language": "python",
"metadata": {},
"outputs": [
{
"javascript": [
"/* override clipboard 'copy' and copy current cell as json to clipboard\n",
" * works only with chrome\n",
" */\n",
"window.addEventListener('copy', function(event){\n",
" event.preventDefault();\n",
" var cell = IPython.notebook.get_selected_cell(); \n",
" var j = cell.toJSON();\n",
" var json = JSON.stringify(j);\n",
" var data = event.clipboardData.setData('application/json',json);\n",
"});"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<IPython.core.display.Javascript at 0x4f174a8>"
]
}
],
"prompt_number": 28
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment