Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 11 additions & 31 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,8 @@
# Code of Conduct

<!--
============================================================================
TEMPLATE INSTRUCTIONS (delete this block before publishing)
============================================================================
Replace all {{PLACEHOLDER}} values:
{{PROJECT_NAME}} - Your project name
{{OWNER}} - GitHub/GitLab username or org
{{REPO}} - Repository name
{{CONDUCT_EMAIL}} - Email for conduct reports
{{CONDUCT_TEAM}} - Name of conduct team/committee
{{RESPONSE_TIME}} - Initial response SLA (e.g., 48 hours)
{{CURRENT_YEAR}} - Current year

Review and customise:
- Adjust enforcement ladder for your community size
- Add/remove examples based on your context
- Ensure contact methods work for your team
============================================================================
-->

## Our Pledge

We as members, contributors, and leaders pledge to make participation in {{PROJECT_NAME}} a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in noteg-ssg a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

Expand Down Expand Up @@ -136,7 +116,7 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

| Method | Details | Best For |
|--------|---------|----------|
| **Email** | {{CONDUCT_EMAIL}} | Detailed reports, sensitive matters |
| **Email** | conduct@hyperpolymath.dev | Detailed reports, sensitive matters |
| **Private Message** | Contact any maintainer directly | Quick questions, minor issues |
| **Anonymous Form** | [Link to form if available] | When you need anonymity |

Expand All @@ -152,8 +132,8 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

**What Happens Next**

1. You will receive acknowledgment within **{{RESPONSE_TIME}}**
2. The {{CONDUCT_TEAM}} will review the report
1. You will receive acknowledgment within **48 hours**
2. The conduct team will review the report
3. We may ask for additional information
4. We will determine appropriate action
5. We will inform you of the outcome (respecting others' privacy)
Expand All @@ -169,7 +149,7 @@ All reports will be handled with discretion:

### Conflicts of Interest

If a {{CONDUCT_TEAM}} member is involved in an incident:
If a conduct team member is involved in an incident:

- They will recuse themselves from the process
- Another maintainer or external party will handle the report
Expand All @@ -179,7 +159,7 @@ If a {{CONDUCT_TEAM}} member is involved in an incident:

## Enforcement Guidelines

The {{CONDUCT_TEAM}} will follow these guidelines in determining consequences:
The conduct team will follow these guidelines in determining consequences:

### 1. Correction

Expand Down Expand Up @@ -231,13 +211,13 @@ For contributors with elevated access (Perimeter 2 or 1):
If you believe an enforcement decision was made in error:

1. **Wait 7 days** after the decision (cooling-off period)
2. **Email** {{CONDUCT_EMAIL}} with subject line "Appeal: [Original Report ID]"
2. **Email** conduct@hyperpolymath.dev with subject line "Appeal: [Original Report ID]"
3. **Explain** why you believe the decision should be reconsidered
4. **Provide** any new information not previously available

**Appeals Process**

- Appeals are reviewed by a different {{CONDUCT_TEAM}} member than the original
- Appeals are reviewed by a different conduct team member than the original
- You will receive a response within 14 days
- The appeals decision is final
- You may only appeal once per incident
Expand Down Expand Up @@ -310,8 +290,8 @@ We thank these communities for their leadership in creating welcoming spaces.

If you have questions about this Code of Conduct:

- Open a [Discussion](https://{{FORGE}}/{{OWNER}}/{{REPO}}/discussions) (for general questions)
- Email {{CONDUCT_EMAIL}} (for private questions)
- Open a [Discussion](https://github.com/hyperpolymath/noteg-ssg/discussions) (for general questions)
- Email conduct@hyperpolymath.dev (for private questions)
- Contact any maintainer directly

---
Expand All @@ -324,4 +304,4 @@ We're all here because we care about this project. Let's make it a place where e

---

<sub>Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1</sub>
<sub>Last updated: 2025 · Based on Contributor Covenant 2.1</sub>
20 changes: 10 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Clone the repository
git clone https://{{FORGE}}/{{OWNER}}/{{REPO}}.git
cd {{REPO}}
git clone https://github.com/hyperpolymath/noteg-ssg.git
cd noteg-ssg

# Using Nix (recommended for reproducibility)
nix develop

# Or using toolbox/distrobox
toolbox create {{REPO}}-dev
toolbox enter {{REPO}}-dev
toolbox create noteg-ssg-dev
toolbox enter noteg-ssg-dev
# Install dependencies manually

# Verify setup
Expand All @@ -17,7 +17,7 @@ just test # Run test suite

### Repository Structure
```
{{REPO}}/
noteg-ssg/
├── src/ # Source code (Perimeter 1-2)
├── lib/ # Library code (Perimeter 1-2)
├── extensions/ # Extensions (Perimeter 2)
Expand Down Expand Up @@ -53,7 +53,7 @@ just test # Run test suite

**Before reporting**:
1. Search existing issues
2. Check if it's already fixed in `{{MAIN_BRANCH}}`
2. Check if it's already fixed in `main`
3. Determine which perimeter the bug affects

**When reporting**:
Expand Down Expand Up @@ -86,10 +86,10 @@ Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) an

Look for issues labelled:

- [`good first issue`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/help%20wanted) — Community help needed
- [`documentation`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/documentation) — Docs improvements
- [`perimeter-3`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/perimeter-3) — Community sandbox scope
- [`good first issue`](https://github.com/hyperpolymath/noteg-ssg/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://github.com/hyperpolymath/noteg-ssg/labels/help%20wanted) — Community help needed
- [`documentation`](https://github.com/hyperpolymath/noteg-ssg/labels/documentation) — Docs improvements
- [`perimeter-3`](https://github.com/hyperpolymath/noteg-ssg/labels/perimeter-3) — Community sandbox scope

---

Expand Down
12 changes: 6 additions & 6 deletions ECOSYSTEM.scm
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
;; ECOSYSTEM.scm — template-repo
;; ECOSYSTEM.scm — noteg-ssg

(ecosystem
(version "1.0.0")
(name "template-repo")
(type "project")
(purpose "Project in the hyperpolymath ecosystem")
(name "noteg-ssg")
(type "satellite")
(purpose "MCP adapter collection for 28 static site generators")

(position-in-ecosystem
"Part of hyperpolymath ecosystem. Follows RSR guidelines.")
Expand All @@ -24,5 +24,5 @@
(url "https://github.com/hyperpolymath/rhodium-standard-repositories")
(relationship "standard")))

(what-this-is "Project in the hyperpolymath ecosystem")
(what-this-is-not "- NOT exempt from RSR compliance"))
(what-this-is "Satellite SSG implementation providing Deno/JS MCP adapters for 28 static site generators")
(what-this-is-not "- NOT the central hub (that's poly-ssg-mcp)\n - NOT exempt from RSR compliance"))
6 changes: 3 additions & 3 deletions META.scm
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
;;; META.scm — template-repo
;;; META.scm — noteg-ssg

(define-module (template-repo meta)
(define-module (noteg-ssg meta)
#:export (architecture-decisions development-practices design-rationale))

(define architecture-decisions
'((adr-001
(title . "RSR Compliance")
(status . "accepted")
(date . "2025-12-15")
(context . "Project in the hyperpolymath ecosystem")
(context . "Satellite SSG adapter collection for poly-ssg-mcp hub")
(decision . "Follow Rhodium Standard Repository guidelines")
(consequences . ("RSR Gold target" "SHA-pinned actions" "SPDX headers" "Multi-platform CI")))))

Expand Down
182 changes: 182 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,183 @@
= noteg-ssg
:toc: macro
:toc-title: Contents
:toclevels: 2
:icons: font
:source-highlighter: highlight.js

image:https://img.shields.io/badge/license-MIT%20OR%20AGPL--3.0-blue[License]
image:https://img.shields.io/badge/RSR-compliant-gold[RSR Compliant]
image:https://img.shields.io/badge/MCP-adapters-green[MCP Adapters]

Satellite SSG implementation providing Deno/JavaScript MCP adapters for 28 static site generators.

toc::[]

== Overview

**noteg-ssg** is a satellite project in the https://github.com/hyperpolymath[hyperpolymath] ecosystem that provides Model Context Protocol (MCP) adapters for 28 different static site generators across multiple programming languages.

This project integrates with the https://github.com/hyperpolymath/poly-ssg-mcp[poly-ssg-mcp] hub to provide a unified interface for working with various SSGs.

=== Key Features

* **28 SSG Adapters** - Support for SSGs written in Rust, Haskell, Elixir, Julia, Scala, and more
* **MCP Protocol** - Standardised Model Context Protocol interface
* **Deno Runtime** - All adapters run on Deno for consistent cross-platform execution
* **RSR Compliant** - Follows Rhodium Standard Repository guidelines

== Supported Static Site Generators

[cols="1,1,2"]
|===
|Adapter |Language |Description

|babashka |Clojure |Babashka-based SSG
|cobalt |Rust |Static site generator in Rust
|coleslaw |Common Lisp |Lisp-based SSG
|cryogen |Clojure |Static site generator for Clojure
|documenter |Julia |Julia documentation generator
|ema |Haskell |Haskell static site generator
|fornax |F# |F# static site generator
|franklin |Julia |Julia-based SSG with live editing
|frog |Racket |Racket static blog generator
|hakyll |Haskell |Hakyll static site generator
|laika |Scala |Scala documentation tool
|marmot |Crystal |Crystal-based SSG
|mdbook |Rust |Rust book/documentation generator
|nimble-publisher |Elixir |Nimble-based Elixir publisher
|nimrod |Nim |Nim static site generator
|orchid |Kotlin |Kotlin documentation generator
|perun |Clojure |Clojure static site generator
|pollen |Racket |Racket publishing system
|publish |Swift |Swift static site generator
|reggae |D |D language SSG
|scalatex |Scala |Scala text processor
|serum |Elixir |Simple static site generator for Elixir
|staticwebpages |Julia |Julia static web pages
|tableau |Elixir |Elixir static site generator
|wub |Tcl |Tcl web framework
|yocaml |OCaml |OCaml static site generator
|zola |Rust |Fast static site generator in Rust
|zotonic |Erlang |Erlang CMS and framework
|===

== Installation

=== Prerequisites

* https://deno.land/[Deno] runtime (v1.40+)
* The specific SSG you want to use must be installed on your system

=== Setup

[source,bash]
----
# Clone the repository
git clone https://github.com/hyperpolymath/noteg-ssg.git
cd noteg-ssg
----

== Usage

Each adapter provides a standard MCP interface with common tools:

[source,javascript]
----
// Example: Using the Zola adapter
import { connect, tools } from './adapters/zola.js';

// Connect to verify Zola is installed
await connect();

// Use available tools
const result = await tools.find(t => t.name === 'init').execute({ name: 'my-site' });
----

=== Common Tools

All adapters typically provide these tools:

* `init` - Initialize a new site
* `build` - Build the static site
* `serve` - Start a development server
* `check` - Validate site configuration
* `version` - Get the SSG version

== Architecture

[source]
----
noteg-ssg (satellite)
|
+-- adapters/ # 28 MCP adapter implementations
| +-- zola.js
| +-- hakyll.js
| +-- ...
|
+-- Integrates with: poly-ssg-mcp (hub)
----

=== Ecosystem Position

* **This project**: Satellite SSG adapter implementations
* **poly-ssg-mcp**: Central hub providing unified MCP server
* **rhodium-standard-repositories**: RSR compliance standard

== Development

=== Prerequisites

* Deno runtime
* (Optional) https://github.com/casey/just[just] task runner
* (Optional) Nix for reproducible environments

=== Running Tests

[source,bash]
----
# Run all adapter tests
deno test adapters/

# Test a specific adapter
deno test adapters/zola.js
----

=== Adding New Adapters

1. Create a new file in `adapters/` following the existing pattern
2. Export: `name`, `language`, `description`
3. Implement: `connect()`, `disconnect()`, `isConnected()`, `tools[]`
4. Add tests

See link:CONTRIBUTING.md[CONTRIBUTING.md] for full guidelines.

== Security

Please report security vulnerabilities through GitHub Security Advisories:
https://github.com/hyperpolymath/noteg-ssg/security/advisories/new

See link:SECURITY.md[SECURITY.md] for our full security policy.

== License

This project is dual-licensed under:

* MIT License
* AGPL-3.0-or-later

See link:LICENSE.txt[LICENSE.txt] for details.

== Contributing

Contributions are welcome! Please read our link:CONTRIBUTING.md[Contributing Guidelines] and link:CODE_OF_CONDUCT.md[Code of Conduct] before submitting.

== Links

* https://github.com/hyperpolymath/noteg-ssg[GitHub Repository]
* https://github.com/hyperpolymath/poly-ssg-mcp[poly-ssg-mcp Hub]
* https://github.com/hyperpolymath[hyperpolymath Organization]

---

_Part of the https://github.com/hyperpolymath[hyperpolymath] ecosystem_
Loading
Loading