Files
OpenBB/website
Theodore Aptekarev 417769c4cc Improve installation experience and documentation (#4508)
* hi didier

* Add files

* Include build deps and third-party binaries in conda env files

* Add the changelogs from GH

* Api keys + cleaning up spelling + found some old refs

* spelling

* Merge branch 'feature/documentation3p0' of https://github.com/OpenBB-finance/OpenBBTerminal into feature/documentation3p0

* updates to faq sections

* spelling

* fixing FA so it runs

* adding guides - need pics

* Add gcc and maturin to build dependencies

* telegram/discord docs markdown format conversion

* Remove gcc from conda env files

* Update install from source guide for terminal

* fix: added new reference styles

* adding examples to discord - remove play button

* updating bot docs

* Update SDK installation docs

* Bump datetime package in lock file because current version was yanked

* Update requirements txts

* Remove rust tools from main conda env

* Pin poetry to 1.4.0 because of a regression in 1.4.1

* Bump version of lightgbm to 3.3.5

* Address formatting and minor content comments

* Advise all users to clean up conda artifacts with scripts

* Add placeholder for pywry related docs

* Update requirements.txt

* Downgrade statsforecast to prevent pulling jupyter-dash

* Add catboost to conda dependencies for windows install to work

* Add charset-normalizer to conda deps because of a buggy windows build

* Add xgboost to conda deps because of a buggy windows build

* working!!

* 3.8 and 3.9 xgboost

* spelling

* Point sdk install from source to terminal source install

* image showing on docs

Co-authored-by: jose-donato <jose-donato@users.noreply.github.com>

* feat: added imageurl for examples

* updates Stocks SDK intro

* bot pics update

* Bump python version on macOS CI builds

* updating rest of bot docs

* Move charset-normalizer to the pip section of environment yamls

* Update mac CI workflows to use the correct cache

* Move poetry to pip section of the conda yamls

* Fix typo in file path

* Fix direct_url.json files not being deleted on the CI

* Fool reviewpad

* Actually fool reviewpad

* adding code for generating index and bot updates

* linting

* add commands for GTK on linux

* Update deps after conflicts and CRLF line endings made it into develop

* test bump down for matplotlib

* codesign more dylibs

* intel workflow

* Add signing stuff that failed to intel

* M1 file now

* Remove duplicate lines from codesigning section of build instructions

* Downgrade matplotlib to 3.7.0 to mitigate windows error

* Downgrade python to 3.9 in attempt to fix scipy not packaging correctly

* Downgrade python 3.9 to resolve conflicts found by conda

* Remove duplicate xgboost references

* Downgrade scikit-learn to avoid DistanceMetric32 not being found

* Remove site-packages from bundle following python 3.10 -> 3.9

* Downgrade scikit-learn to avoid DistanceMetric32 not being found

* Fix english in source installation

* Revert advised python to 3.9

* Update SDK installation docs

* Fix typo

* Update lock file hash

* Consolidate all installation instructions in the terminal section

* Add --no-cache-dir to pip calls

* Fool reviewpad

* Remove reference of the conda cleanup from the pypi install

* Fetch the environment yaml directly from the repo without downloading it

* Add rosetta, cpp build tools and libomp as top level requirements

* Update installation links in repo readme

* adds brew install libomp to FAQ section

* fix typo from my updatet

* Capitalization of Section Headers

* puts PyPi toolkit install in quotes, necessary for a non-bash shell.

* grammar fixes

* update docker windows instructions

---------

Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com>
Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com>
Co-authored-by: teh_coderer <me@tehcoderer.com>
Co-authored-by: jose-donato <zmcdonato@gmail.com>
Co-authored-by: jose-donato <jose-donato@users.noreply.github.com>
2023-03-29 17:53:35 +00:00
..
2023-03-28 18:14:49 +00:00
2023-03-28 18:14:49 +00:00
2023-03-28 18:14:49 +00:00
2022-11-25 17:19:08 -05:00
…
2023-03-23 17:36:47 +00:00

OpenBB Documentation Website

This repository contains the source code for the OpenBB Documentation Website.

The website was built using Docusaurus, a modern static website generator and TailwindCSS as styling solution. It uses algolia search for the search bar. The final website can be found at https://docs.openbb.co.

Folder Structure

website
├── content # Markdown files
| ├── sdk # SDK markdown files
| ├── bot # bot markdown files
| └── terminal # Terminal markdown files
├── old_content # previous terminal documentation; required to get the examples for terminal reference
├── src # react stuff for website
├── static # Static files
├── generate_sdk_markdown.py # Script to generate markdown files for SDK
└── generate_terminal_markdown.py # Script to generate markdown files for Terminal

Markdown files

The markdown files are used to generate the website. The markdown files are located in the content folder. The markdown files are generated using the generate_sdk_markdown.py and generate_terminal_markdown.py scripts. The markdown files are generated from the docstrings in the SDK and Terminal code. Files inside content/sdk/reference and content/terminal/reference should not be changed manually because they are generated automatically on every commit.

Syntax sugar

Code blocks

Code blocks are generated using the default markdown syntax:

```python
print("Hello World")
```

To generate a dynamic date for a certain code block (useful for options examples that need to have a valid date), you can use 2022-07-29 as a placeholder. The script will replace it with the third friday of the next month.

/op oichart ticker:AMD expiry:2022-07-29

Available options

This is great for huge lists. It opens a popup that contains the list and the search bar, so you can easily find what you are looking for. Everything is virtualized, so it's always fast no matter how many items you have. Check crypto page for a demo of this component.

import AvailableOptions from "@site/src/components/General/AvailableOptions";

<AvailableOptions
label="Exchanges"
allOptions={[
"aax",
"ascendex",
"bequant",
"bibox",
"bigone",
"binance",
"binancecoinm",
"binanceus",
"binanceusdm",
"bit2c",
"bitbank",
"bitbay",
"bitcoincom",
"bitfinex",
"bitfinex2",
"bitflyer",
"bitforex",
"bitget",
"bithumb",
"bitmart",
"bitmex",
"bitopro",
"bitpanda",
"bitrue",
"bitso",
"bitstamp",
"bitstamp1",
"bittrex",
"bitvavo",
]}
/>

Run locally

Prerequisites

  • Node.js >= 16.13.0 To check if you have Node.js installed, run this command in your terminal:
node --version # should be v16.13.0 or higher

Install dependencies

npm install

Start development server

npm start

This command starts a local development server and open up a browser window in http://localhost:3000. Most changes are reflected live without having to restart the server.

Build

npm run build

This command generates static content into the build directory and can be served using any static contents hosting service. We use Github Pages to host our website. It's deployed in the gh-pages branch.

Run tests

pytest tests/website --autodoc

If tests are run locally, the --autodoc flag is required, otherwise tests will be skipped.

To install necessary dependencies for tests, run poetry install -E doc in the root directory of the repository.

Notes

iFrame

We are detecting whether the website is loaded inside an iframe. If it is, we are hiding the header and footer. This is done to have a better integration with out hub website.

Contributing

We welcome contributions to the OpenBB Documentation Website.


DEPRECATED - OLD README

Hugo Server

The current features can be found in OpenBB Terminal Features.

Table of Contents

  1. Install Hugo
  2. Run Locally
  3. Adding Features

Install Hugo

Install Hugo.

Run Locally

Go into website directory with:

cd website

And run:

hugo server -D

If everything is working well, the following should appear:

13:58 $ hugo server -D
Start building sites …
hugo v0.87.0+extended darwin/amd64 BuildDate=unknown

                   | EN
-------------------+------
  Pages            | 853
  Paginator pages  |   0
  Non-page files   |   1
  Static files     | 111
  Processed images |   4
  Aliases          |   0
  Sitemaps         |   1
  Cleaned          |   0

Built in 14912 ms
Watching for changes in /Users/DidierRodriguesLopes/Documents/git/OpenBBTerminal/website/{archetypes,assets,content,data,static,themes}
Watching for config changes in /Users/DidierRodriguesLopes/Documents/git/OpenBBTerminal/website/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

And you should be able to access your local version at http://localhost:1313/.

This will be important for the addition of features to the Hugo Server.

Adding Features

Structure

This is the structure that the documentation follows:

website/content/_index.md
               /stocks/_index.md
                      /load/_index.md
                      /candle/_index.md
                      /discovery/_index.md
                                /ipo/_index.md
                                    /...
                                /...
                      /...
               /cryptocurrency/_index.md
                              /chart/_index.md
                              /defi/_index.md
                                   /borrow/_index.md
                                   /...
                              /...
               /...
               /common/_index.md
                      /technical_analysis/_index.md
                                         /ema/_index.md
                                         /...
                      /...

Note that the common folder holds features that are common across contexts, e.g. technical analysis can be performed on both stocks or crytpo.

New Feature

To add a new command, there are two main actions that need to be done:

  1. Create a directory with the name of the command and a _index.md file within. Examples:

    • When adding ipo, since this command belongs to context stocks and category discovery, we added a ipo folder with a _index.md file within to website/content/stocks/discovery.
    • When adding candle, since this command belongs to context stocks, we added a candle folder with a _index.md file within to website/content/stocks/.
  2. The _index.md file should have the output of the command -h followed by a screenshot example (with white background) of what the user can expect. Note that you can now drag and drop the images while editing the readme file on the remote web version of your PR branch. Github will create a link for it with format (https://user-images.githubusercontent.com//.file_format).

Example:


usage: ipo [--past PAST_DAYS] [--future FUTURE_DAYS]

Past and future IPOs. [Source: https://finnhub.io]

  • --past : Number of past days to look for IPOs. Default 0.
  • --future : Number of future days to look for IPOs. Default 10.

<IMAGE HERE - Use drag and drop hint mentioned above>


  1. Update the Navigation bar to match the content you've added. This is done by adding 2 lines of code to website/data/menu/, i.e. a name and a ref. Example:
---
main:
  - name: stocks
    ref: "/stocks"
    sub:
      - name: load
        ref: "/stocks/load"
      - name: candle
        ref: "/stocks/candle"
      - name: discovery
        ref: "/stocks/discovery"
        sub:
          - name: ipo
            ref: "/stocks/discovery/ipo"
          - name: map
            ref: "/stocks/discovery/map"