linkify.bend checks
raw source on the hub · import 0x7ac3d173083047725064b6e6915eb3cb/linkify.bend as Linkify
bible-linkify surface (pure Bend): protect-aware Markdown walker + plain matcher
4 imports
import Base import ./route.bend as Route import ./protect.bend as Prot import ./parse.bend as P
Types
type TvPh source · line 17 · raw
Data
Peek trailing " (ESV)" after a match — does not consume; code or "".
TvSkipSpTvPh
TvSkipDec@sp:Bool -> TvPh
TvNeedOpenTvPh
TvNeedOpenDec@is_open:Bool -> TvPh
TvCode@+acc:String -> @+letters:Nat -> @+digits:Nat -> TvPh
TvCls@+acc:String -> @+letters:Nat -> @+digits:Nat -> @is_close:Bool -> @ch:Char -> TvPh
TvAl@+acc:String -> @+letters:Nat -> @+digits:Nat -> @ch:Char -> @is_alpha:Bool -> @dig0:Bool -> TvPh
TvDg@+acc:String -> @+letters:Nat -> @+digits:Nat -> @ch:Char -> @is_digit:Bool -> TvPh
TvDone@+acc:String -> @+letters:Nat -> @+digits:Nat -> TvPh
TvCheck@+acc:String -> @ok:Bool -> TvPh
type SigPh source · line 199 · raw
Data
--- Passage signal ---
SigScan@has_a:Bool -> @has_d:Bool -> SigPh
SigBoth@has_a:Bool -> @has_d:Bool -> @both:Bool -> SigPh
type TrPh source · line 237 · raw
Data
--- Trim wrappers: drop lead wrappers, reverse, drop lead (ex-trail), reverse ---
TrLeadTrPh
TrLeadDec@lead:Bool -> TrPh
type TcPh source · line 285 · raw
Data
TcCheck@+n:Nat -> @has_d:Bool -> TcPh
TcGe@+n:Nat -> @has_d:Bool -> @ge:Bool -> TcPh
TcOk@+n:Nat -> @has_d:Bool -> @ok:Bool -> TcPh
TcSp@+n:Nat -> @has_d:Bool -> @is_sp:Bool -> TcPh
TcSpDig@+n:Nat -> TcPh
TcSpNod@+n:Nat -> TcPh
TcPeek@+n:Nat -> @next_alpha:Bool -> TcPh
TcTake@+n:Nat -> @has_d:Bool -> TcPh
TcTakeDig@+n:Nat -> @has_d:Bool -> @dig:Bool -> TcPh
type VisCan source · line 377 · raw
Data
VisCan@visible:String -> @canonical:String -> VisCan
type CandGate source · line 380 · raw
Data
CandNoneCandGate
CandSome@visible:String -> @canonical:String -> CandGate
type TwPh source · line 416 · raw
Data
TwTry@s:String -> TwPh
TwEmpty@s:String -> @empty:Bool -> TwPh
TwShort@s:String -> @short:Bool -> TwPh
TwParsed@s:String -> @m:Maybe<&2, VisCan> -> TwPh
type ExPh source · line 453 · raw
Data
--- Urlish ---
ExGoExPh
ExDec@sp:Bool -> ExPh
type NaPh source · line 530 · raw
Data
NaDec@alnum:Bool -> NaPh
type PlPh source · line 564 · raw
Data
--- Plain linkify ---
PlScanPlPh
PlNotRefPlPh
PlRefStartPlPh
PlRefContPlPh
PlBoundOk@prev_alnum:Bool -> PlPh
PlTryPlPh
PlTried@m:Maybe<&2, VisCan> -> PlPh
PlAfterTry@visible:String -> @canonical:String -> @empty:Bool -> PlPh
PlStand@visible:String -> @canonical:String -> @ok:Bool -> PlPh
PlUrl@visible:String -> @canonical:String -> @bad:Bool -> PlPh
PlEmit@ch:Char -> PlPh
type LpGate source · line 761 · raw
Data
LpGate@ok:Bool -> LpGate
type FullHit2 source · line 764 · raw
Data
FullMiss2FullHit2
FullExact@visible:String -> @canonical:String -> FullHit2
FullPrefix@visible:String -> @canonical:String -> @rest:String -> FullHit2
type MdWalk source · line 827 · raw
Data
--- Markdown walker ---
MwCheck@at_bol:Bool -> @at_doc:Bool -> MdWalk
MwDecide@at_bol:Bool -> @plen:Nat -> @z:Bool -> MdWalk
MwProtect@len:Nat -> @at_bol:Bool -> MdWalk
MwProtDec@len:Nat -> @at_bol:Bool -> @z:Bool -> @nl:Bool -> MdWalk
MwPlainEmit@at_bol:Bool -> MdWalk
MwFlush@at_bol:Bool -> @plen:Nat -> @z:Bool -> MdWalk
Definitions
def char1 source · line 7 · raw
@+c:Char -> String
def linkify_parts source · line 10 · raw
@+visible:String -> @+canonical:String -> String
def linkify_parts_qv source · line 13 · raw
@+visible:String -> @+canonical:String -> @+translation:String -> String
def tv_letter_ok source · line 29 · raw
@+letters:Nat -> Bool
def tv_digit_ok source · line 32 · raw
@+digits:Nat -> Bool
def peek_translation_go source · line 35 · raw
@fuel:Nat -> @ph:TvPh -> @rest:String -> String
def peek_translation source · line 138 · raw
@+suffix:String -> String
def is_newline source · line 145 · raw
@+c:Char -> Bool
def is_alnum source · line 150 · raw
@+c:Char -> Bool
def is_wrapper_lead source · line 153 · raw
@+c:Char -> Bool
def is_wrapper_trail source · line 168 · raw
@+c:Char -> Bool
def has_signal_go source · line 203 · raw
@fuel:Nat -> @ph:SigPh -> @rest:String -> Bool
def has_passage_signal source · line 233 · raw
@+s:String -> Bool
def is_wrapper_either source · line 241 · raw
@+c:Char -> Bool
def trim_pass_go source · line 244 · raw
@fuel:Nat -> @ph:TrPh -> @rest:String -> String
def trim_pass source · line 267 · raw
@+s:String -> String
def trim_wrappers source · line 270 · raw
@+s:String -> String
def is_colon_dot_dash source · line 274 · raw
@+c:Char -> Bool
--- Candidate take ---
def is_cand_char source · line 279 · raw
@+c:Char -> Bool
def pick_sp source · line 296 · raw
@has_d:Bool -> @+n:Nat -> TcPh
def take_cand_go source · line 303 · raw
@fuel:Nat -> @ph:TcPh -> @+rest:String -> @acc:String -> String
def take_candidate source · line 373 · raw
@+s:String -> String
def cand_pick source · line 384 · raw
@empty:Bool -> @+visible:String -> @+canonical:String -> CandGate
def cand_from source · line 391 · raw
@+visible:String -> @+canonical:String -> CandGate
def try_parse_visible_gated source · line 394 · raw
@g:CandGate -> Maybe<&2, VisCan>
def try_parse_visible source · line 401 · raw
@+visible:String -> Maybe<&2, VisCan>
def drop_last_rev source · line 406 · raw
@rev:String -> String
def drop_last source · line 413 · raw
@s:String -> String
def try_windows_go source · line 422 · raw
@fuel:Nat -> @ph:TwPh -> Maybe<&2, VisCan>
def try_windows source · line 449 · raw
@+raw:String -> Maybe<&2, VisCan>
def expand_token_left source · line 457 · raw
@fuel:Nat -> @ph:ExPh -> @+left_rev:String -> @acc:String -> String
def expand_token_right source · line 480 · raw
@fuel:Nat -> @ph:ExPh -> @+right:String -> @acc:String -> String
def token_around source · line 503 · raw
@+prefix_rev:String -> @+matched:String -> @+suffix:String -> String
def is_urlish_token source · line 512 · raw
@+tok:String -> Bool
def is_book_num source · line 521 · raw
@+c:Char -> Bool
def looks_like_ref_start source · line 527 · raw
@+c:Char -> Bool
def not_alnum_next_go source · line 533 · raw
@ph:NaPh -> Bool
def not_alnum_next source · line 542 · raw
@next_suffix:String -> Bool
def standalone_from_prev source · line 549 · raw
@prev_alnum:Bool -> @+next_suffix:String -> Bool
def standalone_ok source · line 556 · raw
@+prev_rev:String -> @+next_suffix:String -> Bool
def pick_pl_ref source · line 577 · raw
@at_start:Bool -> PlPh
def pick_pl source · line 584 · raw
@is_ref:Bool -> @at_start:Bool -> PlPh
def plain_append_link source · line 591 · raw
@+out:String -> @+visible:String -> @+canonical:String -> String
def plain_append_link_at source · line 594 · raw
@+out:String -> @+visible:String -> @+canonical:String -> @+suffix:String -> String
def linkify_plain_go source · line 602 · raw
@fuel:Nat -> @ph:PlPh -> @+rest:String -> @+prev_rev:String -> @out:String -> String
def classify_rest source · line 769 · raw
@exact:Bool -> @+visible:String -> @+canonical:String -> @+rest:String -> FullHit2
def classify_hit source · line 776 · raw
@m:Maybe<&2, VisCan> -> @+text:String -> FullHit2
def linkify_plain_from_hit source · line 790 · raw
@h:FullHit2 -> @+text:String -> String
def linkify_plain_gated source · line 814 · raw
@g:LpGate -> @+text:String -> String
def linkify_plain source · line 823 · raw
@+text:String -> String
def linkify_md_go source · line 835 · raw
@fuel:Nat -> @ph:MdWalk -> @+rest:String -> @plain:String -> @out:String -> String
def linkify_markdown source · line 918 · raw
@+source:String -> String
def show_links_rest source · line 927 · raw
@xs:List<&2, String> -> IO(Unit)
def show_links source · line 937 · raw
@xs:List<&2, String> -> IO(Unit)