...
 
Commits (2)
# Minds Docs
View these docs at [https://oss.minds.com/](https://oss.minds.com).
View these docs at [https://developers.minds.com/](https://oss.minds.com).
These docs were created with [Docusaurus](https://docusaurus.io/).
# Get Started in 5 Minutes
1. Make sure all the dependencies for the website are installed:
In docs\website
```sh
# Install dependencies
$ yarn
```
2. Run your dev server:
```sh
# Start the site
$ yarn start
```
# Editing Content
## Editing an existing docs page
Edit docs by navigating to `docs/` and editing the corresponding document:
`docs/doc-to-be-edited.md`
```markdown
---
id: page-needs-edit
title: This Doc Needs To Be Edited
---
Edit me...
```
For more information about docs, click [here](https://docusaurus.io/docs/en/navigation)
## Editing an existing blog post
Edit blog posts by navigating to `website/blog` and editing the corresponding post:
`website/blog/post-to-be-edited.md`
```markdown
---
id: post-needs-edit
title: This Blog Post Needs To Be Edited
---
Edit me...
```
For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
# Adding Content
## Adding a new docs page to an existing sidebar
1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`:
```md
---
id: newly-created-doc
title: This Doc Needs To Be Edited
---
My new content here..
```
1. Refer to that doc's ID in an existing sidebar in `website/sidebar.json`:
```javascript
// Add newly-created-doc to the Getting Started category of docs
{
"docs": {
"Getting Started": [
"quick-start",
"newly-created-doc" // new doc here
],
...
},
...
}
```
For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation)
## Adding a new blog post
1. Make sure there is a header link to your blog in `website/siteConfig.js`:
`website/siteConfig.js`
```javascript
headerLinks: [
...
{ blog: true, label: 'Blog' },
...
]
```
2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`:
`website/blog/2018-05-21-New-Blog-Post.md`
```markdown
---
author: Frank Li
authorURL: https://twitter.com/foobarbaz
authorFBID: 503283835
title: New Blog Post
---
Lorem Ipsum...
```
For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
## Adding items to your site's top navigation bar
1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`:
`website/siteConfig.js`
```javascript
{
headerLinks: [
...
/* you can add docs */
{ doc: 'my-examples', label: 'Examples' },
/* you can add custom pages */
{ page: 'help', label: 'Help' },
/* you can add external links */
{ href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' },
...
],
...
}
```
For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation)
## Adding custom pages
1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`:
1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element:
`website/siteConfig.js`
```javascript
{
headerLinks: [
...
{ page: 'my-new-custom-page', label: 'My New Custom Page' },
...
],
...
}
```
For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages).
# Full Documentation
Full documentation can be found on the [docusaurus website](https://docusaurus.io/).
See our [documentation](https://developers.minds.com/docs/guides/documentation) guide to get started.
......@@ -3,14 +3,7 @@ id: installation
title: Installation
---
## Repositories
The [Minds repository](https://gitlab.com/Minds/minds) contains multiple git submodule repositories:
- [Engine](https://gitlab.com/Minds/engine) - Backend code & APIs
- [Front](https://gitlab.com/Minds/front) - Client side Angular2 web app
- [Sockets](https://gitlab.com/Minds/sockets) - WebSocket server for real-time communication
- [Mobile](https://gitlab.com/Minds/mobile-native) - React Native mobile apps
Get started by creating a branch (dev team) or fork (community members) of the [Minds repository](https://gitlab.com/Minds/minds).
## Development system requirements
......@@ -18,7 +11,7 @@ The [Minds repository](https://gitlab.com/Minds/minds) contains multiple git sub
- 10GB RAM (also set this in _Docker > Settings > Advanced_ tab)
- 100GB Disk space
## Development Installation
## Development installation
### Build the Elasticsearch indexes
......@@ -63,7 +56,7 @@ _**Linux users:** To get Elasticsearch 6 to run, you must make a settings change
### Nuclear Option
When things aren't running smoothly in your Dockerized enviroment, sometimes it's best to start from scratch. Follow these steps to **completely delete your data** and start fresh:
When things aren't running smoothly in your Dockerized environment, sometimes it's best to start from scratch. Follow these steps to **completely delete your data** and start fresh:
```
#Remove your settings file
......@@ -96,10 +89,11 @@ At this time it is not advisable to run Minds in production, however it is possi
## Working in the development environment
Configure your settings in `settings.php`
Configure your settings in `settings.php`.
### Make your test user an admin
To make your test user an admin:
Make sure you are in development mode in `settings.php`:
Sometimes you need to do things as an admin user. To do this, make sure you are in development mode in `settings.php`:
```php
$CONFIG->set('development_mode', true);
......
---
id: introduction
title: Welcome to the Minds Stack
title: Welcome to the Minds stack
sidebar_label: Introduction
---
Minds is a free & open-source, encrypted and reward-based social networking platform. Our [roadmap](https://gitlab.com/groups/minds/-/roadmap), [code](https://gitlab.com/minds/minds), [project management system](https://gitlab.com/groups/minds/-/boards), and more all reside in [GitLab](https://gitlab.com/minds).
## Repositories
The [Minds repository](https://gitlab.com/Minds/minds) contains multiple git submodule repositories:
- [Engine](https://gitlab.com/Minds/engine) - Backend code & APIs
- [Front](https://gitlab.com/Minds/front) - Client side Angular2 web app
- [Sockets](https://gitlab.com/Minds/sockets) - WebSocket server for real-time communication
- [Mobile](https://gitlab.com/Minds/mobile-native) - React Native mobile apps
## Security reports
Please report all security issues to [security@minds.com](mailto:security@minds.com).
......
......@@ -3,12 +3,14 @@ id: architecture
title: Architecture
---
## Overview
> TODO update this diagram
![Architecture diagram](assets/architecture-diagram.jpg "Diagram of Minds architecture")
![Architecture diagram](assets/architecture-diagram.jpg 'Diagram of Minds architecture')
[Click to enlarge](assets/architecture-diagram.jpg)
# Sockets
## Sockets
Sockets are for live interactions, such as comments, group gathering pulsators, notifications, messenger, and the jury.
......
......@@ -3,9 +3,9 @@ id: backend
title: Backend
---
_This guide assumes that you have already [installed your stack](getting-started/installation.md)_
_This guide assumes that you have already [installed your stack](getting-started/installation.md)_.
The source code can be found at the [engine repository](https://gitlab.com/minds/engine).
The source code can be found at the [Engine repository](https://gitlab.com/minds/engine).
## Structure
......@@ -41,7 +41,7 @@ Minds follows an abstraction design pattern - by separating complex processes in
To illustrate how modules work, we're going to create a VideoChat module that makes use of dependency injection providers.
Our completed module will look something like this:
![Module diagram](assets/engine-module-diagram.png "Diagram of an example VideoChat module")
![Module diagram](assets/engine-module-diagram.png 'Diagram of an example VideoChat module')
[Click to enlarge](assets/engine-module-diagram.png)
### Module building blocks
......
......@@ -3,25 +3,25 @@ id: deployment
title: Deployment
---
Minds deploys with **[GitLab](https://gitlab.com/minds)**, making use of Docker & Kubernetes.
Minds deploys with [GitLab](https://gitlab.com/minds), making use of Docker & Kubernetes.
# Docker Containers
## Docker Containers
## FPM
### FPM
```
docker build -t minds/fpm:latest -f containers/php-fpm/Dockerfile .
```
## Runners
### Runners
```
docker build -t minds/runners:latest -f containers/php-runners/Dockerfile .
```
# Getting connected to the staging environment
## Getting connected to the staging environment
## Prerequisties
### Prerequisties
- Your AWS access keys setup in `settings.php`
- `AWS_ACCESS_KEY={Your access key provided by Mark}`
......@@ -30,7 +30,7 @@ docker build -t minds/runners:latest -f containers/php-runners/Dockerfile .
- Your AWS user must have access to AWS EKS
- Helm and Kubernetes installed
## Connecting
### Connecting
```console
aws eks update-kubeconfig --name=sandbox
......@@ -44,7 +44,7 @@ Then you should be able to see all available pods with:
kubectl get pods
```
# Review Apps
## Review Apps
The review apps make use of [Helm](https://helm.sh) and [Kubernetes](https://kubernetes.io/). Our helm charts can be found [here](https://gitlab.com/minds/helm-charts) and you can inspect the review app auto deployment in our [.gitlab-ci.yml file](https://gitlab.com/minds/engine/blob/master/.gitlab-ci.yml#L52).
......@@ -76,7 +76,7 @@ helm upgrade \
./helm-charts/minds
```
## Managing review app settings
### Managing review app settings
When a pod gets deployed, [Helm charts](https://gitlab.com/minds/helm-charts) writes in the values by parsing [configMap.yaml](https://gitlab.com/minds/helm-charts/blob/master/minds/templates/configMap.yaml).
......@@ -99,7 +99,7 @@ And add the values to the correponding yaml files:
- [Staging environment defaults](https://gitlab.com/minds/helm-charts/blob/master/minds/values.yaml)
- [Production values](https://gitlab.com/minds/helm-charts/blob/master/minds/values-production.yaml)
## Why so many values and templating?
### Why so many values and templating?
Because it enables us to do something really cool, like dynamically override configuration values for your staging environment - useful for turning on your [feature flags](../walk-throughs/feature-flags).
......@@ -126,7 +126,7 @@ We don't need to specify a set value here because the value doesn't exist. Howev
If you hose anything, you can always re-run the pipeline which will rebuild the pods with the latest configuration in master and start over.
# Interacting with the staging environment
## Interacting with the staging environment
You can get access to the pods by using **kubectl**. Note, pods are read-only and ephemeral, so you can't go hacking things on the container.
......@@ -142,6 +142,6 @@ Shell into a pod using the name from `get pods` (read only)
kubectl exec -it {your.staging.site.subdomain}-{pod.type}-{kubernetes-suffix} sh
```
# Production
## Production
The Minds production environment is deployed directly from the CI flow found [here](https://gitlab.com/minds/engine/blob/master/.gitlab-ci.yml#L97). Minds currently uses Docker/ECS, but plans to move to Kubernetes as soon as possible.
---
id: documentation
title: Documentation
---
The source code for this site can be found at the [Docs and Developer Site repository](https://gitlab.com/minds/docs).
## Get started in 5 minutes
1. Make sure all the dependencies for the website are installed. In `docs/website/`:
```sh
# Install dependencies
$ yarn
```
2. Run your dev server:
```sh
# Start the site
$ yarn start
```
## Documentation is the single source of truth (SSOT)
The docs are the SSOT for information about how to configure, use, and troubleshoot Minds products and features.
### Docs-first methodology
- If the answer to a question exists in documentation, share the link to the docs instead of rephrasing the information.
- When you encounter new information not available in GitLab’s documentation (for example, when working on a support case or testing a feature), your first step should be to create a merge request to add this information to the docs. You can then share the MR in order to communicate this information.
### Link instead of summarize
There is a temptation to summarize the information on another page. This will cause the information to live in two places. Instead, link to the SSOT and explain why it is important to consume the information.
## Formatting
Use [GitHub flavored markdown](https://help.github.com/en/articles/basic-writing-and-formatting-syntax).
#### Headers
The largest tier of headers should have _two_ hashes, e.g. `## My h1 primary header`. If you use one hash, it won't work with the navigation sidebar.
Only capitalize the _first letter_ of your header, unless it includes a proper noun:
- `### My cool subheader with many words`
- `### My cool Minds subheader that contains a proper noun`
## Adding images
- Add the image file to `docs/assets/`
- Add a "Click to enlarge" link below images that depict small details/text
```md
![My cool diagram](assets/my-cool-diagram.png "My cool diagram's alt text")
[Click to enlarge](assets/my-cool-diagram.png)
```
## Editing an existing docs page
Edit by clicking the "edit" button at the top of the docs site page, or by navigating to `docs/` and editing the corresponding document:
`docs/doc-to-be-edited.md`
```markdown
---
id: page-needs-edit
title: This Doc Needs To Be Edited
---
Edit me...
```
For more information about docs, click [here](https://docusaurus.io/docs/en/navigation)
## Editing an existing blog post
Edit blog posts by clicking the "edit" button at the top of the docs site page, or by navigating to `website/blog` and editing the corresponding post:
`website/blog/post-to-be-edited.md`
```markdown
---
id: post-needs-edit
title: This Blog Post Needs To Be Edited
---
Edit me...
```
For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
## Adding Content
### Adding a new docs page to an existing sidebar
1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`:
```md
---
id: newly-created-doc
title: This Doc Needs To Be Edited
---
My new content here..
```
2. Refer to that doc's ID in an existing sidebar in `website/sidebars.json`:
```javascript
// Add newly-created-doc to the Getting Started category of docs
{
"docs": {
"Getting Started": [
"quick-start",
"newly-created-doc" // new doc here
],
...
},
...
}
```
For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation)
### Adding a new blog post
1. Make sure there is a header link to your blog in `website/siteConfig.js`:
`website/siteConfig.js`
```javascript
headerLinks: [
...
{ blog: true, label: 'Blog' },
...
]
```
2. Create the blog post with the format `YYYY-MM-DD-My-Blog-Post-Title.md` in `website/blog`:
`website/blog/2018-05-21-New-Blog-Post.md`
```markdown
---
author: Frank Li
authorURL: https://twitter.com/foobarbaz
authorFBID: 503283835
title: New Blog Post
---
Lorem Ipsum...
```
For more information about blog posts, click [here](https://docusaurus.io/docs/en/adding-blog)
### Adding items to the top navigation bar
1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`:
`website/siteConfig.js`
```javascript
{
headerLinks: [
...
/* you can add docs */
{ doc: 'my-examples', label: 'Examples' },
/* you can add custom pages */
{ page: 'help', label: 'Help' },
/* you can add external links */
{ href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' },
...
],
...
}
```
For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation)
### Adding custom pages
1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`:
1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element:
`website/siteConfig.js`
```javascript
{
headerLinks: [
...
{ page: 'my-new-custom-page', label: 'My New Custom Page' },
...
],
...
}
```
For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages).
## Full docusaurus documentation
Full documentation can be found on the [docusaurus website](https://docusaurus.io/).
## Credits
A portion of this guide's content is taken from GitLab's excellent [documentation styleguide](https://git.causal.ch/help/development/documentation/styleguide.md).
......@@ -3,11 +3,11 @@ id: frontend
title: Frontend
---
_This guide assumes that you have already [installed your stack](getting-started/installation.md)_
_This guide assumes that you have already [installed your stack](getting-started/installation.md)_.
Minds uses [Angular 8](https://angular.io) for the frontend. Work is currently underway to introduce server side rendering with Angular Universal.
The source code can be found in the [front repository](https://gitlab.com/minds/front).
The source code can be found in the [Front repository](https://gitlab.com/minds/front).
## Building
......@@ -85,18 +85,34 @@ If you need to add a new class to an older file that has not yet been updated to
Minds uses [Prettier](https://prettier.io/) to enforce consistent formatting in frontend code.
Before you push your MR, run `prettier --write "src/**/*.{scss,ts,html}"` (or, if possible, download a Prettier plug-in for your code editor and tell it to automatically format the code on save). Defaults are configured in `.prettierrc`.
Before you push your MR, run:
```console
prettier --write "src/**/*.{scss,ts,html}"
```
(or, if possible, download a Prettier plug-in for your code editor and tell it to automatically format the code on save). Defaults are configured in `.prettierrc`.
## Spec tests
#### Executing
### Executing
`ng test`
#### Cypress tests
### Cypress tests
> TODO: Brian
#### Select with data attributes, not classes
This is Cypress' best practice for finding testable attributes in the DOM, since using HTML selectors to find positions in the DOM is both brittle and flakey. So wherever you see `data-name-of-component`, you'll know it's e2e related.
For example, to add data attributes to our `minds-activity` objects:
```html
[attr.data-minds-activity-guid]="activity.guid"
```
## Styles
### Themes
......
This diff is collapsed.
......@@ -7,13 +7,12 @@ Minds uses [React Native](https://reactnative.com) to power both the Android and
## Building
```yarn install```
```react-native run-ios or react-native run-android```
`yarn install`
`react-native run-ios or react-native run-android`
## Spec tests
### Executing
`yarn test`
\ No newline at end of file
`yarn test`
......@@ -23,56 +23,71 @@ class Footer extends React.Component {
render() {
return (
<footer className="nav-footer" id="footer">
<section className="sitemap">
<a href={this.props.config.baseUrl} className="nav-home">
<footer className='nav-footer' id='footer'>
<section className='sitemap'>
<a href={this.props.config.baseUrl} className='nav-home'>
{this.props.config.footerIcon && (
<img
src={this.props.config.baseUrl + this.props.config.footerIcon}
alt={this.props.config.title}
width="66"
height="58"
width='66'
height='58'
/>
)}
</a>
<div>
<h5>Docs</h5>
<a href={this.docUrl('getting-started/introduction', this.props.language)}>
<a
href={this.docUrl(
'getting-started/introduction',
this.props.language
)}
>
Getting Started
</a>
<a href={this.docUrl('guides/deployment', this.props.language)}>
Guides
</a>
<a href={this.docUrl('contributing/contributing', this.props.language)}>
<a
href={this.docUrl(
'contributing/contributing',
this.props.language
)}
>
Contributing
</a>
</div>
<div>
<h5>Community</h5>
<a href="https://www.minds.com/groups/profile/365903183068794880/feed">Open Source Community Group</a>
<a href='https://www.minds.com/groups/profile/365903183068794880/feed'>
Open Source Community Group
</a>
<a
href="https://stackoverflow.com/questions/tagged/"
target="_blank"
rel="noreferrer noopener">
href='https://stackoverflow.com/questions/tagged/'
target='_blank'
rel='noreferrer noopener'
>
Stack Overflow
</a>
</div>
<div>
<h5>More</h5>
<a href="https://gitlab.com/minds">Gitlab</a>
<a href='https://gitlab.com/minds'>GitLab</a>
<span></span>
<a className="github-button"
href="https://github.com/minds/minds"
data-icon="octicon-star"
data-size="large"
data-show-count="true"
aria-label="Star minds/minds on GitHub">
<a
className='github-button'
href='https://github.com/minds/minds'
data-icon='octicon-star'
data-size='large'
data-show-count='true'
aria-label='Star minds/minds on GitHub'
>
Star
</a>
</div>
</section>
<section className="copyright">{this.props.config.copyright}</section>
<section className='copyright'>{this.props.config.copyright}</section>
</footer>
);
}
......
......@@ -15,7 +15,7 @@
"title": "Installation"
},
"getting-started/introduction": {
"title": "Welcome to the Minds Stack",
"title": "Welcome to the Minds stack",
"sidebar_label": "Introduction"
},
"guides/architecture": {
......@@ -27,6 +27,9 @@
"guides/deployment": {
"title": "Deployment"
},
"guides/documentation": {
"title": "Documentation"
},
"guides/frontend": {
"title": "Frontend"
},
......@@ -36,9 +39,6 @@
"guides/mobile": {
"title": "Mobile"
},
"walk-throughs/cookies": {
"title": "Cookies"
},
"walk-throughs/emails": {
"title": "Sending emails"
},
......
......@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/
const React = require("react");
const React = require('react');
const CompLibrary = require("../../core/CompLibrary.js");
const CompLibrary = require('../../core/CompLibrary.js');
const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
const Container = CompLibrary.Container;
......@@ -15,44 +15,44 @@ const GridBlock = CompLibrary.GridBlock;
class HomeSplash extends React.Component {
render() {
const { siteConfig, language = "" } = this.props;
const { siteConfig, language = '' } = this.props;
const { baseUrl, docsUrl } = siteConfig;
const docsPart = `${docsUrl ? `${docsUrl}/` : ""}`;
const langPart = `${language ? `${language}/` : ""}`;
const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`;
const langPart = `${language ? `${language}/` : ''}`;
const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`;
const SplashContainer = props => (
<div className="homeContainer">
<div className="homeSplashFade">
<div className="wrapper homeWrapper">{props.children}</div>
<div className='homeContainer'>
<div className='homeSplashFade'>
<div className='wrapper homeWrapper'>{props.children}</div>
</div>
</div>
);
const Logo = props => (
<div className="projectLogo">
<img src={props.img_src} alt="Project Logo" />
<div className='projectLogo'>
<img src={props.img_src} alt='Project Logo' />
</div>
);
const ProjectTitle = () => (
<h2 className="projectTitle">
<h2 className='projectTitle'>
Free & Open Source
<small>The Minds.com Stack</small>
</h2>
);
const PromoSection = props => (
<div className="section promoSection">
<div className="promoRow">
<div className="pluginRowBlock">{props.children}</div>
<div className='section promoSection'>
<div className='promoRow'>
<div className='pluginRowBlock'>{props.children}</div>
</div>
</div>
);
const Button = props => (
<div className="pluginWrapper buttonWrapper">
<a className="button" href={props.href} target={props.target}>
<div className='pluginWrapper buttonWrapper'>
<a className='button' href={props.href} target={props.target}>
{props.children}
</a>
</div>
......@@ -60,14 +60,16 @@ class HomeSplash extends React.Component {
return (
<SplashContainer>
{/* <Logo img_src={`${baseUrl}img/undraw_monitor.svg`} /> */}
<div className="inner">
<div className='inner'>
<ProjectTitle siteConfig={siteConfig} />
<PromoSection>
<Button href="https://gitlab.com/minds">View the code</Button>
<Button href="docs/getting-started/introduction">
<Button href='docs/getting-started/installation'>
Get Started
</Button>
<Button href='docs/getting-started/introduction'>
Read the Docs
</Button>
<Button href='https://gitlab.com/minds'>View the Code</Button>
</PromoSection>
</div>
</SplashContainer>
......@@ -77,60 +79,50 @@ class HomeSplash extends React.Component {
class Index extends React.Component {
render() {
const { config: siteConfig, language = "" } = this.props;
const { config: siteConfig, language = '' } = this.props;
const { baseUrl } = siteConfig;
const Block = props => (
<Container
padding={["bottom", "top"]}
padding={['bottom', 'top']}
id={props.id}
background={props.background}
>
<GridBlock
align="center"
contents={props.children}
align='center'
contents={props.contents}
layout={props.layout}
/>
</Container>
);
const TryOut = () => (
<Block id="try">
{[
const KeyFeatures = () => (
<Block
id='features'
layout='twoColumn'
contents={[
{
title: 'A modern stack, designed to scale',
content:
"Kubernetes & Docker keep everyone on the same page " +
"and allow for seamless scalability, along with high performance NoSQL " +
"databases, Cassandra & ElasticSearch.",
image: `${baseUrl}img/undraw_code_review.svg`,
imageAlign: "left",
title: "A modern stack, designed to scale."
}
]}
</Block>
);
const LearnHow = () => (
<Block background="light">
{[
'Kubernetes & Docker keep everyone on the same page ' +
'and allow for seamless scalability, along with high performance NoSQL ' +
'databases, Cassandra & ElasticSearch.'
},
{
title: 'We have a full set of features',
content:
"Newsfeeds, images, videos, groups, blockchain based rewards system" +
" video chat, notifications and more!",
image: `${baseUrl}img/undraw_youtube_tutorial.svg`,
imageAlign: "right",
title: "We have a full set of features"
'Newsfeeds, images, videos, groups, blockchain-based rewards system' +
' video chat, notifications and more!'
}
]}
</Block>
></Block>
);
return (
<div>
<HomeSplash siteConfig={siteConfig} language={language} />
<div className="mainContainer">
<LearnHow />
<TryOut />
<div className='mainContainer'>
<KeyFeatures />
</div>
</div>
);
......
......@@ -10,6 +10,7 @@
"guides/backend",
"guides/mobile",
"guides/deployment",
"guides/documentation",
"guides/git"
],
"Contributing": ["contributing/contributing", "contributing/license"],
......
......@@ -29,7 +29,7 @@ const siteConfig = {
// Used for publishing and more
projectName: 'Minds Docs',
organizationName: 'Minds',
editUrl: 'https://gitlab.com/minds/docs/blob/master/docs/',
editUrl: 'https://gitlab.com/minds/docs/edit/master/docs/',
// For no header links in the top nav bar -> headerLinks: [],
headerLinks: [
......
/* your custom css */
a, a:hover, .button {
color: #4690df;
border-color: #4690df;
border-radius: 24px;
.homeContainer {
background-color: #021f3d;
background-image: url(../img/canyon-hero.jpg);
background-size: cover;
}
a,
a:hover {
color: #4690df;
border-color: #4690df;
border-radius: 24px;
}
.button {
margin-right: 8px;
border-radius: 24px;
color: #4690df;
border-color: #4690df;
}
.inner {
text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
transition: border-color 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}
.inner .button {
border-radius: 24px;
color: white;
border-color: white;
margin: 6px 4px;
padding: 12px 20px;
}
.inner .button:hover {
border-color: #4690df;
background-color: #4690df;
color: white;
text-shadow: none;
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.3);
transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.fixedHeaderContainer a,
.navigationSlider .slidingNav ul li a,
.slidingNav ul li.siteNavItemActive a {
color: #555;
.navigationSlider .slidingNav ul li a,
.slidingNav ul li.siteNavItemActive a {
color: #555;
}
.toc .toggleNav ul li.navListItemActive a,
.navigationSlider .slidingNav ul li.siteNavGroupActive a {
color: #4690df;
.navigationSlider .slidingNav ul li.siteNavGroupActive a {
color: #4690df;
}
.navigationSlider .slidingNav ul li a:hover,
.toc .toggleNav ul li a:hover,
.button:hover {
color: #4690df;
.toc .toggleNav ul li a:hover,
.button:hover {
color: #4690df;
}
.fixedHeaderContainer {
border-bottom: 1px solid #e8e8e8;
border-bottom: 1px solid #e8e8e8;
}
.navWrapper {
border-right: 1px solid #e8e8e8;
border-right: 1px solid #e8e8e8;
}
.projectTitle {
text-align: center;
color: #444;
text-align: center;
color: white;
}
.promoSection {
/* align-items: flex-start; */
justify-content: center;
justify-content: center;
}
.container .wrapper .imageAlignSide p {
text-align: left;
text-align: left;
}
.onPageNav .toc-headings > li > a.active {
color: #4690df;
color: #4690df;
}
@media only screen and (min-width: 480px){
.projectTitle {
font-size: 400%;
}
@media only screen and (min-width: 480px) {
.projectTitle {
font-size: 400%;
}
.homeContainer {
padding: 24px 0;
}
}
@media only screen and (min-width: 735px) {
.container.paddingTop {
padding-top: 40px;
}
}
@media only screen and (min-device-width: 360px) and (max-device-width: 736px) {
}
......@@ -62,10 +95,16 @@ a, a:hover, .button {
}
@media only screen and (max-width: 1023px) {
.edit-page-link {
display: inline-block;
}
.docMainWrapper .wrapper {
padding-top: 24px;
}
}
@media only screen and (min-width: 1400px) {
}
@media only screen and (min-width: 1500px) {
}
\ No newline at end of file
}
website/static/img/canyon-hero.jpg

264 KB