/bitcoindevkit.org

BDK project home page (originally magicalbitcoin.org 🧙)

Primary LanguageJavaScript

bitcoindevkit.org

Build Status

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

Text Highlights

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
:::

SEO improvements

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.

Generating docs-rs

To create or re-create the contents of static/docs-rs/bdk/<release>, copy the contents of the 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 intra_rustdoc_links and doc_cfg, are still unstable.

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.