mirror of
https://github.com/bigchaindb/site.git
synced 2024-11-21 17:26:55 +01:00
Merge pull request #309 from bigchaindb/fix/build-and-deploy
Fix build & deploy, restore changes
This commit is contained in:
commit
714319bee0
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,11 +1,11 @@
|
||||
node_modules
|
||||
Gemfile.lock
|
||||
.jekyll-metadata
|
||||
.jekyll-cache
|
||||
_dist
|
||||
.awspublish*
|
||||
yarn.lock
|
||||
.yarnclean
|
||||
.bundle
|
||||
vendor/
|
||||
package-lock.json
|
||||
*.code-workspace
|
||||
|
@ -1,6 +1,6 @@
|
||||
language: ruby
|
||||
rvm:
|
||||
- 2.5
|
||||
- 2.7
|
||||
|
||||
cache:
|
||||
bundler: true
|
||||
|
1
Gemfile
1
Gemfile
@ -10,5 +10,4 @@ end
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem 'hash-joiner'
|
||||
gem 'simple-rss'
|
||||
end
|
||||
|
@ -28,7 +28,7 @@ echo "$(tput sgr0)" # reset
|
||||
##
|
||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then
|
||||
|
||||
gulp build --staging
|
||||
npm run build:staging
|
||||
|
||||
|
||||
##
|
||||
@ -36,11 +36,11 @@ if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; th
|
||||
##
|
||||
elif [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
|
||||
gulp build --production
|
||||
npm run build
|
||||
|
||||
else
|
||||
|
||||
gulp build --production
|
||||
npm run build
|
||||
|
||||
fi;
|
||||
|
||||
|
@ -14,14 +14,14 @@ set -e;
|
||||
##
|
||||
if [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then
|
||||
|
||||
gulp deploy --beta;
|
||||
npm run deploy:staging;
|
||||
|
||||
##
|
||||
## check for master push which is no pull request
|
||||
##
|
||||
elif [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
|
||||
gulp deploy --live;
|
||||
npm run deploy;
|
||||
|
||||
else
|
||||
|
||||
|
@ -7,7 +7,6 @@ echo " Installing dependencies "
|
||||
echo "============================================="
|
||||
echo "$(tput sgr0)" # reset
|
||||
|
||||
npm install gulp@4.0.0 -g
|
||||
npm install
|
||||
|
||||
# Travis does that automatically after selecting ruby
|
||||
|
14
_config.yml
14
_config.yml
@ -12,12 +12,8 @@ hiring: false
|
||||
|
||||
email:
|
||||
contact: contact@bigchaindb.com
|
||||
contact_formspree: xgkblajx
|
||||
contact_cc: "contact@bigchaindb.com"
|
||||
cla: xwojnopx
|
||||
cla_cc: "troy@bigchaindb.com,upod-team@bigchaindb.com"
|
||||
services: mdgvledx
|
||||
services_cc: "contact@bigchaindb.com"
|
||||
cla_cc: "upod-team@bigchaindb.com"
|
||||
gdpr: gdpr@bigchaindb.com
|
||||
|
||||
social:
|
||||
@ -69,14 +65,6 @@ typekitID: fih1ngo
|
||||
permalink: /:title/
|
||||
|
||||
|
||||
# Content Parsing
|
||||
# --------------------
|
||||
markdown: redcarpet
|
||||
|
||||
redcarpet:
|
||||
extensions: ['no_intra_emphasis', 'autolink', 'tables', 'smart', 'hard_wrap', 'fenced_code_blocks', 'strikethrough', 'highlight', 'quote', 'footnotes', 'with_toc_data', 'space_after_headers', 'superscript', 'lax_spacing']
|
||||
|
||||
|
||||
# Generator
|
||||
# --------------------
|
||||
source: ./_src
|
||||
|
@ -1,5 +1,4 @@
|
||||
|
||||
//=include svg4everybody/dist/svg4everybody.js
|
||||
//=include jquery/dist/jquery.js
|
||||
//=include smooth-scroll/dist/smooth-scroll.js
|
||||
//=include cookies-eu-banner/dist/cookies-eu-banner.js
|
||||
|
@ -135,36 +135,12 @@ var GoogleAnalytics = (function(w,d,$) {
|
||||
// All custom events
|
||||
//
|
||||
|
||||
// newsletter forms
|
||||
gaEventNewsletterSuccess: function() {
|
||||
ga('send', 'event', 'newsletter', 'subscribe', 'success');
|
||||
},
|
||||
gaEventNewsletterError: function() {
|
||||
ga('send', 'event', 'newsletter', 'subscribe', 'error');
|
||||
},
|
||||
|
||||
// contact forms
|
||||
gaEventContactSuccess: function() {
|
||||
ga('send', 'event', 'contact', 'contact_form', 'success');
|
||||
},
|
||||
gaEventContactError: function() {
|
||||
ga('send', 'event', 'contact', 'contact_form', 'error');
|
||||
},
|
||||
|
||||
// CLA forms
|
||||
gaEventClaSuccess: function() {
|
||||
ga('send', 'event', 'cla', 'cla_form', 'success');
|
||||
},
|
||||
gaEventClaError: function() {
|
||||
ga('send', 'event', 'cla', 'cla_form', 'error');
|
||||
},
|
||||
|
||||
// Services form
|
||||
gaEventServicesSuccess: function() {
|
||||
ga('send', 'event', 'services', 'services_form', 'success');
|
||||
},
|
||||
gaEventServicesError: function() {
|
||||
ga('send', 'event', 'services', 'services_form', 'error');
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1,66 +0,0 @@
|
||||
|
||||
var FormContact = (function(w, d, $) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var app, _private, _config;
|
||||
|
||||
_config = {
|
||||
form: $('#form-contact'),
|
||||
formBtn: $('#form-contact').find('.btn'),
|
||||
formURL: $('#form-contact').attr('action'),
|
||||
formMethod: $('#form-contact').attr('method')
|
||||
};
|
||||
|
||||
_private = {
|
||||
formSubmit: function() {
|
||||
_config.form.submit(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if ( $(this).parsley().isValid() ) {
|
||||
$.ajax({
|
||||
url: _config.formURL,
|
||||
method: _config.formMethod,
|
||||
data: $(this).serialize(),
|
||||
dataType: 'json',
|
||||
beforeSend: function() {
|
||||
_config.formBtn
|
||||
.addClass('disabled')
|
||||
.attr('value', 'Sending...');
|
||||
},
|
||||
success: function(data) {
|
||||
_config.form.find('.form-group').addClass('hide');
|
||||
_config.form.find('.alert--success').removeClass('hide');
|
||||
_config.formBtn.removeClass('disabled');
|
||||
|
||||
// send GA event
|
||||
if (!_dntEnabled()) {
|
||||
GoogleAnalytics.gaEventContactSuccess();
|
||||
}
|
||||
},
|
||||
error: function(err) {
|
||||
_config.form.find('.alert--danger').removeClass('hide');
|
||||
_config.formBtn
|
||||
.removeClass('disabled')
|
||||
.attr('value', 'Send');
|
||||
|
||||
// send GA event
|
||||
if (!_dntEnabled()) {
|
||||
GoogleAnalytics.gaEventContactError();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
app = {
|
||||
init: function() {
|
||||
_private.formSubmit();
|
||||
}
|
||||
};
|
||||
|
||||
return app;
|
||||
|
||||
})(window, document, jQuery);
|
@ -1,66 +0,0 @@
|
||||
|
||||
var FormServices = (function(w, d, $) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var app, _private, _config;
|
||||
|
||||
_config = {
|
||||
form: $('#form-services'),
|
||||
formBtn: $('#form-services').find('.btn'),
|
||||
formURL: $('#form-services').attr('action'),
|
||||
formMethod: $('#form-services').attr('method')
|
||||
};
|
||||
|
||||
_private = {
|
||||
formSubmit: function() {
|
||||
_config.form.submit(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if ( $(this).parsley().isValid() ) {
|
||||
$.ajax({
|
||||
url: _config.formURL,
|
||||
method: _config.formMethod,
|
||||
data: $(this).serialize(),
|
||||
dataType: 'json',
|
||||
beforeSend: function() {
|
||||
_config.formBtn
|
||||
.addClass('disabled')
|
||||
.attr('value', 'Sending...');
|
||||
},
|
||||
success: function(data) {
|
||||
_config.form.find('.form-group').addClass('hide');
|
||||
_config.form.find('.alert--success').removeClass('hide');
|
||||
_config.formBtn.removeClass('disabled');
|
||||
|
||||
// send GA event
|
||||
if (!_dntEnabled()) {
|
||||
GoogleAnalytics.gaEventServicesSuccess();
|
||||
}
|
||||
},
|
||||
error: function(err) {
|
||||
_config.form.find('.alert--danger').removeClass('hide');
|
||||
_config.formBtn
|
||||
.removeClass('disabled')
|
||||
.attr('value', 'Send');
|
||||
|
||||
// send GA event
|
||||
if (!_dntEnabled()) {
|
||||
GoogleAnalytics.gaEventServicesError();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
app = {
|
||||
init: function() {
|
||||
_private.formSubmit()
|
||||
}
|
||||
};
|
||||
|
||||
return app;
|
||||
|
||||
})(window, document, jQuery)
|
@ -1,45 +0,0 @@
|
||||
var HeroVideo = (function(w, d, $) {
|
||||
|
||||
'use strict'
|
||||
|
||||
var app, _private, _config
|
||||
|
||||
_config = {
|
||||
heroVideo: $('.hero-video__video').get(0),
|
||||
minWidth: 720 // $screen-md
|
||||
}
|
||||
|
||||
_private = {
|
||||
play: function() {
|
||||
if ( _config.heroVideo.paused ) {
|
||||
if ( _config.heroVideo.readyState < 4 ) {
|
||||
_config.heroVideo.load();
|
||||
}
|
||||
_config.heroVideo.play();
|
||||
$(_config.heroVideo).addClass('enabled').removeClass('hide');
|
||||
}
|
||||
},
|
||||
pause: function() {
|
||||
_config.heroVideo.pause();
|
||||
$(_config.heroVideo).addClass('hide').removeClass('enabled');
|
||||
},
|
||||
isWide: function() {
|
||||
return $(window).width() >= _config.minWidth;
|
||||
},
|
||||
}
|
||||
|
||||
app = {
|
||||
init: function() {
|
||||
$(window).on('load resize', function() {
|
||||
if (_private.isWide()) {
|
||||
_private.play()
|
||||
} else {
|
||||
_private.pause()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return app
|
||||
|
||||
})(window, document, jQuery)
|
@ -1,39 +0,0 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
const url = 'https://bigchaindb-meetups.now.sh'
|
||||
|
||||
function injectData(data) {
|
||||
const events = data
|
||||
|
||||
// just grab the first item of array
|
||||
const nextEvent = events[0]
|
||||
const element = document.getElementsByClassName('js-social-link--meetup')[0]
|
||||
|
||||
if (nextEvent) {
|
||||
const name = nextEvent.name
|
||||
const link = nextEvent.link
|
||||
const date = new Date(nextEvent.time).toLocaleDateString('en-us', {
|
||||
month: 'short',
|
||||
day: 'numeric'
|
||||
})
|
||||
const elementTitle = document.getElementsByClassName('meetup-title')[0]
|
||||
|
||||
elementTitle.innerHTML = `<span class="hero__community__label">${date}</span><strong> ${name}</strong>`
|
||||
elementTitle.style.opacity = 1
|
||||
element.href = link
|
||||
} else {
|
||||
element.classList.add('hide')
|
||||
}
|
||||
}
|
||||
|
||||
fetch(url)
|
||||
.then(function(response) {
|
||||
return response.json()
|
||||
})
|
||||
.then(function(data) {
|
||||
injectData(data)
|
||||
})
|
||||
.catch(function(error) {
|
||||
console.log(error)
|
||||
})
|
||||
})
|
@ -1,53 +0,0 @@
|
||||
|
||||
//=include vendor/jquery.ajaxchimp.js
|
||||
|
||||
var Newsletter = (function(w, d, $) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var app, _private, _config;
|
||||
|
||||
_config = {
|
||||
newsletter: $('#newsletter')
|
||||
},
|
||||
|
||||
_private = {
|
||||
ajaxChimp: function() {
|
||||
_config.newsletter.ajaxChimp({
|
||||
callback: formCallback
|
||||
});
|
||||
|
||||
function formCallback (resp) {
|
||||
if (resp.result === 'success') {
|
||||
|
||||
_config.newsletter.find('.input-group').addClass('hide');
|
||||
|
||||
// send GA event
|
||||
if (!_dntEnabled()) {
|
||||
GoogleAnalytics.gaEventNewsletterSuccess();
|
||||
}
|
||||
|
||||
}
|
||||
if (resp.result === 'error') {
|
||||
_config.newsletter.find('.btn')
|
||||
.removeClass('disabled')
|
||||
.text('Subscribe');
|
||||
|
||||
// send GA event
|
||||
if (!_dntEnabled()) {
|
||||
GoogleAnalytics.gaEventNewsletterError();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
app = {
|
||||
init: function() {
|
||||
_private.ajaxChimp();
|
||||
}
|
||||
};
|
||||
|
||||
return app;
|
||||
|
||||
})(window, document, jQuery);
|
@ -1,8 +0,0 @@
|
||||
|
||||
//=include bigchain/form-contact.js
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
// init form
|
||||
FormContact.init()
|
||||
});
|
@ -1,9 +1,7 @@
|
||||
//=include bigchain/newsletter.js
|
||||
//=include bigchain/github.js
|
||||
//=include bigchain/meetup.js
|
||||
|
||||
jQuery(function($) {
|
||||
// jQuery(function($) {
|
||||
|
||||
Newsletter.init()
|
||||
|
||||
})
|
||||
|
||||
// })
|
||||
|
@ -1,25 +1,19 @@
|
||||
//=include gumshoejs/dist/gumshoe.js
|
||||
|
||||
//=include bigchain/tab.js
|
||||
//=include bigchain/newsletter.js
|
||||
|
||||
const bigchaindbUrl = 'https://test.bigchaindb.com'
|
||||
const apiPath = '/api/v1/'
|
||||
|
||||
jQuery(function ($) {
|
||||
// jQuery(function ($) {
|
||||
|
||||
//
|
||||
// init modules
|
||||
//
|
||||
Newsletter.init()
|
||||
|
||||
})
|
||||
// })
|
||||
|
||||
|
||||
//
|
||||
// Scrollspy
|
||||
//
|
||||
gumshoe.init()
|
||||
var spy = new Gumshoe('#gumshoe a');
|
||||
|
||||
|
||||
//
|
||||
|
@ -7,13 +7,14 @@ document.addEventListener('DOMContentLoaded', (event) => {
|
||||
const successImage = '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><path d="M2.12132034,39.4786797 C0.949747468,38.3071068 -0.949747468,38.3071068 -2.12132034,39.4786797 C-3.29289322,40.6502525 -3.29289322,42.5497475 -2.12132034,43.7213203 L14.2786797,60.1213203 C15.5878487,61.4304894 17.7587151,61.2529588 18.8377878,59.7484823 L60.4377878,1.74848232 C61.403448,0.402129267 61.0948354,-1.47212773 59.7484823,-2.43778785 C58.4021293,-3.40344797 56.5278723,-3.09483537 55.5622122,-1.74848232 L16.0221415,53.3795008 L2.12132034,39.4786797 Z" transform="translate(3 3)"/></svg>'
|
||||
const clipboardButton = `<button class="btn btn--clipboard" title="Copy to clipboard">${clipboardImage}</button>`
|
||||
|
||||
const codeBlocks = document.querySelectorAll('.highlight')
|
||||
const codeBlocks = document.querySelectorAll('div.highlighter-rouge')
|
||||
|
||||
codeBlocks.forEach(codeBlock => {
|
||||
const language = codeBlock.getElementsByTagName('code')[0].dataset.lang
|
||||
|
||||
codeBlock.insertAdjacentHTML('afterbegin', clipboardButton)
|
||||
const language = codeBlock.className.split(' ')[0].replace('language-', '')
|
||||
codeBlock.insertAdjacentHTML('afterbegin', `<h6 class="highlight__title">${language}</h6>`)
|
||||
|
||||
const pre = codeBlock.querySelectorAll('div.highlight')[0]
|
||||
pre.insertAdjacentHTML('afterbegin', clipboardButton)
|
||||
})
|
||||
|
||||
const buttons = document.querySelectorAll('.highlight .btn--clipboard')
|
||||
|
@ -1,6 +0,0 @@
|
||||
//=include bigchain/form-services.js
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
FormServices.init()
|
||||
})
|
@ -1,10 +0,0 @@
|
||||
//=include bigchain/newsletter.js
|
||||
|
||||
jQuery(function($) {
|
||||
|
||||
//
|
||||
// init modules
|
||||
//
|
||||
Newsletter.init()
|
||||
|
||||
});
|
158
_src/_assets/javascripts/vendor/jquery.ajaxchimp.js
vendored
158
_src/_assets/javascripts/vendor/jquery.ajaxchimp.js
vendored
@ -1,158 +0,0 @@
|
||||
/*!
|
||||
Mailchimp Ajax Submit
|
||||
jQuery Plugin
|
||||
Author: Siddharth Doshi
|
||||
URL: https://github.com/scdoshi/jquery-ajaxchimp
|
||||
|
||||
---
|
||||
Modified by: Matthias Kretschmann
|
||||
- changes to work with our form control feedback styles
|
||||
- changes to work with our parsley form validation
|
||||
---
|
||||
|
||||
Use:
|
||||
===
|
||||
$('#form_id').ajaxchimp(options);
|
||||
|
||||
- Form should have one <input> element with attribute 'type=email'
|
||||
- Form should have one label element with attribute 'for=email_input_id' (used to display error/success message)
|
||||
- All options are optional.
|
||||
|
||||
Options:
|
||||
=======
|
||||
options = {
|
||||
language: 'en',
|
||||
callback: callbackFunction,
|
||||
url: 'http://blahblah.us1.list-manage.com/subscribe/post?u=5afsdhfuhdsiufdba6f8802&id=4djhfdsh99f'
|
||||
}
|
||||
|
||||
Notes:
|
||||
=====
|
||||
To get the mailchimp JSONP url (undocumented), change 'post?' to 'post-json?' and add '&c=?' to the end.
|
||||
For e.g. 'http://blahblah.us1.list-manage.com/subscribe/post-json?u=5afsdhfuhdsiufdba6f8802&id=4djhfdsh99f&c=?',
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.ajaxChimp = {
|
||||
responses: {
|
||||
'We have sent you a confirmation email' : 0,
|
||||
'Please enter a value' : 1,
|
||||
'An email address must contain a single @' : 2,
|
||||
'The domain portion of the email address is invalid (the portion after the @: )' : 3,
|
||||
'The username portion of the email address is invalid (the portion before the @: )' : 4,
|
||||
'This email address looks fake or invalid. Please enter a real email address' : 5
|
||||
},
|
||||
translations: {
|
||||
'en': null
|
||||
},
|
||||
init: function (selector, options) {
|
||||
$(selector).ajaxChimp(options);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.ajaxChimp = function (options) {
|
||||
$(this).each(function(i, elem) {
|
||||
var form = $(elem);
|
||||
var email = form.find('input[type=email]');
|
||||
var feedback = form.find('.form-control-feedback');
|
||||
var formgroup = form.find('.input-group');
|
||||
|
||||
var settings = $.extend({
|
||||
'url': form.attr('action'),
|
||||
'language': 'en'
|
||||
}, options);
|
||||
|
||||
var url = settings.url.replace('/post?', '/post-json?').concat('&c=?');
|
||||
|
||||
form.attr('novalidate', 'true');
|
||||
email.attr('name', 'EMAIL');
|
||||
|
||||
form.submit(function () {
|
||||
var msg;
|
||||
function successCallback(resp) {
|
||||
if (resp.result === 'success') {
|
||||
msg = 'We have sent you a confirmation email';
|
||||
formgroup.removeClass('has-error').addClass('has-success');
|
||||
} else {
|
||||
formgroup.removeClass('has-success').addClass('has-error');
|
||||
email.removeClass('parsley-success');
|
||||
var index = -1;
|
||||
try {
|
||||
var parts = resp.msg.split(' - ', 2);
|
||||
if (parts[1] === undefined) {
|
||||
msg = resp.msg;
|
||||
} else {
|
||||
var i = parseInt(parts[0], 10);
|
||||
if (i.toString() === parts[0]) {
|
||||
index = parts[0];
|
||||
msg = parts[1];
|
||||
} else {
|
||||
index = -1;
|
||||
msg = resp.msg;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
index = -1;
|
||||
msg = resp.msg;
|
||||
}
|
||||
}
|
||||
|
||||
// Translate and display message
|
||||
if (
|
||||
settings.language !== 'en'
|
||||
&& $.ajaxChimp.responses[msg] !== undefined
|
||||
&& $.ajaxChimp.translations
|
||||
&& $.ajaxChimp.translations[settings.language]
|
||||
&& $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]]
|
||||
) {
|
||||
msg = $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]];
|
||||
}
|
||||
feedback.html(msg);
|
||||
|
||||
feedback.show(2000);
|
||||
if (settings.callback) {
|
||||
settings.callback(resp);
|
||||
}
|
||||
}
|
||||
|
||||
var data = {};
|
||||
var dataArray = form.serializeArray();
|
||||
$.each(dataArray, function (index, item) {
|
||||
data[item.name] = item.value;
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
data: data,
|
||||
success: successCallback,
|
||||
dataType: 'jsonp',
|
||||
error: function (resp, text) {
|
||||
console.log('mailchimp ajax submit error: ' + text);
|
||||
}
|
||||
});
|
||||
|
||||
// Translate and display submit message
|
||||
var submitMsg = 'Sending...';
|
||||
if(
|
||||
settings.language !== 'en'
|
||||
&& $.ajaxChimp.translations
|
||||
&& $.ajaxChimp.translations[settings.language]
|
||||
&& $.ajaxChimp.translations[settings.language]['submit']
|
||||
) {
|
||||
submitMsg = $.ajaxChimp.translations[settings.language]['submit'];
|
||||
}
|
||||
form.find('.btn')
|
||||
.addClass('disabled')
|
||||
.text(submitMsg);
|
||||
|
||||
//feedback.html(submitMsg).show(2000);
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
return this;
|
||||
};
|
||||
})(jQuery);
|
@ -6,7 +6,6 @@
|
||||
|
||||
.page-front {
|
||||
.section--guides,
|
||||
.section--blog,
|
||||
.section-testimonials {
|
||||
@extend .background--darker;
|
||||
}
|
||||
|
@ -1,63 +0,0 @@
|
||||
.page-newsletter {
|
||||
.content--page--markdown {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.section--newsletter {
|
||||
width: 100vw;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
right: 50%;
|
||||
margin-left: -50vw;
|
||||
margin-right: -50vw;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: 60vh;
|
||||
background: darken($body-bg, 5%);
|
||||
|
||||
.form-control {
|
||||
border-color: $gray-light;
|
||||
|
||||
&:focus {
|
||||
border-color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
@extend .btn-primary;
|
||||
}
|
||||
|
||||
.newsletter__title {
|
||||
color: $brand-main-blue-light;
|
||||
}
|
||||
|
||||
// stylelint-disable selector-max-compound-selectors,max-nesting-depth
|
||||
.form-label,
|
||||
.form-control,
|
||||
.form-control:focus ~ .form-label,
|
||||
.newsletter__text,
|
||||
.newsletter__gdpr {
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.newsletter__gdpr {
|
||||
opacity: .6;
|
||||
|
||||
.icon {
|
||||
stroke: $gray-light;
|
||||
color: $gray-light;
|
||||
}
|
||||
|
||||
a {
|
||||
box-shadow: inset 0 -1px 0 $gray-light;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: $gray-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
// stylelint-enable selector-max-compound-selectors,max-nesting-depth
|
||||
}
|
||||
}
|
@ -1,142 +0,0 @@
|
||||
//
|
||||
// Page: Services
|
||||
// ---
|
||||
// bigchaindb.com
|
||||
//
|
||||
.page-services {
|
||||
// Different Features unit layout
|
||||
.feature {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.feature__title {
|
||||
margin-bottom: $spacer;
|
||||
display: block;
|
||||
|
||||
// the bottom line
|
||||
&:after {
|
||||
content: '';
|
||||
height: 2px;
|
||||
width: 3rem;
|
||||
display: block;
|
||||
margin-top: $spacer * $line-height;
|
||||
}
|
||||
}
|
||||
|
||||
.feature__icon {
|
||||
margin-top: 0;
|
||||
margin-bottom: $spacer / 6;
|
||||
width: 2.2rem;
|
||||
height: 2.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.hero--services {
|
||||
.logo--services {
|
||||
display: inline-block;
|
||||
opacity: .75;
|
||||
fill: $brand-main-blue-light;
|
||||
}
|
||||
|
||||
.hero__title {
|
||||
margin-top: $spacer;
|
||||
}
|
||||
|
||||
.hero__subtitle {
|
||||
margin-bottom: $spacer * 3;
|
||||
font-size: $font-size-h5;
|
||||
|
||||
@media ($screen-sm) {
|
||||
font-size: $font-size-h4;
|
||||
}
|
||||
}
|
||||
|
||||
.hero__content {
|
||||
margin-top: $spacer * 2;
|
||||
margin-bottom: $spacer * 6;
|
||||
}
|
||||
|
||||
.btn {
|
||||
min-width: 220px;
|
||||
}
|
||||
}
|
||||
|
||||
.section--servicesdetail {
|
||||
.feature__icon {
|
||||
stroke: rgba($brand-main-gray, .65);
|
||||
color: rgba($brand-main-violet, .65);
|
||||
}
|
||||
|
||||
.feature__title {
|
||||
// the bottom line
|
||||
&:after {
|
||||
background: rgba($brand-main-gray, .2);
|
||||
}
|
||||
}
|
||||
|
||||
.feature__text {
|
||||
color: rgba($brand-main-blue, .65);
|
||||
}
|
||||
|
||||
.actions {
|
||||
text-align: center;
|
||||
padding-top: $spacer * 3;
|
||||
border-top: 2px solid rgba($brand-main-gray, .1);
|
||||
}
|
||||
}
|
||||
|
||||
.section--servicesintro {
|
||||
.grid,
|
||||
.feature {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin-top: $spacer * 2;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@extend .h3;
|
||||
margin-bottom: $spacer;
|
||||
}
|
||||
|
||||
.feature__title {
|
||||
// the bottom line
|
||||
&:after {
|
||||
background: rgba($gray-light, .4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.section--servicestestimonial {
|
||||
.testimonial {
|
||||
@extend .large;
|
||||
margin: 0 auto;
|
||||
|
||||
@media ($screen-sm) {
|
||||
max-width: 66%;
|
||||
}
|
||||
}
|
||||
|
||||
.testimonial__quote {
|
||||
&:before {
|
||||
margin-left: -1.3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form--services {
|
||||
background: darken($brand-main-blue, 5%);
|
||||
|
||||
.grid {
|
||||
@media ($screen-sm) {
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.grid__col {
|
||||
@media ($screen-sm) {
|
||||
flex-basis: 48%;
|
||||
}
|
||||
}
|
||||
}
|
@ -86,8 +86,5 @@
|
||||
// Specific sections
|
||||
//
|
||||
@import '_sections/section-cta-whitepaper';
|
||||
@import '_sections/section-cta-services';
|
||||
@import '_sections/section-partners';
|
||||
@import '_sections/section-blog';
|
||||
@import '_sections/section-getstarted';
|
||||
@import '_sections/section-newsletter';
|
||||
|
@ -1,31 +0,0 @@
|
||||
.article {
|
||||
@include color-overlay;
|
||||
@include transition;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
padding: $spacer;
|
||||
border-radius: $border-radius;
|
||||
overflow: hidden;
|
||||
box-shadow: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: 8rem;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
box-shadow: 0 2px 5px rgba($brand-main-blue-dark, .2);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
}
|
||||
|
||||
.article__title,
|
||||
h1.article__title {
|
||||
font-size: $font-size-lg;
|
||||
font-weight: $font-weight-normal;
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
|
||||
.section-cta--services {
|
||||
@media ($screen-md) {
|
||||
padding-top: $spacer * 7;
|
||||
padding-bottom: $spacer * 7;
|
||||
}
|
||||
|
||||
.logo--services {
|
||||
margin-bottom: $spacer;
|
||||
transform: scale(.8);
|
||||
transform-origin: left;
|
||||
color: $brand-main-violet;
|
||||
fill: rgba($brand-main-blue, .5);
|
||||
}
|
||||
|
||||
.section-header {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
text-align: left;
|
||||
margin-bottom: $spacer * 2.5;
|
||||
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,75 +0,0 @@
|
||||
|
||||
.section--newsletter {
|
||||
background: $brand-primary;
|
||||
align-items: flex-start;
|
||||
|
||||
.form-group,
|
||||
.grid { margin-bottom: 0; }
|
||||
|
||||
.form-control {
|
||||
border-color: $gray-dark;
|
||||
|
||||
&:focus {
|
||||
border-color: #000;
|
||||
}
|
||||
|
||||
&.parsley-error {
|
||||
border-color: $brand-danger !important; // stylelint-disable-line
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
background: $brand-main-blue;
|
||||
}
|
||||
|
||||
.form-label,
|
||||
.form-control,
|
||||
.form-control:focus ~ .form-label {
|
||||
color: $gray-dark;
|
||||
}
|
||||
|
||||
.form-control-feedback {
|
||||
@extend .bold;
|
||||
margin-top: $spacer / 2;
|
||||
}
|
||||
|
||||
.form--newsletter {
|
||||
margin-top: $spacer * 2;
|
||||
}
|
||||
|
||||
.parsley-errors-list {
|
||||
right: auto;
|
||||
left: 0;
|
||||
bottom: -.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.newsletter__title {
|
||||
@extend .h5;
|
||||
margin-top: 0;
|
||||
margin-bottom: $spacer / 4;
|
||||
}
|
||||
|
||||
.newsletter__title,
|
||||
.newsletter__text,
|
||||
.newsletter__gdpr {
|
||||
color: $gray-dark;
|
||||
}
|
||||
|
||||
.newsletter__gdpr {
|
||||
opacity: .8;
|
||||
|
||||
.icon {
|
||||
stroke: $brand-main-blue;
|
||||
color: $brand-main-blue;
|
||||
}
|
||||
|
||||
a {
|
||||
box-shadow: inset 0 -1px 0 $brand-main-blue;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background: $brand-main-blue;
|
||||
}
|
||||
}
|
||||
}
|
@ -62,7 +62,5 @@
|
||||
@import 'page-contact';
|
||||
@import 'page-cla';
|
||||
@import 'page-partners';
|
||||
@import 'page-services';
|
||||
@import 'oceanprotocol';
|
||||
@import 'page-guide';
|
||||
@import 'page-newsletter';
|
||||
|
@ -77,8 +77,9 @@ pre {
|
||||
.btn--clipboard,
|
||||
.success__text {
|
||||
position: absolute;
|
||||
top: $spacer * 1.65;
|
||||
top: .1rem;
|
||||
right: .1rem;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.success__text {
|
||||
|
@ -34,7 +34,7 @@ $brand-danger: #c9726a !default;
|
||||
// Typography
|
||||
//
|
||||
$font-family-base: 'europa', 'Avenir Next', 'Avenir', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif !default;
|
||||
$font-family-monospace: Menlo, Monaco, Consolas, 'Courier New', monospace !default;
|
||||
$font-family-monospace: menlo, monaco, consolas, 'Courier New', monospace !default;
|
||||
|
||||
$font-weight-light: 300 !default;
|
||||
$font-weight-normal: 400 !default;
|
||||
|
@ -5,11 +5,5 @@ general: >
|
||||
We use Formspree & Zapier to send this form and by submitting it, you acknowledge that the information you provide will be transferred to Formspree ([Privacy Policy](https://formspree.io/static/PrivacyPolicy.pdf)) & Zapier ([Privacy Policy](https://zapier.com/privacy/)) for processing. Don't want that? Send us an email at contact@bigchaindb.com.
|
||||
|
||||
|
||||
newsletter: >
|
||||
We will only use your email to send you our newsletter and by submitting this form you give us permission to do so. You can change your mind at any time by clicking the unsubscribe link of any newsletter you receive from us, deleting your data in the process. For more information visit our [Privacy Policy](/privacy/).
|
||||
|
||||
|
||||
We use MailChimp for our newsletter and by submitting this form, you acknowledge that the information you provide will be transferred to MailChimp for processing in accordance with their their [Terms](https://mailchimp.com/legal/terms/) and [Privacy Policy](https://mailchimp.com/legal/privacy/).
|
||||
|
||||
cookies: >
|
||||
By continuing your visit to this site, you accept the use of cookies from Google Analytics so we can improve the site for you.
|
||||
|
@ -12,8 +12,6 @@ main:
|
||||
- title: Docs
|
||||
url: https://docs.bigchaindb.com/
|
||||
external: true
|
||||
- title: Services
|
||||
url: /services/
|
||||
|
||||
secondary:
|
||||
- title: About
|
||||
@ -26,8 +24,6 @@ secondary:
|
||||
url: "/contact/"
|
||||
|
||||
community:
|
||||
- title: Gitter
|
||||
url: https://gitter.im/bigchaindb/bigchaindb
|
||||
- title: GitHub
|
||||
url: https://github.com/bigchaindb
|
||||
- title: Twitter
|
||||
|
@ -6,7 +6,7 @@
|
||||
<svg class="oceanprotocol__logo">
|
||||
<use xlink:href="/assets/img/sprite.svg#logo-oceanprotocol"></use>
|
||||
</svg>
|
||||
Meet Ocean. A Decentralized Data Exchange Protocol</h1>
|
||||
BigchainDB GmbH (the company) works on Ocean Protocol. IPDB Foundation (ipdb.io) oversees BigchainDB software and networks.</h1>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
@ -1,53 +0,0 @@
|
||||
|
||||
<form id="form-contact" class="form js-parsley" action="//formspree.io/{{ site.email.contact_formspree }}" method="POST" accept-charset="UTF-8">
|
||||
<p class="form-group">
|
||||
<input class="form-control" type="text" id="name" name="name" required>
|
||||
<label class="form-label" for="name">Your Name</label>
|
||||
</p>
|
||||
<p class="form-group">
|
||||
<input class="form-control" type="email" id="email" name="_replyto" required>
|
||||
<label class="form-label" for="email">Your Email</label>
|
||||
</p>
|
||||
<p class="form-group">
|
||||
<textarea class="form-control" id="comment" name="comment" rows="1" required></textarea>
|
||||
<label class="form-label" for="comment">Your Message</label>
|
||||
</p>
|
||||
<p class="form-group text-dimmed mini">
|
||||
Fields marked with an <span class="required">*</span> are required.
|
||||
</p>
|
||||
<p class="form-group">
|
||||
<input class="btn btn-primary" type="submit" value="Send">
|
||||
</p>
|
||||
|
||||
<div class="alert alert--success animation-slide-in-from-bottom hide">
|
||||
<svg class="alert__icon icon icon-success">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-check"></use>
|
||||
</svg>
|
||||
<p>
|
||||
<strong class="alert__title">Great to hear you’re interested!</strong>
|
||||
We’ll get in touch soon.
|
||||
</p>
|
||||
</div>
|
||||
<div class="alert alert--danger hide">
|
||||
<svg class="alert__icon icon icon-fail">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-fail"></use>
|
||||
</svg>
|
||||
<p>
|
||||
<strong class="alert__title">Ops, there was an error</strong>
|
||||
Would you mind trying again?
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<input type="text" name="_gotcha" style="display: none;">
|
||||
<input type="hidden" name="_subject" value="New contact form submission" />
|
||||
<input type="hidden" name="_cc" value="{{ site.email.contact_cc }}" />
|
||||
|
||||
<div class="form__gdpr">
|
||||
<svg class="icon">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
|
||||
</svg>
|
||||
<div class="text">
|
||||
{{ site.data.gdpr.general | markdownify }}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
@ -1,23 +0,0 @@
|
||||
<form id="newsletter"
|
||||
class="form--newsletter js-parsley"
|
||||
action="https://bigchaindb.us9.list-manage.com/subscribe/post?u=56f2d3da26a7d407177d3fba3&id=0a99a9481e"
|
||||
method="post">
|
||||
|
||||
<div class="form-group has-feedback">
|
||||
<div class="input-group">
|
||||
|
||||
<input class="form-control" type="email" id="email" name="EMAIL" required>
|
||||
<label class="form-label" for="email">Your Email</label>
|
||||
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-blue" type="submit" name="button">
|
||||
Subscribe
|
||||
</button>
|
||||
</span>
|
||||
|
||||
<input type="hidden" name="GDPR" value="yes" />
|
||||
</div>
|
||||
|
||||
<div class="form-control-feedback"></div>
|
||||
</div>
|
||||
</form>
|
@ -1,116 +0,0 @@
|
||||
|
||||
<form id="form-services" class="form form--services js-parsley" action="https://formspree.io/{{ site.email.services }}" method="POST" accept-charset="UTF-8">
|
||||
|
||||
<p class="form-group">
|
||||
<input class="form-control" type="text" id="name" name="name" required>
|
||||
<label class="form-label" for="name">Full Name</label>
|
||||
</p>
|
||||
|
||||
<div class="grid grid--full grid-small--half">
|
||||
<div class="grid__col">
|
||||
<p class="form-group">
|
||||
<input class="form-control" type="text" id="company" name="company" required>
|
||||
<label class="form-label" for="company">Company</label>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid__col">
|
||||
<p class="form-group">
|
||||
<input class="form-control" type="email" id="email" name="_replyto" required>
|
||||
<label class="form-label" for="email">Email</label>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid__col">
|
||||
<p class="form-group">
|
||||
<input class="form-control" type="tel" id="phone" name="phone">
|
||||
<label class="form-label" for="phone">Phone</label>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid__col">
|
||||
<p class="form-group">
|
||||
<select class="form-control" id="country" name="country" required data-required="true">
|
||||
<option value=""> </option>
|
||||
<optgroup label="">
|
||||
<option value="US">United States</option>
|
||||
<option value="DE">Germany</option>
|
||||
<option value="IN">India</option>
|
||||
<option value="GB">United Kingdom</option>
|
||||
<option value="CN">China</option>
|
||||
</optgroup>
|
||||
<option value=""> </option>
|
||||
|
||||
{% for country in site.data.countries %}
|
||||
{% unless country.cca2 == 'DE' or country.cca2 == 'US' or country.cca2 == 'IN' or country.cca2 == 'GB' or country.cca2 == 'CN' %}
|
||||
<option value="{{ country.cca2 }}">{{ country.name.common }}</option>
|
||||
{% endunless %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
<label class="form-label" for="country">Country</label>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid__col">
|
||||
<p class="form-group">
|
||||
<select class="form-control" id="industry" name="industry" required data-required="true">
|
||||
<option value=""> </option>
|
||||
{% for industry in page.contact.industries %}
|
||||
<option value="{{ industry }}">{{ industry }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<label class="form-label" for="industry">Industry</label>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid__col">
|
||||
<p class="form-group">
|
||||
<select class="form-control" id="interest" name="interest" required data-required="true">
|
||||
<option value=""> </option>
|
||||
{% for interest in page.contact.interests %}
|
||||
<option value="{{ interest }}">{{ interest }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<label class="form-label" for="interest">Interested in</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="form-group">
|
||||
<textarea class="form-control" id="comment" name="comment" rows="1"></textarea>
|
||||
<label class="form-label" for="comment">Comments</label>
|
||||
</p>
|
||||
<p class="form-group text-dimmed mini">
|
||||
Fields marked with <span class="required">*</span> are required.
|
||||
</p>
|
||||
<p class="form-group">
|
||||
<input class="btn btn-blue-light" type="submit" value="Send">
|
||||
</p>
|
||||
|
||||
<div class="alert alert--success animation-slide-in-from-bottom hide">
|
||||
<svg class="alert__icon icon icon-success">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-check"></use>
|
||||
</svg>
|
||||
<p>
|
||||
<strong class="alert__title">Great to hear you’re interested!</strong>
|
||||
We’ll get in touch soon.
|
||||
</p>
|
||||
</div>
|
||||
<div class="alert alert--danger hide">
|
||||
<svg class="alert__icon icon icon-fail">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-fail"></use>
|
||||
</svg>
|
||||
<p>
|
||||
<strong class="alert__title">Ops, there was an error</strong>
|
||||
Would you mind trying again?
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<input type="text" name="_gotcha" style="display: none;">
|
||||
<input type="hidden" name="_subject" value="New services form submission" />
|
||||
<input type="hidden" name="_cc" value="{{ site.email.services_cc }}" />
|
||||
|
||||
<div class="form__gdpr">
|
||||
<svg class="icon">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
|
||||
</svg>
|
||||
<div class="text">
|
||||
{{ site.data.gdpr.general | markdownify }}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
@ -20,26 +20,6 @@
|
||||
<use xlink:href="/assets/img/sprite.svg#github"></use>
|
||||
</svg> Star <span class="stars" id="stars"></span>
|
||||
</a>
|
||||
|
||||
<a class="social-link btn btn-text btn-sm js-social-link" href="{{ site.social.twitter.url }}" title="Follow on Twitter">
|
||||
<svg class="icon icon--social icon--twitter" aria-labelledby="title">
|
||||
<title>Twitter</title>
|
||||
<use xlink:href="/assets/img/sprite.svg#twitter"></use>
|
||||
</svg> Follow
|
||||
</a>
|
||||
|
||||
<a class="social-link btn btn-text btn-sm js-social-link" href="{{ site.social.gitter.url }}" title="Chat on Gitter">
|
||||
<svg class="icon icon--social icon--gitter" aria-labelledby="title">
|
||||
<title>Gitter</title>
|
||||
<use xlink:href="/assets/img/sprite.svg#gitter"></use>
|
||||
</svg> Chat
|
||||
</a>
|
||||
|
||||
<a class="social-link btn btn-text btn-sm js-social-link js-social-link--meetup" href="{{ site.social.meetup.url }}">
|
||||
<svg class="icon icon--social icon--meetup">
|
||||
<use xlink:href="/assets/img/sprite.svg#meetup"></use>
|
||||
</svg> <span class="meetup-title">BigchainDB Meetup</span>
|
||||
</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
|
@ -11,12 +11,6 @@
|
||||
<script src="/assets/js/{{ layout.js }}"></script>
|
||||
{% endif %}
|
||||
|
||||
<!--
|
||||
svg4everybody.js
|
||||
-->
|
||||
<script>svg4everybody();</script>
|
||||
|
||||
|
||||
<!--
|
||||
//
|
||||
// Google Analytics
|
||||
|
@ -1,27 +0,0 @@
|
||||
<section class="section section--blog ">
|
||||
<div class="row row--wide">
|
||||
|
||||
<header class="section-header">
|
||||
<h1 class="section-title">The BigchainDB Blog</h1>
|
||||
<p class="section-description">Updates, stories and ideas from the people behind BigchainDB.</p>
|
||||
</header>
|
||||
|
||||
<div class="grid grid--full grid-small--half grid-medium--third grid--gutters--small">
|
||||
{% for article in site.articles | limit: 6 %}
|
||||
<div class="grid__col">
|
||||
<a class="article article--{{ article.title | downcase | truncatewords: 3, '' | replace: ' ', '-' }}" href="{{ article.link }}" style="background-image: url('{{ article.image }}');">
|
||||
|
||||
<h1 class="article__title">
|
||||
{{ article.title }}
|
||||
</h1>
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<p class="text-center">
|
||||
<a class="btn btn-secondary" href="{{ site.social.medium.url }}">Go to blog</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</section>
|
@ -1,17 +0,0 @@
|
||||
<section class="section section-cta section-cta--services background--blue--light">
|
||||
<div class="row">
|
||||
<header class="section-header">
|
||||
|
||||
<svg class="logo logo--services logo--white" aria-labelledby="title">
|
||||
<title>Logo BigchainDB Services</title>
|
||||
<use xlink:href="/assets/img/sprite.svg#logo-services"></use>
|
||||
</svg>
|
||||
|
||||
<h1 class="section-title">Hands-on consulting and production support by blockchain experts.</h1>
|
||||
</header>
|
||||
|
||||
<a class="btn btn-blue" href="{% link services.html %}">
|
||||
Explore Services
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
@ -1,38 +0,0 @@
|
||||
|
||||
<section class="section section--newsletter">
|
||||
<div class="row row--wide">
|
||||
|
||||
<div class="grid grid--full grid-medium--half grid--gutters grid--center">
|
||||
<div class="grid__col">
|
||||
<h1 class="newsletter__title">
|
||||
{% if page.newsletter.title %}
|
||||
{{ page.newsletter.title }}
|
||||
{% else %}
|
||||
Get updates delivered to your inbox
|
||||
{% endif %}
|
||||
</h1>
|
||||
<p class="newsletter__text">
|
||||
{% if page.newsletter.text %}
|
||||
{{ page.newsletter.text }}
|
||||
{% else %}
|
||||
No more than one email per month. We're busy too.
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% include form-newsletter.html %}
|
||||
</div>
|
||||
<div class="grid__col">
|
||||
|
||||
<div class="form__gdpr newsletter__gdpr">
|
||||
<svg class="icon">
|
||||
<use xlink:href="/assets/img/sprite.svg#icon-heart-protect"></use>
|
||||
</svg>
|
||||
<div class="text">
|
||||
{{ site.data.gdpr.newsletter | markdownify }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
@ -30,7 +30,7 @@ partners:
|
||||
{% if page.partners.description %}
|
||||
{{ page.partners.description }}
|
||||
{% else %}
|
||||
We are proud to partner and collaborate with
|
||||
Partnerships and collaborations have included
|
||||
{% endif %}
|
||||
</p>
|
||||
</header>
|
||||
|
@ -13,9 +13,9 @@
|
||||
</div>
|
||||
<![endif]-->
|
||||
|
||||
{{ content }}
|
||||
|
||||
{% include banner.html %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
{% include footer.html %}
|
||||
|
||||
|
@ -20,5 +20,4 @@ layout: base
|
||||
|
||||
{% if page.path contains "whitepaper" %}
|
||||
{% include sections/section-whitepaper-download.html %}
|
||||
{% include sections/section-newsletter.html %}
|
||||
{% endif %}
|
||||
|
@ -29,6 +29,4 @@ cta:
|
||||
|
||||
</section>
|
||||
|
||||
{% include sections/section-cta-services.html %}
|
||||
|
||||
{% include sections/section-cta.html %}
|
||||
|
@ -89,6 +89,4 @@ cta:
|
||||
|
||||
</section>
|
||||
|
||||
{% include sections/section-cta-services.html %}
|
||||
|
||||
{% include sections/section-cta.html %}
|
||||
|
@ -1,42 +0,0 @@
|
||||
# http://stackoverflow.com/a/27850727/733677
|
||||
|
||||
require 'open-uri'
|
||||
require 'rss'
|
||||
require 'simple-rss'
|
||||
|
||||
module Jekyll
|
||||
|
||||
# Runs during jekyll build
|
||||
class RssFeedCollector < Generator
|
||||
safe true
|
||||
priority :high
|
||||
def generate(site)
|
||||
|
||||
rss_items = SimpleRSS.parse open('https://blog.bigchaindb.com/feed/')
|
||||
|
||||
# Create a new on-the-fly Jekyll collection called "articles"
|
||||
jekyll_items = Jekyll::Collection.new(site, 'articles')
|
||||
site.collections['articles'] = jekyll_items
|
||||
|
||||
# Add fake virtual documents to the collection
|
||||
rss_items.items.each do |item|
|
||||
title = item.title
|
||||
link = item.link
|
||||
|
||||
# Medium hack: get first image in content, then get smaller image size
|
||||
image = item.content_encoded[/img.*?src="(.*?)"/i,1].gsub(/max\/(.*)\//, "max/500/")
|
||||
|
||||
path = '_articles/' + title.to_s.gsub(':','_') + '.md'
|
||||
path = site.in_source_dir(path)
|
||||
doc = Jekyll::Document.new(path, site: site, collection: jekyll_items)
|
||||
doc.data['title'] = title
|
||||
doc.data['link'] = link
|
||||
doc.data['image'] = image
|
||||
jekyll_items.docs << doc
|
||||
end
|
||||
rescue
|
||||
puts "Could not parse blog feed. Are you offline?"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -15,16 +15,22 @@ mediakit:
|
||||
link: /mediakit.zip
|
||||
|
||||
intro: >
|
||||
BigchainDB is a blockchain database offering decentralization, immutability and native assets. BigchainDB allows for the deployment of large-scale applications in a variety of use cases and industries from intellectual property and identity to supply chain, IoT and artificial intelligence. BigchainDB provides unique solutions for developers, start-ups and enterprises to successfully build their concepts, platforms and applications as big as they can dream.
|
||||
BigchainDB is a blockchain database offering decentralization, immutability and native assets. BigchainDB allows for the deployment of large-scale applications in a variety of use cases and industries from intellectual property and identity to supply chain, and Internet-of-Things.
|
||||
|
||||
---
|
||||
|
||||
## Our story
|
||||
|
||||
In the summer of 2013, we started working on a project that became ascribe, blockchain-based intellectual property (IP) attribution. We asked the question: how can creators of any digital IP get compensated? Why not own digital art the way you own Bitcoin? With a public store of attribution and provenance, blockchain technology could solve this. So we raised some money, hired a few early employees and kept working on the product until we were satisfied enough to release it, built on the Bitcoin blockchain. The product was basically in shape to serve larger-scale customers, with the glaring exception of the blockchain scalability. We found ourselves needing to turn down opportunities knowing that the Bitcoin blockchain wouldn’t be able to handle the throughput we needed to serve larger enterprises.
|
||||
In summer 2013, we started working on a project that became [ascribe](www.ascribe.io). It started with problems in the art world: "how do you collect digital art?" and "how do digital artists get paid?". To address this, we wondered aloud: "what if you could own digital art the way you own Bitcoin?" We pulled on this thread further; the idea made sense. So we built early prototypes, raised money, hired a few early employees, and improved the product. We released in beta in 2014, and production in early 2015. We built on the Bitcoin blockchain. Alas, its scalability issues prevented us from serving larger customers.
|
||||
|
||||
With this as a starting point, we asked how do we “blockchain-ify” it? We drew on our experience in shipping blockchain products to define three specific characteristics: decentralized, immutable and the ability to register and transfer assets. With the definitions above as a starting point, we chose an enterprise-class distributed database and then built our own technology on top of that, adding those three key characteristics while improving base functionality, fault tolerance much more. See our [roadmap](https://github.com/bigchaindb/org/blob/master/ROADMAP.md).
|
||||
We observed that MongoDB and other distributed databases (DBs) were powering webapps at internet scale. We asked: how do we “blockchain-ify” such a database? We saw that they'd need three new characteristics: decentralized, immutable, and the ability to "own" assets by holding the private key. So, we wrapped RethinkDB (and later MongoDB) with code to achieve the target characteristics. The result is BigchainDB software.
|
||||
|
||||
From the seed of the idea, to intense efforts starting late summer 2015, we made the announcement in February 2016. What initially started as a “let’s solve our own problem” approach almost immediately turned into something much bigger than we expected. With people and enterprises from across all industries reaching out looking to partner, collaborate, license or build on the technology, it became clear that we were solving much more than our own problem. The result is BigchainDB, a blockchain database for the world.
|
||||
We started to build a prototype of BigchainDB in late summer 2015. It matured enough to open-source and announce BigchainDB in February 2016. What initially started as a “let’s solve our own problem” approach quickly turned into something much bigger than we expected. People and enterprises from across all industries reached out looking to build on the technology. It became clear that we were solving much more than our own problem.
|
||||
|
||||
[ascribe](https://www.ascribe.io/) and [WhereOnTheNet](https://www.whereonthe.net/) are all registered trademarks of BigchainDB.
|
||||
We ran into another issue. Many people built prototypes on the technology, but there was no "live" network ready for them to use in production. Deploying their own became huge exercises and governance. So with others in the community, we initiated [IPDB Foundation](ipdb.io). Its mandate included running a live public BigchainDB network. We spent a lot of time designing governance.
|
||||
|
||||
By early 2017, we'd spent nearly four years thinking about IP and big data. We started to see problems at the intersection of these topics: how can you securely "own" data, and sell it while avoiding "data escapes"? Modern artificial intelligence (AI) was on the rise, and with it, the demand for way more data. We realized that blockchain technology could help, especially decentralized data marketplaces. With Toyota Research Institute, we [built](https://techcrunch.com/2017/05/22/toyota-pushes-into-blockchain-tech-to-enable-the-next-generation-of-cars) a prototype data marketplace that used BigchainDB.
|
||||
|
||||
This initial foray into decentralized data marketplaces grew into a much larger project: [Ocean Protocol](www.oceanprotocol.com). The team at BigchainDB GmbH (the company) is now focused on Ocean Protocol. [IPDB Foundation](ipdb.io) has [assumed governance](https://medium.com/ipdb-blog/ipdb-foundation-assumes-governance-of-bigchaindb-software-and-testnet-51235322e14c) of the BigchainDB software and networks.
|
||||
|
||||
"ascribe" is a registered trademark of BigchainDB.
|
||||
|
@ -1,71 +1,27 @@
|
||||
---
|
||||
layout: page
|
||||
|
||||
title: Contact
|
||||
title: Contact BigchainDB GmbH
|
||||
tagline: Get In Touch
|
||||
|
||||
js: page-contact.min.js
|
||||
---
|
||||
|
||||
<section class="section section-contactform">
|
||||
<div class="row row--wide">
|
||||
<div class="grid grid--full grid-medium--columns grid--gutters">
|
||||
<div class="grid__col grid__col--4">
|
||||
<p>Have a technical question? Head to
|
||||
<a href="{{ site.social.gitter.url }}">
|
||||
<svg class="icon icon--social icon--gitter">
|
||||
<use xlink:href="/assets/img/sprite.svg#gitter"></use>
|
||||
</svg> Gitter
|
||||
</a> to chat directly with our developers.
|
||||
</p>
|
||||
|
||||
{% include/form-contact.html %}
|
||||
<div class="row">
|
||||
<div class="h-card contactlist">
|
||||
<p><strong class="p-name p-org">{{ site.address.company }}</strong></p>
|
||||
|
||||
<div class="p-adr">
|
||||
<p class="p-street-address">{{ site.address.street }}</p>
|
||||
<p><span class="p-postal-code">{{ site.address.zip }}</span> <span class="p-locality">{{ site.address.city }}</span></p>
|
||||
<p class="p-country-name">{{ site.address.country }}</p>
|
||||
</div>
|
||||
<div class="grid__col grid__col--2">
|
||||
<div class="h-card contactlist">
|
||||
<p><strong class="p-name p-org">{{ site.address.company }}</strong></p>
|
||||
|
||||
<div class="p-adr">
|
||||
<p class="p-street-address">{{ site.address.street }}</p>
|
||||
<p><span class="p-postal-code">{{ site.address.zip }}</span> <span class="p-locality">{{ site.address.city }}</span></p>
|
||||
<p class="p-country-name">{{ site.address.country }}</p>
|
||||
</div>
|
||||
|
||||
<p><a class="u-url" href="{{ site.url }}">{{ site.url | remove: 'https://' }}</a></p>
|
||||
<p><a class="u-email" href="mailto:{{ site.email.contact }}">{{ site.email.contact }}</a></p>
|
||||
|
||||
<div class="social">
|
||||
<p>
|
||||
<a href="https://github.com/{{ site.social.github.org }}">
|
||||
<svg class="icon icon--social icon--github" aria-labelledby="title">
|
||||
<title>GitHub</title>
|
||||
<use xlink:href="/assets/img/sprite.svg#github"></use>
|
||||
</svg>
|
||||
GitHub
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="{{ site.social.twitter.url }}">
|
||||
<svg class="icon icon--social icon--twitter" aria-labelledby="title">
|
||||
<title>Twitter</title>
|
||||
<use xlink:href="/assets/img/sprite.svg#twitter"></use>
|
||||
</svg>
|
||||
Twitter
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="{{ site.social.medium.url }}">
|
||||
<svg class="icon icon--social icon--blog" aria-labelledby="title">
|
||||
<title>Blog</title>
|
||||
<use xlink:href="/assets/img/sprite.svg#medium"></use>
|
||||
</svg>
|
||||
Blog
|
||||
</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p><a class="u-url" href="{{ site.url }}">{{ site.url | remove: 'https://' }}</a></p>
|
||||
<p><a class="u-email" href="mailto:{{ site.email.contact }}">{{ site.email.contact }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -124,9 +124,9 @@ conn.postTransactionCommit(txSigned)
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<nav class="menu--sub" data-gumshoe-header>
|
||||
<nav class="menu--sub" id="gumshoe">
|
||||
<div class="row row--wide">
|
||||
<div class="menu-overflow" data-gumshoe>
|
||||
<div class="menu-overflow">
|
||||
<a class="menu__link" href="#server" data-scroll><span class="number">1</span> {{ content.server.title }}</a>
|
||||
<a class="menu__link" href="#drivers" data-scroll><span class="number">2</span> {{ content.drivers.title }}</a>
|
||||
<a class="menu__link" href="#docs" data-scroll><span class="number">3</span> {{ content.docs.title }}</a>
|
||||
@ -367,5 +367,3 @@ conn.postTransactionCommit(txSigned)
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
{% include sections/section-newsletter.html %}
|
||||
|
@ -20,11 +20,9 @@ features:
|
||||
- title: "Byzantine Fault Tolerant (BFT)"
|
||||
text: "Up to one third of the nodes in the network can be experiencing arbitrary faults and the rest of the network will still come to consensus on the next block."
|
||||
icon: "icon-network"
|
||||
new: true
|
||||
- title: "Low Latency"
|
||||
text: "A global network takes about a second to come to consensus on a new block. In other words, transaction finality happens fast."
|
||||
icon: "icon-hourglass"
|
||||
new: true
|
||||
- title: "Customizable"
|
||||
text: "Design your own private network with custom assets, transactions, permissions and transparency."
|
||||
icon: "icon-settings"
|
||||
@ -67,10 +65,6 @@ js: page-features.min.js
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
|
||||
<p class="text-center features-roadmap" >
|
||||
<a href="https://github.com/bigchaindb/org/blob/master/ROADMAP.md" class="btn btn-primary">Our Roadmap</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -65,8 +65,3 @@ intro:
|
||||
|
||||
{% include sections/section-partners.html %}
|
||||
|
||||
{% include sections/section-cta-services.html %}
|
||||
|
||||
{% include sections/section-blog.html %}
|
||||
|
||||
{% include sections/section-newsletter.html %}
|
||||
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
layout: page
|
||||
|
||||
title: Newsletter
|
||||
tagline: Stay in the loop about all things BigchainDB
|
||||
description: Subscribe to our newsletter and stay in the loop about all things BigchainDB.
|
||||
---
|
||||
|
||||
{% include sections/section-newsletter.html %}
|
@ -50,8 +50,6 @@ If you want to contribute to the project, you must complete our [Contributor Lic
|
||||
|
||||
If you want to sign the CLA form or contact us without using these forms, you can email {{ site.email.gdpr }}.
|
||||
|
||||
We use MailChimp for our newsletter, and the information you submit via our newsletter subscription form will be transferred to MailChimp for processing in accordance with their [Terms](https://mailchimp.com/legal/terms/) and [Privacy Policy](https://mailchimp.com/legal/privacy/).
|
||||
|
||||
### BigchainDB Test Network
|
||||
|
||||
Use of the BigchainDB Test Network available under [testnet.bigchaindb.com](https://testnet.bigchaindb.com) is subject to its own [Terms](https://testnet.bigchaindb.com/terms-network). Creating an account and using it submits your entered information to 3Scale according to their [Terms](https://www.3scale.net/terms-and-conditions/) and [Privacy Policy](https://www.redhat.com/en/about/privacy-policy).
|
||||
|
@ -1,188 +0,0 @@
|
||||
---
|
||||
layout: base
|
||||
|
||||
title: Services
|
||||
description: "Hands-on consulting and production support by blockchain experts"
|
||||
|
||||
header: hero-services.jpg
|
||||
image: share-image-services.jpg
|
||||
js: page-services.min.js
|
||||
|
||||
hero:
|
||||
title: "Hands-on consulting and production support"
|
||||
description: "From ideation to production, we have the team and technology to help you build enterprise-grade applications and platforms."
|
||||
cta:
|
||||
- name: Get in touch
|
||||
link: "#contact"
|
||||
scroll: true
|
||||
|
||||
support:
|
||||
features:
|
||||
- title: "Ideation"
|
||||
description: "Have some ideas but don’t know where to start? We run a workshop to help you better understand blockchain technologies and let you drill-down into the right use cases that bring the biggest benefit."
|
||||
icon: icon-education
|
||||
- title: "Use case development"
|
||||
description: "You have a specific idea for a blockchain application? We help you build a detailed business and technical architecture that lets you move forward with confidence."
|
||||
icon: icon-blueprint
|
||||
- title: "Blockchain consulting"
|
||||
description: "The idea is clear. Now you need help to build a prototype. Our blockchain consultants can work to your needs, budget and timeline to get a demo into your hands that will impress."
|
||||
icon: icon-engineering
|
||||
|
||||
partners:
|
||||
title: "Trusted by leading global companies"
|
||||
description: "We work with partners who are deploying data-centric blockchain applications for automotive, energy, identity, IoT, intellectual property and supply chain use cases."
|
||||
|
||||
intro:
|
||||
title: "Designed for data-centric, high-transaction use cases."
|
||||
description: "Whether you’re a system architect, a developer or a database specialist, BigchainDB offers the performance and tooling to help you create the future."
|
||||
title2: "Decentralized, secure and immutable."
|
||||
text: "Traditional blockchains lack what most enterprises require. BigchainDB takes a different approach, one that starts with a big data distributed database and then adds blockchain characteristics. The result is high throughput and low latency, making data-centric and high volume use cases a breeze."
|
||||
text2: "Only BigchainDB combines the all-important advantages of queryability and performance of traditional databases with the distributed, secure and immutable nature of blockchain technology into one package."
|
||||
features:
|
||||
- title: "Easy to build with"
|
||||
description: "Build applications that speak directly to BigchainDB using our set of drivers and APIs. A powerfully simple and quick way to prototype."
|
||||
icon: icon-wrench
|
||||
- title: "Interoperability by design"
|
||||
description: "Interoperability with Ethereum, IPFS, Bitcoin and other protocols such as the Interledger Protocol (ILP), IPLD, COALA IP and COALA SC mean that enterprises can develop their applications knowing that their work is future-proofed."
|
||||
icon: icon-plug
|
||||
|
||||
contact:
|
||||
title: "Get in touch"
|
||||
description: "Ready to start building with BigchainDB? Enter your details below and we'll be in touch right away."
|
||||
|
||||
interests:
|
||||
- Training
|
||||
- Partnership
|
||||
- Proof-of-concept / prototype / pilot
|
||||
- Production support
|
||||
- Other
|
||||
|
||||
industries:
|
||||
- Analytics
|
||||
- Automotive
|
||||
- Consulting
|
||||
- Data Exchange
|
||||
- Energy
|
||||
- Finance
|
||||
- Government
|
||||
- Health Care
|
||||
- Identity
|
||||
- Insurance
|
||||
- Law
|
||||
- Manufacturing
|
||||
- Media
|
||||
- Security
|
||||
- Supply Chain
|
||||
- Technology
|
||||
- Other
|
||||
|
||||
---
|
||||
|
||||
<header class="hero hero--services" {% if page.header %}style="background-image:url('/assets/img/{{ page.header }}')"{% endif %}>
|
||||
|
||||
{% include menu-main.html %}
|
||||
|
||||
<div class="hero__content row">
|
||||
<hgroup>
|
||||
<svg class="logo logo--services logo--white">
|
||||
<use xlink:href="/assets/img/sprite.svg#logo-services"></use>
|
||||
</svg>
|
||||
<h1 class="hero__title">{{ page.hero.title }}</h1>
|
||||
<h2 class="hero__subtitle">{{ page.hero.description }}</h2>
|
||||
|
||||
{% for cta in page.hero.cta %}
|
||||
<a class="btn btn-blue-light hero__action" href="{{ cta.link }}" {% if cta.scroll %}data-scroll{% endif %}>{{ cta.name }}</a>
|
||||
{% endfor %}
|
||||
</hgroup>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<section class="section section--servicesdetail background--blue--light">
|
||||
<div class="row row--wide">
|
||||
|
||||
<div class="grid grid--full grid-small--third grid--gutters">
|
||||
{% for feature in page.support.features %}
|
||||
<div class="grid__col">
|
||||
<div class="feature">
|
||||
<svg class="feature__icon icon">
|
||||
<use xlink:href="/assets/img/sprite.svg#{{ feature.icon }}"></use>
|
||||
</svg>
|
||||
<div class="feature__detail">
|
||||
<h1 class="feature__title">{{ feature.title }}</h1>
|
||||
<p class="feature__text">{{ feature.description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
<a class="btn btn-blue" data-scroll href="#contact">Get in touch</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% include sections/section-partners.html %}
|
||||
|
||||
<section class="section section--servicesintro background--darker">
|
||||
<div class="row">
|
||||
<header class="section-header text-left">
|
||||
<h1 class="section-title">{{ page.intro.title }}</h1>
|
||||
<p class="section-description">{{ page.intro.description }}</p>
|
||||
|
||||
<h2>{{ page.intro.title2 }}</h2>
|
||||
|
||||
<p>{{ page.intro.text }}</p>
|
||||
|
||||
<p>{{ page.intro.text2 }}</p>
|
||||
</header>
|
||||
|
||||
<div class="grid grid--full grid-small--half grid--gutters">
|
||||
{% for feature in page.intro.features %}
|
||||
<div class="grid__col">
|
||||
<div class="feature">
|
||||
<svg class="feature__icon icon">
|
||||
<use xlink:href="/assets/img/sprite.svg#{{ feature.icon }}"></use>
|
||||
</svg>
|
||||
<div class="feature__detail">
|
||||
<h1 class="feature__title">{{ feature.title }}</h1>
|
||||
<p class="feature__text">{{ feature.description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section section--servicestestimonial">
|
||||
<div class="row">
|
||||
|
||||
<figure class="testimonial">
|
||||
<blockquote class="testimonial__quote">{{ site.data.testimonials.set4[0].quote }}</blockquote>
|
||||
|
||||
<figcaption class="testimonial__caption">
|
||||
<img class="testimonial__avatar" src="/assets/img/{{ site.data.testimonials.set4[0].image }}">
|
||||
<cite class="testimonial__cite">
|
||||
<span class="testimonial__name">{{ site.data.testimonials.set4[0].name }}</span>
|
||||
<span class="testimonial__org">{{ site.data.testimonials.set4[0].org }}</span>
|
||||
</cite>
|
||||
</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section section--servicescontact background--blue" id="contact">
|
||||
<div class="row">
|
||||
<header class="section-header">
|
||||
<h1 class="section-title">{{ page.contact.title }}</h1>
|
||||
<p class="section-description">{{ page.contact.description }}</p>
|
||||
</header>
|
||||
|
||||
{% include form-services.html %}
|
||||
|
||||
</div>
|
||||
</section>
|
@ -4,12 +4,9 @@ We have multiple forms collecting and processing data throughout the whole site
|
||||
|
||||
Form | Actions
|
||||
------------ |-------------
|
||||
`/newsletter` | send data to MailChimp and subscribe to newsletter list (double opt-in)
|
||||
`/contact` | send data to CC emails, Slack message
|
||||
`/services` | send data to CC emails, Slack message, add new row to Google Sheets
|
||||
`/cla` | 2 different forms, send data to CC emails
|
||||
|
||||
Initial form sending, except for newsletter, is handled via formspree.io with a Gold account. As form submissions arrive there, Formspree sends out the received data to the email addresses setup as CC in [our site config](../_config.yml).
|
||||
Initial form sending is handled via formspree.io with a Gold account. As form submissions arrive there, Formspree sends out the received data to the email addresses setup as CC in [our site config](../_config.yml).
|
||||
|
||||
Submissions are processed further like so:
|
||||
|
||||
@ -18,7 +15,3 @@ _Formspree -> Zapier Email Parser -> Zapier -> Slack & Google Sheets_
|
||||
The Zapier email parser is a special mailbox provided by Zapier which receives form submissions from Formspree, parses the content of those emails and extracts data fields out of it. The parser as a source then provides the structured data to our Zapier tasks.
|
||||
|
||||
The Slack message never contains personally identifiable information. Name and email are not transmitted.
|
||||
|
||||
## Newsletter
|
||||
|
||||
Newsletter submissions are sent directly to MailChimp via their undocumented `jsonp` functionality, NOT the MailChimp API. We use a local copy of [ajaxChimp](https://github.com/scdoshi/jquery-ajaxchimp) to send the data. Library is old and jQuery but it just works across a wide range of browsers, even older ones.
|
||||
|
@ -6,7 +6,6 @@ const $ = require('gulp-load-plugins')()
|
||||
// manually import modules that won't get picked up by gulp-load-plugins
|
||||
import { src, dest, watch, parallel, series } from 'gulp'
|
||||
import del from 'del'
|
||||
import parallelize from 'concurrent-transform'
|
||||
import browser from 'browser-sync'
|
||||
import critical from 'critical'
|
||||
import fs from 'fs'
|
||||
@ -230,7 +229,7 @@ export const svg = () => src(SRC + '/_assets/images/*.svg')
|
||||
export const images = () => src(SRC + '/_assets/images/**/*')
|
||||
.pipe($.if(isProduction || isStaging, $.imagemin([
|
||||
$.imagemin.gifsicle({ interlaced: true }),
|
||||
$.imagemin.jpegtran({ progressive: true }),
|
||||
$.imagemin.mozjpeg({ progressive: true }),
|
||||
$.imagemin.optipng({ optimizationLevel: 5 }),
|
||||
$.imagemin.svgo({plugins: [{ removeViewBox: true }]})
|
||||
])))
|
||||
|
15696
package-lock.json
generated
Normal file
15696
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
69
package.json
69
package.json
@ -12,6 +12,9 @@
|
||||
"scripts": {
|
||||
"start": "gulp",
|
||||
"build": "gulp build --production",
|
||||
"build:staging": "gulp build --staging",
|
||||
"deploy": "gulp deploy --live",
|
||||
"deploy:staging": "gulp deploy --beta",
|
||||
"test": "stylelint _src/_assets/styles/**/*.scss"
|
||||
},
|
||||
"browserslist": [
|
||||
@ -24,59 +27,55 @@
|
||||
"ie >= 11"
|
||||
],
|
||||
"dependencies": {
|
||||
"bigchaindb-driver": "4.1.0",
|
||||
"bootstrap": "^4.3.1",
|
||||
"bigchaindb-driver": "4.1.2",
|
||||
"bootstrap": "^4.5.0",
|
||||
"clipboard": "^2.0.1",
|
||||
"cookies-eu-banner": "^1.2.14",
|
||||
"gumshoejs": "5.1.1",
|
||||
"cookies-eu-banner": "^2.0.1",
|
||||
"gumshoejs": "^5.1.2",
|
||||
"is-in-viewport": "^3.0.4",
|
||||
"jquery": "^3.4.1",
|
||||
"jquery": "^3.5.1",
|
||||
"normalize-opentype.css": "^0.2.4",
|
||||
"normalize-scss": "^7.0.1",
|
||||
"parsleyjs": "^2.9.1",
|
||||
"popper.js": "^1.15.0",
|
||||
"select2": "^4.0.7",
|
||||
"smooth-scroll": "^16.0.0",
|
||||
"svg4everybody": "^2.1.9",
|
||||
"parsleyjs": "^2.9.2",
|
||||
"popper.js": "^1.16.1",
|
||||
"select2": "^4.0.13",
|
||||
"smooth-scroll": "^16.1.3",
|
||||
"textarea-autogrow": "^1.0.0",
|
||||
"vivus": "^0.4.4"
|
||||
"vivus": "^0.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.4.4",
|
||||
"@babel/preset-env": "^7.4.4",
|
||||
"@babel/register": "^7.4.4",
|
||||
"acorn": "^6.1.1",
|
||||
"browser-sync": "^2.26.5",
|
||||
"concurrent-transform": "^1.0.0",
|
||||
"critical": "^1.3.4",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"del": "^4.0.0",
|
||||
"@babel/core": "^7.9.6",
|
||||
"@babel/preset-env": "^7.9.6",
|
||||
"@babel/register": "^7.9.0",
|
||||
"browser-sync": "^2.26.7",
|
||||
"critical": "^1.3.9",
|
||||
"del": "^5.1.0",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-autoprefixer": "^6.1.0",
|
||||
"gulp-clean-css": "^4.2.0",
|
||||
"gulp-cli": "^2.2.0",
|
||||
"gulp-autoprefixer": "^7.0.1",
|
||||
"gulp-clean-css": "^4.3.0",
|
||||
"gulp-cli": "^2.2.1",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-header": "^2.0.7",
|
||||
"gulp-header": "^2.0.9",
|
||||
"gulp-htmlmin": "^5.0.1",
|
||||
"gulp-if": "^2.0.2",
|
||||
"gulp-imagemin": "^5.0.3",
|
||||
"gulp-if": "^3.0.0",
|
||||
"gulp-imagemin": "^7.1.0",
|
||||
"gulp-include": "^2.4.1",
|
||||
"gulp-load-plugins": "^1.5.0",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-load-plugins": "^2.0.3",
|
||||
"gulp-rename": "^2.0.0",
|
||||
"gulp-replace": "^1.0.0",
|
||||
"gulp-rev": "^9.0.0",
|
||||
"gulp-rev-replace": "^0.4.4",
|
||||
"gulp-sass": "^4.0.1",
|
||||
"gulp-sass": "^4.1.0",
|
||||
"gulp-sourcemaps": "^2.6.5",
|
||||
"gulp-svg-sprite": "^1.4.0",
|
||||
"gulp-svg-sprite": "^1.5.0",
|
||||
"gulp-uglify": "^3.0.2",
|
||||
"gulp-util": "^3.0.8",
|
||||
"gulp-zip": "^4.2.0",
|
||||
"js-yaml": "^3.13.1",
|
||||
"request": "^2.88.0",
|
||||
"stylelint": "^10.0.0",
|
||||
"gulp-zip": "^5.0.1",
|
||||
"js-yaml": "^3.14.0",
|
||||
"request": "^2.88.2",
|
||||
"stylelint": "^13.5.0",
|
||||
"stylelint-config-bigchaindb": "^1.2.2",
|
||||
"stylelint-config-standard": "^18.3.0",
|
||||
"stylelint-config-standard": "^20.0.0",
|
||||
"uglify-es": "^3.3.9"
|
||||
},
|
||||
"engines": {
|
||||
|
Loading…
Reference in New Issue
Block a user