project:
  type: website
  output-dir: docs

website:
  title: "ShinyBroker"
  description: "Visual Trading API for Interactive Brokers"
  site-url: "https://shinybroker.com"
  page-navigation: true
  page-footer:
    center: |
      Developed by Jake Vestal of the [FinTech Program](https://fintech.meng.duke.edu/) at Duke University
  navbar:
    pinned: true
    left:
      - text: "Get Started"
        menu:
        - text: "Query and Display Market Data"
          file: query_and_display_market_data.qmd
#      - text: "Tips and Tricks"
#        menu:
#          - text: "\"Headless Mode\" for In-App Scripting and Development"
#            file: headless_mode_demo.qmd
      - text: "Reference"
        file: reference/index.qmd
    right:
      - icon: github
        href: https://github.com/JakeVestal/shinybroker
        aria-label: shinybroker python GitHub

format:
  html:
    theme: cyborg
    css: styles.css
    toc: true


# tell quarto to read the generated sidebar
metadata-files:
  - _sidebar.yml

resources:
  - "data/*"

quartodoc:
  title: Reference
  package: shinybroker
  # write sidebar data to this file
  sidebar: _sidebar.yml
  sections:
    - title: ShinyBroker Objects
      desc: These objects are the building blocks that your application uses
        to work with important tasks like fetching market data or submitting
        a trade order.
      contents:
        - Contract
    - title: Market Data Functions
      desc: Request and receive live market data. Can be kept up-to-date as 
        ongoing subscriptions.
      contents:
        - start_historical_data_subscription
    - title: \"Fetch\" Functions
      desc: Use these functions to quickly query & receive data from IBKR. They 
        create their own sockets, use them for the query, listen for the 
        response to come back in blocking mode, and return the result, which 
        is immediately available for use. Since these functions operate in a 
        "one-off" or "synchronous" manner, they can't be used to create 
        persistent, continually-updated data subscriptions; in other words, you 
        can't call `fetch_historical_data` with `keepUpToDate = True`.
      contents:
        - fetch_historical_data
        - fetch_matching_symbols
        - fetch_sec_def_opt_params
    - title: Low-Level Request Messages
      desc: These functions process their inputs into packed binary data 
        messages that you can send to a connected IBKR socket to instruct it 
        to do something you're interested in such as place an order, start or
        cancel a market data subscription, or simply request the current time.
      contents:
        - req_contract_details
        - req_current_time
        - req_market_data_type
        - req_matching_symbols
        - req_mkt_data
        - cancel_mkt_data
        - req_sec_def_opt_params
        - req_ids
        - req_historical_data
        - cancel_historical_data
