REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 3.64 KB
Close
/home/byroehnu/.trash/node_modules11/markdown-it/lib/rules_inline/link.mjs
Text
Base64
// Process [link](<to> "stuff") import { normalizeReference, isSpace } from '../common/utils.mjs' export default function link (state, silent) { let code, label, res, ref let href = '' let title = '' let start = state.pos let parseReference = true if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false } const oldPos = state.pos const max = state.posMax const labelStart = state.pos + 1 const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true) // parser failed to find ']', so it's not a valid link if (labelEnd < 0) { return false } let pos = labelEnd + 1 if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) { // // Inline link // // might have found a valid shortcut link, disable reference parsing parseReference = false // [link]( <href> "title" ) // ^^ skipping these spaces pos++ for (; pos < max; pos++) { code = state.src.charCodeAt(pos) if (!isSpace(code) && code !== 0x0A) { break } } if (pos >= max) { return false } // [link]( <href> "title" ) // ^^^^^^ parsing link destination start = pos res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax) if (res.ok) { href = state.md.normalizeLink(res.str) if (state.md.validateLink(href)) { pos = res.pos } else { href = '' } // [link]( <href> "title" ) // ^^ skipping these spaces start = pos for (; pos < max; pos++) { code = state.src.charCodeAt(pos) if (!isSpace(code) && code !== 0x0A) { break } } // [link]( <href> "title" ) // ^^^^^^^ parsing link title res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax) if (pos < max && start !== pos && res.ok) { title = res.str pos = res.pos // [link]( <href> "title" ) // ^^ skipping these spaces for (; pos < max; pos++) { code = state.src.charCodeAt(pos) if (!isSpace(code) && code !== 0x0A) { break } } } } if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) { // parsing a valid shortcut link failed, fallback to reference parseReference = true } pos++ } if (parseReference) { // // Link reference // if (typeof state.env.references === 'undefined') { return false } if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) { start = pos + 1 pos = state.md.helpers.parseLinkLabel(state, pos) if (pos >= 0) { label = state.src.slice(start, pos++) } else { pos = labelEnd + 1 } } else { pos = labelEnd + 1 } // covers label === '' and label === undefined // (collapsed reference link and shortcut reference link respectively) if (!label) { label = state.src.slice(labelStart, labelEnd) } ref = state.env.references[normalizeReference(label)] if (!ref) { state.pos = oldPos return false } href = ref.href title = ref.title } // // We found the end of the link, and know for a fact it's a valid link; // so all that's left to do is to call tokenizer. // if (!silent) { state.pos = labelStart state.posMax = labelEnd const token_o = state.push('link_open', 'a', 1) const attrs = [['href', href]] token_o.attrs = attrs if (title) { attrs.push(['title', title]) } state.linkLevel++ state.md.inline.tokenize(state) state.linkLevel-- state.push('link_close', 'a', -1) } state.pos = pos state.posMax = max return true }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
autolink.mjs
1.96 KB
lrw-r--r--
2026-02-28 00:28:22
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
backticks.mjs
1.63 KB
lrw-r--r--
2026-02-28 00:28:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
balance_pairs.mjs
3.99 KB
lrw-r--r--
2026-02-28 00:28:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
emphasis.mjs
3.44 KB
lrw-r--r--
2026-02-28 00:28:38
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
entity.mjs
1.45 KB
lrw-r--r--
2026-02-28 00:28:38
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
escape.mjs
1.39 KB
lrw-r--r--
2026-02-28 00:28:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
fragments_join.mjs
1.24 KB
lrw-r--r--
2026-02-28 00:28:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
html_inline.mjs
1.14 KB
lrw-r--r--
2026-02-28 00:28:54
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
image.mjs
3.55 KB
lrw-r--r--
2026-02-28 00:28:58
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
link.mjs
3.64 KB
lrw-r--r--
2026-02-28 00:29:04
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
linkify.mjs
1.86 KB
lrw-r--r--
2026-02-28 00:29:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
newline.mjs
1.17 KB
lrw-r--r--
2026-02-28 00:29:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
state_inline.mjs
3.41 KB
lrw-r--r--
2026-02-28 00:29:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
strikethrough.mjs
2.87 KB
lrw-r--r--
2026-02-28 00:29:32
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
text.mjs
2.05 KB
lrw-r--r--
2026-02-28 00:29:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).