Skip to content

Commit 0a7b89a

Browse files
Rename theme to Sinople and revise documentation (#54)
Updated README to reflect new theme name and features. <!-- SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> --> ## Summary <!-- What does this PR do, and why? --> Closes # ## Type of change - [ ] 🐛 Bug fix (non-breaking change that fixes an issue) - [ ] ✨ New feature (non-breaking change that adds functionality) - [ ] 💥 Breaking change (would change existing behaviour) - [ ] 🕳️ Soundness fix (fixes a checker/proof false-negative) - [ ] 📖 Documentation - [ ] 🧹 Refactor / tech debt (behaviour-preserving) - [ ] ⚡ Performance - [ ] 🔧 Build / CI / tooling ## How has this been verified? <!-- Establish ground truth: which tool did you RUN, and what did it report? Don't cite a status doc — cite the command and its output. --> ## Checklist - [ ] My commits are **signed** (`git commit -S`). - [ ] I ran the project's own checks/tests locally and they pass. - [ ] New files carry the correct `SPDX-License-Identifier` (code/config `MPL-2.0`, prose `CC-BY-SA-4.0`); I did not relicense existing files. - [ ] Docs are updated, and no public claim now overstates what the code does. - [ ] I have not introduced a soundness hole (or I have flagged where I might have). ## Notes for reviewers <!-- Anything that needs special attention, follow-up, or context. --> Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
1 parent be4611c commit 0a7b89a

1 file changed

Lines changed: 70 additions & 242 deletions

File tree

‎sinople-theme/README.adoc‎

Lines changed: 70 additions & 242 deletions
Original file line numberDiff line numberDiff line change
@@ -1,269 +1,97 @@
1-
// SPDX-License-Identifier: CC-BY-SA-4.0
2-
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
3-
= Sinople WordPress Theme
4-
5-
image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: PMPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"]
6-
image:https://img.shields.io/badge/Philosophy-Palimpsest-indigo.svg[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"]
7-
8-
9-
A modern, semantically-aware WordPress theme powered by *ReScript*, *Deno*, and *WASM*. Sinople (from the heraldic term for green) combines traditional WordPress theming with cutting-edge semantic web technologies for character relationships, glosses, and knowledge graphs.
10-
11-
== Current Status
12-
13-
Sinople is currently best understood as an ambitious integration prototype rather than a finished production platform.
14-
15-
* The repo contains real WordPress, ReScript, and WASM implementation work.
16-
* Several headline claims still outrun the automated test surface and the audit record in link:RSR_AUDIT.md[RSR_AUDIT.md].
17-
* In particular, Micropub/auth, accessibility verification, and standards-compliance claims should be treated as in-progress unless separately evidenced.
18-
19-
== Features
20-
21-
- 🧠 *Semantic Web Processing*: RDF/OWL processing via Rust WASM for construct relationships
22-
- 🌐 *IndieWeb Integration Work*: Webmention and Micropub-related endpoints exist, but the auth/completeness story is still in progress
23-
- ♿ *Accessibility-First Direction*: strong accessibility intent, but full AAA-style verification is still pending
24-
- 🔒 *Type Safety*: ReScript-only architecture (NO TypeScript)
25-
- ⚡ *Performance*: Rust-powered WASM semantic processor
26-
- 🎨 *Modern Stack*: Deno + Fresh framework for server-side rendering
27-
- 🤖 *Theme Transpilation System* (🚧 WIP): Automatically extract and recreate WordPress themes
28-
- Web scraper with license detection
29-
- Schema-based transformation (Cue/Nix)
30-
- Haskell → ReScript transpiler
31-
- ML-powered learning (LSM + Julia + Logtalk)
32-
- See [THEME_TRANSPILATION_ARCHITECTURE.md](THEME_TRANSPILATION_ARCHITECTURE.md)
33-
34-
== Production-Ready Enhancements
35-
36-
Sinople includes several enhancements to improve user experience, security, and FOSS philosophy compliance. See [THEME-ENHANCEMENTS.md](THEME-ENHANCEMENTS.md) for detailed documentation.
37-
38-
=== Visual Identity
39-
- *Professional Screenshot* (1200x900): Sinople green (#006400) with theme branding
40-
- *Multi-Size Favicons*: Complete favicon set for all devices and browsers (16px to 512px)
41-
- Includes: ICO, PNG variants, Apple Touch Icon
42-
- Auto-injected into `<head>` via `wp_head` hook
43-
- Design: Sinople green with white "S" monogram
44-
45-
=== Clean Default Installation
46-
- *No Bloatware*: Akismet and Hello Dolly automatically removed on theme activation
47-
- *User Freedom Preserved*: Users can still manually install these plugins if needed
48-
- *Automatic Translations*: WordPress translations download immediately on first installation
49-
- *Update Triggers*: Core, plugin, and theme updates checked automatically
50-
- **Implementation**:
51-
- Theme activation hook removes default plugins
52-
- Must-use plugin (`mu-plugins/sinople-no-default-plugins.php`) filters installation-time defaults
53-
- Translation pack downloads on first admin visit
54-
55-
=== Libravatar Support (FOSS Gravatar Alternative)
56-
- *Service*: Libravatar (https://libravatar.org) - free/open-source avatar service
57-
- *Privacy*: Users can host their own Libravatar instance
58-
- *Fallback*: Gracefully falls back to Gravatar if image not found
59-
- *User Control*: Enable/disable via checkbox in Settings > Discussion
60-
- *Default*: Enabled (aligns with FOSS-first philosophy)
61-
62-
=== Secure Email by Default
63-
- *Problem Solved*: WordPress defaults to insecure SMTP on port 25
64-
- *Solution*: Automatic PHPMailer configuration for encrypted connections
65-
- *Default Protocol*: TLS (STARTTLS) on port 587 (recommended)
66-
- *Alternative*: SSL (SMTPS) on port 465 (configurable)
67-
- *User Control*: Encryption type and port customizable in Settings > General
68-
- *Benefits*:
69-
- Prevents email interception and tampering
70-
- Improves deliverability (many ISPs block port 25)
71-
- Protects SMTP authentication credentials
72-
- *Compatibility*: Only applies when SMTP is used; can be disabled via `wp-config.php`
73-
74-
=== Cryptographic Security Suite (Phase 1)
75-
- *Goal*: Post-quantum ready cryptography where feasible in PHP
76-
- *Based On*: Absolute Max Cryptographic Suite specification
77-
- **Implementation Status**: ✅ Phase 1 complete (native PHP support)
78-
- **What's Included**:
79-
- *Argon2id Password Hashing*: 512 MiB, 8 iterations, 4 lanes (GPU-resistant)
80-
- *XChaCha20-Poly1305*: Authenticated encryption for sensitive options
81-
- *SHAKE256*: File integrity hashing (512-bit output)
82-
- *Ed25519*: Digital signatures for API authentication
83-
- *HKDF-SHAKE256*: Key derivation from master key
84-
- **Configuration**: Set `SINOPLE_MASTER_KEY` in wp-config.php
85-
- **Use Cases**:
86-
- Automatic password hashing upgrade (all users)
87-
- Encrypted API keys and credentials
88-
- File upload integrity verification
89-
- REST API request signing
90-
- Webmention source verification
91-
- **Performance**: Optimized (except Argon2id, which is intentionally slow)
92-
- **Future**: Phase 2-3 will add post-quantum signatures (Dilithium5, SPHINCS+) when PHP/OpenSSL support arrives
93-
- **Documentation**: See [CRYPTOGRAPHIC-INTEGRATION.md](CRYPTOGRAPHIC-INTEGRATION.md) for technical details
94-
95-
For complete technical details, testing checklists, and implementation notes, see [THEME-ENHANCEMENTS.md](THEME-ENHANCEMENTS.md).
96-
97-
== Quick Start
98-
99-
=== Prerequisites
100-
101-
- WordPress 6.0+
102-
- PHP 7.4+
103-
- Rust (for building WASM)
104-
- Deno 1.40+
105-
- Node.js 18+ (for ReScript)
106-
107-
=== Installation
108-
109-
1. *Clone the repository*:
110-
```bash
111-
git clone https://github.com/Hyperpolymath/wp-sinople-theme.git
112-
cd wp-sinople-theme
113-
```
114-
115-
2. *Build WASM module*:
116-
```bash
117-
cd wasm/semantic_processor
118-
cargo install wasm-pack
119-
./build.sh
120-
cd ../..
121-
```
122-
123-
3. *Compile ReScript*:
124-
```bash
125-
cd rescript
126-
npm install
127-
npm run build
128-
cd ..
129-
```
130-
131-
4. *Set up WordPress*:
132-
```bash
133-
# Copy wordpress/ directory to your WordPress themes folder
134-
cp -r wordpress /path/to/wordpress/wp-content/themes/sinople
135-
```
136-
137-
5. *Activate theme* in WordPress admin
138-
139-
=== Development
140-
141-
```bash
142-
= Build everything
143-
144-
./build.sh
145-
146-
= Development mode (watch files)
147-
148-
./dev.sh
149-
150-
= Run tests
151-
152-
cd tests
153-
deno test integration/
154-
```
155-
156-
== Project Structure
157-
158-
```
159-
wp-sinople-theme/
160-
├── wasm/ # Rust WASM semantic processor
161-
├── rescript/ # ReScript source code
162-
├── deno/ # Deno + Fresh application
163-
├── wordpress/ # WordPress theme files
164-
├── ontology/ # RDF ontologies (Turtle format)
165-
├── tests/ # Integration tests
166-
└── docs/ # Documentation
167-
```
168-
169-
== Custom Post Types
170-
171-
=== Constructs
172-
Abstract concepts, entities, or ideas (e.g., "Time", "Consciousness", "Justice")
173-
174-
=== Entanglements
175-
Relationships between constructs (e.g., "Time → Space", "Consciousness → Free Will")
176-
177-
== IndieWeb Features
1+
= Sinople
2+
:toc: macro
3+
:icons: font
1784

179-
- *Webmention*: `/wp-json/sinople/v1/webmention`
180-
- *Micropub*: `/wp-json/sinople/v1/micropub` (endpoint present; authentication and production posture still need tightening)
181-
- *Microformats2*: All posts include h-entry markup
5+
[.lead]
6+
A WordPress theme that does more than style your posts. It helps you connect them.
1827

183-
== Semantic Web APIs
8+
Sinople is a modern theme for WordPress. It is fast. It is accessible. It respects your privacy. And it has one feature most themes do not: a built-in knowledge graph. You can tag ideas, people, and concepts in your writing, and link them together. Sinople stores those links as data. Your site can then use them, export them, and share them with other sites.
1849

185-
- *Semantic Graph*: `/wp-json/sinople/v1/semantic-graph`
186-
- *RDF Export*: `/wp-json/sinople/v1/constructs/{id}/rdf`
187-
- *Full Ontology*: `/wp-json/sinople/v1/ontology`
10+
It is made for everyone. If you can install a WordPress theme, you can use Sinople. The advanced parts stay out of your way until you want them.
18811

189-
== Accessibility
12+
toc::[]
19013

191-
Sinople is designed with strong accessibility goals, but full WCAG AAA-style verification is still pending:
14+
== Why Sinople is different
19215

193-
- 7:1 contrast ratio for normal text
194-
- Full keyboard navigation support
195-
- Screen reader optimized
196-
- Respects `prefers-reduced-motion`
197-
- Skip links to main content
198-
- Semantic HTML5 markup
16+
Most themes change how your site *looks*. Sinople also changes what your site *knows*.
19917

200-
== Browser Support
18+
*It understands your content.* Link a post about "Time" to one about "Space," and that link becomes real data — not just words on a page.
20119

202-
- Chrome/Edge 90+
203-
- Firefox 88+
204-
- Safari 14+
20+
*It is built on safe, fast tech.* The heavy work runs in WebAssembly — code that runs quickly and safely — written in Rust. The rest is written in ReScript, a language designed to rule out whole classes of bugs before they happen.
20521

206-
== Contributing
22+
*It is private by default.* No trackers. No bloat. It even removes the two plugins WordPress ships that you never asked for. (You can add them back. Your site, your choice.)
20723

208-
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
209-
- Development guidelines
210-
- Tri-Perimeter Contribution Framework (TPCF)
211-
- Code style and commit conventions
212-
- Pull request process
24+
*It is secure by default.* Modern password hashing. Encrypted storage for sensitive settings. Signed API requests. All on from the start — not sold as add-ons.
21325

214-
Please also review our [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
26+
*It belongs to the open web.* Sinople supports IndieWeb standards, so your site can talk to other sites directly. No platform in the middle.
21527

216-
== Documentation
28+
== Honest status
21729

218-
=== User Documentation
219-
- *[USAGE.md](USAGE.md)*: Developer usage guide
220-
- *[ROADMAP.md](ROADMAP.md)*: Development roadmap
221-
- *[STACK.md](STACK.md)*: Technical stack details
222-
- *[CHANGELOG.md](CHANGELOG.md)*: Version history and release notes
30+
NOTE: Sinople is a working prototype, not a finished product. Some features are complete. Some are partly done. Some are goals. We tell you exactly which is which. Every claim in this file is backed up in link:EXPLAINME.adoc[EXPLAINME — Show Me The Receipts].
22331

224-
=== Project Governance
225-
- *[CONTRIBUTING.md](CONTRIBUTING.md)*: Contribution guidelines and TPCF
226-
- *[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)*: Community standards
227-
- *[SECURITY.md](SECURITY.md)*: Security policy and vulnerability reporting
228-
- *[MAINTAINERS.md](MAINTAINERS.md)*: Project maintainers and governance
229-
- *[TPCF.md](TPCF.md)*: Tri-Perimeter Contribution Framework details
32+
== What you get
23033

231-
=== Development
232-
- *[CLAUDE.md](CLAUDE.md)*: AI assistant guidelines and architecture
233-
- *[RSR_AUDIT.md](RSR_AUDIT.md)*: Rhodium Standard Repository compliance audit
34+
*A clean, readable theme.* Good contrast. Keyboard-friendly. Works with screen readers.
23435

235-
== Security
36+
*Knowledge tools.* Two new content types: *Constructs* (ideas and concepts) and *Entanglements* (the links between them). Plus APIs to query and export the graph.
23637

237-
Security vulnerabilities can be reported via:
238-
- Email: security@sinople.org
239-
- Security policy: [SECURITY.md](SECURITY.md)
240-
- Security.txt: [/.well-known/security.txt](.well-known/security.txt)
38+
*IndieWeb built in.* Your posts carry machine-readable markup (Microformats2). Webmentions let other sites reply to yours. Micropub support is in progress.
24139

242-
We follow coordinated disclosure practices with 24-hour acknowledgment and 7-day patch timelines.
40+
*Private avatars.* Support for Libravatar, the free and open avatar service, instead of sending your readers' data to a third party.
24341

244-
== License
42+
*Safer email.* WordPress sends mail over an unencrypted connection by default. Sinople switches it to encrypted (TLS) automatically.
43+
44+
*Strong security defaults.* Argon2id password hashing, authenticated encryption for sensitive options, and digital signatures for API requests. Details in link:CRYPTOGRAPHIC-INTEGRATION.md[CRYPTOGRAPHIC-INTEGRATION].
45+
46+
== For site owners — no code needed
47+
48+
. Download the `wordpress/` folder from this repository.
49+
. Copy it to `wp-content/themes/sinople` on your site.
50+
. Go to *Appearance → Themes* and activate Sinople.
51+
52+
You need: *WordPress 6.7 or later* and *PHP 8.3 or later* (8.4 recommended). If your host offers older PHP, ask them to upgrade — or move. Old PHP is a security risk.
24553

246-
*Dual Licensed* - Choose either:
54+
== For developers
24755

248-
- *Palimpsest-MPL-1.0 License* (OSI-approved, permissive)
249-
- *Palimpsest License v0.8* (political autonomy focus)
56+
[cols="1,1", options="header"]
57+
|===
58+
| Tool | Version
59+
| WordPress | 6.7+ (tested up to 6.8)
60+
| PHP | 8.3+ (8.4 recommended, CI-tested on 8.5)
61+
| Deno | 2.x
62+
| Node.js | 22 LTS
63+
| Rust | stable, with the `wasm32-unknown-unknown` target
64+
| ReScript | 11.1
65+
|===
25066

251-
See [LICENSE.txt](LICENSE.txt) for full terms.
67+
[source,bash]
68+
----
69+
git clone https://github.com/hyperpolymath/wordpress-tools.git
70+
cd wordpress-tools/sinople-theme
71+
./build.sh # build everything
72+
./dev.sh # watch mode
73+
----
25274

253-
*SPDX-License-Identifier*: `MIT OR Palimpsest-0.8`
75+
== Accessibility
76+
77+
We aim for WCAG 2.2 level AA across the theme, and AAA where we can. That means strong contrast, full keyboard access, screen-reader support, and respect for reduced-motion settings. A full independent audit is still to come — current status is in link:EXPLAINME.adoc[the receipts file].
78+
79+
== Security
25480

255-
== Standards Compliance
81+
Found a vulnerability? Please see link:SECURITY.md[SECURITY.md]. We use coordinated disclosure.
25682

257-
- ⚠️ *RSR*: see link:RSR_AUDIT.md[RSR_AUDIT.md] for the real current audit posture
258-
- ⚠️ *Accessibility*: goals are strong, but full verification is not yet evidenced here
259-
- ⚠️ *IndieWeb*: endpoints and integration work exist, but production-complete Micropub/auth claims are premature
260-
- ✅ *Semantic Versioning 2.0.0*: Version management
261-
- ✅ *Conventional Commits*: Commit message format
262-
- ✅ *RFC 9116*: security.txt implementation
83+
== Documentation
84+
85+
* link:EXPLAINME.adoc[EXPLAINME — Show Me The Receipts] (claims and evidence)
86+
* link:USAGE.md[Usage guide]
87+
* link:STACK.md[Technical stack]
88+
* link:ROADMAP.adoc[Roadmap]
89+
* link:CONTRIBUTING.adoc[Contributing]
90+
* link:CODE_OF_CONDUCT.md[Code of conduct]
91+
92+
== License
26393

264-
== Credits
94+
*Code:* Mozilla Public License 2.0 (MPL-2.0). See link:LICENSE[LICENSE].
95+
*Documentation:* Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA-4.0).
26596

266-
*Development*: Claude Code (Anthropic) + Human collaboration
267-
*License*: MIT OR Palimpsest-0.8
268-
*Humans*: See [.well-known/humans.txt](.well-known/humans.txt)
269-
*AI Policy*: See [.well-known/ai.txt](.well-known/ai.txt)
97+
SPDX-License-Identifier: CC-BY-SA-4.0

0 commit comments

Comments
 (0)