##// END OF EJS Templates
Merge pull request #1303 from ellisonbg/updatecm...
Merge pull request #1303 from ellisonbg/updatecm This updates CodeMirror and refactors a good bit of the notebook code related to it. * Updated CodeMirror to the latest stable release. * Fix numerous bugs related to the CM update. * Refactored the Cell API and the notebook's cell handling methods. * Generalized split/merge to work with all cell types. * Generalized "Edit in Ace" to work with all cell types. * Loading optimizations: pager starts out hidden, faster loads. * Shading added to Markdown and HTML cells when they are being edited. * This branch will require solid usability testing on Safari, FF and Chrome before merging. * Fixed a number of CM related bugs.

File last commit:

r4872:34c10438
r5960:c5853494 merge
Show More
ipy_render.py
65 lines | 1.5 KiB | text/x-python | PythonLexer
""" IPython extension: Render templates from variables and paste to clipbard """
from IPython.core import ipapi
ip = ipapi.get()
from string import Template
import sys,os
from IPython.external.Itpl import itplns
def toclip_w32(s):
""" Places contents of s to clipboard
Needs pyvin32 to work:
http://sourceforge.net/projects/pywin32/
"""
import win32clipboard as cl
import win32con
cl.OpenClipboard()
cl.EmptyClipboard()
cl.SetClipboardText( s.replace('\n','\r\n' ))
cl.CloseClipboard()
try:
import win32clipboard
toclip = toclip_w32
except ImportError:
def toclip(s): pass
def render(tmpl):
""" Render a template (Itpl format) from ipython variables
Example:
$ import ipy_render
$ my_name = 'Bob' # %store this for convenience
$ t_submission_form = "Submission report, author: $my_name" # %store also
$ render t_submission_form
=> returns "Submission report, author: Bob" and copies to clipboard on win32
# if template exist as a file, read it. Note: ;f hei vaan => f("hei vaan")
$ ;render c:/templates/greeting.txt
Template examples (Ka-Ping Yee's Itpl library):
Here is a $string.
Here is a $module.member.
Here is an $object.member.
Here is a $functioncall(with, arguments).
Here is an ${arbitrary + expression}.
Here is an $array[3] member.
Here is a $dictionary['member'].
"""
if os.path.isfile(tmpl):
tmpl = open(tmpl).read()
res = itplns(tmpl, ip.user_ns)
toclip(res)
return res
ip.push('render')