* Update portfolio_view.py * mypy 1.0 test * Update helpers.py * black * ruff * Update thought_of_the_day.py * isort * Update portfolio_view.py * Update business_insider_view.py * funds,bt,ca,fa view updates * economy,etf,futures view updates * econometrics regression * mypy * reports notebooks, PlotlyTA class adjustments, crypto finbrain view * crypto views updates * crypto views done?, ba, econometrics, funds, reports * update docstrings * Update sec_view.py * portfolio reports * Update equity.ipynb * ruff * mypy + equity reports * Update yahoo_finance_view.py * Update economy_controller.py * clean up returns * mypy * finished dashboards/reports templates * update some tests * Update common.py * Update account_controller.py * Update banner.txt * update tests * tests * Update helpers_denomination.py * tests * tests * finished tests, refactor add_histplot/add_corr_plot * ruff * Update backend.py * mypy * Update backend.py * pywry linux libs for tests * pywry version bump * OpenBBFIgure import changes * Update business_insider_view.py * Update backend.py * tests * bump pywry version * forecast plot_explainability converted to plotly * Update helpers.py * tests * Update helpers.py * tests * Update helpers.py * Update helpers.py * default plotly annotation `showarrow` to false * Update backend.py * fixes * Update poetry.lock * docker * Update openbb.dockerfile * up * Update style.css * bump pywry version * Update unit-test.yml * Update unit-test.yml * figure to image/pdf export * requirements txt files, pywry version bump * mypy, pylint * cleanup * Update covid_view.py * Update helper_funcs.py * Update backend.py * updates * Update backend.py * Update backend.py * bump pywry version * Update poetry.lock * Update trailmap.py * update reports * Update custom_indicators_plugin.py * Update momentum_plugin.py * equity report * reqs files * Update fred_view.py * ruff * Update po_view.py * bump pywry version * reqs txt files * fix installer icons for mac * test updated torch/darts/pyinstaller on mac * Update dashboards_controller.py * Update terminal.py * Update terminal.spec * Update terminal.spec * test * Update poetry.lock * Report adjustments, improved dashboard subprocesses termination * pylint * Update plotly_helper.py * Update plotly_helper.py * pylint * revert darts * test * test * fix * improve shap scatter plot * Update helpers.py * Update helpers.py * cleanup * Update runa_view.py * more cleanupp * fixes * update tests * Update intrinio_view.py * Update intrinio_view.py * Update intrinio_view.py * reqs files, poetry lock * Update backend.py * test for new icon * Update fmp_view.py * updates * Update plotly_helper.py * Update businessinsider_view.py * ruff * pylint * fix previous merge * Update plotly_helper.py * update reqs files * Update directories.py * fix alt covid * fix display_candle data is None load being unreachable, get covid views ready for sdk server * Update covid_view.py * refactor cleanup * plotly_ta adjustments * terminal wide ignore print_table if export * Update plotly_helper.py * forgot to save a few * added edge case fallback if figures are in queue before backend fail * Update ta_class.py * Rename env variable name required to return plotly json * Resolve pydocstyle warnings * Resolve linting errors * revert forecasting/pyinstaller versions * Update terminal.spec * finished incoming fixedincome menu, improve get_ecb_yield_curve speed with multiprocessing * update deps * Update backend.py * fix fred model/view from switch to DataFrame, improve ecb_model * Update config_terminal.py * Update backend.py * black * clean up * Update fred_view.py * Update ta_class.py * Update ta_class.py * Update plotly_helper.py * sync fixedincome * Update ecb_model.py * convert excel to csv for faster processing * cleanup * remove excel files * Update terminal_controller.py * update tests * adjustments/missed figs in export_data * Update cryptocurrency_helpers.py * fixes * account for volume column with no volume when plotting indicators , images autogen POC * Update plotly_helper.py * Update etf_controller.py * Update etf_controller.py * margin arg for export_data func figures, some plot adjustments * logic for numpy array for plotly helper `get_dateindex` function * cleanup * update * req file updates * views * Update backend.py * update tests * Update test_load_none[btc-usd].yaml * convert merged cpi chart * linting * updates * clean * tests * Update openbb.dockerfile * remove test docker in root * Update CONTRIBUTING.md --------- Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com> Co-authored-by: Chavithra <chavithra@gmail.com>
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. The final website can be found at https://docs.openbb.co.
Folder Structure
website
├── content # Markdown files
| ├── sdk # SDK 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.
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
--autodocflag is required, otherwise tests will be skipped.
To install necessary dependencies for tests, run
poetry install -E docin the root directory of the repository.
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
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:
-
Create a directory with the name of the command and a
_index.mdfile within. Examples:- When adding
ipo, since this command belongs to contextstocksand categorydiscovery, we added aipofolder with a_index.mdfile within towebsite/content/stocks/discovery. - When adding
candle, since this command belongs to contextstocks, we added acandlefolder with a_index.mdfile within towebsite/content/stocks/.
- When adding
-
The
_index.mdfile should have the output of thecommand -hfollowed 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>
- 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. anameand aref. 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"