BioTutorials
+These are still a work in progress
+diff --git a/docs/make.jl b/docs/make.jl
index 45fa05e..c1c9865 100644
--- a/docs/make.jl
+++ b/docs/make.jl
@@ -16,12 +16,19 @@ 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",
@@ -29,12 +36,10 @@ makedocs(
"comparisons/biojava.md",
"comparisons/bioperl.md",
"comparisons/bioruby.md",
- ],
- # Showcase of Cool Examples
- "What is BioJulia?" => [
- "overview.md",
]
]
+
+
)
DocumenterVitepress.deploydocs(
diff --git a/docs/src/.vitepress/theme/index.js b/docs/src/.vitepress/theme/index.js
index 9d6ed02..0c6f389 100644
--- a/docs/src/.vitepress/theme/index.js
+++ b/docs/src/.vitepress/theme/index.js
@@ -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';
+ }
+ });
+ };
+ }
+ }
}
diff --git a/docs/src/.vitepress/theme/style.css b/docs/src/.vitepress/theme/style.css
new file mode 100644
index 0000000..7c32900
--- /dev/null
+++ b/docs/src/.vitepress/theme/style.css
@@ -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;
+}
diff --git a/docs/src/assets/BioMakieLogo.png b/docs/src/assets/BioMakieLogo.png
new file mode 100644
index 0000000..aa8ce3e
Binary files /dev/null and b/docs/src/assets/BioMakieLogo.png differ
diff --git a/docs/src/contributing.md b/docs/src/contributing.md
new file mode 100644
index 0000000..895f47e
--- /dev/null
+++ b/docs/src/contributing.md
@@ -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.
diff --git a/docs/src/index.md b/docs/src/index.md
index 979f6c1..2e07572 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -1,7 +1,5 @@
```@raw html
---
-# https://vitepress.dev/reference/default-theme-home-page
-# Cribbed from DimensionalData.jl
layout: home
hero:
@@ -11,31 +9,430 @@ hero:
image:
src: '/assets/logo.png'
actions:
- - theme: brand
- text: Getting Started
- link: /getting_started/juliainstallation
- - theme: alt
- text: Overview
- link: /overview
- theme: alt
text: View on Github
- link: https://github.com/BioJulia/biojulia.github.io
-features:
- - title: BioTutorials
- details: These are still a work in progress
- link: https://biojulia.dev/BioTutorials
- - title: BioSequences.jl
- details: Optimized types for working with biological sequences (eg DNA, RNA, proteins)
- link: https://biojulia.dev/BioSequences.jl
- - title: Automa.jl
- details: Efficient state-machine generation to quickly and correctly parse bespoke file formats
- link: https://biojulia.dev/Automa.jl
- - title: BioMakie.jl
- details: Visualize sequences and 3D proteins with ease
- link: https://biojulia.dev/BioMakie.jl
- icon:
- - title: SingleCellProjections.jl
- details: More cells? No Problem! Get UMAPs and other projections of your singlg cell data using the power of Sparse Matrices
- link: https://biojulia.dev/SingleCellProjections.jl
+ link: https://github.com/BioJulia/BioJuliaDocs
---
```
+
+```@raw html
+
Parse and manipulate CIGAR strings for sequence alignments
+