• This repository has been archived on 27/Jul/2024
  • Stars
    star
    125
  • Rank 286,335 (Top 6 %)
  • Language SCSS
  • License
    Other
  • Created about 9 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PROJECT MIGRATED TO CODEBERG -- The code for the main site, Includes BookStack docs.

BookStack Site, Documentation & Blog

This project holds all the data for the https://www.bookstackapp.com/

This site is built using Hugo. Images are stored using git-lfs. The "extended" version of hugo must be used (Has support for certain features like WebP resize).

Data Locations

  • Blog Posts - content/posts
  • Docs - content/docs
  • Theme - themes/bookstack

Hacks

The website also contains a repository of customization hacks which can be found at the /hacks part of the site. These are managed via a separate "Hacks" repo which is part of this repository as a git submodule. A symlink is then used to point the content/hacks directory to the hacks/content directory, where hacks is the submodule location.

Theme

The theme is custom made with snippets taken from the hugo capser theme.

SCSS is used for the styling. Install NPM dependencies via npm install or yarn then you can use npm run build to build the css and site once or npm run dev to watch for changes.

Search

Search is handled via Meilisearch. A nightly scrape runs to index the site pages for search. This is all docker-based, and the configuration used can be found in the search/ directory of this repo. Note, for localhost usage with a port, "allowed_domains": ["localhost"], should be added to the scraper config.json. [ref].

Relevant Projects:

  • Meilisearch - The search engine used.
  • docs-scraper - Used to scrape the site to index.
  • docs-searchbar.js - The JS implementation used for the site search bar.
    • I copy in the latest CDN dist files into this project.
    • I edit the JS file to remove the "Powered by Meilisearch" logo to prevent external requests.