-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfendo.addon.markup.creole_verbatim_block.fs
74 lines (53 loc) · 2.26 KB
/
fendo.addon.markup.creole_verbatim_block.fs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
.( fendo.addon.markup.creole_verbatim_block.fs) cr
\ This file is part of Fendo
\ (http://programandala.net/en.program.fendo.html).
\ This file provides the Creole markup for verbatim blocks, deprecated
\ from the set of markups used by default.
\ Last modified 20220308T2111+0100.
\ See change log at the end of the file.
\ Copyright (C) 2013,2014,2017,2018 Marcos Cruz (programandala.net)
\ Fendo is free software; you can redistribute it and/or modify it
\ under the terms of the GNU General Public License as published by
\ the Free Software Foundation; either version 2 of the License, or
\ (at your option) any later version.
\ Fendo is distributed in the hope that it will be useful, but WITHOUT
\ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
\ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
\ License for more details.
\ You should have received a copy of the GNU General Public License
\ along with this program; if not, see <http://gnu.org/licenses>.
\ Fendo is written in Forth (http://forth-standard.org)
\ with Gforth (http://gnu.org/software/gforth).
\ ==============================================================
fendo_definitions
: {{{-line ( -- ca len )
read_source_line 0= abort" Missing closing `}}}`"
escaped_source_code ;
\ Parse a new line from the current verbatim block.
: "}}}"? ( ca len -- f )
trim s" }}}" str= ;
\ Does the given string contains only "{{{"?
: {{{-line? ( -- ca len true | false )
{{{-line 2dup "}}}"? 0= ;
\ Parse a new line from the current verbatim block.
: ({{{) ( "verbatim content }}}" -- )
begin {{{-line? dup >r ?echo_line r> 0= until ;
\ Parse and echo a verbatim zone.
markup_definitions
: {{{ ( -- )
[<pre>] ({{{) [</pre>] ;
\ Open, parse and close a verbatim block.
: }}} ( -- )
true abort" `}}}` without `{{{`" ; immediate
\ Close a verbatim or pass-through block.
fendo_definitions
\ ==============================================================
\ Change log {{{1
\ 2014-04-20: Code deprecated, substituted by the Asciidoctor markup.
\ Extracted from <fendo.markup.wiki.fs> (then renamed to
\ <fendo.markup.fendo.fs>).
\
\ 2017-06-22: Update source style, layout and header.
\
\ 2018-12-08: Update notation of Forth words in comments and strings.
\ vim: filetype=gforth