Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
f54f6f52
Commit
f54f6f52
authored
Oct 30, 2011
by
Ezio Melotti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a button to the code examples in the doc to show/hide the prompts and output.
parent
f78869e4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
0 deletions
+57
-0
Doc/tools/sphinxext/layout.html
Doc/tools/sphinxext/layout.html
+1
-0
Doc/tools/sphinxext/static/copybutton.js
Doc/tools/sphinxext/static/copybutton.js
+56
-0
No files found.
Doc/tools/sphinxext/layout.html
View file @
f54f6f52
...
...
@@ -6,6 +6,7 @@
{% endblock %}
{% block extrahead %}
<link
rel=
"shortcut icon"
type=
"image/png"
href=
"{{ pathto('_static/py.png', 1) }}"
/>
<script
type=
"text/javascript"
src=
"{{ pathto('_static/copybutton.js', 1) }}"
></script>
{{ super() }}
{% endblock %}
{% block footer %}
...
...
Doc/tools/sphinxext/static/copybutton.js
0 → 100644
View file @
f54f6f52
$
(
document
).
ready
(
function
()
{
/* Add a [>>>] button on the top-right corner of code samples to hide
* the >>> and ... prompts and the output and thus make the code
* copyable. */
var
div
=
$
(
'
.highlight-python .highlight,
'
+
'
.highlight-python3 .highlight
'
)
var
pre
=
div
.
find
(
'
pre
'
);
// get the styles from the current theme
pre
.
parent
().
parent
().
css
(
'
position
'
,
'
relative
'
);
var
hide_text
=
'
Hide the prompts and ouput
'
;
var
show_text
=
'
Show the prompts and ouput
'
;
var
border_width
=
pre
.
css
(
'
border-top-width
'
);
var
border_style
=
pre
.
css
(
'
border-top-style
'
);
var
border_color
=
pre
.
css
(
'
border-top-color
'
);
var
button_styles
=
{
'
cursor
'
:
'
pointer
'
,
'
position
'
:
'
absolute
'
,
'
top
'
:
'
0
'
,
'
right
'
:
'
0
'
,
'
border-color
'
:
border_color
,
'
border-style
'
:
border_style
,
'
border-width
'
:
border_width
,
'
color
'
:
border_color
,
'
text-size
'
:
'
75%
'
,
'
font-family
'
:
'
monospace
'
,
'
padding-left
'
:
'
0.2em
'
,
'
padding-right
'
:
'
0.2em
'
}
// create and add the button to all the code blocks that contain >>>
div
.
each
(
function
(
index
)
{
var
jthis
=
$
(
this
);
if
(
jthis
.
find
(
'
.gp
'
).
length
>
0
)
{
var
button
=
$
(
'
<span class="copybutton">>>></span>
'
);
button
.
css
(
button_styles
)
button
.
attr
(
'
title
'
,
hide_text
);
jthis
.
prepend
(
button
);
}
// tracebacks (.gt) contain bare text elements that need to be
// wrapped in a span to work with .nextUntil() (see later)
jthis
.
find
(
'
pre:has(.gt)
'
).
contents
().
filter
(
function
()
{
return
((
this
.
nodeType
==
3
)
&&
(
this
.
data
.
trim
().
length
>
0
));
}).
wrap
(
'
<span>
'
);
});
// define the behavior of the button when it's clicked
$
(
'
.copybutton
'
).
toggle
(
function
()
{
var
button
=
$
(
this
);
button
.
parent
().
find
(
'
.go, .gp, .gt
'
).
hide
();
button
.
next
(
'
pre
'
).
find
(
'
.gt
'
).
nextUntil
(
'
.gp, .go
'
).
css
(
'
visibility
'
,
'
hidden
'
);
button
.
css
(
'
text-decoration
'
,
'
line-through
'
);
button
.
attr
(
'
title
'
,
show_text
);
},
function
()
{
var
button
=
$
(
this
);
button
.
parent
().
find
(
'
.go, .gp, .gt
'
).
show
();
button
.
next
(
'
pre
'
).
find
(
'
.gt
'
).
nextUntil
(
'
.gp, .go
'
).
css
(
'
visibility
'
,
'
visible
'
);
button
.
css
(
'
text-decoration
'
,
'
none
'
);
button
.
attr
(
'
title
'
,
hide_text
);
});
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment