diff --git a/config/examples/example.html b/config/examples/example.html index 4ef6d52fac..16b86ba499 100644 --- a/config/examples/example.html +++ b/config/examples/example.html @@ -59,14 +59,16 @@
<!DOCTYPE html>
<html>
diff --git a/examples/resources/common.js b/examples/resources/common.js
index 46233307e2..1fbe678761 100644
--- a/examples/resources/common.js
+++ b/examples/resources/common.js
@@ -10,11 +10,40 @@
});
}
- var fiddleButton = document.getElementById('jsfiddle-button');
- if (fiddleButton) {
- fiddleButton.onclick = function(event) {
+ var codepenButton = document.getElementById('codepen-button');
+ if (codepenButton) {
+ codepenButton.onclick = function(event) {
event.preventDefault();
- document.getElementById('jsfiddle-form').submit();
+ var form = document.getElementById('codepen-form');
+
+ // Doc : https://blog.codepen.io/documentation/api/prefill/
+
+ var resources = form.resources.value.split(',');
+
+ var data = {
+ title: form.title.value,
+ description: form.description.value,
+ layout: 'left',
+ html: form.html.value,
+ css: form.css.value,
+ js: form.js.value,
+ css_external: resources.filter(function(resource) {
+ return resource.lastIndexOf('.css') === resource.length - 4;
+ }).join(';'),
+ js_external: resources.filter(function(resource) {
+ return resource.lastIndexOf('.js') === resource.length - 3;
+ }).join(';')
+ };
+
+ // binary flags to display html, css, js and/or console tabs
+ data.editors = '' + Number(data.html.length > 0) +
+ Number(data.css.length > 0) +
+ Number(data.js.length > 0) +
+ Number(data.js.indexOf('console') > 0);
+
+ form.data.value = JSON.stringify(data);
+
+ form.submit();
};
}
diff --git a/examples/resources/layout.css b/examples/resources/layout.css
index e04323098e..021776f301 100644
--- a/examples/resources/layout.css
+++ b/examples/resources/layout.css
@@ -106,7 +106,7 @@ pre[class*="language-"] {
cursor: pointer;
}
-#jsfiddle-button {
+#codepen-button {
text-decoration: none;
cursor: pointer;
}
diff --git a/tasks/build-examples.js b/tasks/build-examples.js
index 096583e278..cd89992937 100644
--- a/tasks/build-examples.js
+++ b/tasks/build-examples.js
@@ -56,7 +56,7 @@ function getLinkToApiHtml(requires) {
* example HTML file, this adds metadata for related js and css resources. When
* these files are run through the example template, the extra metadata is used
* to show the complete example source in the textarea and submit the parts to
- * jsFiddle.
+ * CodePen.
*
* @param {Object} files The file lookup provided by Metalsmith. Property names
* are file paths relative to the source directory. The file objects
@@ -111,13 +111,13 @@ function augmentExamples(files, metalsmith, done) {
if (file.resources) {
var resources = [];
var remoteResources = [];
- var fiddleResources = [];
+ var codePenResources = [];
for (var i = 0, ii = file.resources.length; i < ii; ++i) {
var resource = file.resources[i];
var remoteResource = resource.indexOf('//') === -1 ?
'https://openlayers.org/en/v' + pkg.version + '/examples/' +
resource : resource;
- fiddleResources[i] = remoteResource;
+ codePenResources[i] = remoteResource;
if (isJsRegEx.test(resource)) {
resources[i] = '';
remoteResources[i] = '