From 1e5f7d6f9723bd248883c47a9adbb6cbded76cea Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 18 Apr 2018 23:27:38 +0200 Subject: [PATCH 1/6] Use Vuepress as docs site generator https://vuepress.vuejs.org --- guides/.gitignore | 4 + guides/.vuepress/config.js | 201 +++++++++++++++++++++++++++++++++++++ guides/package.json | 5 + 3 files changed, 210 insertions(+) create mode 100644 guides/.gitignore create mode 100644 guides/.vuepress/config.js create mode 100644 guides/package.json diff --git a/guides/.gitignore b/guides/.gitignore new file mode 100644 index 00000000000..56e63e69608 --- /dev/null +++ b/guides/.gitignore @@ -0,0 +1,4 @@ +node_modules +yarn.lock +.vuepress/dist +yarn-error.log diff --git a/guides/.vuepress/config.js b/guides/.vuepress/config.js new file mode 100644 index 00000000000..cbdc3e41321 --- /dev/null +++ b/guides/.vuepress/config.js @@ -0,0 +1,201 @@ +module.exports = { + title: 'Solidus Guides', + description: 'Developer Guidelines for Solidus', + base: '/solidus/', + themeConfig: { + repo: 'solidusio/solidus', + editLinks: true, + docsDir: 'guides', + nav: [ + { text: 'Home', link: '/' } + ], + sidebar: [ + { + title: 'Getting Started', + collapsable: true, + children: [ + '/getting-started/first-time-installation', + '/getting-started/installation-options', + '/getting-started/develop-solidus', + '/getting-started/forking-solidus' + ] + }, + { + title: 'Preferences', + collapsable: true, + children: [ + '/preferences/app-configuration', + '/preferences/add-model-preferences', + '/preferences/class-extension-points' + ] + }, + { + title: 'Locations', + collapsable: true, + children: [ + '/locations/', + '/locations/zones', + '/locations/countries-and-states' + ] + }, + { + title: 'Payments', + collapsable: true, + children: [ + '/payments/overview', + '/payments/payments', + '/payments/payment-methods', + '/payments/payment-sources', + '/payments/payment_processing', + '/payments/payment-service-providers', + '/payments/custom_gateway' + ] + }, + { + title: 'Taxation', + collapsable: true, + children: [ + '/taxation/overview-of-taxation', + '/taxation/displaying-prices', + '/taxation/value-added-tax', + '/taxation/example-tax-setups', + '/taxation/custom-tax-calculators' + ] + }, + { + title: 'Shipments', + collapsable: true, + children: [ + '/shipments/overview-of-shipments', + '/shipments/user-interface-for-shipments', + '/shipments/split-shipments', + '/shipments/cartons', + '/shipments/shipping-method-filters', + '/shipments/shipment-setup-examples', + '/shipments/solidus-active-shipping-extension', + '/shipments/custom-shipping-calculators' + ] + }, + { + title: 'Calculators', + collapsable: true, + children: [ + '/calculators/overview', + '/calculators/promotion-calculators', + '/calculators/shipping-calculators', + '/calculators/tax-calculator' + ] + }, + { + title: 'Assets', + collapsable: true, + children: [ + '/assets/override-solidus-assets', + '/assets/asset-management' + ] + }, + { + title: 'Views', + collapsable: true, + children: [ + '/views/custom-frontend', + '/views/override-views' + ] + }, + { + title: 'Products and Variants', + collapsable: true, + children: [ + '/products-and-variants/overview', + '/products-and-variants/products', + '/products-and-variants/variants', + '/products-and-variants/product-images', + '/products-and-variants/product-properties', + '/products-and-variants/multi-currency-support', + '/products-and-variants/taxonomies-and-taxons' + ] + }, + { + title: 'Inventory', + collapsable: true, + children: [ + '/inventory/overview', + '/inventory/inventory-units', + '/inventory/stock-items', + '/inventory/stock-movements' + ] + }, + { + title: 'Returns', + collapsable: true, + children: [ + '/returns/overview', + '/returns/return-authorizations', + '/returns/customer-returns', + '/returns/return-items', + '/returns/reimbursements', + '/returns/reimbursement-types' + ] + }, + { + title: 'Promotions', + collapsable: true, + children: [ + '/promotions/overview', + '/promotions/promotion-rules', + '/promotions/promotion-actions', + '/promotions/promotion-handlers' + ] + }, + { + title: 'Adjustments', + collapsable: true, + children: [ + '/adjustments/overview' + ] + }, + { + title: 'Orders', + collapsable: true, + children: [ + '/orders/overview', + '/orders/order-state-machine', + '/orders/update-orders', + '/orders/display-total-methods' + ] + }, + { + title: 'Returns', + collapsable: true, + children: [ + '/returns/return-authorizations' + ] + }, + { + title: 'Users', + collapsable: true, + children: [ + '/users/addresses' + ] + }, + { + title: 'Upgrades', + collapsable: true, + children: [ + '/upgrades/overview', + '/upgrades/migrate-from-spree', + '/upgrades/versioning-guidelines' + ] + }, + { + title: 'Extensions', + collapsable: true, + children: [ + '/extensions/installing-extensions', + '/extensions/decorators', + '/extensions/testing-extensions' + ] + } + ] + } +}; diff --git a/guides/package.json b/guides/package.json new file mode 100644 index 00000000000..0d3b269178e --- /dev/null +++ b/guides/package.json @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "vuepress": "^0.7.0" + } +} From 3f1fd20028ef570d254795a6f34adae6556ae8c2 Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 18 Apr 2018 10:35:17 +0200 Subject: [PATCH 2/6] Delete the guides index build script --- guides/list.rb | 43 ------------------------------------------- 1 file changed, 43 deletions(-) delete mode 100755 guides/list.rb diff --git a/guides/list.rb b/guides/list.rb deleted file mode 100755 index 9e76010d0c4..00000000000 --- a/guides/list.rb +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require 'active_support/core_ext/string/inflections' - -# Generates a new guides index -# -# Usage -# -# ./index.rb > index.md -# -def generate_index(files) - current_dir = nil - - puts "# Solidus Guides" - puts "" - - files.each do |file| - next unless File.file?(file) - file_path = file.sub(/^\.\//, '') - dir_name = nicify(File.dirname(file)) - file_name = nicify(File.basename(file)) - new_dir = current_dir != dir_name - if new_dir && !current_dir - puts "## #{dir_name}" - elsif current_dir && new_dir - puts "" - puts "## #{dir_name}" - end - puts " - [#{file_name}](#{file_path})" - current_dir = dir_name - end -end - -def nicify(name) - name.sub(/^\.\//, '').tr('-', ' ').sub(/\.md$/, '').titleize -end - -files = Dir.glob("**/*").sort.reject do |file| - File.basename(file) == File.basename(__FILE__) || File.basename(file) == 'index.md' -end - -generate_index(files) From b8dd87edbeb3e5e3d154830c6aa21927c9e8e2cd Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 18 Apr 2018 10:04:38 +0200 Subject: [PATCH 3/6] Add a guides homepage --- guides/.vuepress/config.js | 1 + guides/.vuepress/public/hero.png | Bin 0 -> 2757 bytes guides/index.md | 101 ++++--------------------------- 3 files changed, 14 insertions(+), 88 deletions(-) create mode 100644 guides/.vuepress/public/hero.png diff --git a/guides/.vuepress/config.js b/guides/.vuepress/config.js index cbdc3e41321..ee784fdccdb 100644 --- a/guides/.vuepress/config.js +++ b/guides/.vuepress/config.js @@ -6,6 +6,7 @@ module.exports = { repo: 'solidusio/solidus', editLinks: true, docsDir: 'guides', + home: true, nav: [ { text: 'Home', link: '/' } ], diff --git a/guides/.vuepress/public/hero.png b/guides/.vuepress/public/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe04e521ed25abab9f466a5afd43afddbf7deb5 GIT binary patch literal 2757 zcmeHIdo+~$8lE~`_K`%?K_s_K6y=h_ zxlFEQ4C)jLGt);Ra%(m|mtoU4M48TX&Z*rW_F8BEv;W$^^*n36zh}MAKks_p^`_d} z61R%Ui(xRBtrjPMlNii8^b^1Ni%9wKjm`rMW_^ggwG%<~ox8H^hbM8sW^a@1m0@d_RHgV8Rz4NRB_u)pIiI1Klv%& z>^nD}`IecS*4Yy3*wYbt&HE0wCGFsj{f7M zYdk#h(y|tR-9^^-Pyq(B`G^H@+$nY)|Fz>oUa;gjIPg6`Y@jaWYvear^yXfVbmP2# zVY6K{jkVt2k5Z9jdDC>Gl|n%XidTfUkXL5gl!|`H6Eq6^y#}Qe;s3!s3Lvftbm$U7 z$@~mkB09cO))x^dPi-xMslZ39rvFH%&fKima{SD06(dOX3z(lhU(BD2ubRGe8$sI+ z$J$pTW;H`fXOIGC*m#HL03R2Xl zkQ6H@9+!PgOoZ;g38N>?vMW`L;kLxX!qF7cC3y`?NnFo~ITM4ScUeCo(k5~r1y6X= zwlc1%$L6Kyn|CMpUbRrwfZa?1k_r0!=d3Jb)l~9^fVb+1N-tB6*+xA}@Fb@N12?CJ zkgB;7`rflrjXMalO+ida+_guu89p%?hFM6QwJAuOf1;{Kp_{**#ZJ`a0(L&*&NOmI zS#>HM-)7^`Pvvry!S#_IN+GcVW<9_d#`b2YfIaL;a?NCM9Dy;c=EBhdiw}eoYUUO; z5*YWAPr(M-H;Cxe84m^bvAYBUqil=+oF3EibOfw5J*6`dVD9puKp9MSH$cz9J2-A9 zQL%WzV|C_Uub>TZ=}eg($&41L zm`gP-*cy}TBOt|Yh8ifivCx;sk20xM2RCU9u`FpzcaVK1Nw338&0Uwul|c!Hg0Taw zM-rF5`6cCQ-ZX{Y;t-UR5f^2J>Pv)GC>2xaPnFr`wD~+FRpEg*E#lE_NaO57eTUXj zh}6}mW+{6LwGPGYv;5W?bsE}boMuobgUenn>PxhN9gnJ69&tvUn))=;%J+e*t-)#Z z4p(77sVC|eL&0;?=^Y#@_QfFgJ^ji%tW(&(K;2P6`{ zwyZ5i#e%vF^FkiM&c6$bzQ}|ox+r*4aZPY_)8PKA^VT|bmyvpt?JY)BO;D2rR0<4t z;Ib1gQ+y7W0JX)CJ)-d_AH20s39L-G#5{po8sC!(i6>PR)V?_?e6kD0*dxNC#S zHxhxUe^Ul`Q}JcPQRc{^B(BixcC+6qa$V~Fc3jD%M3aheI4&#&ab?#otIsE0 z`hZ7Si}bm=0iNm0@6-TpaNbWj`TK=q7i$T2v$XhGSq))mRkaz4-Ueqb81r-nzDLOS zp3`CuC^k35E5kuPY29J3^b^U>6pvlq{P;dOsmez}sP~zXRe3zXl7V_V3XReDEQI`) zQ=+_Pn*XmTgAIw44ZvJa%#}=p&5rF+*+$IHs2RzFVv5pvop)#&6~8Qah=0C1qVw~c zhbQW*CdCw`dVbM)JF3yCIs*$-xYn%`Y3FWY!W(7fgAH?)K6O|SY=H{A*M)xrw-tG6 literal 0 HcmV?d00001 diff --git a/guides/index.md b/guides/index.md index 78309068b78..4cd968e2814 100644 --- a/guides/index.md +++ b/guides/index.md @@ -1,88 +1,13 @@ -# Solidus Guides - -## Adjustments - - [Overview](adjustments/overview.md) - -## Assets - - [Asset Management](assets/asset-management.md) - - [Override Solidus Assets](assets/override-solidus-assets.md) - -## Extensions - - [Decorators](extensions/decorators.md) - - [Installing Extensions](extensions/installing-extensions.md) - - [Testing Extensions](extensions/testing-extensions.md) - -## Getting Started - - [Develop Solidus](getting-started/develop-solidus.md) - - [First Time Installation](getting-started/first-time-installation.md) - - [Forking Solidus](getting-started/forking-solidus.md) - - [Installation Options](getting-started/installation-options.md) - -## Inventory - - [Inventory Units](inventory/inventory-units.md) - - [Overview](inventory/overview.md) - - [Stock Items](inventory/stock-items.md) - - [Stock Movements](inventory/stock-movements.md) - -## Locations - - [Countries And States](locations/countries-and-states.md) - - [Zones](locations/zones.md) - -## Orders - - [Display Total Methods](orders/display-total-methods.md) - - [Order State Machine](orders/order-state-machine.md) - - [Overview](orders/overview.md) - - [Update Orders](orders/update-orders.md) - -## Payments - - [Custom Gateway](payments/custom_gateway.md) - - [Overview](payments/overview.md) - - [Payment Method](payments/payment_method.md) - - [Payment Processing](payments/payment_processing.md) - -## Preferences - - [Add Model Preferences](preferences/add-model-preferences.md) - - [App Configuration](preferences/app-configuration.md) - - [Class Extension Points](preferences/class-extension-points.md) - -## Products And Variants - - [Multi Currency Support](products-and-variants/multi-currency-support.md) - - [Overview](products-and-variants/overview.md) - - [Product Images](products-and-variants/product-images.md) - - [Product Properties](products-and-variants/product-properties.md) - - [Products](products-and-variants/products.md) - - [Taxonomies And Taxons](products-and-variants/taxonomies-and-taxons.md) - - [Variants](products-and-variants/variants.md) - -## Promotions - - [Overview](promotions/overview.md) - - [Promotion Actions](promotions/promotion-actions.md) - - [Promotion Handlers](promotions/promotion-handlers.md) - - [Promotion Rules](promotions/promotion-rules.md) - -## Returns - - [Return Authorizations](returns/return-authorizations.md) - -## Shipments - - [Cartons](shipments/cartons.md) - - [Custom Shipping Calculators](shipments/custom-shipping-calculators.md) - - [Overview Of Shipments](shipments/overview-of-shipments.md) - - [Shipment Setup Examples](shipments/shipment-setup-examples.md) - - [Shipping Method Filters](shipments/shipping-method-filters.md) - - [Solidus Active Shipping Extension](shipments/solidus-active-shipping-extension.md) - - [Split Shipments](shipments/split-shipments.md) - - [User Interface For Shipments](shipments/user-interface-for-shipments.md) - -## Taxation - - [Custom Tax Calculator](taxation/custom-tax-calculator.md) - - [Displaying Prices](taxation/displaying-prices.md) - - [Example Tax Setups](taxation/example-tax-setups.md) - - [Overview Of Taxation](taxation/overview-of-taxation.md) - - [Value Added Tax](taxation/value-added-tax.md) - -## Users - - [Addresses](users/addresses.md) - -## Views - - [Custom Frontend](views/custom-frontend.md) - - [Override Views](views/override-views.md) +--- +home: true +heroImage: /hero.png +actionText: Get Started → +actionLink: /getting-started/first-time-installation +features: +- title: Stable + details: Our team of core developers review all community code submissions for quality. You only receive production-ready releases and features. +- title: Secure + details: Solidus provides timely security patches when vulnerabilities are discovered. Updates are easy to patch and available for multiple versions of Solidus. +- title: Scalable + details: Our free, open source codebase is built for high-volume stores. It loads quickly to handle your sales and spikes in traffic with ease. +--- From a523abbe211751e2c42f563967197a237dc303fd Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Wed, 18 Apr 2018 09:45:25 +0200 Subject: [PATCH 4/6] Adjust guides theme colors --- guides/.vuepress/override.styl | 141 +++++++++++++++++++++++++++++++ guides/.vuepress/public/hero.png | Bin 2757 -> 4138 bytes 2 files changed, 141 insertions(+) create mode 100644 guides/.vuepress/override.styl diff --git a/guides/.vuepress/override.styl b/guides/.vuepress/override.styl new file mode 100644 index 00000000000..3824316b51c --- /dev/null +++ b/guides/.vuepress/override.styl @@ -0,0 +1,141 @@ +$accentColor = #3c76f1; +$textColor = rgba(36, 40, 47, 0.8); + +@import url("https://p.typekit.net/p.css?s=1&k=dzr2grg&ht=tk&f=24543.24545.24547.24549&a=2875268&app=typekit&e=css"); + +@font-face { + font-family:"sofia-pro"; + src:url("https://use.typekit.net/af/43e50f/0000000000000000000157ad/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n3&v=3") format("woff2"),url("https://use.typekit.net/af/43e50f/0000000000000000000157ad/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n3&v=3") format("woff"),url("https://use.typekit.net/af/43e50f/0000000000000000000157ad/27/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n3&v=3") format("opentype"); + font-style:normal; + font-weight:300; +} + +@font-face { + font-family:"sofia-pro"; + src:url("https://use.typekit.net/af/67b45a/0000000000000000000157af/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3") format("woff2"),url("https://use.typekit.net/af/67b45a/0000000000000000000157af/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3") format("woff"),url("https://use.typekit.net/af/67b45a/0000000000000000000157af/27/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n5&v=3") format("opentype"); + font-style:normal; + font-weight:500; +} + +@font-face { + font-family:"sofia-pro"; + src:url("https://use.typekit.net/af/d45bf2/0000000000000000000157b1/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("woff2"),url("https://use.typekit.net/af/d45bf2/0000000000000000000157b1/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("woff"),url("https://use.typekit.net/af/d45bf2/0000000000000000000157b1/27/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3") format("opentype"); + font-style:normal; + font-weight:400; +} + +@font-face { + font-family:"sofia-pro"; + src:url("https://use.typekit.net/af/fdecde/0000000000000000000157b3/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3") format("woff2"),url("https://use.typekit.net/af/fdecde/0000000000000000000157b3/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3") format("woff"),url("https://use.typekit.net/af/fdecde/0000000000000000000157b3/27/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n6&v=3") format("opentype"); + font-style:normal; + font-weight:600; +} + +#app { + .theme-container { + font-family: sofia-pro, -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-weight: 300; + font-size: 16px; + + h1, h2, h3, h4, h5, h6, strong { + font-weight: 500; + } + + h1, h2, h3, h4, h5, h6 { + line-height: 1.33; + margin-bottom: 1em; + } + + h1 { + font-size: 2.625rem; + line-height: 1.14; + } + + h2 { + font-size: 2.125rem; + border-bottom: 0 none; + } + + h3 { + font-size: 1.5rem; + } + + a, p a code { + font-weight: 300; + } + + p { + line-height: 1.5; + margin-top: 0; + margin-bottom: 1.5em; + + &:last-child { + margin-bottom: 0; + } + } + + a { + transition: all ease 0.3s; + + &:hover:not(.action-button) { + color: #264b99; + text-decoration: none; + } + + &.action-button:hover { + box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.4); + } + } + + .home .hero img { + max-height: 150px; + } + + .navbar { + height: 4rem; + + .links { + top: 0; + font-size: 1.125rem; + + .nav-link, .github-link { + line-height: 3.45; + } + + a { + color: rgba(36, 40, 47, 0.48); + + &.router-link-active, &:hover { + color: #24282f; + } + + &:hover:not(.router-link-active) { + border-bottom: 0 none; + } + } + } + } + + .sidebar { + top: 4rem; + } + + .sidebar-group.collapsable { + p.open { + margin-bottom: 1em; + } + + .arrow { + display: none; + } + } + + .search-box input { + width: 5rem; + + &:focus { + width: 10rem; + } + } + } +} diff --git a/guides/.vuepress/public/hero.png b/guides/.vuepress/public/hero.png index 3fe04e521ed25abab9f466a5afd43afddbf7deb5..b45d57695fdef718554318ddc1d9d60b33fad39c 100644 GIT binary patch literal 4138 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 Lv$N!5PRjoQF(qfL literal 2757 zcmeHIdo+~$8lE~`_K`%?K_s_K6y=h_ zxlFEQ4C)jLGt);Ra%(m|mtoU4M48TX&Z*rW_F8BEv;W$^^*n36zh}MAKks_p^`_d} z61R%Ui(xRBtrjPMlNii8^b^1Ni%9wKjm`rMW_^ggwG%<~ox8H^hbM8sW^a@1m0@d_RHgV8Rz4NRB_u)pIiI1Klv%& z>^nD}`IecS*4Yy3*wYbt&HE0wCGFsj{f7M zYdk#h(y|tR-9^^-Pyq(B`G^H@+$nY)|Fz>oUa;gjIPg6`Y@jaWYvear^yXfVbmP2# zVY6K{jkVt2k5Z9jdDC>Gl|n%XidTfUkXL5gl!|`H6Eq6^y#}Qe;s3!s3Lvftbm$U7 z$@~mkB09cO))x^dPi-xMslZ39rvFH%&fKima{SD06(dOX3z(lhU(BD2ubRGe8$sI+ z$J$pTW;H`fXOIGC*m#HL03R2Xl zkQ6H@9+!PgOoZ;g38N>?vMW`L;kLxX!qF7cC3y`?NnFo~ITM4ScUeCo(k5~r1y6X= zwlc1%$L6Kyn|CMpUbRrwfZa?1k_r0!=d3Jb)l~9^fVb+1N-tB6*+xA}@Fb@N12?CJ zkgB;7`rflrjXMalO+ida+_guu89p%?hFM6QwJAuOf1;{Kp_{**#ZJ`a0(L&*&NOmI zS#>HM-)7^`Pvvry!S#_IN+GcVW<9_d#`b2YfIaL;a?NCM9Dy;c=EBhdiw}eoYUUO; z5*YWAPr(M-H;Cxe84m^bvAYBUqil=+oF3EibOfw5J*6`dVD9puKp9MSH$cz9J2-A9 zQL%WzV|C_Uub>TZ=}eg($&41L zm`gP-*cy}TBOt|Yh8ifivCx;sk20xM2RCU9u`FpzcaVK1Nw338&0Uwul|c!Hg0Taw zM-rF5`6cCQ-ZX{Y;t-UR5f^2J>Pv)GC>2xaPnFr`wD~+FRpEg*E#lE_NaO57eTUXj zh}6}mW+{6LwGPGYv;5W?bsE}boMuobgUenn>PxhN9gnJ69&tvUn))=;%J+e*t-)#Z z4p(77sVC|eL&0;?=^Y#@_QfFgJ^ji%tW(&(K;2P6`{ zwyZ5i#e%vF^FkiM&c6$bzQ}|ox+r*4aZPY_)8PKA^VT|bmyvpt?JY)BO;D2rR0<4t z;Ib1gQ+y7W0JX)CJ)-d_AH20s39L-G#5{po8sC!(i6>PR)V?_?e6kD0*dxNC#S zHxhxUe^Ul`Q}JcPQRc{^B(BixcC+6qa$V~Fc3jD%M3aheI4&#&ab?#otIsE0 z`hZ7Si}bm=0iNm0@6-TpaNbWj`TK=q7i$T2v$XhGSq))mRkaz4-Ueqb81r-nzDLOS zp3`CuC^k35E5kuPY29J3^b^U>6pvlq{P;dOsmez}sP~zXRe3zXl7V_V3XReDEQI`) zQ=+_Pn*XmTgAIw44ZvJa%#}=p&5rF+*+$IHs2RzFVv5pvop)#&6~8Qah=0C1qVw~c zhbQW*CdCw`dVbM)JF3yCIs*$-xYn%`Y3FWY!W(7fgAH?)K6O|SY=H{A*M)xrw-tG6 From a673c5ae835e689b3a81db9337a1f68217c3b601 Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Thu, 19 Apr 2018 11:12:15 +0200 Subject: [PATCH 5/6] Use Solidus logo in guides top bar --- guides/.vuepress/config.js | 5 +++-- guides/.vuepress/override.styl | 18 ++++++++++++++++++ guides/.vuepress/public/logo.svg | 27 +++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 guides/.vuepress/public/logo.svg diff --git a/guides/.vuepress/config.js b/guides/.vuepress/config.js index ee784fdccdb..9fa485a7993 100644 --- a/guides/.vuepress/config.js +++ b/guides/.vuepress/config.js @@ -1,11 +1,12 @@ module.exports = { - title: 'Solidus Guides', - description: 'Developer Guidelines for Solidus', + title: 'Guidelines', + description: 'Developer Guides for Solidus', base: '/solidus/', themeConfig: { repo: 'solidusio/solidus', editLinks: true, docsDir: 'guides', + logo: '/logo.svg', home: true, nav: [ { text: 'Home', link: '/' } diff --git a/guides/.vuepress/override.styl b/guides/.vuepress/override.styl index 3824316b51c..48f22235067 100644 --- a/guides/.vuepress/override.styl +++ b/guides/.vuepress/override.styl @@ -94,6 +94,24 @@ $textColor = rgba(36, 40, 47, 0.8); .navbar { height: 4rem; + .logo { + height: 24px; + min-width: 100px; + vertical-align: text-bottom; + } + + .site-name { + font-size: 1.125rem; + font-weight: 300; + top: 4px; + color: rgba(36, 40, 47, 0.48); + transition: all ease 0.3s; + + &:hover { + color: #24282f; + } + } + .links { top: 0; font-size: 1.125rem; diff --git a/guides/.vuepress/public/logo.svg b/guides/.vuepress/public/logo.svg new file mode 100644 index 00000000000..bf8c1916756 --- /dev/null +++ b/guides/.vuepress/public/logo.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + From 274fbdb6af5eac5bbefb64334261ce1e7ed1b178 Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Thu, 19 Apr 2018 11:29:11 +0200 Subject: [PATCH 6/6] Add favicon to guides theme --- guides/.vuepress/config.js | 4 ++++ guides/.vuepress/public/apple-touch-icon.png | Bin 0 -> 3281 bytes guides/.vuepress/public/favicon.ico | Bin 0 -> 93802 bytes 3 files changed, 4 insertions(+) create mode 100644 guides/.vuepress/public/apple-touch-icon.png create mode 100644 guides/.vuepress/public/favicon.ico diff --git a/guides/.vuepress/config.js b/guides/.vuepress/config.js index 9fa485a7993..903c65668a9 100644 --- a/guides/.vuepress/config.js +++ b/guides/.vuepress/config.js @@ -2,6 +2,10 @@ module.exports = { title: 'Guidelines', description: 'Developer Guides for Solidus', base: '/solidus/', + head: [ + ['link', { rel: 'shortcut icon', href: '/favicon.ico' }], + ['link', { rel: 'apple-touch-icon', href: '/apple-touch-icon.png' }] + ], themeConfig: { repo: 'solidusio/solidus', editLinks: true, diff --git a/guides/.vuepress/public/apple-touch-icon.png b/guides/.vuepress/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..48aae5e96de2bd23f167ef415295da30f08eece5 GIT binary patch literal 3281 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 XJ8G1jTeu8#%je8C(2CMr{^$PztykAi literal 0 HcmV?d00001