From d5afecb1192beefa72c611306172375296f8e392 Mon Sep 17 00:00:00 2001 From: Vadorequest Date: Fri, 27 Mar 2020 01:47:14 +0100 Subject: [PATCH] Docs Github Pages - Navigation menu (#21) * Don't use incremental mode, doesn't properly apply changes even when restarting local server * Make a common and a specific section in both config files for ease of maintenance * Configure navigation menu * Fix useless TOC * Improve CHANGELOG.md and FAQ * Add script to build dependencies TOC * Add CONTRIBUTING --- CHANGELOG.md | 7 +-- CONTRIBUTING.md | 1 + README.md | 9 +++- docs/CONTRIBUTING.md | 35 +++++++++++++++ docs/FAQ.md | 7 ++- docs/VARIANTS.md | 1 - docs/_config-development.yml | 13 +++++- docs/_config.yml | 14 +++++- .../2020-03-26-welcome-to-jekyll.markdown | 25 ----------- docs/changelog.md | 12 +++++ docs/concepts/MONITORING.md | 1 - docs/concepts/TENANCY.md | 1 - docs/concepts/{ANALYTICS.md => analytics.md} | 7 +++ docs/concepts/{CI_CD.md => ci-cd.md} | 7 +++ .../{ENV_AND_STAGES.md => env-and-stages.md} | 7 +++ docs/concepts/{GRAPHQL.md => graphql.md} | 7 +++ docs/concepts/{I18N.md => i18n.md} | 7 +++ docs/concepts/index.md | 7 +++ docs/concepts/monitoring.md | 8 ++++ docs/concepts/tenancy.md | 8 ++++ docs/concepts/{TESTING.md => testing.md} | 7 +++ docs/getting-started/index.md | 45 +++++++++++++++++++ .../live-demo.md} | 7 +++ .../overview.md} | 7 +++ .../quick-start.md} | 7 +++ docs/getting-started/variants.md | 8 ++++ docs/how-to/analytics-amplitude/index.md | 7 +++ .../remove-amplitude.md} | 8 ++++ .../analytics-amplitude/setup-amplitude.md | 10 +++++ .../use-amplitude.md} | 8 ++++ docs/how-to/analytics/SETUP_AMPLITUDE.md | 2 - docs/how-to/ci-cd/index.md | 7 +++ ...HUB_ACTIONS.md => setup-github-actions.md} | 8 ++++ ...ITHUB_ACTIONS.md => use-github-actions.md} | 8 ++++ docs/how-to/css-in-js/USE_EMOTION.md | 1 - docs/how-to/css-in-js/index.md | 7 +++ .../{REMOVE_EMOTION.md => remove-emotion.md} | 8 ++++ docs/how-to/css-in-js/use-emotion.md | 9 ++++ docs/how-to/deploy/USE_ZEIT.md | 2 - docs/how-to/deploy/index.md | 7 +++ .../deploy/{SETUP_ZEIT.md => setup-zeit.md} | 8 ++++ docs/how-to/deploy/use-zeit.md | 10 +++++ docs/how-to/graphcms/index.md | 9 ++++ .../setup-graphcms.md} | 7 +++ .../use-graphcms.md} | 8 ++++ docs/how-to/graphql/USE_GRAPHQL.md | 1 - docs/how-to/i18n/USE_LOCIZE.md | 3 -- docs/how-to/i18n/index.md | 7 +++ .../{REMOVE_LOCIZE.md => remove-locize.md} | 8 ++++ .../i18n/{SETUP_LOCIZE.md => setup-locize.md} | 8 ++++ docs/how-to/i18n/use-locize.md | 11 +++++ docs/how-to/{README.md => index.md} | 7 +++ docs/how-to/monitoring/USE_SENTRY.md | 2 - docs/how-to/monitoring/index.md | 7 +++ .../{REMOVE_SENTRY.md => remove-sentry.md} | 8 ++++ .../{SETUP_SENTRY.md => setup-sentry.md} | 8 ++++ docs/how-to/monitoring/use-sentry.md | 10 +++++ docs/how-to/testing/USE_CYPRESS.md | 2 - docs/how-to/testing/index.md | 7 +++ docs/how-to/testing/use-cypress.md | 10 +++++ docs/{INDEX.md => index.md} | 9 +++- .../{DEPENDENCIES.md => dependencies.md} | 11 ++++- ...OLDER_STRUCTURE.md => folder-structure.md} | 6 +++ docs/reference/index.md | 7 +++ docs/{ROADMAP.md => roadmap.md} | 6 +++ package.json | 7 +-- 66 files changed, 486 insertions(+), 58 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 docs/CONTRIBUTING.md delete mode 100644 docs/VARIANTS.md delete mode 100644 docs/_posts/2020-03-26-welcome-to-jekyll.markdown create mode 100644 docs/changelog.md delete mode 100644 docs/concepts/MONITORING.md delete mode 100644 docs/concepts/TENANCY.md rename docs/concepts/{ANALYTICS.md => analytics.md} (95%) rename docs/concepts/{CI_CD.md => ci-cd.md} (95%) rename docs/concepts/{ENV_AND_STAGES.md => env-and-stages.md} (97%) rename docs/concepts/{GRAPHQL.md => graphql.md} (94%) rename docs/concepts/{I18N.md => i18n.md} (98%) create mode 100644 docs/concepts/index.md create mode 100644 docs/concepts/monitoring.md create mode 100644 docs/concepts/tenancy.md rename docs/concepts/{TESTING.md => testing.md} (91%) create mode 100644 docs/getting-started/index.md rename docs/{LIVE_DEMO.md => getting-started/live-demo.md} (93%) rename docs/{overview/INTRODUCTION.md => getting-started/overview.md} (95%) rename docs/{QUICKSTART.md => getting-started/quick-start.md} (95%) create mode 100644 docs/getting-started/variants.md create mode 100644 docs/how-to/analytics-amplitude/index.md rename docs/how-to/{analytics/REMOVE_AMPLITUDE.md => analytics-amplitude/remove-amplitude.md} (86%) create mode 100644 docs/how-to/analytics-amplitude/setup-amplitude.md rename docs/how-to/{analytics/USE_AMPLITUDE.md => analytics-amplitude/use-amplitude.md} (56%) delete mode 100644 docs/how-to/analytics/SETUP_AMPLITUDE.md create mode 100644 docs/how-to/ci-cd/index.md rename docs/how-to/ci-cd/{SETUP_GITHUB_ACTIONS.md => setup-github-actions.md} (96%) rename docs/how-to/ci-cd/{USE_GITHUB_ACTIONS.md => use-github-actions.md} (95%) delete mode 100644 docs/how-to/css-in-js/USE_EMOTION.md create mode 100644 docs/how-to/css-in-js/index.md rename docs/how-to/css-in-js/{REMOVE_EMOTION.md => remove-emotion.md} (84%) create mode 100644 docs/how-to/css-in-js/use-emotion.md delete mode 100644 docs/how-to/deploy/USE_ZEIT.md create mode 100644 docs/how-to/deploy/index.md rename docs/how-to/deploy/{SETUP_ZEIT.md => setup-zeit.md} (98%) create mode 100644 docs/how-to/deploy/use-zeit.md create mode 100644 docs/how-to/graphcms/index.md rename docs/how-to/{graphql/SETUP_GRAPHCMS.md => graphcms/setup-graphcms.md} (97%) rename docs/how-to/{graphql/USE_GRAPHCMS.md => graphcms/use-graphcms.md} (77%) delete mode 100644 docs/how-to/graphql/USE_GRAPHQL.md delete mode 100644 docs/how-to/i18n/USE_LOCIZE.md create mode 100644 docs/how-to/i18n/index.md rename docs/how-to/i18n/{REMOVE_LOCIZE.md => remove-locize.md} (93%) rename docs/how-to/i18n/{SETUP_LOCIZE.md => setup-locize.md} (96%) create mode 100644 docs/how-to/i18n/use-locize.md rename docs/how-to/{README.md => index.md} (86%) delete mode 100644 docs/how-to/monitoring/USE_SENTRY.md create mode 100644 docs/how-to/monitoring/index.md rename docs/how-to/monitoring/{REMOVE_SENTRY.md => remove-sentry.md} (83%) rename docs/how-to/monitoring/{SETUP_SENTRY.md => setup-sentry.md} (92%) create mode 100644 docs/how-to/monitoring/use-sentry.md delete mode 100644 docs/how-to/testing/USE_CYPRESS.md create mode 100644 docs/how-to/testing/index.md create mode 100644 docs/how-to/testing/use-cypress.md rename docs/{INDEX.md => index.md} (98%) rename docs/reference/{DEPENDENCIES.md => dependencies.md} (99%) rename docs/reference/{FOLDER_STRUCTURE.md => folder-structure.md} (93%) create mode 100644 docs/reference/index.md rename docs/{ROADMAP.md => roadmap.md} (94%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a92e2b00..2a108a2b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1 @@ -Changelog -=== - - -- v1.0.0 - 2020-02-28 - - Initial release, production-ready (doc to be improved) +[GO TO CHANGELOG](https://unlyed.github.io/next-right-now/CHANGELOG) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..ce1b5d614 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +[GO TO CONTRIBUTING](https://unlyed.github.io/next-right-now/CONTRIBUTING) diff --git a/README.md b/README.md index 96575270a..fa1bbcda5 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ Thus, **you can still use this boilerplate even if you don't like all our choice * [Showcases - Live demo](#showcases---live-demo) - [Documentation](#documentation) - [FAQ](#faq) +- [Contributing](#contributing) - [License](#license) - [Vulnerability disclosure](#vulnerability-disclosure) - [Contributors and maintainers](#contributors-and-maintainers) @@ -166,9 +167,15 @@ You can see 2 almost identical demo at: --- +# Contributing + +[GO TO CONTRIBUTING](https://unlyed.github.io/next-right-now/CONTRIBUTING) + +--- + # License -MIT +[MIT](LICENSE) --- diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 000000000..a8a8d7242 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,35 @@ +--- +layout: default +title: CONTRIBUTING +nav_order: 90 +--- + +# Contributing + +## Contributing about documentation + +Our documentation lives in the `docs/` folder. It is generated by Github Pages. + +Only the master branch generates the online documentation. It is available at [https://unlyed.github.io/next-right-now/](https://unlyed.github.io/next-right-now/) + +It uses [Jekyll](https://jekyllrb.com/) behind the wheel, and [`just-the-docs`](https://pmarsceill.github.io/just-the-docs/) theme for Jekyll. + +### Installing Jekyll locally + +In order to contribute to the docs, you may need to install Jekyll locally (especially for non-trivial changes). +Jekyll needs Ruby binary. + +1. Install and configure Jekyll on your computer, follow [https://jekyllrb.com/docs/](https://jekyllrb.com/docs/) +1. Once Jekyll is installed, you can install all Ruby gems using `yarn doc:gem:install` +1. Once gems are installed, you can run Jekyll by using `yarn doc:start` + +### Configuring Jekyll properly + +Jekyll configuration uses 2 different files. +- [`docs/_config.yml`](docs/_config.yml) used by Github Pages +- [`docs/_config-development.yml`](docs/_config-development.yml) used by your local installation + +There are a few, but important differences between both. The custom configuration must be written at the top of each config file. +The shared configuration must be written below. + +> **N.B**: If you add custom/shared configuration, don't forget update both config files, as needed. diff --git a/docs/FAQ.md b/docs/FAQ.md index 4427a0e00..96c9341c0 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -1,12 +1,15 @@ --- -layout: page +layout: default title: FAQ permalink: /FAQ/ +nav_order: 70 --- # FAQ -> Q: I wanted to understand how the i18next integration works. How is the `i18nextInstance` passed to react? It seems to be passed to the `Layout` component, but the `Layout` component never uses it. So how does this work? +
+ **Question**: _I wanted to understand how the i18next integration works. How is the `i18nextInstance` passed to react? It seems to be passed to the `Layout` component, but the `Layout` component never uses it. So how does this work?_ +
- The i18nextInstance isn't necessary to perform translations actually, it's forwarded as a utility. - Manipulating the i18nextInstance is not often necessary, using import { Trans, useTranslation } from 'react-i18next'; is what you'll need most of the time when translating content. diff --git a/docs/VARIANTS.md b/docs/VARIANTS.md deleted file mode 100644 index 379eef551..000000000 --- a/docs/VARIANTS.md +++ /dev/null @@ -1 +0,0 @@ -TODO Explain variants https://github.com/UnlyEd/next-right-now/issues/18 diff --git a/docs/_config-development.yml b/docs/_config-development.yml index e768e6c8c..bd3491c74 100644 --- a/docs/_config-development.yml +++ b/docs/_config-development.yml @@ -1,5 +1,11 @@ # XXX This file is only used when working on your local machine, in development +# XXX --------- Specific to GHP config ------------ +theme: 'just-the-docs' # XXX Our Jekyll theme - See https://pmarsceill.github.io/just-the-docs/ + + +# XXX --------- Common to all config -------------- + # Welcome to Jekyll! # # This config file is meant for settings that affect your whole blog, values @@ -23,7 +29,12 @@ description: >- # this means to ignore newlines until "baseurl:" #baseurl: "" # the subpath of your site, e.g. /blog #url: "" # the base hostname & protocol for your site, e.g. http://example.com XXX Auto-resolved by GitHub -theme: 'just-the-docs' # XXX Our Jekyll theme - See https://pmarsceill.github.io/just-the-docs/ +# Aux links for the upper right navigation +aux_links: + "Github": "https://github.com/UnlyEd/next-right-now" + +footer_content: "Copyright © 2020 Unly. MIT license." +#color_scheme: "dark" # Exclude from processing. # The following items will not be processed, by default. Create a custom list diff --git a/docs/_config.yml b/docs/_config.yml index 884b2cdcb..1ea647441 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,5 +1,12 @@ # XXX This file is only used by GitHub Pages, when deploying online +# XXX --------- Specific to GHP config ------------ +remote_theme: pmarsceill/just-the-docs # XXX Our Jekyll theme - See https://pmarsceill.github.io/just-the-docs/ +ga_tracking: UA-89785688-8 + + +# XXX --------- Common to all config -------------- + # Welcome to Jekyll! # # This config file is meant for settings that affect your whole blog, values @@ -23,7 +30,12 @@ description: >- # this means to ignore newlines until "baseurl:" #baseurl: "" # the subpath of your site, e.g. /blog #url: "" # the base hostname & protocol for your site, e.g. http://example.com XXX Auto-resolved by GitHub -remote_theme: pmarsceill/just-the-docs # XXX Our Jekyll theme - See https://pmarsceill.github.io/just-the-docs/ +# Aux links for the upper right navigation +aux_links: + "Github": "https://github.com/UnlyEd/next-right-now" + +footer_content: "Copyright © 2020 Unly. MIT license." +#color_scheme: "dark" # Exclude from processing. # The following items will not be processed, by default. Create a custom list diff --git a/docs/_posts/2020-03-26-welcome-to-jekyll.markdown b/docs/_posts/2020-03-26-welcome-to-jekyll.markdown deleted file mode 100644 index 7bb998ee2..000000000 --- a/docs/_posts/2020-03-26-welcome-to-jekyll.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: post -title: "Welcome to Jekyll!" -date: 2020-03-26 18:06:23 +0100 -categories: jekyll update ---- -You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. - -To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works. - -Jekyll also offers powerful support for code snippets: - -{% highlight ruby %} -def print_hi(name) - puts "Hi, #{name}" -end -print_hi('Tom') -#=> prints 'Hi, Tom' to STDOUT. -{% endhighlight %} - -Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. - -[jekyll-docs]: https://jekyllrb.com/docs/home -[jekyll-gh]: https://github.com/jekyll/jekyll -[jekyll-talk]: https://talk.jekyllrb.com/ diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 000000000..76bdf7602 --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,12 @@ +--- +layout: default +title: CHANGELOG +nav_order: 80 +--- + +Changelog +=== + + +- v1.0.0 - 2020-02-28 + - Initial release, production-ready (doc to be improved) diff --git a/docs/concepts/MONITORING.md b/docs/concepts/MONITORING.md deleted file mode 100644 index 118d9913d..000000000 --- a/docs/concepts/MONITORING.md +++ /dev/null @@ -1 +0,0 @@ -TODO wasn't documented diff --git a/docs/concepts/TENANCY.md b/docs/concepts/TENANCY.md deleted file mode 100644 index 7541ac0e1..000000000 --- a/docs/concepts/TENANCY.md +++ /dev/null @@ -1 +0,0 @@ -TODO explain multi tenants and single multi tenants designs diff --git a/docs/concepts/ANALYTICS.md b/docs/concepts/analytics.md similarity index 95% rename from docs/concepts/ANALYTICS.md rename to docs/concepts/analytics.md index 15c24d436..3bb020499 100644 --- a/docs/concepts/ANALYTICS.md +++ b/docs/concepts/analytics.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Analytics +parent: Concepts +nav_order: 45 +--- + # [Amplitude](https://amplitude.com/) (Analytics) > Amplitude is used to collect usage metrics (analytics) of the application. diff --git a/docs/concepts/CI_CD.md b/docs/concepts/ci-cd.md similarity index 95% rename from docs/concepts/CI_CD.md rename to docs/concepts/ci-cd.md index 788537fb5..d83f08de7 100644 --- a/docs/concepts/CI_CD.md +++ b/docs/concepts/ci-cd.md @@ -1,3 +1,10 @@ +--- +layout: default +title: CI/CD +parent: Concepts +nav_order: 60 +--- + # Continuous Integration & Continuous Deployment (CI/CD) ## Overview diff --git a/docs/concepts/ENV_AND_STAGES.md b/docs/concepts/env-and-stages.md similarity index 97% rename from docs/concepts/ENV_AND_STAGES.md rename to docs/concepts/env-and-stages.md index 2f7e93f5c..44da54c45 100644 --- a/docs/concepts/ENV_AND_STAGES.md +++ b/docs/concepts/env-and-stages.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Environments and Stages +parent: Concepts +nav_order: 10 +--- + # Understanding `Environments` and `Stages` > The application relies on environment variables to function correctly. diff --git a/docs/concepts/GRAPHQL.md b/docs/concepts/graphql.md similarity index 94% rename from docs/concepts/GRAPHQL.md rename to docs/concepts/graphql.md index d5e3b3677..433819e92 100644 --- a/docs/concepts/GRAPHQL.md +++ b/docs/concepts/graphql.md @@ -1,3 +1,10 @@ +--- +layout: default +title: GraphQL +parent: Concepts +nav_order: 30 +--- + # [GraphCMS](https://graphcms.com/?ref=unly-nrn) ## Discount diff --git a/docs/concepts/I18N.md b/docs/concepts/i18n.md similarity index 98% rename from docs/concepts/I18N.md rename to docs/concepts/i18n.md index c9124b045..720666ce6 100644 --- a/docs/concepts/I18N.md +++ b/docs/concepts/i18n.md @@ -1,3 +1,10 @@ +--- +layout: default +title: I18n +parent: Concepts +nav_order: 40 +--- + # I18n (Internationalization) The content displayed on NRN is translated using different ways, depending on where the translations are stored: diff --git a/docs/concepts/index.md b/docs/concepts/index.md new file mode 100644 index 000000000..26d7dfbf5 --- /dev/null +++ b/docs/concepts/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: Concepts +nav_order: 30 +has_children: true +--- + diff --git a/docs/concepts/monitoring.md b/docs/concepts/monitoring.md new file mode 100644 index 000000000..cf565c05b --- /dev/null +++ b/docs/concepts/monitoring.md @@ -0,0 +1,8 @@ +--- +layout: default +title: Monitoring +parent: Concepts +nav_order: 50 +--- + +TODO wasn't documented diff --git a/docs/concepts/tenancy.md b/docs/concepts/tenancy.md new file mode 100644 index 000000000..2a2ba8775 --- /dev/null +++ b/docs/concepts/tenancy.md @@ -0,0 +1,8 @@ +--- +layout: default +title: Tenancy (MT & MST) +parent: Concepts +nav_order: 20 +--- + +TODO explain multi-tenants and multi single-tenants designs diff --git a/docs/concepts/TESTING.md b/docs/concepts/testing.md similarity index 91% rename from docs/concepts/TESTING.md rename to docs/concepts/testing.md index a5028c2a5..85561acea 100644 --- a/docs/concepts/TESTING.md +++ b/docs/concepts/testing.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Testing +parent: Concepts +nav_order: 70 +--- + # Testing ## CI tests Workflow diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md new file mode 100644 index 000000000..aaabe0c9e --- /dev/null +++ b/docs/getting-started/index.md @@ -0,0 +1,45 @@ +--- +layout: default +title: Getting started +nav_order: 20 +has_children: true +--- + +# Introduction + +> Below are explanations about how NRN works and why we did things the way we did +> +> **Tip**: If you're interested about how to use this project for your own need, see our ["How to use" Guide](./README_HOW_TO_USE.md) instead! + +## Introduction videos + +### Part 1 - Overview of Next Right Now (15 minutes) +[![Part 1 - Overview of Next Right Now](https://img.youtube.com/vi/kltkFwnFL-k/maxresdefault.jpg)](http://youtu.be/kltkFwnFL-k?hd=1) + +> Let's talk about why we built RNR in the first place, how it's meant to be used, whom it is for. +> +> This video features Zeit deployments, i18n, GraphCMS, Locize in-context editor, Sentry monitoring, Amplitude analytics, CI/CD Github Actions + +### Part 2 - Developer Experience with Next Right Now (15 minutes) +[![Part 2 - Developer Experience with Next Right Now](https://img.youtube.com/vi/fGlgIEeUqFg/maxresdefault.jpg)](http://youtu.be/fGlgIEeUqFg?hd=1) + +> Let's talk about the developer experience (DX) provided by NRN and how it helps being more efficient. +> +> This video features GraphQL auto-completion and local schema update, deployment workflow, CI/CD Github Actions explanations, interactive E2E testing, GraphsCMS field creation + +### Guides +- [How to run NRN in debug mode using WebStorm debug configuration](http://youtu.be/3vbkiRAT4e8?hd=1) (2 minutes) + +--- + +## Showcases - Live demo + +You can see 2 almost identical demo at: +- [https://nrn-customer1.now.sh](https://nrn-customer1.now.sh) +- [https://nrn-customer2.now.sh](https://nrn-customer2.now.sh) + +**Both share the same source code and configuration**, but the database content is different (hosted on GraphCMS). + +> **Tip**: You can get metadata at [/api/status](https://nrn-customer1.now.sh/api/status) +> +> **Tip**: All `/api/*` are serverless functions, running under AWS Lambda diff --git a/docs/LIVE_DEMO.md b/docs/getting-started/live-demo.md similarity index 93% rename from docs/LIVE_DEMO.md rename to docs/getting-started/live-demo.md index cc9cfba11..e1f14d832 100644 --- a/docs/LIVE_DEMO.md +++ b/docs/getting-started/live-demo.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Online demo +parent: Getting started +nav_order: 20 +--- + ## Showcases - Live demo You can see 2 almost identical demo at: diff --git a/docs/overview/INTRODUCTION.md b/docs/getting-started/overview.md similarity index 95% rename from docs/overview/INTRODUCTION.md rename to docs/getting-started/overview.md index a1ab95fd3..f731554a1 100644 --- a/docs/overview/INTRODUCTION.md +++ b/docs/getting-started/overview.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Overview +parent: Getting started +nav_order: 10 +--- + # Introduction > Below are explanations about how NRN works and why we did things the way we did diff --git a/docs/QUICKSTART.md b/docs/getting-started/quick-start.md similarity index 95% rename from docs/QUICKSTART.md rename to docs/getting-started/quick-start.md index 3f149fc1f..f3a9df49f 100644 --- a/docs/QUICKSTART.md +++ b/docs/getting-started/quick-start.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Quick start +parent: Getting started +nav_order: 30 +--- + ## Super quick local installation (for local-only testing purpose, without Zeit account) > This assumes you've **cloned** the project on your own computer. diff --git a/docs/getting-started/variants.md b/docs/getting-started/variants.md new file mode 100644 index 000000000..977bd7ccd --- /dev/null +++ b/docs/getting-started/variants.md @@ -0,0 +1,8 @@ +--- +layout: default +title: Variants +parent: Getting started +nav_order: 40 +--- + +TODO Explain variants https://github.com/UnlyEd/next-right-now/issues/18 diff --git a/docs/how-to/analytics-amplitude/index.md b/docs/how-to/analytics-amplitude/index.md new file mode 100644 index 000000000..f8db60aea --- /dev/null +++ b/docs/how-to/analytics-amplitude/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[Analytics] Amplitude" +parent: How to +nav_order: 40 +has_children: true +--- diff --git a/docs/how-to/analytics/REMOVE_AMPLITUDE.md b/docs/how-to/analytics-amplitude/remove-amplitude.md similarity index 86% rename from docs/how-to/analytics/REMOVE_AMPLITUDE.md rename to docs/how-to/analytics-amplitude/remove-amplitude.md index 5bdc9e2d2..1a411de73 100644 --- a/docs/how-to/analytics/REMOVE_AMPLITUDE.md +++ b/docs/how-to/analytics-amplitude/remove-amplitude.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Remove Amplitude +parent: "[Analytics] Amplitude" +grand_parent: How to +nav_order: 30 +--- + ## How to remove Amplitude > You can use other alternative libraries for analytics. diff --git a/docs/how-to/analytics-amplitude/setup-amplitude.md b/docs/how-to/analytics-amplitude/setup-amplitude.md new file mode 100644 index 000000000..bc08a4496 --- /dev/null +++ b/docs/how-to/analytics-amplitude/setup-amplitude.md @@ -0,0 +1,10 @@ +--- +layout: default +title: Setup Amplitude +parent: "[Analytics] Amplitude" +grand_parent: How to +nav_order: 10 +--- + +TODO wasn't documented + diff --git a/docs/how-to/analytics/USE_AMPLITUDE.md b/docs/how-to/analytics-amplitude/use-amplitude.md similarity index 56% rename from docs/how-to/analytics/USE_AMPLITUDE.md rename to docs/how-to/analytics-amplitude/use-amplitude.md index f18f9f4ec..1f1be8685 100644 --- a/docs/how-to/analytics/USE_AMPLITUDE.md +++ b/docs/how-to/analytics-amplitude/use-amplitude.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Use Amplitude +parent: "[Analytics] Amplitude" +grand_parent: How to +nav_order: 20 +--- + https://amplitude.com/ https://developers.amplitude.com/ https://amplitude.com/blog/category/inside-amplitude diff --git a/docs/how-to/analytics/SETUP_AMPLITUDE.md b/docs/how-to/analytics/SETUP_AMPLITUDE.md deleted file mode 100644 index ccbf8103d..000000000 --- a/docs/how-to/analytics/SETUP_AMPLITUDE.md +++ /dev/null @@ -1,2 +0,0 @@ -TODO - diff --git a/docs/how-to/ci-cd/index.md b/docs/how-to/ci-cd/index.md new file mode 100644 index 000000000..4ff5e4e9e --- /dev/null +++ b/docs/how-to/ci-cd/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[CI/CD] Github Actions" +parent: How to +nav_order: 60 +has_children: true +--- diff --git a/docs/how-to/ci-cd/SETUP_GITHUB_ACTIONS.md b/docs/how-to/ci-cd/setup-github-actions.md similarity index 96% rename from docs/how-to/ci-cd/SETUP_GITHUB_ACTIONS.md rename to docs/how-to/ci-cd/setup-github-actions.md index 78d87ff1b..d8793c0bc 100644 --- a/docs/how-to/ci-cd/SETUP_GITHUB_ACTIONS.md +++ b/docs/how-to/ci-cd/setup-github-actions.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Setup Github Actions +parent: "[CI/CD] Github Actions" +grand_parent: How to +nav_order: 10 +--- + # Github Actions <> Zeit integrations > Automated actions configured through GitHub Actions diff --git a/docs/how-to/ci-cd/USE_GITHUB_ACTIONS.md b/docs/how-to/ci-cd/use-github-actions.md similarity index 95% rename from docs/how-to/ci-cd/USE_GITHUB_ACTIONS.md rename to docs/how-to/ci-cd/use-github-actions.md index da67d997a..77938e0e1 100644 --- a/docs/how-to/ci-cd/USE_GITHUB_ACTIONS.md +++ b/docs/how-to/ci-cd/use-github-actions.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Use Github Actions +parent: "[CI/CD] Github Actions" +grand_parent: How to +nav_order: 20 +--- + # Introducing GitHub Actions > Stuff to read if you're not familiar with GitHub Actions diff --git a/docs/how-to/css-in-js/USE_EMOTION.md b/docs/how-to/css-in-js/USE_EMOTION.md deleted file mode 100644 index 006d24fe1..000000000 --- a/docs/how-to/css-in-js/USE_EMOTION.md +++ /dev/null @@ -1 +0,0 @@ -https://emotion.sh/docs/introduction diff --git a/docs/how-to/css-in-js/index.md b/docs/how-to/css-in-js/index.md new file mode 100644 index 000000000..fd88ecfad --- /dev/null +++ b/docs/how-to/css-in-js/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[CSS-in-JS] Emotion" +parent: How to +nav_order: 80 +has_children: true +--- diff --git a/docs/how-to/css-in-js/REMOVE_EMOTION.md b/docs/how-to/css-in-js/remove-emotion.md similarity index 84% rename from docs/how-to/css-in-js/REMOVE_EMOTION.md rename to docs/how-to/css-in-js/remove-emotion.md index de14d0df2..3582c0468 100644 --- a/docs/how-to/css-in-js/REMOVE_EMOTION.md +++ b/docs/how-to/css-in-js/remove-emotion.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Remove Emotion +parent: "[CSS-in-JS] Emotion" +grand_parent: How to +nav_order: 20 +--- + ## How to remove Emotion > We strongly recommend to keep Emotion. You can use both Styled Component approach and inline styles, it should feet all needs. diff --git a/docs/how-to/css-in-js/use-emotion.md b/docs/how-to/css-in-js/use-emotion.md new file mode 100644 index 000000000..99194d11b --- /dev/null +++ b/docs/how-to/css-in-js/use-emotion.md @@ -0,0 +1,9 @@ +--- +layout: default +title: Use Emotion +parent: "[CSS-in-JS] Emotion" +grand_parent: How to +nav_order: 10 +--- + +https://emotion.sh/docs/introduction diff --git a/docs/how-to/deploy/USE_ZEIT.md b/docs/how-to/deploy/USE_ZEIT.md deleted file mode 100644 index 47ca00318..000000000 --- a/docs/how-to/deploy/USE_ZEIT.md +++ /dev/null @@ -1,2 +0,0 @@ -https://zeit.co/docs -https://zeit.co/blog diff --git a/docs/how-to/deploy/index.md b/docs/how-to/deploy/index.md new file mode 100644 index 000000000..b922dd997 --- /dev/null +++ b/docs/how-to/deploy/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[Deploy] Zeit" +parent: How to +nav_order: 10 +has_children: true +--- diff --git a/docs/how-to/deploy/SETUP_ZEIT.md b/docs/how-to/deploy/setup-zeit.md similarity index 98% rename from docs/how-to/deploy/SETUP_ZEIT.md rename to docs/how-to/deploy/setup-zeit.md index d883a02eb..9a25ffa20 100644 --- a/docs/how-to/deploy/SETUP_ZEIT.md +++ b/docs/how-to/deploy/setup-zeit.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Setup Zeit +parent: "[Deploy] Zeit" +grand_parent: How to +nav_order: 10 +--- + ## Online installation (on Zeit) > Follow this guide **if you want to deep-dive into the demo**, deploy it to staging/production, **make this project your own**, etc. diff --git a/docs/how-to/deploy/use-zeit.md b/docs/how-to/deploy/use-zeit.md new file mode 100644 index 000000000..251468765 --- /dev/null +++ b/docs/how-to/deploy/use-zeit.md @@ -0,0 +1,10 @@ +--- +layout: default +title: Use Zeit +parent: "[Deploy] Zeit" +grand_parent: How to +nav_order: 20 +--- + +https://zeit.co/docs +https://zeit.co/blog diff --git a/docs/how-to/graphcms/index.md b/docs/how-to/graphcms/index.md new file mode 100644 index 000000000..b4bfaf6c8 --- /dev/null +++ b/docs/how-to/graphcms/index.md @@ -0,0 +1,9 @@ +--- +layout: default +title: "[GraphQL API] GraphCMS" +parent: How to +nav_order: 20 +has_children: true +--- + +https://graphql.org/ diff --git a/docs/how-to/graphql/SETUP_GRAPHCMS.md b/docs/how-to/graphcms/setup-graphcms.md similarity index 97% rename from docs/how-to/graphql/SETUP_GRAPHCMS.md rename to docs/how-to/graphcms/setup-graphcms.md index f01ef441a..0202043d0 100644 --- a/docs/how-to/graphql/SETUP_GRAPHCMS.md +++ b/docs/how-to/graphcms/setup-graphcms.md @@ -1,3 +1,10 @@ +--- +layout: default +title: Setup GraphCMS +parent: "[GraphQL API] GraphCMS" +grand_parent: How to +nav_order: 10 +--- ## Creating GraphCMS account diff --git a/docs/how-to/graphql/USE_GRAPHCMS.md b/docs/how-to/graphcms/use-graphcms.md similarity index 77% rename from docs/how-to/graphql/USE_GRAPHCMS.md rename to docs/how-to/graphcms/use-graphcms.md index 65e8944d3..2017eec50 100644 --- a/docs/how-to/graphql/USE_GRAPHCMS.md +++ b/docs/how-to/graphcms/use-graphcms.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Use GraphCMS +parent: "[GraphQL API] GraphCMS" +grand_parent: How to +nav_order: 20 +--- + > The next version is in beta, I don't recommend to use it yet as of now (March 2020) # Next version (upcoming, not ready): diff --git a/docs/how-to/graphql/USE_GRAPHQL.md b/docs/how-to/graphql/USE_GRAPHQL.md deleted file mode 100644 index b86c99992..000000000 --- a/docs/how-to/graphql/USE_GRAPHQL.md +++ /dev/null @@ -1 +0,0 @@ -https://graphql.org/ diff --git a/docs/how-to/i18n/USE_LOCIZE.md b/docs/how-to/i18n/USE_LOCIZE.md deleted file mode 100644 index 0e1565cf8..000000000 --- a/docs/how-to/i18n/USE_LOCIZE.md +++ /dev/null @@ -1,3 +0,0 @@ -https://locize.com/ -https://docs.locize.com/ -https://www.i18next.com/overview/for-enterprises#locize diff --git a/docs/how-to/i18n/index.md b/docs/how-to/i18n/index.md new file mode 100644 index 000000000..222c088bc --- /dev/null +++ b/docs/how-to/i18n/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[I18n] Locize" +parent: How to +nav_order: 30 +has_children: true +--- diff --git a/docs/how-to/i18n/REMOVE_LOCIZE.md b/docs/how-to/i18n/remove-locize.md similarity index 93% rename from docs/how-to/i18n/REMOVE_LOCIZE.md rename to docs/how-to/i18n/remove-locize.md index e21faa971..514b1f195 100644 --- a/docs/how-to/i18n/REMOVE_LOCIZE.md +++ b/docs/how-to/i18n/remove-locize.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Remove Locize +parent: "[I18n] Locize" +grand_parent: How to +nav_order: 30 +--- + ## How to remove Locize & i18n > You may replace Locize by another internationalisation too of your choice. Make sure it is JS universal-friendly though. diff --git a/docs/how-to/i18n/SETUP_LOCIZE.md b/docs/how-to/i18n/setup-locize.md similarity index 96% rename from docs/how-to/i18n/SETUP_LOCIZE.md rename to docs/how-to/i18n/setup-locize.md index afebd5037..2b60da935 100644 --- a/docs/how-to/i18n/SETUP_LOCIZE.md +++ b/docs/how-to/i18n/setup-locize.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Setup Locize +parent: "[I18n] Locize" +grand_parent: How to +nav_order: 10 +--- + ## Creating Locize account > Creating a Locize account is **necessary** to run the application, even when running it locally, because the app will throw an error if the `LOCIZE_PROJECT_ID` is not valid. diff --git a/docs/how-to/i18n/use-locize.md b/docs/how-to/i18n/use-locize.md new file mode 100644 index 000000000..a3cf9ec6a --- /dev/null +++ b/docs/how-to/i18n/use-locize.md @@ -0,0 +1,11 @@ +--- +layout: default +title: Use Locize +parent: "[I18n] Locize" +grand_parent: How to +nav_order: 20 +--- + +https://locize.com/ +https://docs.locize.com/ +https://www.i18next.com/overview/for-enterprises#locize diff --git a/docs/how-to/README.md b/docs/how-to/index.md similarity index 86% rename from docs/how-to/README.md rename to docs/how-to/index.md index 4d8da796b..1d95baaba 100644 --- a/docs/how-to/README.md +++ b/docs/how-to/index.md @@ -1,3 +1,10 @@ +--- +layout: default +title: How to +nav_order: 40 +has_children: true +--- + # How-to > In this section, you'll learn "how to" do something. diff --git a/docs/how-to/monitoring/USE_SENTRY.md b/docs/how-to/monitoring/USE_SENTRY.md deleted file mode 100644 index c429c1b93..000000000 --- a/docs/how-to/monitoring/USE_SENTRY.md +++ /dev/null @@ -1,2 +0,0 @@ -https://sentry.io/welcome/ -https://docs.sentry.io/ diff --git a/docs/how-to/monitoring/index.md b/docs/how-to/monitoring/index.md new file mode 100644 index 000000000..0e070516d --- /dev/null +++ b/docs/how-to/monitoring/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[Monitoring] Sentry" +parent: How to +nav_order: 50 +has_children: true +--- diff --git a/docs/how-to/monitoring/REMOVE_SENTRY.md b/docs/how-to/monitoring/remove-sentry.md similarity index 83% rename from docs/how-to/monitoring/REMOVE_SENTRY.md rename to docs/how-to/monitoring/remove-sentry.md index 380240371..f309bcd81 100644 --- a/docs/how-to/monitoring/REMOVE_SENTRY.md +++ b/docs/how-to/monitoring/remove-sentry.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Remove Sentry +parent: "[Monitoring] Sentry" +grand_parent: How to +nav_order: 30 +--- + ## How to remove Sentry > You may replace Sentry by another monitoring tool of your choice. Make sure it is JS universal-friendly though. diff --git a/docs/how-to/monitoring/SETUP_SENTRY.md b/docs/how-to/monitoring/setup-sentry.md similarity index 92% rename from docs/how-to/monitoring/SETUP_SENTRY.md rename to docs/how-to/monitoring/setup-sentry.md index 26a4feb25..ded96fac9 100644 --- a/docs/how-to/monitoring/SETUP_SENTRY.md +++ b/docs/how-to/monitoring/setup-sentry.md @@ -1,3 +1,11 @@ +--- +layout: default +title: Setup Sentry +parent: "[Monitoring] Sentry" +grand_parent: How to +nav_order: 10 +--- + ## Creating Sentry account > **Tip**: If you don't want to create an account, you can use `https://14fa1cae05079675b18cd05403ae5c48@sentry.io/1234567` as `SENTRY_DSN` diff --git a/docs/how-to/monitoring/use-sentry.md b/docs/how-to/monitoring/use-sentry.md new file mode 100644 index 000000000..16a6e53e9 --- /dev/null +++ b/docs/how-to/monitoring/use-sentry.md @@ -0,0 +1,10 @@ +--- +layout: default +title: Use Sentry +parent: "[Monitoring] Sentry" +grand_parent: How to +nav_order: 20 +--- + +https://sentry.io/welcome/ +https://docs.sentry.io/ diff --git a/docs/how-to/testing/USE_CYPRESS.md b/docs/how-to/testing/USE_CYPRESS.md deleted file mode 100644 index 642a0f51d..000000000 --- a/docs/how-to/testing/USE_CYPRESS.md +++ /dev/null @@ -1,2 +0,0 @@ -https://www.cypress.io/ -https://docs.cypress.io/guides/overview/key-differences.html#Architecture diff --git a/docs/how-to/testing/index.md b/docs/how-to/testing/index.md new file mode 100644 index 000000000..c105a791f --- /dev/null +++ b/docs/how-to/testing/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: "[Testing] Cypress" +parent: How to +nav_order: 70 +has_children: true +--- diff --git a/docs/how-to/testing/use-cypress.md b/docs/how-to/testing/use-cypress.md new file mode 100644 index 000000000..0b6cb190e --- /dev/null +++ b/docs/how-to/testing/use-cypress.md @@ -0,0 +1,10 @@ +--- +layout: default +title: Use Cypress +parent: "[Testing] Cypress" +grand_parent: How to +nav_order: 10 +--- + +https://www.cypress.io/ +https://docs.cypress.io/guides/overview/key-differences.html#Architecture diff --git a/docs/INDEX.md b/docs/index.md similarity index 98% rename from docs/INDEX.md rename to docs/index.md index 86c39baf1..cf4fec4dd 100644 --- a/docs/INDEX.md +++ b/docs/index.md @@ -1,9 +1,16 @@ -Unly logo +--- +layout: default +title: Introduction +nav_order: 10 +--- + [![Maintainability](https://api.codeclimate.com/v1/badges/3f3f2c0a4106abcb9a1d/maintainability)](https://codeclimate.com/github/UnlyEd/next-right-now/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/3f3f2c0a4106abcb9a1d/test_coverage)](https://codeclimate.com/github/UnlyEd/next-right-now/test_coverage) [![Locize Latest version](https://img.shields.io/badge/dynamic/json.svg?style=plastic&color=2096F3&label=locize&query=%24.versions%5B%27latest%27%5D.translatedPercentage&url=https://api.locize.app/badgedata/658fc999-dfa8-4307-b9d7-b4870ad5b968&suffix=%+translated&link=https://www.locize.com&prefix=latest:+)](https://www.locize.app/p/w7jrmdie/statistics/badges) [![Locize Production version](https://img.shields.io/badge/dynamic/json.svg?style=plastic&color=2096F3&label=locize&query=%24.versions%5B%27production%27%5D.translatedPercentage&url=https://api.locize.app/badgedata/658fc999-dfa8-4307-b9d7-b4870ad5b968&suffix=%+translated&link=https://www.locize.com&prefix=production:+)](https://www.locize.app/p/w7jrmdie/statistics/badges) +--- + > Documentation in progress - See [on-progress issue](https://github.com/UnlyEd/next-right-now/issues/20) > Don't hesitate to contribute! :) > diff --git a/docs/reference/DEPENDENCIES.md b/docs/reference/dependencies.md similarity index 99% rename from docs/reference/DEPENDENCIES.md rename to docs/reference/dependencies.md index b52ba43b8..4d7b9eb5b 100644 --- a/docs/reference/DEPENDENCIES.md +++ b/docs/reference/dependencies.md @@ -1,5 +1,9 @@ -Unly logo - +--- +layout: default +title: Dependencies +parent: Reference +nav_order: 20 +--- Dependencies === @@ -576,3 +580,6 @@ It's a bit harder to setup, here is a [tutorial](https://www.cypress.io/blog/201 _Uses many dependencies, many of them outdated (handlebars) and containing security issues, but we don't care much about those as they aren't shipped in the build, but only present on the developer's local machine._ - [`version-bump-prompt`](https://www.npmjs.com/package/version-bump-prompt): Used to make it easier to bump versions. + + + diff --git a/docs/reference/FOLDER_STRUCTURE.md b/docs/reference/folder-structure.md similarity index 93% rename from docs/reference/FOLDER_STRUCTURE.md rename to docs/reference/folder-structure.md index d921be3da..eeaeb3683 100644 --- a/docs/reference/FOLDER_STRUCTURE.md +++ b/docs/reference/folder-structure.md @@ -1,3 +1,9 @@ +--- +layout: default +title: Folder structure +parent: Reference +nav_order: 20 +--- # Project folders structure > Overview of the project folder and files structure diff --git a/docs/reference/index.md b/docs/reference/index.md new file mode 100644 index 000000000..eb0069f00 --- /dev/null +++ b/docs/reference/index.md @@ -0,0 +1,7 @@ +--- +layout: default +title: Reference +nav_order: 50 +has_children: true +--- + diff --git a/docs/ROADMAP.md b/docs/roadmap.md similarity index 94% rename from docs/ROADMAP.md rename to docs/roadmap.md index f40dfc482..dfe58c2b8 100644 --- a/docs/ROADMAP.md +++ b/docs/roadmap.md @@ -1,3 +1,9 @@ +--- +layout: default +title: Roadmap +nav_order: 60 +--- + # Roadmap and future improvements > This boilerplate is usable (and used) in production environments. But there are a few improvements we're really looking towards. diff --git a/package.json b/package.json index d5d2d8b13..ec4f97b98 100644 --- a/package.json +++ b/package.json @@ -28,12 +28,13 @@ "e2e:open": "CYPRESS_STAGE=${CYPRESS_STAGE:-development}; cypress open --config-file cypress/config-$CYPRESS_STAGE.json", "e2e:run": "CYPRESS_STAGE=${CYPRESS_STAGE:-development}; cypress run --config-file cypress/config-$CYPRESS_STAGE.json", "e2e:ci": "yarn e2e:install && cypress run --record", - "doc:start": "cd docs/ && bundle exec jekyll serve --config _config-development.yml --incremental", - "doc:gem:install": "cd docs/ && bundle install", "preversion": "yarn doc:toc && yarn lint:once && yarn test:once", "release": "yarn bump --commit --tag && git add CHANGELOG.md README.md && git commit --amend --no-edit && git push && git push --tags", - "doc:toc": "yarn doc:toc:readme", + "doc:toc": "yarn doc:toc:readme && yarn doc:toc:dependencies", "doc:toc:readme": "yarn markdown-toc --maxdepth 4 -i README.md", + "doc:toc:dependencies": "yarn markdown-toc --maxdepth 4 -i ./docs/reference/dependencies.md", + "doc:start": "cd docs/ && bundle exec jekyll serve --config _config-development.yml", + "doc:gem:install": "cd docs/ && bundle install", "lint": "esw src/ -w --ext .ts --ext .tsx", "lint:once": "eslint src/ --ext .ts --ext .tsx", "lint:fix": "eslint src/ --ext .ts --ext .tsx --fix",