Plain-text nodes inside paragraphs, headings, lists and table cells now auto-wrap any https:// URL in <a href="..." rel="noopener">URL</a>. - Bare domains, www. and http:// URLs are intentionally not linked - Suppressed inside explicit `link` inline nodes (no nested anchors) - Suppressed inside `code`-styled spans (URL stays literal) - Trailing sentence punctuation (.,;:!?'") is excluded from the linked URL - Closing parens/brackets/braces are kept inside the URL only when balanced with an opener (so Wikipedia-style _(bar) is preserved but `(see https://x.com)` doesn't eat the trailing paren) - Bold/italic/color style wrappers compose around the anchor `renderInlineContent` gains an `insideLink bool` parameter; all existing call sites pass `false`, and the `link` branch recurses with `true`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
BlockNinja Plugin SDK
Types, interfaces, and utilities for building BlockNinja plugins.
Package Structure
| Package | Purpose |
|---|---|
plugin/ |
PluginRegistration, ServiceDeps, RegisterFunc |
blocks/ |
BlockMeta, BlockFunc, BlockRegistry interface, BlockContext |
blocks/builtin/ |
Reusable block implementations (HTMLBlock) |
templates/ |
TemplateRegistry interface |
templates/bn/ |
Shared templ components (head, engagement, toolbar) |
auth/ |
Claims types, context extractors |
content/ |
Content access interface |
settings/ |
Settings access interface |
gating/ |
Access gating evaluation |
crypto/ |
Encrypt/Decrypt interface |
render/ |
Rich text rendering utilities |
video/ |
Video embed URL parsing |
ai/ |
AI tool registry interface and types |
rbac/ |
Role type definition |
Usage
import "git.dev.alexdunmow.com/ninja/core/plugin"
Description
Languages
Go
74.9%
templ
23.4%
Makefile
1.6%