protect.bend checks
raw source on the hub · import 0x2a08fdaf2b3aa16ae55ed9f5bb4a08ba/protect.bend as Protect
Markdown protect regions — port of bible-linkify protect.ts (pure Bend) Length of protected span at suffix start, or 0n. Phase-carried Bools only.
1 import
import Base
Types
type FmPh source · line 57 · raw
Data
--- Frontmatter --- Port of protect.ts findFrontmatter: open "---\n" / "---\r\n", close earliest of "\n---\n" | "\n---\r\n" | "\n---".
FmNeedNlFmPh
FmNeedNlDec@nl:Bool -> @cr:Bool -> FmPh
FmNeedNlAfterCrFmPh
FmNeedNlAfterCrDec@nl:Bool -> FmPh
FmScanFmPh
FmScanDec@nl:Bool -> FmPh
FmDash1FmPh
FmDash1Dec@is_dash:Bool -> @nl:Bool -> FmPh
FmDash1GoDashFmPh
FmDash1GoNlFmPh
FmDash1GoScanFmPh
FmDash2FmPh
FmDash2Dec@is_dash:Bool -> FmPh
FmDash3FmPh
FmDash3Dec@is_dash:Bool -> FmPh
FmTailFmPh
FmTailDec@nl:Bool -> @is_cr:Bool -> FmPh
FmTailAfterCrFmPh
FmTailAfterCrDec@nl:Bool -> FmPh
type FsPh source · line 270 · raw
Data
--- Fence ---
FsOpenRun@want_tick:Bool -> @+run:Nat -> FsPh
FsOpenDec@want_tick:Bool -> @+run:Nat -> @is_tick:Bool -> @ge3:Bool -> FsPh
FsSkipInfo@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> FsPh
FsSkipDec@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> @nl:Bool -> FsPh
FsBody@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> @at_bol:Bool -> FsPh
FsBodyDec@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> @at_bol:Bool -> @is_tick:Bool -> @nl:Bool -> FsPh
FsCloseRun@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> @+run:Nat -> FsPh
FsCloseDec@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> @+run:Nat -> @is_tick:Bool -> @ge:Bool -> FsPh
FsCloseTail@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> FsPh
FsTailDec@want_tick:Bool -> @+open_n:Nat -> @+acc:Nat -> @nl:Bool -> @sp:Bool -> FsPh
type FnGate source · line 467 · raw
Data
FnNoFnGate
FnTickFnGate
FnWaveFnGate
FnDec@at_bol:Bool -> @is_tick:Bool -> @is_wave:Bool -> FnGate
type IcPh source · line 508 · raw
Data
--- Inline code ---
IcOpen@+run:Nat -> IcPh
IcOpenDec@+run:Nat -> @is_tick:Bool -> @run0:Bool -> @nl:Bool -> IcPh
IcBody@+open_n:Nat -> @+acc:Nat -> IcPh
IcBodyDec@+open_n:Nat -> @+acc:Nat -> @nl:Bool -> @is_tick:Bool -> IcPh
IcClose@+open_n:Nat -> @+acc:Nat -> @+run:Nat -> IcPh
IcCloseDec@+open_n:Nat -> @+acc:Nat -> @+run:Nat -> @is_tick:Bool -> IcPh
type IcGate source · line 595 · raw
Data
IcGate@ok:Bool -> IcGate
type WkPh source · line 615 · raw
Data
--- Wikilink ---
WkNeed2WkPh
WkNeed2Dec@is_br:Bool -> WkPh
WkBody@+acc:Nat -> WkPh
WkBodyDec@+acc:Nat -> @nl:Bool -> @is_br:Bool -> WkPh
WkClose1@+acc:Nat -> WkPh
WkClose1Dec@+acc:Nat -> @is_br:Bool -> WkPh
type WkGate source · line 682 · raw
Data
WkGate@ok:Bool -> WkGate
type MdPh source · line 698 · raw
Data
--- Markdown link ---
MdBangMdPh
MdBangDec@is_bang:Bool -> @is_br:Bool -> MdPh
MdLabel@+acc:Nat -> MdPh
MdLabelDec@+acc:Nat -> @nl:Bool -> @is_br:Bool -> MdPh
MdMid@+acc:Nat -> MdPh
MdMidDec@+acc:Nat -> @is_par:Bool -> MdPh
MdUrl@+acc:Nat -> MdPh
MdUrlDec@+acc:Nat -> @nl:Bool -> @is_par:Bool -> MdPh
type MdGate source · line 799 · raw
Data
MdNoMdGate
MdYesMdGate
MdImgCheck@is_br:Bool -> MdGate
MdHead@is_bang:Bool -> @is_br:Bool -> @is_wiki:Bool -> MdGate
type HtPh source · line 856 · raw
Data
--- HTML ---
HtOpenHtPh
HtOpenDec@is_lt:Bool -> HtPh
HtSlashHtPh
HtSlashDec@is_slash:Bool -> @is_alpha:Bool -> HtPh
HtNameHtPh
HtNameDec@is_alpha:Bool -> HtPh
HtBody@+acc:Nat -> HtPh
HtBodyDec@+acc:Nat -> @nl:Bool -> @is_gt:Bool -> HtPh
type PkPh source · line 953 · raw
Data
--- Priority pick ---
PkFence@n:Nat -> PkPh
PkFenceDec@n:Nat -> @z:Bool -> PkPh
PkInline@n:Nat -> PkPh
PkInlineDec@n:Nat -> @z:Bool -> PkPh
PkWiki@n:Nat -> PkPh
PkWikiDec@n:Nat -> @z:Bool -> PkPh
PkMd@n:Nat -> PkPh
PkMdDec@n:Nat -> @z:Bool -> PkPh
PkHtml@n:Nat -> PkPh
type FpGate source · line 1008 · raw
Data
FpDoc@fm:Nat -> @rest:Nat -> FpGate
FpBody@rest:Nat -> FpGate
Definitions
def char1 source · line 5 · raw
@+c:Char -> String
def str_drop_go source · line 8 · raw
@fuel:Nat -> @n:Nat -> @s:String -> String
def str_drop source · line 23 · raw
@+n:Nat -> @+s:String -> String
def str_take_go source · line 26 · raw
@fuel:Nat -> @n:Nat -> @s:String -> @acc:String -> String
def str_take source · line 41 · raw
@+n:Nat -> @+s:String -> String
def is_newline source · line 44 · raw
@+c:Char -> Bool
def is_hyphen source · line 49 · raw
@+c:Char -> Bool
def is_cr source · line 78 · raw
@+c:Char -> Bool
def pick_dash1_nl source · line 83 · raw
@nl:Bool -> FmPh
def pick_dash1 source · line 90 · raw
@is_dash:Bool -> @nl:Bool -> FmPh
def frontmatter_go source · line 97 · raw
@fuel:Nat -> @ph:FmPh -> @+rest:String -> @+consumed:Nat -> Nat
def frontmatter_len_if source · line 254 · raw
@ok:Bool -> @+s:String -> Nat
def frontmatter_len source · line 266 · raw
@+s:String -> Nat
def is_tick_char source · line 282 · raw
@+want_tick:Bool -> @+c:Char -> Bool
def fence_len_go source · line 289 · raw
@fuel:Nat -> @ph:FsPh -> @rest:String -> Nat
def fence_len_from_open source · line 460 · raw
@+want_tick:Bool -> @+s:String -> Nat
def fence_len_gate source · line 473 · raw
@fuel:Nat -> @g:FnGate -> @+s:String -> Nat
def fence_len source · line 500 · raw
@+at_bol:Bool -> @+s:String -> Nat
def inline_code_go source · line 516 · raw
@fuel:Nat -> @ph:IcPh -> @rest:String -> Nat
def inline_code_len_gated source · line 598 · raw
@g:IcGate -> @+s:String -> Nat
def inline_code_len source · line 607 · raw
@+s:String -> Nat
def wikilink_go source · line 623 · raw
@fuel:Nat -> @ph:WkPh -> @rest:String -> Nat
def wikilink_len_gated source · line 685 · raw
@g:WkGate -> @+s:String -> Nat
def wikilink_len source · line 694 · raw
@+s:String -> Nat
def md_link_go source · line 708 · raw
@fuel:Nat -> @ph:MdPh -> @rest:String -> Nat
def md_link_len_go source · line 805 · raw
@fuel:Nat -> @g:MdGate -> @+s:String -> Nat
def md_link_len source · line 844 · raw
@+s:String -> Nat
def html_go source · line 866 · raw
@fuel:Nat -> @ph:HtPh -> @rest:String -> Nat
def html_len source · line 949 · raw
@+s:String -> Nat
def protect_len_go source · line 964 · raw
@fuel:Nat -> @ph:PkPh -> @+at_bol:Bool -> @+s:String -> Nat
def protect_len source · line 1005 · raw
@+at_bol:Bool -> @+s:String -> Nat
def pick_nonzero_go source · line 1012 · raw
@+a:Nat -> @+b:Nat -> @z:Bool -> Nat
def pick_nonzero source · line 1019 · raw
@+a:Nat -> @+b:Nat -> Nat
def frontmatter_or_protect source · line 1022 · raw
@+at_doc_start:Bool -> @+at_bol:Bool -> @+s:String -> Nat