rouge-carve 0.1.0 → 0.1.3
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 +4 -4
- data/CHANGELOG.md +32 -0
- data/README.md +4 -19
- data/lib/rouge/lexers/carve.rb +831 -209
- data/lib/rouge-carve/version.rb +7 -0
- data/lib/rouge-carve.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4b5dd23d4f12415b4c19ed7333a5bd1555ae21e4f547b4f0a8f52b7829f8ad94
|
|
4
|
+
data.tar.gz: 1f9a6066c9c55b5457eda908909ff6b865d84fedaebbe18a37fdbe4f9e62a76d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bdc875e2a50141600798ff0efcd8741e751516dbb3de632f55039a62e881f4edbe4561942e8b39228e6603c1e6cef428d5320323b2617213d5f8ceed1053e550
|
|
7
|
+
data.tar.gz: 8d1983500c85ecef17ac25bac9aad4ebf76b477bf75ee721d1343ef09a82cf424c86c4bf9cb65b948361183bf97cce2bffe90630f20fa519368d5253fed1f13c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
## [0.1.3] - 2026-10-14
|
|
6
|
+
|
|
7
|
+
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.
|
|
8
|
+
|
|
9
|
+
- 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).
|
|
10
|
+
- 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).
|
|
11
|
+
- 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).
|
|
12
|
+
- A blockquote line can open a block: `> # Heading`, `> - item`, and a fence whose lines carry the `>` prefix (#22).
|
|
13
|
+
- 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).
|
|
14
|
+
- 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).
|
|
15
|
+
- A standalone attribute block no longer runs across a blank line (#22).
|
|
16
|
+
- 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).
|
|
17
|
+
- 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).
|
|
18
|
+
- 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).
|
|
19
|
+
- 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).
|
|
20
|
+
- Lexing a long line of unclosed openers (`*a *a *a ...`, `{{ a {{ a ...`) is linear in its length; it used to be quadratic (#23).
|
|
21
|
+
- The gem now requires Rouge 3.30 or later. Rouge 3.0, which the old constraint admitted, cannot load the lexer (#23).
|
|
22
|
+
|
|
23
|
+
## [0.1.2] - 2026-10-08
|
|
24
|
+
|
|
25
|
+
- 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).
|
|
26
|
+
|
|
27
|
+
## [0.1.1] - 2026-09-21
|
|
28
|
+
|
|
29
|
+
- The reserved include directive `{{ path #section @key:value }}` (PART 9
|
|
30
|
+
section 19, markup-carve/carve#291) is lexed BY PART: the path as
|
|
31
|
+
`Name.Namespace`, the selector as `Name.Label`, and each option as
|
|
32
|
+
`Name.Attribute` plus its value. It used to shred into the constructs its own
|
|
33
|
+
selector is spelled with, so `#intro` in a path was colored as a hashtag.
|
|
34
|
+
|
|
3
35
|
## [0.1.0] - 2026-08-27
|
|
4
36
|
|
|
5
37
|
First release.
|
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
|
|
@@ -66,23 +68,6 @@ shared with the Prism, highlight.js and Pygments grammars, so the four agree:
|
|
|
66
68
|
it over-colours an indented-at-document-level opener rather than
|
|
67
69
|
under-colouring the far more common indented construct inside a list item.
|
|
68
70
|
|
|
69
|
-
## Testing
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
bundle install
|
|
73
|
-
bundle exec rspec
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Two gates, and the second is the one that finds things:
|
|
77
|
-
|
|
78
|
-
- `spec/carve_spec.rb` pins the constructs, including each inverted delimiter.
|
|
79
|
-
- `script/corpus_check.rb` lexes every `.crv` document in the Carve spec
|
|
80
|
-
repository and fails on a single `Error` token. A lexer emitting `Error` is
|
|
81
|
-
telling the reader its own rules ran out. Both bugs found during development -
|
|
82
|
-
a blank line inside a comment fence, and a `---` thematic break opening
|
|
83
|
-
frontmatter that never closed - came from this and not from an example
|
|
84
|
-
anybody thought to write.
|
|
85
|
-
|
|
86
71
|
## Related
|
|
87
72
|
|
|
88
73
|
- [carve](https://github.com/markup-carve/carve) - the language and its spec
|
|
@@ -93,6 +78,6 @@ Two gates, and the second is the one that finds things:
|
|
|
93
78
|
- [carve-css](https://github.com/markup-carve/carve-css) - styles for the HTML
|
|
94
79
|
Carve renders
|
|
95
80
|
|
|
96
|
-
##
|
|
81
|
+
## Development
|
|
97
82
|
|
|
98
|
-
|
|
83
|
+
Contributor setup, testing, and maintenance notes are in the [development guide](docs/development.md).
|