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 @@