From b76f90fbc47743941eccad14947a97c475082713 Mon Sep 17 00:00:00 2001 From: "Barry vd. Heuvel" Date: Mon, 27 Feb 2017 18:11:58 +0100 Subject: [PATCH 1/2] Initial test of snippet --- package.json | 6 +- resources/assets/js/app.js | 41 ++ resources/assets/sass/_yoast.scss | 976 ++++++++++++++++++++++++++++++ resources/assets/sass/app.scss | 1 + resources/views/app.blade.php | 1 + resources/views/snippet.blade.php | 63 ++ routes/web.php | 29 + 7 files changed, 1116 insertions(+), 1 deletion(-) create mode 100644 resources/assets/sass/_yoast.scss create mode 100644 resources/views/snippet.blade.php diff --git a/package.json b/package.json index d52996f..6e0c5f0 100644 --- a/package.json +++ b/package.json @@ -26,5 +26,9 @@ "slugify": "^1.0.2", "vue": "^2.0.1" }, - "dependencies": {} + "dependencies": { + "install": "^0.8.7", + "npm": "^4.3.0", + "yoastseo": "git+https://github.com/Yoast/YoastSEO.js.git#develop" + } } diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 7df2a29..790ae96 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -13,3 +13,44 @@ new Vue({ el: '#app', render: h => h(require('./app.vue')) }) + +window.SnippetPreview = require( "yoastseo" ).SnippetPreview; +var Yoast = require( "yoastseo" ).App; + +window.doYoast = function() { + var focusKeywordField = document.getElementById( "focusKeyword" ); + var contentField = document.getElementById( "content" ); + var titleField = document.getElementById( "title" ); + var metaDescField = document.getElementById( "metaDesc" ); + var urlPathField = document.getElementById( "urlPath" ); + var baseUrlField = document.getElementById( "baseUrl" ); + + var snippetPreview = new SnippetPreview({ + targetElement: document.getElementById( "snippet" ), + data: { + title: titleField.value, + metaDesc: metaDescField.value, + urlPath: urlPathField.value + }, + baseURL: baseUrlField.value + }); + + var yoast = new Yoast({ + snippetPreview: snippetPreview, + targets: { + output: "output" + }, + callbacks: { + getData: function() { + return { + keyword: focusKeywordField.value, + text: contentField.value, + + }; + } + } + }); + + yoast.refresh(); + +}; diff --git a/resources/assets/sass/_yoast.scss b/resources/assets/sass/_yoast.scss new file mode 100644 index 0000000..dac7297 --- /dev/null +++ b/resources/assets/sass/_yoast.scss @@ -0,0 +1,976 @@ +.yoast-section { + width: auto; + max-width: 640px; +} + +/* css for snippet */ + +.snippet_container:before, +.snippet_container:after { + content: ' '; + display: table; +} + +.snippet_container:after { + clear: both; +} + +.snippet-editor__view { + clear: both; +} + +.snippet-editor__view-toggle { + display: inline-block; + /* Contain floated children and margins do not collapse. */ + background-color: #f7f7f7; + border: 1px solid #dbdbdb; + border-radius: 4px; + margin-top: 10px; + vertical-align: top; +} + +.snippet-editor__view-icon { + /* To match the Edit snippet button height. */ + width: 31px; + height: 31px; + float: left; + cursor: pointer; + background-color: transparent; + background-repeat: no-repeat; + background-position: center, center; + border: none; + border-bottom: 4px solid transparent; + outline: none; + /* Reset native outline especially on webkit on Macs. */ +} + +.snippet-editor__view-icon:hover, +.snippet-editor__view-icon:focus { + background-color: #ffffff; + border-color: #1074a8; + -webkit-transition: .15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out; + transition: .15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out; +} + +.snippet-editor__view-icon--active { + border-color: #555555; + -webkit-transition: .15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out; + transition: .15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out; +} + +.snippet-editor__view-icon.yoast-tooltip:before { + bottom: -10px; +} + +.snippet-editor__view-icon.yoast-tooltip:after { + margin-top: 10px; +} + +.snippet-editor__view-icon-desktop { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M1728%20992v%2D832q0%2D13%2D9%2E5%2D22%2E5t%2D22%2E5%2D9%2E5h%2D1600q%2D13%200%2D22%2E5%209%2E5t%2D9%2E5%2022%2E5v832q0%2013%209%2E5%2022%2E5t22%2E5%209%2E5h1600q13%200%2022%2E5%2D9%2E5t9%2E5%2D22%2E5zm128%2D832v1088q0%2066%2D47%20113t%2D113%2047h%2D544q0%2037%2016%2077%2E5t32%2071%2016%2043%2E5q0%2026%2D19%2045t%2D45%2019h%2D512q%2D26%200%2D45%2D19t%2D19%2D45q0%2D14%2016%2D44t32%2D70%2016%2D78h%2D544q%2D66%200%2D113%2D47t%2D47%2D113v%2D1088q0%2D66%2047%2D113t113%2D47h1600q66%200%20113%2047t47%20113z%22%2F%3E%3C%2Fsvg%3E"); + background-size: 18px; +} + +.snippet-editor__view-icon-desktop:hover, +.snippet-editor__view-icon-desktop:focus { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%231074a8%22%20d%3D%22M1728%20992v%2D832q0%2D13%2D9%2E5%2D22%2E5t%2D22%2E5%2D9%2E5h%2D1600q%2D13%200%2D22%2E5%209%2E5t%2D9%2E5%2022%2E5v832q0%2013%209%2E5%2022%2E5t22%2E5%209%2E5h1600q13%200%2022%2E5%2D9%2E5t9%2E5%2D22%2E5zm128%2D832v1088q0%2066%2D47%20113t%2D113%2047h%2D544q0%2037%2016%2077%2E5t32%2071%2016%2043%2E5q0%2026%2D19%2045t%2D45%2019h%2D512q%2D26%200%2D45%2D19t%2D19%2D45q0%2D14%2016%2D44t32%2D70%2016%2D78h%2D544q%2D66%200%2D113%2D47t%2D47%2D113v%2D1088q0%2D66%2047%2D113t113%2D47h1600q66%200%20113%2047t47%20113z%22%2F%3E%3C%2Fsvg%3E"); +} + +.snippet-editor__view-icon-mobile { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M976%201408q0%2D33%2D23%2E5%2D56%2E5t%2D56%2E5%2D23%2E5%2D56%2E5%2023%2E5%2D23%2E5%2056%2E5%2023%2E5%2056%2E5%2056%2E5%2023%2E5%2056%2E5%2D23%2E5%2023%2E5%2D56%2E5zm208%2D160v%2D704q0%2D13%2D9%2E5%2D22%2E5t%2D22%2E5%2D9%2E5h%2D512q%2D13%200%2D22%2E5%209%2E5t%2D9%2E5%2022%2E5v704q0%2013%209%2E5%2022%2E5t22%2E5%209%2E5h512q13%200%2022%2E5%2D9%2E5t9%2E5%2D22%2E5zm%2D192%2D848q0%2D16%2D16%2D16h%2D160q%2D16%200%2D16%2016t16%2016h160q16%200%2016%2D16zm288%2D16v1024q0%2052%2D38%2090t%2D90%2038h%2D512q%2D52%200%2D90%2D38t%2D38%2D90v%2D1024q0%2D52%2038%2D90t90%2D38h512q52%200%2090%2038t38%2090z%22%2F%3E%3C%2Fsvg%3E"); + background-size: 22px; +} + +.snippet-editor__view-icon-mobile:hover, +.snippet-editor__view-icon-mobile:focus { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%231074a8%22%20d%3D%22M976%201408q0%2D33%2D23%2E5%2D56%2E5t%2D56%2E5%2D23%2E5%2D56%2E5%2023%2E5%2D23%2E5%2056%2E5%2023%2E5%2056%2E5%2056%2E5%2023%2E5%2056%2E5%2D23%2E5%2023%2E5%2D56%2E5zm208%2D160v%2D704q0%2D13%2D9%2E5%2D22%2E5t%2D22%2E5%2D9%2E5h%2D512q%2D13%200%2D22%2E5%209%2E5t%2D9%2E5%2022%2E5v704q0%2013%209%2E5%2022%2E5t22%2E5%209%2E5h512q13%200%2022%2E5%2D9%2E5t9%2E5%2D22%2E5zm%2D192%2D848q0%2D16%2D16%2D16h%2D160q%2D16%200%2D16%2016t16%2016h160q16%200%2016%2D16zm288%2D16v1024q0%2052%2D38%2090t%2D90%2038h%2D512q%2D52%200%2D90%2D38t%2D38%2D90v%2D1024q0%2D52%2038%2D90t90%2D38h512q52%200%2090%2038t38%2090z%22%2F%3E%3C%2Fsvg%3E"); +} + +.snippet-editor__view--desktop { + width: 600px; + background: #FFF; +} + +.snippet-editor__view--desktop .snippet_container__title { + width: 600px; +} + +.snippet-editor__view--desktop .snippet_container__title .title { + white-space: nowrap; +} + +.snippet-editor__view--mobile { + background-color: #fff; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + border-radius: 2px; + border-bottom: 1px hidden #fff; + margin: 0 0 10px 0; + padding: 13px 0; +} + +.snippet-editor__view--mobile .snippet_container { + display: block; + line-height: 20px; +} + +.snippet-editor__view--mobile .snippet_container__title, +.snippet-editor__view--mobile .snippet_container__url, +.snippet-editor__view--mobile .snippet_container__meta { + width: 100%; + box-sizing: border-box; +} + +.snippet-editor__view--mobile .snippet_container__title { + font-size: 16px; + padding: 0 16px; + word-wrap: break-word; +} + +.snippet-editor__view--mobile .snippet_container__title .title { + font-size: 16px; +} + +.snippet-editor__view--mobile .snippet_container__url { + border-bottom: 1px solid #ebebeb; + padding: 0 16px 11px; + margin-bottom: 13px; + font-size: 14px; + box-sizing: border-box; + white-space: nowrap; +} + +.snippet-editor__view--mobile .snippet_container__meta { + font-size: 14px; + padding: 0 16px; +} + +.snippet-editor__container { + position: relative; + cursor: pointer; +} + +.snippet-editor__heading { + padding: 8px 20px; + font-size: 0.9rem; + margin: 0 -20px 15px; + font-family: "Open Sans", sans-serif; + font-weight: 300; + color: #555555; +} + +.snippet-editor__heading-editor { + border-top: 1px solid #f7f7f7; +} + +.snippet-editor__heading-icon { + background-repeat: no-repeat; + /* rtlcss needs this as separate property */ + background-position: left 20px top 0.6em; + background-size: 16px; + padding-left: 45px; +} + +.snippet-editor__heading-icon-eye { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M1664%20960q%2D152%2D236%2D381%2D353%2061%20104%2061%20225%200%20185%2D131%2E5%20316%2E5t%2D316%2E5%20131%2E5%2D316%2E5%2D131%2E5%2D131%2E5%2D316%2E5q0%2D121%2061%2D225%2D229%20117%2D381%20353%20133%20205%20333%2E5%20326%2E5t434%2E5%20121%2E5%20434%2E5%2D121%2E5%20333%2E5%2D326%2E5zm%2D720%2D384q0%2D20%2D14%2D34t%2D34%2D14q%2D125%200%2D214%2E5%2089%2E5t%2D89%2E5%20214%2E5q0%2020%2014%2034t34%2014%2034%2D14%2014%2D34q0%2D86%2061%2D147t147%2D61q20%200%2034%2D14t14%2D34zm848%20384q0%2034%2D20%2069%2D140%20230%2D376%2E5%20368%2E5t%2D499%2E5%20138%2E5%2D499%2E5%2D139%2D376%2E5%2D368q%2D20%2D35%2D20%2D69t20%2D69q140%2D229%20376%2E5%2D368t499%2E5%2D139%20499%2E5%20139%20376%2E5%20368q20%2035%2020%2069z%22%20%2F%3E%3C%2Fsvg%3E"); +} + +.snippet-editor__container:hover:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23bfbfbf%22%20d%3D%22M1152%20896q0%2026%2D19%2045l%2D448%20448q%2D19%2019%2D45%2019t%2D45%2D19%2D19%2D45v%2D896q0%2D26%2019%2D45t45%2D19%2045%2019l448%20448q19%2019%2019%2045z%22%20%2F%3E%3C%2Fsvg%3E"); + position: absolute; + content: ''; + top: -3px; + left: -22px; + display: block; + width: 24px; + height: 24px; + background-size: 25px; +} + +.snippet-editor__container--focus:hover:before, +.snippet-editor__container--focus:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M1152%20896q0%2026%2D19%2045l%2D448%20448q%2D19%2019%2D45%2019t%2D45%2D19%2D19%2D45v%2D896q0%2D26%2019%2D45t45%2D19%2045%2019l448%20448q19%2019%2019%2045z%22%20%2F%3E%3C%2Fsvg%3E"); + position: absolute; + content: ''; + top: -3px; + left: -22px; + display: block; + width: 24px; + height: 24px; + background-size: 25px; +} + +.snippet-editor__preview { + padding: 0 20px 15px; + max-width: 640px; +} + +.snippet-editor__button { + background: #f7f7f7; + border: 1px solid #dbdbdb; + border-radius: 4px; + color: #555555; + padding: 8px 10px; + cursor: pointer; + font-size: 0.8rem; + line-height: 15px; + /* Avoid browsers rounding that affect the button's height (Firefox computed value would be 15.4333px otherwise). */ +} + +.snippet-editor__edit-button { + background: #f7f7f7 url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M491%201536l91%2D91%2D235%2D235%2D91%2091v107h128v128h107zm523%2D928q0%2D22%2D22%2D22%2D10%200%2D17%207l%2D542%20542q%2D7%207%2D7%2017%200%2022%2022%2022%2010%200%2017%2D7l542%2D542q7%2D7%207%2D17zm%2D54%2D192l416%20416%2D832%20832h%2D416v%2D416zm683%2096q0%2053%2D37%2090l%2D166%20166%2D416%2D416%20166%2D165q36%2D38%2090%2D38%2053%200%2091%2038l235%20234q37%2039%2037%2091z%22%20%2F%3E%3C%2Fsvg%3E") no-repeat; + /* rtlcss needs this as separate property */ + background-position: left 8px top 50%; + background-size: 16px; + padding-left: 32px; + display: inline-block; + /* Margins do not collapse. */ + box-sizing: border-box; + margin-top: 10px; +} + +.snippet-editor__form { + padding: 20px; +} + +.snippet-editor__label { + display: block; + width: 100%; + margin-top: 1em; + position: relative; +} + +.snippet-editor__label:first-child { + margin-top: 0; +} + +.snippet-editor__label--hover:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23bfbfbf%22%20d%3D%22M1152%20896q0%2026%2D19%2045l%2D448%20448q%2D19%2019%2D45%2019t%2D45%2D19%2D19%2D45v%2D896q0%2D26%2019%2D45t45%2D19%2045%2019l448%20448q19%2019%2019%2045z%22%20%2F%3E%3C%2Fsvg%3E"); + position: absolute; + content: ''; + top: -3px; + left: -22px; + display: block; + width: 24px; + height: 24px; + background-size: 25px; + top: 20px; +} + +.snippet-editor__label--focus:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%231074a8%22%20d%3D%22M1152%20896q0%2026%2D19%2045l%2D448%20448q%2D19%2019%2D45%2019t%2D45%2D19%2D19%2D45v%2D896q0%2D26%2019%2D45t45%2D19%2045%2019l448%20448q19%2019%2019%2045z%22%20%2F%3E%3C%2Fsvg%3E"); + position: absolute; + content: ''; + top: -3px; + left: -22px; + display: block; + width: 24px; + height: 24px; + background-size: 25px; + top: 20px; +} + +.snippet-editor__input { + display: block; + width: 100%; + margin-top: 5px; + border: 1px solid #bfbfbf; + max-width: 100%; + box-sizing: border-box; +} + +.snippet-editor__input:focus { + border: 1px solid #1074a8; + outline: none; +} + +/* Swap icons for RTL. */ + +.rtl .snippet-editor__container:hover:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23bfbfbf%22%20d%3D%22M1216%20448v896q0%2026%2D19%2045t%2D45%2019%2D45%2D19l%2D448%2D448q%2D19%2D19%2D19%2D45t19%2D45l448%2D448q19%2D19%2045%2D19t45%2019%2019%2045z%22%2F%3E%3C%2Fsvg%3E"); +} + +.rtl .snippet-editor__container--focus:hover:before, +.rtl .snippet-editor__container--focus:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M1216%20448v896q0%2026%2D19%2045t%2D45%2019%2D45%2D19l%2D448%2D448q%2D19%2D19%2D19%2D45t19%2D45l448%2D448q19%2D19%2045%2D19t45%2019%2019%2045z%22%2F%3E%3C%2Fsvg%3E"); +} + +.rtl .snippet-editor__label--hover:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23bfbfbf%22%20d%3D%22M1216%20448v896q0%2026%2D19%2045t%2D45%2019%2D45%2D19l%2D448%2D448q%2D19%2D19%2D19%2D45t19%2D45l448%2D448q19%2D19%2045%2D19t45%2019%2019%2045z%22%2F%3E%3C%2Fsvg%3E"); +} + +.rtl .snippet-editor__label--focus:before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%231074a8%22%20d%3D%22M1216%20448v896q0%2026%2D19%2045t%2D45%2019%2D45%2D19l%2D448%2D448q%2D19%2D19%2D19%2D45t19%2D45l448%2D448q19%2D19%2045%2D19t45%2019%2019%2045z%22%2F%3E%3C%2Fsvg%3E"); +} + +.snippet-editor__meta-description { + height: 70px; +} + +.snippet-editor__submit { + margin-top: 1em; +} + +#snippet_cite { + min-width: 20px; +} + +#meta_container { + clear: both; + min-height: 20px; +} + +.snippet_container .title { + color: #1e0fbe; + display: block; + overflow: hidden; + text-overflow: ellipsis; + text-decoration: none; + font-size: 18px; + line-height: 1.2; + font-weight: normal; + margin: 0; +} + +.snippet_container .url, +.snippet_container .desc { + font-size: 13px; + line-height: 1.4; +} + +.snippet_container .url { + display: inline-block; + font-size: 14px; + line-height: 16px; + color: #006621; + font-style: normal; + float: left; +} + +.snippet_container .url strong { + font-weight: 700; +} + +.snippet_container .down_arrow { + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid #006621; + margin-top: 6px; + margin-left: 5px; + float: left; +} + +.snippet_container .desc-default { + color: #545454; +} + +.snippet_container .desc-default strong { + color: #6a6a6a; + font-weight: 700; +} + +.snippet_container .desc-render { + color: #777; +} + +.snippet_container .tooLong { + color: #f00 !important; +} + +.snippet-editor__field--invalid { + color: #f00; +} + +.snippet-editor__progress { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + box-sizing: border-box; + display: block; + margin-top: 5px; + height: 8px; + width: 100%; +} + +.snippet-editor__progress::-webkit-progress-bar { + background-color: #f7f7f7; + height: 8px; + border: 1px solid #bfbfbf; +} + +.snippet-editor__progress--fallback { + background-color: #f7f7f7; + height: 8px; + border: 1px solid #bfbfbf; +} + +.snippet-editor__progress-bar { + width: 0; + height: 100%; + max-width: 100%; +} + +.snippet-editor__date { + color: #808080; + font-size: 13px; + line-height: 1.4; +} + +.snippet-editor--hidden { + display: none; +} + +.yoast-measurement-elements-holder { + position: absolute; + left: -9999em; +} + +.snippet-editor__progress--bad[value] { + color: #dc3232; +} + +.snippet-editor__progress--bad[value]::-webkit-progress-value { + background-color: #dc3232; + -webkit-transition: width 250ms; + transition: width 250ms; +} + +.snippet-editor__progress--bad[value]::-moz-progress-bar { + background-color: #dc3232; +} + +.snippet-editor__progress--bad[value] .snippet-editor__progress-bar { + background-color: #dc3232; +} + +.snippet-editor__progress--ok[value] { + color: #ee7c1b; +} + +.snippet-editor__progress--ok[value]::-webkit-progress-value { + background-color: #ee7c1b; + -webkit-transition: width 250ms; + transition: width 250ms; +} + +.snippet-editor__progress--ok[value]::-moz-progress-bar { + background-color: #ee7c1b; +} + +.snippet-editor__progress--ok[value] .snippet-editor__progress-bar { + background-color: #ee7c1b; +} + +.snippet-editor__progress--good[value] { + color: #7ad03a; +} + +.snippet-editor__progress--good[value]::-webkit-progress-value { + background-color: #7ad03a; + -webkit-transition: width 250ms; + transition: width 250ms; +} + +.snippet-editor__progress--good[value]::-moz-progress-bar { + background-color: #7ad03a; +} + +.snippet-editor__progress--good[value] .snippet-editor__progress-bar { + background-color: #7ad03a; +} + +/* css for analyzer */ + +.wpseoanalysis { + padding-right: 0px; +} + +.wpseo-score-text { + float: left; + width: 86%; + /* make room for score and mark icons, consider to use a better layout model */ + width: calc( 100% - 56px); +} + +/* needs higher specificity than other score icons */ + +.assessment-results .wpseo-score-icon { + float: left; + width: 12px; + height: 12px; + margin: 3px 10px 0 0; + border-radius: 50%; + background: #888; +} + +.wpseo-score-icon.good { + background-color: #7ad03a; +} + +.wpseo-score-icon.ok { + background-color: #ee7c1b; +} + +.wpseo-score-icon.bad { + background-color: #dc3232; +} + +.wpseo-score-icon.na { + background-color: #999; +} + +.wpseo-score-icon.noindex { + background-color: #1e8cbe; +} + +li.score { + list-style-type: none !important; + margin-bottom: 6px; +} + +li.score:after { + content: ""; + display: table; + clear: both; +} + +.screen-reader-text { + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; +} + +.assessment-results { + clear: both; +} + +.assessment-results__mark.icon-eye-inactive, +.assessment-results__mark.icon-eye-active, +.assessment-results__mark.icon-eye-disabled { + float: left; + border: 0; + width: 28px; + height: 28px; + margin: -5px 3px 0 3px; + padding: 4px; + border-radius: 100%; + outline: none; + background: no-repeat center; + background-size: 16px; + cursor: pointer; +} + +.assessment-results__mark.icon-eye-inactive { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23555555%22%20d%3D%22M1664%20960q%2D152%2D236%2D381%2D353%2061%20104%2061%20225%200%20185%2D131%2E5%20316%2E5t%2D316%2E5%20131%2E5%2D316%2E5%2D131%2E5%2D131%2E5%2D316%2E5q0%2D121%2061%2D225%2D229%20117%2D381%20353%20133%20205%20333%2E5%20326%2E5t434%2E5%20121%2E5%20434%2E5%2D121%2E5%20333%2E5%2D326%2E5zm%2D720%2D384q0%2D20%2D14%2D34t%2D34%2D14q%2D125%200%2D214%2E5%2089%2E5t%2D89%2E5%20214%2E5q0%2020%2014%2034t34%2014%2034%2D14%2014%2D34q0%2D86%2061%2D147t147%2D61q20%200%2034%2D14t14%2D34zm848%20384q0%2034%2D20%2069%2D140%20230%2D376%2E5%20368%2E5t%2D499%2E5%20138%2E5%2D499%2E5%2D139%2D376%2E5%2D368q%2D20%2D35%2D20%2D69t20%2D69q140%2D229%20376%2E5%2D368t499%2E5%2D139%20499%2E5%20139%20376%2E5%20368q20%2035%2020%2069z%22%20%2F%3E%3C%2Fsvg%3E"); +} + +.assessment-results__mark.icon-eye-active { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M1664%20960q%2D152%2D236%2D381%2D353%2061%20104%2061%20225%200%20185%2D131%2E5%20316%2E5t%2D316%2E5%20131%2E5%2D316%2E5%2D131%2E5%2D131%2E5%2D316%2E5q0%2D121%2061%2D225%2D229%20117%2D381%20353%20133%20205%20333%2E5%20326%2E5t434%2E5%20121%2E5%20434%2E5%2D121%2E5%20333%2E5%2D326%2E5zm%2D720%2D384q0%2D20%2D14%2D34t%2D34%2D14q%2D125%200%2D214%2E5%2089%2E5t%2D89%2E5%20214%2E5q0%2020%2014%2034t34%2014%2034%2D14%2014%2D34q0%2D86%2061%2D147t147%2D61q20%200%2034%2D14t14%2D34zm848%20384q0%2034%2D20%2069%2D140%20230%2D376%2E5%20368%2E5t%2D499%2E5%20138%2E5%2D499%2E5%2D139%2D376%2E5%2D368q%2D20%2D35%2D20%2D69t20%2D69q140%2D229%20376%2E5%2D368t499%2E5%2D139%20499%2E5%20139%20376%2E5%20368q20%2035%2020%2069z%22%20%2F%3E%3C%2Fsvg%3E"); + background-color: #a4286a; +} + +.assessment-results__mark.icon-eye-disabled { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221792%22%20height%3D%221792%22%20viewBox%3D%220%200%201792%201792%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23e6e6e6%22%20d%3D%22M1664%20960q%2D152%2D236%2D381%2D353%2061%20104%2061%20225%200%20185%2D131%2E5%20316%2E5t%2D316%2E5%20131%2E5%2D316%2E5%2D131%2E5%2D131%2E5%2D316%2E5q0%2D121%2061%2D225%2D229%20117%2D381%20353%20133%20205%20333%2E5%20326%2E5t434%2E5%20121%2E5%20434%2E5%2D121%2E5%20333%2E5%2D326%2E5zm%2D720%2D384q0%2D20%2D14%2D34t%2D34%2D14q%2D125%200%2D214%2E5%2089%2E5t%2D89%2E5%20214%2E5q0%2020%2014%2034t34%2014%2034%2D14%2014%2D34q0%2D86%2061%2D147t147%2D61q20%200%2034%2D14t14%2D34zm848%20384q0%2034%2D20%2069%2D140%20230%2D376%2E5%20368%2E5t%2D499%2E5%20138%2E5%2D499%2E5%2D139%2D376%2E5%2D368q%2D20%2D35%2D20%2D69t20%2D69q140%2D229%20376%2E5%2D368t499%2E5%2D139%20499%2E5%20139%20376%2E5%20368q20%2035%2020%2069z%22%20%2F%3E%3C%2Fsvg%3E"); +} + +.assessment-results__mark:focus { + border-radius: 100%; + box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); +} + +.assessment-results__mark-container { + display: inline-block; + float: right; + width: 33px; + min-height: 1px; +} + +/* loading dialog */ + +.YoastSEO_msg .right, +.YoastSEO_msg .left { + display: none; +} + +@-webkit-keyframes animatedBackground { + from { + background-position: 0 0; + } + + to { + background-position: 100% 0; + } +} + +@keyframes animatedBackground { + from { + background-position: 0 0; + } + + to { + background-position: 100% 0; + } +} + +.YoastSEO_msg .bufferbar { + display: block; + width: 100%; + height: 12px; + /*multiple background definitions for the sake of browsercompatibility*/ + background-image: -webkit-linear-gradient(right, #ffffff, #0063ff, #ffffff, #0063ff); + background-image: linear-gradient(to left, #ffffff, #0063ff, #ffffff, #0063ff); + background-size: 300% 100%; + background-position: 0px 0px; + margin: 10px 0 10px 0; + border: 1px solid #dfdfdf; + -webkit-animation: animatedBackground 5s linear infinite; + animation: animatedBackground 5s linear infinite; +} + +.yoast-tooltip { + position: relative; +} + +button.yoast-tooltip { + /* IE 11 needs overflow: visible on buttons. */ + overflow: visible; +} + +.yoast-tooltip::after { + display: none; + position: absolute; + z-index: 1000000; + padding: 5px 8px; + border-radius: 3px; + opacity: 0; + color: #fff; + background: rgba(0, 0, 0, 0.8); + text-shadow: none; + font: normal normal 11px/1.5 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + text-align: center; + white-space: pre; + text-decoration: none; + letter-spacing: normal; + text-transform: none; + word-wrap: break-word; + content: attr(aria-label); + pointer-events: none; + -webkit-font-smoothing: subpixel-antialiased; +} + +/* + * Use a data attribute as alternative source for the tooltip text. + * Add this selector as modifier of the base selector. + */ + +.yoast-tooltip-alt::after { + content: attr(data-label); +} + +.yoast-tooltip::before { + display: none; + position: absolute; + z-index: 1000001; + width: 0; + height: 0; + border: 5px solid transparent; + opacity: 0; + color: rgba(0, 0, 0, 0.8); + content: "\00a0"; + pointer-events: none; +} + +@-webkit-keyframes yoast-tooltip-appear { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes yoast-tooltip-appear { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.yoast-tooltip:hover::before, +.yoast-tooltip:hover::after, +.yoast-tooltip:active::before, +.yoast-tooltip:active::after, +.yoast-tooltip:focus::before, +.yoast-tooltip:focus::after { + display: inline-block; + text-decoration: none; + -webkit-animation-name: yoast-tooltip-appear; + animation-name: yoast-tooltip-appear; + -webkit-animation-duration: 0.1s; + animation-duration: 0.1s; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; +} + +.yoast-tooltip-no-delay:hover::before, +.yoast-tooltip-no-delay:hover::after, +.yoast-tooltip-no-delay:active::before, +.yoast-tooltip-no-delay:active::after, +.yoast-tooltip-no-delay:focus::before, +.yoast-tooltip-no-delay:focus::after { + opacity: 1; + -webkit-animation: none; + animation: none; +} + +.yoast-tooltip-multiline:hover::after, +.yoast-tooltip-multiline:active::after, +.yoast-tooltip-multiline:focus::after { + display: table-cell; +} + +.yoast-tooltip-s::after, +.yoast-tooltip-se::after, +.yoast-tooltip-sw::after { + top: 100%; + right: 50%; + margin-top: 5px; +} + +.yoast-tooltip-s::before, +.yoast-tooltip-se::before, +.yoast-tooltip-sw::before { + top: auto; + right: 50%; + bottom: -5px; + margin-right: -5px; + border-bottom-color: rgba(0, 0, 0, 0.8); +} + +.yoast-tooltip-se::after { + right: auto; + left: 50%; + margin-left: -15px; +} + +.yoast-tooltip-sw::after { + margin-right: -15px; +} + +.yoast-tooltip-n::after, +.yoast-tooltip-ne::after, +.yoast-tooltip-nw::after { + right: 50%; + bottom: 100%; + margin-bottom: 5px; +} + +.yoast-tooltip-n::before, +.yoast-tooltip-ne::before, +.yoast-tooltip-nw::before { + top: -5px; + right: 50%; + bottom: auto; + margin-right: -5px; + border-top-color: rgba(0, 0, 0, 0.8); +} + +.yoast-tooltip-ne::after { + right: auto; + left: 50%; + margin-left: -15px; +} + +.yoast-tooltip-nw::after { + margin-right: -15px; +} + +.yoast-tooltip-s::after, +.yoast-tooltip-n::after { + -webkit-transform: translateX(50%); + transform: translateX(50%); +} + +.yoast-tooltip-w::after { + right: 100%; + bottom: 50%; + margin-right: 5px; + -webkit-transform: translateY(50%); + transform: translateY(50%); +} + +.yoast-tooltip-w::before { + top: 50%; + bottom: 50%; + left: -5px; + margin-top: -5px; + border-left-color: rgba(0, 0, 0, 0.8); +} + +.yoast-tooltip-e::after { + bottom: 50%; + left: 100%; + margin-left: 5px; + -webkit-transform: translateY(50%); + transform: translateY(50%); +} + +.yoast-tooltip-e::before { + top: 50%; + right: -5px; + bottom: 50%; + margin-top: -5px; + border-right-color: rgba(0, 0, 0, 0.8); +} + +.yoast-tooltip-multiline::after { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 250px; + border-collapse: separate; + white-space: pre-line; + word-wrap: normal; + word-break: break-word; +} + +.yoast-tooltip-multiline.yoast-tooltip-s::after, +.yoast-tooltip-multiline.yoast-tooltip-n::after { + right: auto; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +.yoast-tooltip-multiline.yoast-tooltip-w::after, +.yoast-tooltip-multiline.yoast-tooltip-e::after { + right: 100%; +} + +@media screen and (min-width: 0\0) { + .yoast-tooltip-multiline::after { + width: 250px; + } +} + +.yoast-tooltip-sticky::before, +.yoast-tooltip-sticky::after { + display: inline-block; +} + +.yoast-tooltip-sticky.yoast-tooltip-multiline::after { + display: table-cell; +} + +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .yoast-tooltip-w::after { + margin-right: 4.5px; + } +} + +/* Rule with higher specificity to hide the tooltips when necessary. */ + +.yoast-tooltip.yoast-tooltip-hidden::before, +.yoast-tooltip.yoast-tooltip-hidden::after { + display: none; +} + +.yoast-container { + + .output-container, + .form-container{ + padding: 20px; + width: 512px; + } + + .inputForm label { + width: 250px; + color: #777; + line-height: 20px; + text-transform: capitalize; + } + + .inputForm input { + line-height: 20px; + margin: 5px 0; + } + + .inputForm textarea { + height: 400px; + margin: 5px 0; + float: left; + } + + .inputForm input, + .inputForm textarea { + width: 540px; + padding: 5px; + margin: 5px 5px 5px 0; + font-size: 14px; + display: block + } + + .inputForm label { + display: block; + width: 200px; + font-size: 14px; + padding-top: 10px; + font-weight: bold; + vertical-align: text-bottom + } + + .overallScore-container{ + position: absolute; + left: 640px; + top: 20px; + } + + pre { + white-space: pre-wrap; + } + + /* overall score */ + + #overallScore #score_circle { + fill: #999; + } + + #overallScore #score_circle_shadow { + fill: #777; + } + + #overallScore.good #score_circle { + fill: #9fda4f; + } + + #overallScore.good #score_circle_shadow { + fill: #77b227; + } + + #overallScore.ok #score_circle { + fill: #ffb81e; + } + + #overallScore.ok #score_circle_shadow { + fill: #f49a00; + } + + #overallScore.bad #score_circle { + fill: #ff4e47; + } + + #overallScore.bad #score_circle_shadow { + fill: #ed261f; + } + +} \ No newline at end of file diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss index 7a3c272..f122ed9 100644 --- a/resources/assets/sass/app.scss +++ b/resources/assets/sass/app.scss @@ -1,4 +1,5 @@ @import 'variables'; +@import 'yoast'; *, *::before, *::after { box-sizing: border-box; diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index e0bd9c9..cbcb74c 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -23,6 +23,7 @@
+ diff --git a/resources/views/snippet.blade.php b/resources/views/snippet.blade.php new file mode 100644 index 0000000..192f141 --- /dev/null +++ b/resources/views/snippet.blade.php @@ -0,0 +1,63 @@ + + + + + + + + {{ config('app.name') }} + + + + + + + + +
+ +
+
+ +
+ +
+
+ + + + + + + diff --git a/routes/web.php b/routes/web.php index d62cdd8..9baae55 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,3 +4,32 @@ Route::get('/', function () { return view('app'); }); + +Route::get('snippet', function (\Illuminate\Http\Request $request ) { + + $url = $request->get('url'); + + if (!$url) { + abort(404); + } + + + $html = \App\Facades\UrlFetcher::fetch($url); + $crawler = new \App\Crawler($html, $url); + + $description = ''; + if (count($tags = $crawler->filter('meta[name=description]'))) { + $description = trim($tags->first()->attr('content')); + } + + $urlParts = parse_url($url); + return view('snippet', [ + 'locale' => config('app.locale'), + 'focusKeyword' => '', + 'content' => null, + 'title' => trim($crawler->filter('head > title')->first()->text()), + 'metaDesc' => trim($description), + 'urlPath' => isset($urlParts['path']) ? $urlParts['path'] : '/', + 'baseUrl' => $urlParts['scheme'].'://'.$urlParts['host'], + ]); +}); \ No newline at end of file From be4c241b181b5c47b861bad761bbdfa763503753 Mon Sep 17 00:00:00 2001 From: "Barry vd. Heuvel" Date: Mon, 27 Feb 2017 18:19:00 +0100 Subject: [PATCH 2/2] style fix --- package.json | 6 +--- resources/assets/js/app.js | 74 +++++++++++++++++++------------------- yarn.lock | 36 +++++++++++++++++-- 3 files changed, 70 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 6e0c5f0..7d0c7cc 100644 --- a/package.json +++ b/package.json @@ -24,11 +24,7 @@ "lodash": "^4.16.2", "node-sass": "^3.11.2", "slugify": "^1.0.2", - "vue": "^2.0.1" - }, - "dependencies": { - "install": "^0.8.7", - "npm": "^4.3.0", + "vue": "^2.0.1", "yoastseo": "git+https://github.com/Yoast/YoastSEO.js.git#develop" } } diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 790ae96..a13ebc2 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -14,43 +14,41 @@ new Vue({ render: h => h(require('./app.vue')) }) -window.SnippetPreview = require( "yoastseo" ).SnippetPreview; -var Yoast = require( "yoastseo" ).App; - -window.doYoast = function() { - var focusKeywordField = document.getElementById( "focusKeyword" ); - var contentField = document.getElementById( "content" ); - var titleField = document.getElementById( "title" ); - var metaDescField = document.getElementById( "metaDesc" ); - var urlPathField = document.getElementById( "urlPath" ); - var baseUrlField = document.getElementById( "baseUrl" ); - - var snippetPreview = new SnippetPreview({ - targetElement: document.getElementById( "snippet" ), - data: { - title: titleField.value, - metaDesc: metaDescField.value, - urlPath: urlPathField.value - }, - baseURL: baseUrlField.value - }); - - var yoast = new Yoast({ - snippetPreview: snippetPreview, - targets: { - output: "output" - }, - callbacks: { - getData: function() { - return { - keyword: focusKeywordField.value, - text: contentField.value, - - }; - } +var SnippetPreview = require('yoastseo').SnippetPreview +var Yoast = require('yoastseo').App + +window.doYoast = function () { + var focusKeywordField = document.getElementById('focusKeyword') + var contentField = document.getElementById('content') + var titleField = document.getElementById('title') + var metaDescField = document.getElementById('metaDesc') + var urlPathField = document.getElementById('urlPath') + var baseUrlField = document.getElementById('baseUrl') + + var snippetPreview = new SnippetPreview({ + targetElement: document.getElementById('snippet'), + data: { + title: titleField.value, + metaDesc: metaDescField.value, + urlPath: urlPathField.value + }, + baseURL: baseUrlField.value + }) + + var yoast = new Yoast({ + snippetPreview: snippetPreview, + targets: { + output: 'output' + }, + callbacks: { + getData: function () { + return { + keyword: focusKeywordField.value, + text: contentField.value } - }); + } + } + }) - yoast.refresh(); - -}; + yoast.refresh() +} diff --git a/yarn.lock b/yarn.lock index 9ce9d44..c94c332 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2695,6 +2695,10 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +jed@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4" + jodid25519@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" @@ -3034,7 +3038,7 @@ lodash.tail@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" -lodash@4.x.x, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.16.2, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: +lodash@4.x.x, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.14.1, lodash@^4.16.2, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3889,7 +3893,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.2.2: +"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.1.5, readable-stream@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" dependencies: @@ -4193,6 +4197,10 @@ sass-loader@^5.0.0: lodash.tail "^4.1.1" pify "^2.3.0" +sassdash@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/sassdash/-/sassdash-0.8.2.tgz#42d59b4932f13034695604bd8437e2b598afd368" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -4649,6 +4657,13 @@ tfunk@^3.0.1: chalk "^1.1.1" object-path "^0.9.0" +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + through@^2.3.6, through@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -4671,6 +4686,12 @@ to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" +tokenizer2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tokenizer2/-/tokenizer2-2.0.0.tgz#8e93f6142bbc9d1e9b68e29293517187b9833b5f" + dependencies: + through2 "^2.0.0" + tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" @@ -5066,7 +5087,7 @@ xmlhttprequest-ssl@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" -xtend@^4.0.0: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -5152,3 +5173,12 @@ yargs@~3.10.0: yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +"yoastseo@git+https://github.com/Yoast/YoastSEO.js.git#develop": + version "1.11.0" + resolved "git+https://github.com/Yoast/YoastSEO.js.git#8e0315770921263e5a2fd444c47b2872028cb7cc" + dependencies: + jed "^1.1.0" + lodash "^4.14.1" + sassdash "^0.8.1" + tokenizer2 "^2.0.0"