From 8b0808f80e78e4b77976a7037dbfc0909b02ad28 Mon Sep 17 00:00:00 2001 From: Harun Isik Date: Wed, 28 Sep 2022 16:24:54 +0100 Subject: [PATCH 1/3] WEB-55: "hreflang" conflicts within page source code --- docusaurus.config.js | 1 + static/removeDefaultHreflang.js | 13 +++++++++++++ yarn.lock | 27 +++++++++++++++------------ 3 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 static/removeDefaultHreflang.js diff --git a/docusaurus.config.js b/docusaurus.config.js index 64d89d687..3f94f9b43 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -6,6 +6,7 @@ module.exports = { favicon: 'img/favicon.png', organizationName: 'zilliqa', // Usually your GitHub org/user name. projectName: 'dev-portal', // Usually your repo name. + scripts: [{ src: '/removeDefaultHreflang.js', defer: true }], themeConfig: { colorMode: { defaultMode: 'light', diff --git a/static/removeDefaultHreflang.js b/static/removeDefaultHreflang.js new file mode 100644 index 000000000..5445cab01 --- /dev/null +++ b/static/removeDefaultHreflang.js @@ -0,0 +1,13 @@ +/** + * This is a trick that removes default hreflang link tag which is unnecesaary for SEO + */ +function remove_x_default() { + window.addEventListener('DOMNodeInserted', function (event) { + const elem = window.document.querySelector('link[hreflang=x-default]'); + if (elem) { + elem.parentNode.removeChild(elem); + } + }); +} + +remove_x_default(); diff --git a/yarn.lock b/yarn.lock index 4865b5689..d456989b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2733,6 +2733,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001393.tgz#1aa161e24fe6af2e2ccda000fc2b94be0b0db356" integrity sha512-N/od11RX+Gsk+1qY/jbPa0R6zJupEa0lxeBG598EbrtblxVCTJsQwbRBm6+V+rxpc5lHKdsXb9RY83cZIPLseA== +caniuse-lite@^1.0.30001373: + version "1.0.30001412" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz#30f67d55a865da43e0aeec003f073ea8764d5d7c" + integrity sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA== + ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" @@ -3889,6 +3894,11 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -4430,11 +4440,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -5227,6 +5232,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -7270,13 +7280,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== - dependencies: - inherits "2.0.1" - utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" From d12d38311b6f23da9af04de5c9ce5ea5f840b345 Mon Sep 17 00:00:00 2001 From: Harun Isik Date: Sun, 2 Oct 2022 01:39:33 +0100 Subject: [PATCH 2/3] Ejected SiteMetdata component and removed alternate/canonical links which are unnecessary --- docusaurus.config.js | 1 - src/theme/SiteMetadata/index.js | 110 ++++++++++++++++++++++++++++++++ static/removeDefaultHreflang.js | 13 ---- 3 files changed, 110 insertions(+), 14 deletions(-) create mode 100644 src/theme/SiteMetadata/index.js delete mode 100644 static/removeDefaultHreflang.js diff --git a/docusaurus.config.js b/docusaurus.config.js index 3f94f9b43..64d89d687 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -6,7 +6,6 @@ module.exports = { favicon: 'img/favicon.png', organizationName: 'zilliqa', // Usually your GitHub org/user name. projectName: 'dev-portal', // Usually your repo name. - scripts: [{ src: '/removeDefaultHreflang.js', defer: true }], themeConfig: { colorMode: { defaultMode: 'light', diff --git a/src/theme/SiteMetadata/index.js b/src/theme/SiteMetadata/index.js new file mode 100644 index 000000000..50b390300 --- /dev/null +++ b/src/theme/SiteMetadata/index.js @@ -0,0 +1,110 @@ +import React from 'react'; +import Head from '@docusaurus/Head'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import { PageMetadata, useThemeConfig } from '@docusaurus/theme-common'; +import { + DEFAULT_SEARCH_TAG, + useAlternatePageUtils, + keyboardFocusedClassName, +} from '@docusaurus/theme-common/internal'; +import { useLocation } from '@docusaurus/router'; +import SearchMetadata from '@theme/SearchMetadata'; +// TODO move to SiteMetadataDefaults or theme-common ? +// Useful for i18n/SEO +// See https://developers.google.com/search/docs/advanced/crawling/localized-versions +// See https://github.com/facebook/docusaurus/issues/3317 +function AlternateLangHeaders() { + const { + i18n: { defaultLocale, localeConfigs }, + } = useDocusaurusContext(); + const alternatePageUtils = useAlternatePageUtils(); + // Note: it is fine to use both "x-default" and "en" to target the same url + // See https://www.searchviu.com/en/multiple-hreflang-tags-one-url/ + return ( + + {Object.entries(localeConfigs).map(([locale, { htmlLang }]) => ( + + ))} + + + ); +} +// Default canonical url inferred from current page location pathname +function useDefaultCanonicalUrl() { + const { + siteConfig: { url: siteUrl }, + } = useDocusaurusContext(); + const { pathname } = useLocation(); + return siteUrl + useBaseUrl(pathname); +} +// TODO move to SiteMetadataDefaults or theme-common ? +function CanonicalUrlHeaders({ permalink }) { + const { + siteConfig: { url: siteUrl }, + } = useDocusaurusContext(); + const defaultCanonicalUrl = useDefaultCanonicalUrl(); + const canonicalUrl = permalink + ? `${siteUrl}${permalink}` + : defaultCanonicalUrl; + return ( + + + {/* */} + + ); +} +export default function SiteMetadata() { + const { + i18n: { currentLocale }, + } = useDocusaurusContext(); + // TODO maybe move these 2 themeConfig to siteConfig? + // These seems useful for other themes as well + const { metadata, image: defaultImage } = useThemeConfig(); + return ( + <> + + + {/* The keyboard focus class name need to be applied when SSR so links + are outlined when JS is disabled */} + + + + {defaultImage && } + + + + {/* */} + + + + {/* + It's important to have an additional element here, as it allows + react-helmet to override default metadata values set in previous + like "twitter:card". In same Head, the same meta would appear twice + instead of overriding. + */} + + {/* Yes, "metadatum" is the grammatically correct term */} + {metadata.map((metadatum, i) => ( + + ))} + + + ); +} diff --git a/static/removeDefaultHreflang.js b/static/removeDefaultHreflang.js deleted file mode 100644 index 5445cab01..000000000 --- a/static/removeDefaultHreflang.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This is a trick that removes default hreflang link tag which is unnecesaary for SEO - */ -function remove_x_default() { - window.addEventListener('DOMNodeInserted', function (event) { - const elem = window.document.querySelector('link[hreflang=x-default]'); - if (elem) { - elem.parentNode.removeChild(elem); - } - }); -} - -remove_x_default(); From d746847f25dd1324c9c48d747a0988777a9f340b Mon Sep 17 00:00:00 2001 From: Harun Isik Date: Sun, 2 Oct 2022 21:50:23 +0100 Subject: [PATCH 3/3] fix: updated xsgd link --- docs/dev/dev-keys-zrc2-wallet-support.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev/dev-keys-zrc2-wallet-support.mdx b/docs/dev/dev-keys-zrc2-wallet-support.mdx index 1d292beca..7ee411c4f 100644 --- a/docs/dev/dev-keys-zrc2-wallet-support.mdx +++ b/docs/dev/dev-keys-zrc2-wallet-support.mdx @@ -37,7 +37,7 @@ The ZRC-2 standard allows for functionalities like ## Examples of ZRC-2 -- [$XSGD](https://www.zilliqa.com/xsgd) - the first Singapore dollar-pegged stablecoin built by [Xfers](https://www.xfers.com/) +- [$XSGD](https://www.xfers.com/) - the first Singapore dollar-pegged stablecoin built by [Xfers](https://www.xfers.com/) - [$gZIL](https://github.com/Zilliqa/ZIP/blob/master/zips/zip-11.md#governance-tokens-aka-gzil) - Governance ZIL token earned through Zilliqa Seed Node Staking Program ## Getting Testnet ZRC-2 Tokens