Build the Documentation Locally
In order to build the website locally, you'll need Node.js >= 14.16 (or basically the latest LTS version).
The setup is straight forward:
# Install dependencies npm install # Serve locally (by default on port 8080) npm start
There are three types of text highlights that can be used to display different colored boxes.
A green box displaying a friendly tip:
:::tip foo :::
A yellow box with a cautious warning:
:::warning foo :::
A red box with a clear danger, you can also add a title
foo to any container:
:::danger foo bar :::
We are using the Vuepress SEO plugin to add relevant meta tags to the site and individual pages.
To improve the meta attributes of a specific page, you can add them as YAML frontmatter like this: (see the WooCommerce page for an example)
--- description: How to integrate BDK tags: - Bitcoin - BDK --- # BDK integration This document explains how to **integrate BDK into your stack**.
Embedding YouTube videos
To add a YouTube video with a preview, you can so so by linking to it like this:
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/mqdefault.jpg)](https://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE)
Note that the link item need to be a preview image (either from YouTube or a custom one) to result in an embedded video.
Check for broken links
The GitHub Actions pipeline checks for broken links after deploying the production site.
You can also run the link check locally using
npm run linkcheck:local.
The dev server needs to be running alongside for this to work.
To create or re-create the contents of
static/docs-rs/bdk/<release>, copy the contents of
bdk/target/doc directory after running the below commands from the
bdk project directory:
cargo clean cargo +nightly rustdoc --features=compiler,electrum,esplora,compact_filters,key-value-db -- --cfg docsrs
A nightly toolchain is required because some cool features, like
doc_cfg, are still
Adding a blog post
Add a markdown file to
content/blog/<year/<name>.md. At the beginning of the file add the following header:
--- title: "<post title>" description: "<post description>" author: "<author>" date: "<date in yyyy-mm-dd format>" tags: ["<tag1>", "<tag2>"] hidden: true draft: false ---
After that header you can type your post using markdown.
The title will be shown on top of the page, together with the list of tags. The description won't be shown, it's only used in the HTML metadata, so if you want to show it, you will have to copy it as part of the content that comes after the header.
If you need to add static data like pictures you can make a folder called
static/blog/<year>/<name> and store everything you need in there.