diff --git a/.bowerrc b/.bowerrc
deleted file mode 100644
index aa9fbc0..0000000
--- a/.bowerrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "scripts": {
- "postinstall": "./bower_components/evolution-wordpress/lib/yeoman/bin/postinstall"
- }
-}
diff --git a/.gitignore b/.gitignore
index 98a7083..cca05db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,6 +53,7 @@ bower_components
node_modules
backups
web/wp
+lib/ansible/roles
# Generated file, don't edit above this line
diff --git a/Capfile b/Capfile
index 4cb8537..2ed26e1 100644
--- a/Capfile
+++ b/Capfile
@@ -25,7 +25,7 @@ require 'capistrano/deploy'
# require 'capistrano/rails/migrations'
# Load Evolution WordPress' tasks
-load File.expand_path(File.dirname(__FILE__)) + '/bower_components/evolution-wordpress/lib/capistrano/bootstrap.rake'
+load File.expand_path(File.dirname(__FILE__)) + '/node_modules/evolution-wordpress/lib/capistrano/bootstrap.rake'
# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
diff --git a/README.md b/README.md
index d89f4e4..9e02998 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
[Example.com][example.com]
==========================
-> Powered by [Evolution WordPress][evolution-wordpress] *v1.3.6*
+> Powered by [Evolution WordPress][evolution-wordpress] *2.0.0-alpha*
[example.com]: http://example.com/
diff --git a/Vagrantfile b/Vagrantfile
index 1387875..ed0c594 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -1,3 +1,28 @@
+# Borrowed from: http://superuser.com/questions/701735/run-script-on-host-machine-during-vagrant-up#answer-992220
+module LocalCommand
+ class Config < Vagrant.plugin("2", :config)
+ attr_accessor :command
+ end
+
+ class Plugin < Vagrant.plugin("2")
+ name "local_shell"
+
+ config(:local_shell, :provisioner) do
+ Config
+ end
+
+ provisioner(:local_shell) do
+ Provisioner
+ end
+ end
+
+ class Provisioner < Vagrant.plugin("2", :provisioner)
+ def provision
+ result = system "#{config.command}"
+ end
+ end
+end
+
Vagrant.configure("2") do |config|
# Configuring the hostmanager to automatically alter the hosts file for development testing
config.hostmanager.enabled = true
@@ -48,8 +73,17 @@ Vagrant.configure("2") do |config|
# Remount the default shared folder as NFS for caching and speed
box.vm.synced_folder ".", "/vagrant", :nfs => true
+ # Remove any known hosts when (re)provisioning
+ box.vm.provision "ssh-cleanup", type: "local_shell", command: "(ssh-keygen -R local.example.com && ssh-keygen -R 192.168.137.137) || :"
+
# Provision local.example.com
box.vm.provision :ansible do |ansible|
+ galaxy_reqs = "lib/ansible/galaxy.yml"
+ if File.exists?(galaxy_reqs)
+ unless File.read(galaxy_reqs).strip.empty?
+ ansible.galaxy_role_file = galaxy_reqs
+ end
+ end
ansible.playbook = "lib/ansible/provision.yml"
ansible.inventory_path = "lib/ansible/hosts"
ansible.limit = "local"
diff --git a/ansible.cfg b/ansible.cfg
index f7f4326..ace461e 100644
--- a/ansible.cfg
+++ b/ansible.cfg
@@ -1,7 +1,9 @@
[defaults]
hostfile = ./lib/ansible/hosts
-private_key_file = ./lib/ansible/files/ssh/id_rsa
remote_user = deploy
-roles_path = ./bower_components/evolution-wordpress/lib/ansible/roles
-lookup_plugins = ./bower_components/evolution-wordpress/lib/ansible/lookup_plugins
+roles_path = ./node_modules/evolution-wordpress/lib/ansible/roles
+lookup_plugins = ./node_modules/evolution-wordpress/lib/ansible/lookup_plugins
+
+[ssh_connection]
+control_path = %(directory)s/%%h-%%p-%%r
diff --git a/bin/import b/bin/import
index 799e2c7..46af5ab 100644
--- a/bin/import
+++ b/bin/import
@@ -1,12 +1,10 @@
#!/usr/bin/env bash
-IMPORTER_PATH="$( dirname "$0" )/../bower_components/evolution-wordpress"
+IMPORTER_PATH="$( dirname "$0" )/../node_modules/evolution-wordpress"
IMPORTER_SCRIPT="$IMPORTER_PATH/bin/import"
chmod +x "$IMPORTER_SCRIPT"
-(cd "$IMPORTER_PATH"; npm install)
-
VAGRANT_STATUS=$(vagrant status)
if [[ "$VAGRANT_STATUS" == *"running ("* ]]; then
diff --git a/bower.json b/bower.json
index 05536d9..30cdb6b 100644
--- a/bower.json
+++ b/bower.json
@@ -3,7 +3,6 @@
"name": "Example.com",
"version": "1.0.0",
"dependencies": {
- "evolution-wordpress": "master",
- "wordpress": ""
+ "sharrre": "~1.3.5"
}
}
diff --git a/lib/ansible/galaxy.yml b/lib/ansible/galaxy.yml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/lib/ansible/galaxy.yml
@@ -0,0 +1 @@
+
diff --git a/lib/ansible/group_vars/all b/lib/ansible/group_vars/all
index cc4daf2..0a972d0 100644
--- a/lib/ansible/group_vars/all
+++ b/lib/ansible/group_vars/all
@@ -1,5 +1,6 @@
---
-evolve_version: 1.3.6
+evolve_version: 2.0.0-alpha
+wp_version: 4.6.1
domain: example.com
www: false
@@ -12,6 +13,8 @@ mysql:
password: example
host: 127.0.0.1
+
+
# php__memory_limit:
# apache__start_servers:
@@ -20,6 +23,10 @@ mysql:
# apache__max_clients:
# apache__max_requests_per_child:
+# wordpress__xmlrpc_allow: false
+# wordpress__xmlrpc_whitelist:
+# - "local"
+
mail__postmaster: no-reply@example.com
# iptables__ipv6: 0
diff --git a/lib/ansible/provision.yml b/lib/ansible/provision.yml
index 8485ec6..555b5ca 100644
--- a/lib/ansible/provision.yml
+++ b/lib/ansible/provision.yml
@@ -10,7 +10,7 @@
- apache # (Required) Web server (Soon: Nginx)
- mysql # (Required) Database server (Soon: Maria)
- php # (Required) PHP 5.3
- - node # (Required) Tools for deployment (e.g. `bower`)
+ - node # (Required) Tools for deployment + dependencies (e.g. `npm`)
- wp-cli # (Required) CLI for managing WordPress
# Optional Features
@@ -20,7 +20,7 @@
- varnish # (Optional) High-performance reverse-proxy cache
- mail # (Optional) Ability to send e-mails from the server (i.e. PHP)
- firewall # (Optional) Simple intrusion protection via Fail2ban + iptables
- - debug # (Optional) Tools to monitor processes & debug when on the server
+ - debug # (Optional) Tools to monitor processes & debug when on the server
- awstats # (Optional) HTTP log analyzer
# /Optional Features
diff --git a/lib/capistrano/deploy.rb b/lib/capistrano/deploy.rb
index a47bf0d..5290f3e 100644
--- a/lib/capistrano/deploy.rb
+++ b/lib/capistrano/deploy.rb
@@ -18,9 +18,19 @@
set :www, false
namespace :deploy do
+ after :updated, :npm_install do
+ on roles(:web) do
+ execute "cd #{release_path} && npm install --production"
+ end
+ end
after :updated, :bower_install do
on roles(:web) do
- execute "cd #{release_path} && bower install --config.interactive=false"
+ within release_path do
+ bower_exists = test "[ -f ./bower.json ]"
+ if bower_exists
+ execute "bower install"
+ end
+ end
end
end
after :finished, :launch_browser do
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b033333
--- /dev/null
+++ b/package.json
@@ -0,0 +1,13 @@
+{
+ "private": true,
+ "name": "Example.com",
+ "engines": {
+ "node": ">=4"
+ },
+ "dependencies": {
+ "evolution-wordpress": "evolution/wordpress#860f3ccbf622cee294a99c42cec842135d206a65"
+ },
+ "scripts": {
+ "postinstall": "node node_modules/evolution-wordpress/bin/postinstall"
+ }
+}
diff --git a/web/.htaccess b/web/.htaccess
index 3e0213d..7ec1293 100644
--- a/web/.htaccess
+++ b/web/.htaccess
@@ -50,11 +50,12 @@
# BEGIN WordPress
- RewriteEngine On
- RewriteBase /
- RewriteRule ^index\.php$ - [L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /index.php [L]
+RewriteEngine On
+RewriteBase /
+RewriteRule ^index\.php$ - [L]
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule . /index.php [L]
+
# END WordPress
diff --git a/web/wp-config.php b/web/wp-config.php
index 3ecb71a..8722b47 100644
--- a/web/wp-config.php
+++ b/web/wp-config.php
@@ -50,14 +50,14 @@
*
* @since 2.6.0
*/
-define('AUTH_KEY', '=MOZdcEMV>ym)j8HH$)Kb)/A!*?=ZgR8AVV~{ ]0ZI()]VM]VdS5nodRu=<+>L/)');
-define('SECURE_AUTH_KEY', 'G7[e25+Fo{d~j9]V)W7QG@,V/%oj1k0-n9RGD< ,y,`xRhv7v,7 ;#2-]Ac1(+hE');
-define('LOGGED_IN_KEY', 'utSi?=YJ:99X+xVa5hheh=0dKePuKfE|NCDg6[r@<5?bq1HV4ji|>+V0RE@F|~bB');
-define('NONCE_KEY', 'ljU;vQuq}~h7n~m+6(::.bt|aJDbl|nz`1Qb|yI-cxy L%x}O3,!0jd^#p-VB_#%lm=ykVaAdMYp~Vxm%kc_J');
-define('SECURE_AUTH_SALT', 'UD7q%6wf_{.EzdZpOCf-rhdH|H-)@M=j]H?Ivf!H^#(z!A;-kNHQ5nqoH{%!Xr)7');
-define('LOGGED_IN_SALT', '|T<6t-P-x*+;yn9|zov0|G<+C-EJx8_lj|x|`Y@UQslO(+kw;@X-afYrl0)5A%B<');
-define('NONCE_SALT', 'LfEe$C$,v0z,VjB/i-+*-2F_AE6e^3+eoL!:&Mu~B2X=+}.A%:W_h*cLOLz:t}kF');
+define('AUTH_KEY', 'nO:$6&)Zq6{r+?U|:G#$Mvc>,Nw_#Uqz,IIYw-I/4-&z:Cj+K+7k8aY.-8*<`I_V5I+gafv^`#z');
+define('LOGGED_IN_KEY', 'f^bu(nNumZ4}DfW8m?g3L0Do34+kQG|}y*ceA#F,aWUU9(0~V1[U/Nw4[]BMSnM$');
+define('NONCE_KEY', 'GRR3L|W(QCM8JcB|9b/Ty ejFO`6b-OqMb4!c#a(1Ct!}k#19A]I/w8OMNb!}D');
+define('AUTH_SALT', '#T<-h:?ZG)O^d2vmz7GeFV+TLIQ-70QB4^DXUaB#b|nrrsIby|FIW==6qU!-KV)f');
+define('SECURE_AUTH_SALT', ']=1uj0z|8ynW tO}W;~Kp_,X3Vp+s=c;cd');
+define('LOGGED_IN_SALT', 'k.bf{J|=+`qG8Pf&VDY{=moHiRglNB;?tQm7a;BVm Q*V++j6;AxTtj!5f*M[] {');
+define('NONCE_SALT', '#0Hrhrd:l][AE-%_a_m+&Q7%-V!=@vqKm');
/**#@-*/
diff --git a/web/wp-content/themes/twentyfifteen/css/editor-style.css b/web/wp-content/themes/twentyfifteen/css/editor-style.css
index 33db931..b3cdd0f 100644
--- a/web/wp-content/themes/twentyfifteen/css/editor-style.css
+++ b/web/wp-content/themes/twentyfifteen/css/editor-style.css
@@ -238,6 +238,11 @@ li > ol {
margin: 0 0 0 23px;
}
+blockquote > ul,
+blockquote > ol {
+ margin-left: 28px;
+}
+
dl {
margin: 0 0 28px;
}
diff --git a/web/wp-content/themes/twentyfifteen/functions.php b/web/wp-content/themes/twentyfifteen/functions.php
index e109a2b..056a361 100644
--- a/web/wp-content/themes/twentyfifteen/functions.php
+++ b/web/wp-content/themes/twentyfifteen/functions.php
@@ -55,11 +55,11 @@ function twentyfifteen_setup() {
/*
* Make theme available for translation.
- * Translations can be filed in the /languages/ directory.
+ * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfifteen
* If you're building a theme based on twentyfifteen, use a find and replace
* to change 'twentyfifteen' to the name of your theme in all the template files
*/
- load_theme_textdomain( 'twentyfifteen', get_template_directory() . '/languages' );
+ load_theme_textdomain( 'twentyfifteen' );
// Add default posts and comments RSS feed links to head.
add_theme_support( 'automatic-feed-links' );
@@ -103,6 +103,17 @@ function twentyfifteen_setup() {
'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat'
) );
+ /*
+ * Enable support for custom logo.
+ *
+ * @since Twenty Fifteen 1.5
+ */
+ add_theme_support( 'custom-logo', array(
+ 'height' => 248,
+ 'width' => 248,
+ 'flex-height' => true,
+ ) );
+
$color_scheme = twentyfifteen_get_color_scheme();
$default_color = trim( $color_scheme[0], '#' );
@@ -117,6 +128,9 @@ function twentyfifteen_setup() {
* specifically font, colors, icons, and column width.
*/
add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentyfifteen_fonts_url() ) );
+
+ // Indicate widget sidebars can use selective refresh in the Customizer.
+ add_theme_support( 'customize-selective-refresh-widgets' );
}
endif; // twentyfifteen_setup
add_action( 'after_setup_theme', 'twentyfifteen_setup' );
diff --git a/web/wp-content/themes/twentyfifteen/header.php b/web/wp-content/themes/twentyfifteen/header.php
index e415915..28de34e 100644
--- a/web/wp-content/themes/twentyfifteen/header.php
+++ b/web/wp-content/themes/twentyfifteen/header.php
@@ -29,6 +29,8 @@