08-27-周三_17-09-29
This commit is contained in:
37
node_modules/gitbook-plugin-code/assets/plugin.css
generated
vendored
Normal file
37
node_modules/gitbook-plugin-code/assets/plugin.css
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
#code-textarea {
|
||||
height: 0;
|
||||
position: fixed;
|
||||
top: -1000px;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.code-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.code-wrapper i {
|
||||
color: #c1c7cd;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
top: 1em;
|
||||
}
|
||||
|
||||
.code-wrapper pre {
|
||||
background: #f7f8f9;
|
||||
border-radius: 3px;
|
||||
counter-reset: line;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.code-wrapper pre > code > span.code-line:before {
|
||||
counter-increment: line;
|
||||
color: #c1c7cd;
|
||||
content: counter(line);
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-right: 1.5em;
|
||||
width: 1em;
|
||||
}
|
91
node_modules/gitbook-plugin-code/assets/plugin.js
generated
vendored
Normal file
91
node_modules/gitbook-plugin-code/assets/plugin.js
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
require(['gitbook', 'jQuery'], function(gitbook, $) {
|
||||
|
||||
const TERMINAL_HOOK = '**[terminal]'
|
||||
|
||||
var pluginConfig = {};
|
||||
var timeouts = {};
|
||||
|
||||
function addCopyButton(wrapper) {
|
||||
wrapper.append(
|
||||
$('<i class="fa fa-clone t-copy"></i>')
|
||||
.click(function() {
|
||||
copyCommand($(this));
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function addCopyTextarea() {
|
||||
|
||||
/* Add also the text area that will allow to copy */
|
||||
$('body').append('<textarea id="code-textarea" />');
|
||||
}
|
||||
|
||||
function copyCommand(button) {
|
||||
pre = button.parent();
|
||||
textarea = $('#code-textarea');
|
||||
textarea.val(pre.text());
|
||||
textarea.focus();
|
||||
textarea.select();
|
||||
document.execCommand('copy');
|
||||
pre.focus();
|
||||
updateCopyButton(button);
|
||||
}
|
||||
|
||||
function initializePlugin(config) {
|
||||
pluginConfig = config.code;
|
||||
}
|
||||
|
||||
function format_code_block(block) {
|
||||
/*
|
||||
* Add line numbers for multiline blocks.
|
||||
*/
|
||||
code = block.children('code');
|
||||
lines = code.html().split('\n');
|
||||
|
||||
if (lines[lines.length - 1] == '') {
|
||||
lines.splice(-1, 1);
|
||||
}
|
||||
|
||||
if (lines.length > 1) {
|
||||
console.log(lines);
|
||||
lines = lines.map(line => '<span class="code-line">' + line + '</span>');
|
||||
console.log(lines);
|
||||
code.html(lines.join('\n'));
|
||||
}
|
||||
|
||||
// Add wrapper to pre element
|
||||
wrapper = block.wrap('<div class="code-wrapper"></div>');
|
||||
|
||||
if (pluginConfig.copyButtons) {
|
||||
addCopyButton(wrapper);
|
||||
}
|
||||
}
|
||||
|
||||
function updateCopyButton(button) {
|
||||
id = button.attr('data-command');
|
||||
button.removeClass('fa-clone').addClass('fa-check');
|
||||
|
||||
// Clear timeout
|
||||
if (id in timeouts) {
|
||||
clearTimeout(timeouts[id]);
|
||||
}
|
||||
timeouts[id] = window.setTimeout(function() {
|
||||
button.removeClass('fa-check').addClass('fa-clone');
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
gitbook.events.bind('start', function(e, config) {
|
||||
initializePlugin(config);
|
||||
|
||||
if (pluginConfig.copyButtons) {
|
||||
addCopyTextarea();
|
||||
}
|
||||
});
|
||||
|
||||
gitbook.events.bind('page.change', function() {
|
||||
$('pre').each(function() {
|
||||
format_code_block($(this));
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Reference in New Issue
Block a user