Skip to content

Instantly share code, notes, and snippets.

View DominikAngerer's full-sized avatar
🏠
For sure working from somewhere 🤘

DominikAngerer DominikAngerer

🏠
For sure working from somewhere 🤘
View GitHub Profile
var request = require("request");
var options = { method: 'POST',
url: 'https://api.storyblok.com/v1/spaces/49233/stories',
headers:
{ Authorization: 'auth_token',
'Content-Type': 'application/json',
Accept: 'application/json' },
body:
{ story:
@DominikAngerer
DominikAngerer / index.js
Created August 27, 2018 14:40
example nuxt store
// example store
import Vuex from 'vuex'
const createStore = () => {
return new Vuex.Store({
state: {
work_detail: null
},
state: {
counter: 0
@DominikAngerer
DominikAngerer / nuxt.config.generate.js
Last active August 11, 2019 17:35
Nuxt Generate function to create pages according to Storybloks Links API
// const axios = require('axios')
// Using Links API
generate: {
routes: function (callback) {
const token = `YOUR_TOKEN`
const version = 'published'
let cache_version = 0
@DominikAngerer
DominikAngerer / create-storyblok-space-client.py
Last active August 17, 2018 14:58
Create a Space in Storyblok using Python and a Client structure
import requests
# Got from https://app.storyblok.com/#!/me/account (Personal access token)
auth_token = 'YOUR_TOKEN'
class Client:
def __init__(self, auth_token):
self.auth_token = auth_token
def create_space(self, name, domain, parent='', dup=''):
@DominikAngerer
DominikAngerer / create-storyblok-space.py
Created August 17, 2018 14:29
Create Storyblok Space using the Management API of Storyblok
import requests
auth_token = 'your_token'
url = "https://api.storyblok.com/v1/spaces"
payload = "{\"space\":{\"name\":\"Space B\",\"domain\":\"http://example.storyblok.com\"}}"
headers = {
'Accept': "application/json",
'Content-Type': "application/json",
function forceDownload(blob, filename) {
var a = document.createElement('a');
a.download = filename;
a.href = blob;
a.click();
}
// Current blob size limit is around 500MB for browsers
function downloadResource(url, filename) {
if (!filename)
const Fieldtype = {
mixins: [window.Storyblok.plugin],
template: `<div><button class="uk-button uk-width-1-1" v-on:click="publishToProduction">Publish to Production</button></div>`,
methods: {
initWith() {
return {
plugin: 'publish-to-production'
}
},
pluginCreated() {
@DominikAngerer
DominikAngerer / bootstrap-widths.js
Last active July 6, 2018 07:24
Bootstrap widths demo field type
const Fieldtype = {
mixins: [window.Storyblok.plugin],
template: `<div><div class="uk-grid">
<div class="uk-width-1-3">
<label class="uk-form-label">X-Small</label>
<select style="padding-right:15px" class="uk-width-1-1" v-model="model.xsmall"><option :value="option" v-for="option in options">{{ option }}</option></select>
</div>
<div class="uk-width-1-3">
<label class="uk-form-label">Small</label>
<select style="padding-right:15px" class="uk-width-1-1" v-model="model.small"><option :value="option" v-for="option in options">{{ option }}</option></select>
@DominikAngerer
DominikAngerer / multiupload.js
Created July 5, 2018 19:03
Simple multiupload field type for Storyblok
const Fieldtype = {
mixins: [window.Storyblok.plugin],
template: `
<div class="uk-clearfix">
<input class="uk-hidden" type="file" multiple="multiple" @change="changeFiles($event)" />
<div class="uk-flex uk-margin-small-bottom" v-for="(key, item) in model.files">
<img class="image" :src="item.url.replace('a.storyblok.com', 'img2.storyblok.com/160x90/filters:fill(auto,0)')">
<input type="text" class="uk-form-small uk-flex-item-auto" v-model=item.url>
<button @click.prevent="removeFile(key)" class="uk-button uk-button-small uk-margin-small-left"><i class="uk-icon-close"></i></button>
const Promise = require('bluebird')
const path = require('path')
exports.createPages = ({ graphql, boundActionCreators }) => {
const { createPage } = boundActionCreators
return new Promise((resolve, reject) => {
const storyblokEntry = path.resolve('src/templates/storyblok-entry.js')
graphql(