diff --git a/.eslintrc.json b/.eslintrc.json index 5b180382c..13a561287 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -48,6 +48,16 @@ "import/no-unresolved": 0, "import/extensions": 0 } + }, + { + "files": ["**/website/**/*.js"], + "rules": { + "react/jsx-filename-extension": 0, + "react/no-multi-comp": 0, + "react/prefer-stateless-function": 0, + "import/no-extraneous-dependencies": 0, + "import/no-unresolved": 0 + } } ] } diff --git a/README.md b/README.md index bcb3d21a5..902571f9f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- nebula.js logo + nebula.js logo

A new star on the rise

@@ -13,7 +13,7 @@ It consists of three parts: - `supernova`: A JavaScript API for consuming and visualizing QIX data. - `cli`: Tools to help you create, develop and build a `supernova`. -![nebula-overview](assets/nebula-overview.png) +![nebula-overview](docs/assets/nebula-overview.png) ## Roadmap diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..7b7a942fd --- /dev/null +++ b/docs/README.md @@ -0,0 +1,14 @@ +--- +id: introduction +title: Introduction +--- + +## What is nebula.js? + +`nebula.js` is a collection of JavaScript libraries and APIs that helps developers integrate visualizations and mashups on top of Qlik's Associative Engine. + +It consists of three parts: + +- `nucleus`: A product and framework agnostic JavaScript library for building mashups. +- `supernova`: A JavaScript API for consuming and visualizing QIX data. +- `cli`: Tools to help you create, develop and build a `supernova`. \ No newline at end of file diff --git a/assets/logos/nebula.png b/docs/assets/logos/nebula.png similarity index 100% rename from assets/logos/nebula.png rename to docs/assets/logos/nebula.png diff --git a/assets/logos/nebula.svg b/docs/assets/logos/nebula.svg similarity index 100% rename from assets/logos/nebula.svg rename to docs/assets/logos/nebula.svg diff --git a/assets/logos/nebula_black.png b/docs/assets/logos/nebula_black.png similarity index 100% rename from assets/logos/nebula_black.png rename to docs/assets/logos/nebula_black.png diff --git a/assets/logos/nebula_black.svg b/docs/assets/logos/nebula_black.svg similarity index 100% rename from assets/logos/nebula_black.svg rename to docs/assets/logos/nebula_black.svg diff --git a/assets/logos/nebula_on_white.png b/docs/assets/logos/nebula_on_white.png similarity index 100% rename from assets/logos/nebula_on_white.png rename to docs/assets/logos/nebula_on_white.png diff --git a/assets/logos/nebula_white.png b/docs/assets/logos/nebula_white.png similarity index 100% rename from assets/logos/nebula_white.png rename to docs/assets/logos/nebula_white.png diff --git a/assets/logos/nebula_white.svg b/docs/assets/logos/nebula_white.svg similarity index 100% rename from assets/logos/nebula_white.svg rename to docs/assets/logos/nebula_white.svg diff --git a/assets/nebula-overview.png b/docs/assets/nebula-overview.png similarity index 100% rename from assets/nebula-overview.png rename to docs/assets/nebula-overview.png diff --git a/website/README.md b/website/README.md new file mode 100644 index 000000000..afda31714 --- /dev/null +++ b/website/README.md @@ -0,0 +1,9 @@ +# nebula.js website + +The website is generated using [docusaurus](https://docusaurus.io/). + +The documentation itself is located in [../docs](../docs). + +## Using Docusaurus + +Run `npm start` to start a server which will host the website at `localhost:3000`. diff --git a/website/core/Footer.js b/website/core/Footer.js new file mode 100644 index 000000000..d12442488 --- /dev/null +++ b/website/core/Footer.js @@ -0,0 +1,64 @@ +const React = require('react'); + +class Footer extends React.Component { + docUrl(doc, language) { + const { baseUrl, docsUrl } = this.props.config; + const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`; + const langPart = `${language ? `${language}/` : ''}`; + return `${baseUrl}${docsPart}${langPart}${doc}`; + } + + pageUrl(doc, language) { + const { baseUrl } = this.props.config; + return baseUrl + (language ? `${language}/` : '') + doc; + } + + imgUrl(img) { + const { baseUrl } = this.props.config; + return `${baseUrl}img/${img}`; + } + + render() { + return ( + + ); + } +} + +module.exports = Footer; diff --git a/website/package.json b/website/package.json new file mode 100644 index 000000000..ebc373d91 --- /dev/null +++ b/website/package.json @@ -0,0 +1,14 @@ +{ + "scripts": { + "examples": "docusaurus-examples", + "start": "docusaurus-start", + "build": "docusaurus-build", + "publish-gh-pages": "docusaurus-publish", + "write-translations": "docusaurus-write-translations", + "version": "docusaurus-version", + "rename-version": "docusaurus-rename-version" + }, + "devDependencies": { + "docusaurus": "^1.11.1" + } +} diff --git a/website/pages/en/index.js b/website/pages/en/index.js new file mode 100644 index 000000000..eb1ba7972 --- /dev/null +++ b/website/pages/en/index.js @@ -0,0 +1,46 @@ +const React = require('react'); + +const CompLibrary = require('../../core/CompLibrary.js'); + +const { + // MarkdownBlock, + Container, + GridBlock, +} = CompLibrary; + +class Index extends React.Component { + render() { + // const { config: siteConfig, language = '' } = this.props; + // const { baseUrl } = siteConfig; + + const Block = props => ( + + + + ); + + return ( +
+
+ + {[ + { + title: 'Under construction', + }, + ]} + +
+
+ ); + } +} + +module.exports = Index; diff --git a/website/sidebars.json b/website/sidebars.json new file mode 100644 index 000000000..075d01a81 --- /dev/null +++ b/website/sidebars.json @@ -0,0 +1,5 @@ +{ + "docs": { + "Introduction": ["introduction"] + } +} diff --git a/website/siteConfig.js b/website/siteConfig.js new file mode 100644 index 000000000..35cedb0f3 --- /dev/null +++ b/website/siteConfig.js @@ -0,0 +1,74 @@ +const siteConfig = { + title: 'nebula.js', // Title for your website. + tagline: 'A new star on the rise', + url: 'https://nebulajs.netlify.com', // Your website URL + baseUrl: '/', // Base URL for your project */ + + // Used for publishing and more + projectName: 'nebula.js', + organizationName: 'qlik-oss', + + // For no header links in the top nav bar -> headerLinks: [], + headerLinks: [ + // { doc: 'introduction', label: 'Introduction' }, + ], + + /* path to images for header/footer */ + headerIcon: 'docs/assets/logos/nebula_white.svg', + disableHeaderTitle: true, + footerIcon: 'docs/assets/logos/nebula_white.svg', + favicon: 'img/favicon.svg', + + /* Colors for website */ + colors: { + primaryColor: '#91298C', + secondaryColor: '#0f0', + }, + + /* Custom fonts for website */ + /* + fonts: { + myFont: [ + "Times New Roman", + "Serif" + ], + myOtherFont: [ + "-apple-system", + "system-ui" + ] + }, + */ + + // This copyright info is used in /core/Footer.js and blog RSS/Atom feeds. + copyright: `Copyright © ${new Date().getFullYear()} QlikTech International AB`, + + highlight: { + // Highlight.js theme to use for syntax highlighting in code blocks. + theme: 'default', + }, + + // Add custom scripts here that would be placed in