Files
hive/mcp-server/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs
anthonyrawlins e89f2f4b7b Add comprehensive development roadmap via GitHub Issues
Created 10 detailed GitHub issues covering:
- Project activation and management UI (#1-2)
- Worker node coordination and visualization (#3-4)
- Automated GitHub repository scanning (#5)
- Intelligent model-to-issue matching (#6)
- Multi-model task execution system (#7)
- N8N workflow integration (#8)
- Hive-Bzzz P2P bridge (#9)
- Peer assistance protocol (#10)

Each issue includes detailed specifications, acceptance criteria,
technical implementation notes, and dependency mapping.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 19:41:01 +10:00

78 lines
1.5 KiB
JavaScript

// Parse link destination
//
import { unescapeAll } from '../common/utils.mjs'
export default function parseLinkDestination (str, start, max) {
let code
let pos = start
const result = {
ok: false,
pos: 0,
str: ''
}
if (str.charCodeAt(pos) === 0x3C /* < */) {
pos++
while (pos < max) {
code = str.charCodeAt(pos)
if (code === 0x0A /* \n */) { return result }
if (code === 0x3C /* < */) { return result }
if (code === 0x3E /* > */) {
result.pos = pos + 1
result.str = unescapeAll(str.slice(start + 1, pos))
result.ok = true
return result
}
if (code === 0x5C /* \ */ && pos + 1 < max) {
pos += 2
continue
}
pos++
}
// no closing '>'
return result
}
// this should be ... } else { ... branch
let level = 0
while (pos < max) {
code = str.charCodeAt(pos)
if (code === 0x20) { break }
// ascii control characters
if (code < 0x20 || code === 0x7F) { break }
if (code === 0x5C /* \ */ && pos + 1 < max) {
if (str.charCodeAt(pos + 1) === 0x20) { break }
pos += 2
continue
}
if (code === 0x28 /* ( */) {
level++
if (level > 32) { return result }
}
if (code === 0x29 /* ) */) {
if (level === 0) { break }
level--
}
pos++
}
if (start === pos) { return result }
if (level !== 0) { return result }
result.str = unescapeAll(str.slice(start, pos))
result.pos = pos
result.ok = true
return result
}