package kkmarkdown

  1. Overview
  2. Docs

Source file BlockRuleImg.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let is_safe = false
let first_char = FirstChar.One '!'
let force_construct = true

type state = { alt : string; link : string; classes : string list }

let re = Str.regexp "!\\[\\(.*\\)\\](\\(.*\\))[ \t]*\\({\\(.*\\)}\\)?[ \t]*$"

let start line : state BlockRule.res =
  if Str.string_match re line 0 then
    let alt = Str.matched_group 1 line |> String.trim in
    let link = Str.matched_group 2 line |> String.trim in
    let classes =
      match Str.matched_group 4 line with
      | classes -> Utils.read_classes classes
      | exception Not_found -> []
    in
    Stop { state = { alt; link; classes }; handle_line = `Discard }
  else Die

let continue _ _ = assert false
let construct _ { alt; link; classes } _ = Typ.UnsafeImg { alt; link; classes }
OCaml

Innovation. Community. Security.