Skip to content

Commit 985b683

Browse files
authored
Merge pull request #2 from openSVM/copilot/fix-1
Create comprehensive GitHub Pages documentation site for BMSSP algorithm and implementations
2 parents b9843c8 + 2488175 commit 985b683

File tree

12 files changed

+1663
-0
lines changed

12 files changed

+1663
-0
lines changed

.github/workflows/pages.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Deploy GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
10+
permissions:
11+
contents: read
12+
pages: write
13+
id-token: write
14+
15+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
16+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
17+
concurrency:
18+
group: "pages"
19+
cancel-in-progress: false
20+
21+
jobs:
22+
# Build job
23+
build:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
- name: Setup Ruby
29+
uses: ruby/setup-ruby@v1
30+
with:
31+
ruby-version: '3.1'
32+
bundler-cache: true
33+
cache-version: 0
34+
- name: Setup Pages
35+
id: pages
36+
uses: actions/configure-pages@v4
37+
- name: Build with Jekyll
38+
run: |
39+
cd docs
40+
bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
41+
env:
42+
JEKYLL_ENV: production
43+
- name: Upload artifact
44+
uses: actions/upload-pages-artifact@v3
45+
with:
46+
path: docs/_site
47+
48+
# Deployment job
49+
deploy:
50+
environment:
51+
name: github-pages
52+
url: ${{ steps.deployment.outputs.page_url }}
53+
runs-on: ubuntu-latest
54+
needs: build
55+
if: github.ref == 'refs/heads/main'
56+
steps:
57+
- name: Deploy to GitHub Pages
58+
id: deployment
59+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,10 @@ Thumbs.db
2929

3030
# repo-local docs (not for git)
3131
GIGAPLAN.md
32+
33+
# Jekyll build files
34+
docs/_site/
35+
docs/.sass-cache/
36+
docs/.jekyll-cache/
37+
docs/.jekyll-metadata
38+
docs/Gemfile.lock

docs/Gemfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
source "https://rubygems.org"
2+
3+
gem "github-pages", group: :jekyll_plugins
4+
gem "jekyll-seo-tag"
5+
gem "jekyll-sitemap"
6+
7+
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
8+
# and associated library.
9+
platforms :mingw, :x64_mingw, :mswin, :jruby do
10+
gem "tzinfo", ">= 1", "< 3"
11+
gem "tzinfo-data"
12+
end
13+
14+
# Performance-booster for watching directories on Windows
15+
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
16+
17+
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
18+
# do not have a Java counterpart.
19+
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]

docs/README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# BMSSP Benchmark Game Documentation
2+
3+
This directory contains the GitHub Pages site for the BMSSP Benchmark Game project.
4+
5+
## Site Structure
6+
7+
- `index.md` - Main landing page
8+
- `algorithm.md` - Algorithm theory and mathematical analysis
9+
- `implementations.md` - Language implementation details and comparison
10+
- `benchmarking.md` - Benchmarking guide and performance analysis
11+
- `getting-started.md` - Setup and first steps guide
12+
13+
## Build Locally
14+
15+
To build and serve the site locally:
16+
17+
```bash
18+
cd docs
19+
bundle install
20+
bundle exec jekyll serve
21+
```
22+
23+
Then open http://localhost:4000 in your browser.
24+
25+
## GitHub Pages Deployment
26+
27+
The site is automatically deployed to GitHub Pages via GitHub Actions when changes are pushed to the main branch. The workflow is defined in `.github/workflows/pages.yml`.
28+
29+
## Configuration
30+
31+
- `_config.yml` - Jekyll configuration and site metadata
32+
- `_layouts/default.html` - Custom layout with navigation
33+
- `_includes/navigation.html` - Navigation component
34+
- `Gemfile` - Ruby gem dependencies
35+
36+
## Features
37+
38+
- Responsive design with minimal theme
39+
- Mathematical notation support via MathJax
40+
- Syntax highlighting for code blocks
41+
- SEO optimization with structured metadata
42+
- Mobile-friendly navigation

docs/_config.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
title: "BMSSP Benchmark Game"
2+
description: "Bounded Multi-Source Shortest Paths: Algorithm Theory, Implementation Comparison, and Benchmarking"
3+
url: "https://opensvm.github.io"
4+
baseurl: "/bmssp-benchmark-game"
5+
6+
# GitHub Pages and Jekyll settings
7+
remote_theme: "pages-themes/[email protected]"
8+
plugins:
9+
- jekyll-remote-theme
10+
- jekyll-seo-tag
11+
- jekyll-sitemap
12+
13+
# Navigation
14+
navigation:
15+
- title: "Home"
16+
url: "/"
17+
- title: "Algorithm"
18+
url: "/algorithm"
19+
- title: "Implementations"
20+
url: "/implementations"
21+
- title: "Benchmarking"
22+
url: "/benchmarking"
23+
- title: "Getting Started"
24+
url: "/getting-started"
25+
26+
# Markdown settings
27+
markdown: kramdown
28+
highlighter: rouge
29+
kramdown:
30+
input: GFM
31+
syntax_highlighter: rouge
32+
33+
# SEO and metadata
34+
author: "openSVM"
35+
github_username: "openSVM"
36+
repository: "openSVM/bmssp-benchmark-game"
37+
38+
# Site settings
39+
show_downloads: true
40+
github:
41+
repository_url: "https://github.com/openSVM/bmssp-benchmark-game"
42+
repository_name: "bmssp-benchmark-game"

docs/_includes/navigation.html

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<nav class="site-nav">
2+
<div class="nav-links">
3+
<a href="{{ '/' | relative_url }}" {% if page.url == '/' %}class="current"{% endif %}>Home</a>
4+
<a href="{{ '/algorithm.html' | relative_url }}" {% if page.url contains 'algorithm' %}class="current"{% endif %}>Algorithm</a>
5+
<a href="{{ '/implementations.html' | relative_url }}" {% if page.url contains 'implementations' %}class="current"{% endif %}>Implementations</a>
6+
<a href="{{ '/benchmarking.html' | relative_url }}" {% if page.url contains 'benchmarking' %}class="current"{% endif %}>Benchmarking</a>
7+
<a href="{{ '/getting-started.html' | relative_url }}" {% if page.url contains 'getting-started' %}class="current"{% endif %}>Getting Started</a>
8+
</div>
9+
</nav>
10+
11+
<style>
12+
.site-nav {
13+
background-color: #f8f9fa;
14+
border-bottom: 1px solid #e9ecef;
15+
padding: 1rem 0;
16+
margin-bottom: 2rem;
17+
}
18+
19+
.nav-links {
20+
display: flex;
21+
flex-wrap: wrap;
22+
gap: 1.5rem;
23+
justify-content: center;
24+
}
25+
26+
.nav-links a {
27+
text-decoration: none;
28+
color: #007bff;
29+
font-weight: 500;
30+
padding: 0.5rem 1rem;
31+
border-radius: 4px;
32+
transition: background-color 0.2s;
33+
}
34+
35+
.nav-links a:hover {
36+
background-color: #e9ecef;
37+
}
38+
39+
.nav-links a.current {
40+
background-color: #007bff;
41+
color: white;
42+
}
43+
44+
@media (max-width: 768px) {
45+
.nav-links {
46+
flex-direction: column;
47+
align-items: center;
48+
gap: 0.5rem;
49+
}
50+
}</style>

docs/_layouts/default.html

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<!DOCTYPE html>
2+
<html lang="{{ site.lang | default: "en-US" }}">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
8+
{% seo %}
9+
<link rel="stylesheet" href="{{ "/assets/css/style.css?v=" | append: site.github.build_revision | relative_url }}">
10+
<!--[if lt IE 9]>
11+
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
12+
<![endif]-->
13+
{% include head-custom.html %}
14+
15+
<!-- MathJax for mathematical notation -->
16+
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
17+
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
18+
<script>
19+
window.MathJax = {
20+
tex: {
21+
inlineMath: [['$', '$'], ['\\(', '\\)']],
22+
displayMath: [['$$', '$$'], ['\\[', '\\]']]
23+
}
24+
};
25+
</script>
26+
</head>
27+
<body>
28+
<div class="wrapper">
29+
<header>
30+
<h1><a href="{{ "/" | absolute_url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
31+
32+
{% if site.logo %}
33+
<img src="{{site.logo | relative_url}}" alt="Logo" />
34+
{% endif %}
35+
36+
<p>{{ site.description | default: site.github.project_tagline }}</p>
37+
38+
{% if site.github.is_project_page %}
39+
<p class="view"><a href="{{ site.github.repository_url }}">View the Project on GitHub <small>{{ site.github.repository_nwo }}</small></a></p>
40+
{% endif %}
41+
42+
{% if site.github.is_user_page %}
43+
<p class="view"><a href="{{ site.github.owner_url }}">View My GitHub Profile</a></p>
44+
{% endif %}
45+
46+
{% if site.show_downloads %}
47+
<ul class="downloads">
48+
<li><a href="{{ site.github.zip_url }}">Download <strong>ZIP File</strong></a></li>
49+
<li><a href="{{ site.github.tar_url }}">Download <strong>TAR Ball</strong></a></li>
50+
<li><a href="{{ site.github.repository_url }}">View On <strong>GitHub</strong></a></li>
51+
</ul>
52+
{% endif %}
53+
</header>
54+
<section>
55+
{% include navigation.html %}
56+
57+
{{ content }}
58+
59+
</section>
60+
<footer>
61+
{% if site.github.is_project_page %}
62+
<p>This project is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
63+
{% endif %}
64+
<p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
65+
</footer>
66+
</div>
67+
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
68+
</body>
69+
</html>

0 commit comments

Comments
 (0)