Add open in Codepen
This commit is contained in:
25
src/js/components/CodepenCopy.js
Normal file
25
src/js/components/CodepenCopy.js
Normal file
@ -0,0 +1,25 @@
|
||||
import { selectAll } from '../deps/utils'
|
||||
|
||||
const snippets = selectAll('.snippet')
|
||||
snippets.forEach(snippet => {
|
||||
var codepenForm = document.createElement('form');
|
||||
codepenForm.action = 'https://codepen.io/pen/define';
|
||||
codepenForm.method = 'POST';
|
||||
codepenForm.target = '_blank';
|
||||
var codepenInput = document.createElement('input');
|
||||
codepenInput.type = 'hidden';
|
||||
codepenInput.name = 'data';
|
||||
var codepenButton = document.createElement('button');
|
||||
codepenButton.classList = 'btn is-large codepen-btn';
|
||||
codepenButton.innerHTML = 'View on Codepen';
|
||||
var css = snippet.querySelector('pre code.lang-css');
|
||||
var html = snippet.querySelector('pre code.lang-html');
|
||||
var js = snippet.querySelector('pre code.lang-js');
|
||||
css = css ? css.textContent : '';
|
||||
html = html ? html.textContent : '';
|
||||
js = js ? js.textContent : '';
|
||||
codepenInput.value = '{"title":"'+snippet.querySelector('h3 > span').textContent+'", "html":"'+html+'" , "css":"'+css+'" , "js":"'+js+'" }';
|
||||
codepenForm.appendChild(codepenInput);
|
||||
codepenForm.appendChild(codepenButton);
|
||||
snippet.appendChild(codepenForm);
|
||||
});
|
||||
@ -17,3 +17,4 @@ import Sidebar from './components/Sidebar'
|
||||
import BackToTopButton from './components/BackToTopButton'
|
||||
import Tag from './components/Tag'
|
||||
import Snippet from './components/Snippet'
|
||||
import CodepenCopy from './components/CodepenCopy'
|
||||
|
||||
Reference in New Issue
Block a user