Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

History

README.md

PineForge documentation site

OpenCV-style API reference, generated by Doxygen with the doxygen-awesome-css theme. Hosted on Cloudflare Pages.

Layout

docs/
├── Doxyfile           # Doxygen config — input, theme, options
├── build.sh           # one-shot: fetch theme, run doxygen → docs/site/html/
├── coverage.md        # canonical Pine v6 coverage map (also referenced as a page)
├── pages/             # narrative markdown pages
│   ├── index.md          # @mainpage — landing
│   ├── getting-started.md
│   ├── install.md
│   ├── integration-cmake.md
│   ├── lifecycle.md
│   ├── report-schema.md
│   ├── configuration.md
│   ├── magnifier.md
│   ├── timeframes.md
│   ├── ffi-python.md
│   ├── tutorial-macd.md
│   ├── abi-stability.md
│   └── coverage.md
├── _theme/
│   ├── header.html        # custom HTML header
│   ├── footer.html
│   ├── custom.css         # PineForge color overrides on top of doxygen-awesome
│   └── doxygen-awesome/   # fetched at build time (gitignored)
└── site/                  # build output (gitignored)
    └── html/

Build locally

# Prereqs: doxygen, graphviz
brew install doxygen graphviz   # macOS
# sudo apt install doxygen graphviz   # Linux

bash docs/build.sh
python3 -m http.server -d docs/site/html 8080
# open http://localhost:8080/

The first build fetches doxygen-awesome-css v2.3.4 (~150 KB) into docs/_theme/doxygen-awesome/. Subsequent builds skip the download.

Editing pages

  • Add Doxygen-style comments (/** ... */) to public C ABI declarations in include/pineforge/pineforge.h — auto-extracted into the API reference.
  • Add narrative markdown pages under docs/pages/. Register them in Doxyfile's INPUT list. Use {#anchor} after the # Title so other pages can @ref anchor them.
  • The mainpage is pages/index.md (declared via USE_MDFILE_AS_MAINPAGE).

Deployment (Cloudflare Pages)

The .github/workflows/docs.yml workflow builds and deploys on every push to main and every v* tag.

One-time setup

  1. Create a Cloudflare Pages project (any name; default pineforge-docs). Use Direct Upload as the connection method — no Git integration needed; the workflow pushes via Wrangler.

  2. In the repo, add these secrets and (optionally) a variable:

    Kind Name Value
    Secret CLOUDFLARE_API_TOKEN Token with Cloudflare Pages: Edit permission (create here).
    Secret CLOUDFLARE_ACCOUNT_ID Found in the right sidebar of the Cloudflare dashboard.
    Variable CF_PAGES_PROJECT Pages project name. Optional — defaults to pineforge-docs.
  3. Push to main (or run Actions → docs → Run workflow). The site appears at https://<project>.pages.dev/.

Custom domain

Add a CNAME or A record in Cloudflare DNS, then map it under the Pages project's Custom domains tab. No build-side changes needed.

If you'd rather host on GitHub Pages instead, swap the cloudflare/wrangler-action step for actions/deploy-pages@v4 plus actions/upload-pages-artifact@v3 — the build output (docs/site/html) is identical.