rouge-carve 0.1.1 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4006805a5023dc8b016745f1ab3dc73bf29fa24de27acc46c19696658a9ee36
4
- data.tar.gz: 85965e83d476add300683d7e5ce7464d6affb784b067b3797318ef45575d5c78
3
+ metadata.gz: 300be9217acf879b361b092d5bd9f814858ba169272f98f730cdbfa86a2e75bf
4
+ data.tar.gz: 1b4e02989bd311b9d0423e1021250d5ddac1982420c15016d80600ddb82386b0
5
5
  SHA512:
6
- metadata.gz: eb1fb40ca27583ebb19f1af32bf208efcdd5d21c2f880f5e400f4c06562d4a79a977988008ec054d448d1e7ac9c0020acdce83db8b2cd19d0bcb6912878896dd
7
- data.tar.gz: 7bf48fae5c12930737941c834ec4347dcd5f1a30a77e4cbcbdf99e8fa20c4d90c39d9f45bfaa9d1be3a2edea3d1025ef1f31f5ffa3ecbfade9212e0a4a4811ff
6
+ metadata.gz: 63d049afb99f11ac50d7b64a2829c8fec7bc220b1501b621cbbe2e6a87160e75cc326bc94f3724f3280650e12e9be2ce0a00bb160f1c9012e717fc2d538916b9
7
+ data.tar.gz: d3dce00b0304ec63f85dc9e258f78e7c516d7a9048e1ac9e76e8745140c2931a8ee3e0de70abc7a7a804203b511707d901f7ecd44c152ad08bdaeaa3e22dd35d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## [Unreleased]
4
+
5
+ ## [0.1.4] - 2026-10-23
6
+
7
+ - `csv` and `tsv` fence bodies are highlighted: every field has its own token type and the separator is an operator, colored apart from the fields in the default styles (#25, #26, #27, #28).
8
+ - A lone `+` is a continuation marker, tokenized as an operator, only where the engine reads one: at an open container's marker column with a non-list block below, or as the first block after an opener (#29, #30, #32). A prose line ending in `+` is not scoped (#31).
9
+ - A quote-prefixed `+` needs one space after each `>`: `>+`, `>>+` and `>> +` are paragraph text (#33).
10
+ - A quote opened on a list item line (`- > q`) scopes its `>`, and `- > +` is a marker when the next line starts a non-list block at column 0, at the line's column or at the owning quote's column (markup-carve/carve#3421). A stacked `> > +` takes its follower only at column 0 or the first quote's column (#34).
11
+ - A `:` left of the `::` column of the definition list it would continue is paragraph text (markup-carve/carve#3458) (#34).
12
+
13
+ ## [0.1.3] - 2026-10-14
14
+
15
+ 0.1.2 was tagged without its `RougeCarve::VERSION` bump, so it never reached RubyGems. 0.1.3 is the first published release with its change.
16
+
17
+ - An include selector whose id starts with a digit is lexed as a selector. `{{ ch.crv #2024-plan }}` used to fall through to plain text (#15, #16).
18
+ - A footnote or abbreviation definition ends with its line. It used to turn the rest of the file into plain text, so no later heading, list or fence was recognized (#22).
19
+ - An inline footnote `^[` or extension `:name[` with no closing `]` in its block stays text instead of swallowing the blocks after it. A `]` inside a code span does not count, and a heading, caption or table cell keeps the body on its line (#22, #24).
20
+ - A blockquote line can open a block: `> # Heading`, `> - item`, and a fence whose lines carry the `>` prefix (#22).
21
+ - A `>` marks a quote only when a space or the line end follows it, so `>> x` is paragraph text and `> > x` nests, as in the engine (#22).
22
+ - A comment fence closes only on a `%` run of its own length, which may be followed by text. An opener with no such closer is a one-line comment, as in the engine (#22).
23
+ - A standalone attribute block no longer runs across a blank line (#22).
24
+ - Bare delimiters follow Carve's flanking rules, so `snake_case_name`, `/usr/local/bin`, `x=1 and y=2`, `2*3*4` and the text between `==>` arrows stay text (#23).
25
+ - Emphasis content is lexed inline: an escape, a code span, a link or another kind of emphasis inside a run keeps its own token, and `*a \* b*` closes where the engine closes it (#23). A run opened inside another must close before it, so `*a /b* c/` is strong `a /b` (#24).
26
+ - A list marker or a caption under a paragraph line stays text, as in the engine; headings, quotes, tables, containers and closed fences still interrupt it. A wrapped definition term keeps its definition (#23).
27
+ - A table row needs its closing pipe, `+` is no longer read as a bullet, and an alphabetic ordered marker is one letter or a roman numeral, so `Body.` is a word (#23).
28
+ - Lexing a long line of unclosed openers (`*a *a *a ...`, `{{ a {{ a ...`) is linear in its length; it used to be quadratic (#23).
29
+ - The gem now requires Rouge 3.30 or later. Rouge 3.0, which the old constraint admitted, cannot load the lexer (#23).
30
+
31
+ ## [0.1.2] - 2026-10-08
32
+
33
+ - An include selector whose id starts with a digit is lexed as a selector. `{{ ch.crv #2024-plan }}` used to fall through to plain text, because the lexer required a letter or underscore first while the spec's `explicit_identifier` has admitted a leading digit since carve 0.1.8 (#15).
34
+
3
35
  ## [0.1.1] - 2026-09-21
4
36
 
5
37
  - The reserved include directive `{{ path #section @key:value }}` (PART 9
data/README.md CHANGED
@@ -14,6 +14,8 @@ Rouge::Lexer.find('carve') # => Rouge::Lexers::Carve
14
14
  Rouge::Lexer.guess(filename: 'notes.crv') # => Rouge::Lexers::Carve
15
15
  ```
16
16
 
17
+ It needs Rouge 3.30 or later and is tested against Rouge 3, 4 and 5.
18
+
17
19
  Requiring the gem registers the lexer. Anything that already highlights with
18
20
  Rouge - GitLab, Jekyll, Redcarpet, most Ruby static site generators - then
19
21
  handles `.crv` and `.carve` files, and ` ```carve ` fenced blocks, without
@@ -47,6 +49,7 @@ markup, symbol shortcodes, mentions, tags and the typographic runs.
47
49
  as Ruby, because that is what a reader expects. A ` ```=html ` raw block is not:
48
50
  its info string names an output format, not a language, so the payload stays
49
51
  opaque.
52
+ CSV and TSV fences highlight separators, quoted fields, escaped quotes, and unquoted fields (the header record apart from the data rows).
50
53
 
51
54
  **Fence widths are respected.** A three-backtick line inside a four-backtick
52
55
  fence is content, not a closer. The width is closed over per block rather than