Skip to content
15 changes: 10 additions & 5 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,30 @@ makedocs(
deploy_url = "biojulia.dev",
),
pages = [
# Showcase of Cool Examples
"What is BioJulia?" => [
"overview.md",
]
# Installation
"Getting Started" => [
"getting_started/juliainstallation.md",
"getting_started/toolsinstallation.md",
"getting_started/biojuliainstallation.md",
"getting_started/casescenarios.md",
],
]

# Comparison with other packages/ecosystems
"Comparison With Other Packages/Ecosystems" => [
"comparisons/biopython.md",
"comparisons/scikitbio.md",
"comparisons/bioconductor.md",
"comparisons/biojava.md",
"comparisons/bioperl.md",
"comparisons/bioruby.md",
],
# Showcase of Cool Examples
"What is BioJulia?" => [
"overview.md",
]
]


)

DocumenterVitepress.deploydocs(
Expand Down
19 changes: 18 additions & 1 deletion docs/src/.vitepress/theme/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
import DefaultTheme from 'vitepress/theme'
import Layout from './Layout.vue'
import './style.css'

export default {
extends: DefaultTheme,
Layout: Layout
Layout: Layout,
enhanceApp({ app, router }) {
if (typeof window !== 'undefined') {
window.filterPackages = function(filter, btn) {
document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active'));
btn.classList.add('active');

document.querySelectorAll('#packages-grid .VPFeature').forEach(pkg => {
if (filter === 'all' || pkg.dataset.category === filter) {
pkg.style.display = '';
} else {
pkg.style.display = 'none';
}
});
};
}
}
}
141 changes: 141 additions & 0 deletions docs/src/.vitepress/theme/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
/* Custom sections container - align with VitePress home hero */
.custom-sections {
max-width: 1280px;
margin: 0 auto;
padding: 0 12px;
}

@media (min-width: 960px) {
.custom-sections {
padding: 0 12px;
}
}

.custom-sections h2,
.section-header {
font-size: 24px;
font-weight: 600;
margin-bottom: 16px;
margin-top: 48px;
border-top: none;
}

/* Custom feature sections */
.VPFeatures {
display: flex;
flex-wrap: wrap;
gap: 16px;
margin-top: 16px;
}

.VPFeature {
flex: 0 0 calc(25% - 16px);
min-width: 240px;
max-width: 280px;
}

.VPFeature .box {
background-color: var(--vp-c-bg-soft);
border-radius: 12px;
padding: 24px;
height: 100%;
}

.VPFeature a.feature-link {
text-decoration: none;
color: inherit;
}

.VPFeature a.feature-link:hover .box {
background-color: var(--vp-c-bg-mute);
}

/* Feature card title - badge above name */
.VPFeature .title {
display: flex !important;
flex-direction: column-reverse;
align-items: flex-start;
width: 100%;
font-size: 16px;
font-weight: 600;
margin: 0 0 8px 0;
}

.VPFeature .details {
font-size: 14px;
color: var(--vp-c-text-2);
margin: 0;
}

/* Feature card badges */
.feature-badge {
display: inline-block !important;
font-size: 10px;
padding: 2px 6px;
border-radius: 4px;
font-weight: 600;
white-space: nowrap;
margin-bottom: 4px;
align-self: flex-end;
}

.badge-bioinformatics {
background-color: #4063D8; /* Julia blue */
color: white;
}

.badge-visualization {
background-color: #9558B2; /* Julia purple */
color: white;
}

.badge-io {
background-color: #CB3C33; /* Julia red */
color: white;
}

.badge-files {
background-color: #389826; /* Julia green */
color: white;
}

.badge-other {
background-color: #6B7280; /* Gray */
color: white;
}

.badge-outside {
background-color: #F59E0B; /* Amber/Orange */
color: white;
}

/* Filter buttons */
.filter-buttons {
display: flex;
gap: 8px;
margin-top: 16px;
flex-wrap: wrap;
}

.filter-btn {
padding: 6px 14px;
border: 1px solid var(--vp-c-divider);
border-radius: 20px;
background-color: var(--vp-c-bg-soft);
color: var(--vp-c-text-1);
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
}

.filter-btn:hover {
border-color: var(--vp-c-brand);
color: var(--vp-c-brand);
}

.filter-btn.active {
background-color: var(--vp-c-brand);
border-color: var(--vp-c-brand);
color: white;
}
Binary file added docs/src/assets/BioMakieLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
83 changes: 83 additions & 0 deletions docs/src/contributing.md
Copy link
Member

@kescobo kescobo Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This came from the contributing repo? It would be nice if there were a way to pull that content directly so that changes there would be reflected here. But that's not an issue for this PR

  • Link contributing etc documents directly to Contributing repo

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought I could turn that checkmark into an issue, but I'll just do it manually...

Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Contributing to BioJulia

First off, thanks for taking the time to contribute!

This document contains information relevant to people who want to contribute to BioJulia repositories, which are hosted in the [BioJulia Organization](https://github.com/BioJulia) on GitHub.

## Table of contents
* [Contact information](#contact-information)
* [Making an issue](#making-an-issue)
* [Making a pull request](#making-a-pull-request)
* [Becoming a package maintainer](#becoming-a-package-maintainer)
* [Creating a new repository under BioJulia](#creating-a-new-biojulia-repository)

## Contact information
If you have questions about specific repositories, contact the repository maintainers.

For issues about BioJulia in general, please feel free to contact the current [BioJulia admins](https://github.com/orgs/BioJulia/teams/admins).

For quick questions, you can also find us on [The Julia Language Slack](https://julialang.slack.com/channels/biology) in the `#biology` channel.

For discussions, the best place is either the [Biology domain on the Julia Language Discourse](https://discourse.julialang.org/c/domain/bio), or our [GitHub discussions page](https://github.com/orgs/BioJulia/discussions).

## Making an issue
Issues are meant for bug reports, feature requests, and discussions about potential changes to a particular repository.
For questions about usage, [ask for help by contacting us instead](#contact-information).

Before filing an issue, make sure to read the documentation of the package in question, and search the issue tracker to see if the issue you want to raise already exists.
If the issue exists, but it's closed, you can make a new issue and link to the closed issue.

When filing a bug report, it's important that we can understand what the bug is about.
If the existence of a bug is not obvious, you should describe in the issue why you think the observed behaviour is buggy.

It's also important that we can reproduce (recreate) the bug ourselves.
The easier it is for us to reproduce the bug, the faster and easier we can fix it, and the more likely we are to do it.

To make a bug reproducible, the first step is to reduce it to a _minimal working example_ (MWE).
This is the shortest, simplest code you can produce that demonstrates the bug.
You can obtain an MWE by iteratively simplifying the code in which you found the bug.
Ideally, a MWE is only a few lines long, and can be copy-pasted into a fresh REPL.

To make your MWE reproducible, you also need to specify your environment:
* The version of Julia you observe the bug with.
* The version of all loaded packages.
This can be found by typing `st -m` in the Julia Pkg mode.
Your MWE ideally makes use of as few packages as possible.

## Making a pull request
If you want to contribute code (fix bugs, add features or such) to an existing BioJulia repository, simply submit a pull request (PR) to the repo.
You do not need permission to open a PR.
However, the repository maintainer might decline your contributions if they believe your PR is out of scope for the package, contains serious design flaws, or such.
Hence, before embarking on a large, laborious PR, you might want to reach out to the repository maintainers for approval first.

Individual repositories have different requirements for PRs, but in general, a good PR is characterized by the following:
* All user-facing functions and types have docstrings with doctests.
* All user-facing functions are mentioned in the package documentation.
* Most or all lines of code are tested with unit tests.
Most repositories have a code coverage bot that can inform you if you have written tests for all your code.
* Attempts to emulate the code style and architecture of the repo you submit your PR to.

## Becoming a package maintainer
There is no formal process to become a package maintainer, instead, existing package maintainers decide who can get commit rights to BioJulia repos.
If a package has no maintainers that can be reached, reach out to [the BioJulia admins](#contact-information).

Most people will require you to have made a few valuable PRs to a repository before they will grant you maintainer status.
So, if you want to be a maintainer, it's best to start by acting as a maintainer, and begin making PRs.

## Creating a new BioJulia repository
There are two main ways to get a repo under BioJulia:

1. Create a new repository directly under BioJulia.
2. Move an existing repository to BioJulia.

In general, only people who have been involved in BioJulia as maintainers can create new BioJulia repositories, so for most people, you will need to create a repo under your own name and then move it to BioJulia.

Having your repo in BioJulia gives your package visibility, and more potential to be maintained by others if you are no longer able to maintain your package.
You also have access to BioJulia infrastructure, such as paid CI (although, at the time of writing, BioJulia only uses free services).

Please note that when you transfer your package to BioJulia, the BioJulia organisation owns the package.
This implies:
* The name of the package may need to be changed.
* Other BioJulia members may be added as maintainers if you become unreachable.

If the BioJulia admins agree to transfer your repo to BioJulia, we will collaborate with you to ensure the code quality, code licensing, documentation, and continuous integration of the package is up to BioJulia standards.
Loading
Loading