|
2 | 2 |
|
3 | 3 | This documentation is currently hosted at https://bitcoincore.academy[bitcoincore.academy] however this location may be subject to change in the future. |
4 | 4 |
|
5 | | -See https://github.com/chaincodelabs/onboarding-to-bitcoin-core/blob/master/asciidoc_workflow.adoc[asciidoc_workflow.adoc] |
6 | | -and https://github.com/chaincodelabs/onboarding-to-bitcoin-core/blob/master/jekyll_workflow.md[jekyll_workflow.md] for tips on contributing and instructions for running locally. |
| 5 | +== Development |
| 6 | + |
| 7 | +=== Local Development with Docker |
| 8 | + |
| 9 | +The easiest way to serve the site locally is using Docker: |
| 10 | + |
| 11 | +[source,bash] |
| 12 | +---- |
| 13 | +docker compose up dev |
| 14 | +---- |
| 15 | + |
| 16 | +This will: |
| 17 | +- Build the development environment |
| 18 | +- Install all dependencies (Ruby gems and Node.js packages) |
| 19 | +- Start a Jekyll development server on port 4000 |
| 20 | +- Mount the current directory for live reloading |
| 21 | +- Use development environment settings |
| 22 | + |
| 23 | +The site will be available at http://localhost:4000 |
| 24 | + |
| 25 | +=== Makefile Commands |
| 26 | + |
| 27 | +The project includes several useful Makefile targets for development and deployment: |
| 28 | + |
| 29 | +==== Docker Commands |
| 30 | +- `make docker-dev` - Start development server using Docker Compose |
| 31 | +- `make docker-shell` - Open an interactive shell in the Docker container |
| 32 | +- `make docker-clean` - Clean up Docker containers and system resources |
| 33 | + |
| 34 | +==== Build Commands |
| 35 | +- `make build` - Build the Jekyll site into `_site` directory |
| 36 | +- `make preview` - Build and serve the site locally with live reload |
| 37 | +- `make clean` - Clean up generated files |
| 38 | + |
| 39 | +==== Testing and Quality |
| 40 | +- `make test-before-build` - Run pre-build tests (Markdown linting) |
| 41 | +- `make test-after-build` - Run post-build tests (link checking, duplicate anchors) |
| 42 | +- `make all` - Complete build and test pipeline |
| 43 | + |
| 44 | +==== Output Formats |
| 45 | +- `make html` - Generate single-page HTML version |
| 46 | +- `make pdf` - Generate PDF version |
| 47 | +- `make epub` - Generate EPUB version |
| 48 | +- `make publish` - Full publish pipeline with all formats |
| 49 | +- `make production` - Production build with all tests |
| 50 | + |
| 51 | +=== Development Workflow |
| 52 | + |
| 53 | +1. Local Development: Use `docker compose up dev` or `make docker-dev` to start the development server |
| 54 | +2. Shell Access: Use `make docker-shell` to access the container for debugging or manual commands |
| 55 | +3. Testing: Run `make all` before submitting changes to ensure everything builds and passes tests |
| 56 | +4. Cleanup: Use `make docker-clean` to clean up containers and free disk space |
| 57 | + |
| 58 | +=== Dependencies |
| 59 | + |
| 60 | +The project uses: |
| 61 | +- Jekyll for static site generation |
| 62 | +- Asciidoctor for processing AsciiDoc files |
| 63 | +- Mermaid CLI for diagram generation |
| 64 | +- HTMLProofer for link checking |
| 65 | +- Markdownlint for Markdown validation |
| 66 | + |
| 67 | +All dependencies are managed through the Docker container, so you don't need to install anything locally except Docker. |
| 68 | + |
| 69 | +=== Contributing |
| 70 | + |
| 71 | +See https://github.com/chaincodelabs/onboarding-to-bitcoin-core/blob/master/asciidoc_workflow.adoc[asciidoc_workflow.adoc] for detailed contributing guidelines and AsciiDoc formatting instructions. |
0 commit comments