gitlab-glfm-markdown 0.0.13-x86_64-darwin → 0.0.16-x86_64-darwin
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/Cargo.lock +3 -3
- data/README.md +40 -12
- data/ext/glfm_markdown/Cargo.toml +2 -2
- data/ext/glfm_markdown/src/glfm.rs +6 -0
- data/ext/glfm_markdown/src/lib.rs +4 -1
- data/ext/glfm_markdown/src/main.rs +25 -0
- data/lib/glfm_markdown/2.7/glfm_markdown.bundle +0 -0
- data/lib/glfm_markdown/3.0/glfm_markdown.bundle +0 -0
- data/lib/glfm_markdown/3.1/glfm_markdown.bundle +0 -0
- data/lib/glfm_markdown/3.2/glfm_markdown.bundle +0 -0
- data/lib/glfm_markdown/3.3/glfm_markdown.bundle +0 -0
- data/lib/glfm_markdown/version.rb +1 -1
- data/lib/glfm_markdown.rb +3 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a658f33081b17fa1fdd23f0238d2d05b3d971da11143a039a2240d96bd72d2f
|
4
|
+
data.tar.gz: 1d974a4a55b528d0ccb85b4b0a6e1be7abcf7b22701f5aba88e4235b052d2cbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23d8f169b6c79b6300461c88ff7ea53720adedfe2413b905f778625aee752beb9f1ef7acbc38dc2b687602f9f2842ee489a2a937056f518dea80e8f1c43f4aab
|
7
|
+
data.tar.gz: 4daab580906d2b1eec7870a0fa01a0ce800de28aadced1f4b2612cb5c157a668f6be58edd4b1f8f0b9f32746e6e66f7e133be01eaf05577f57776a1f2b6c1e3e
|
data/Cargo.lock
CHANGED
@@ -216,9 +216,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
|
216
216
|
|
217
217
|
[[package]]
|
218
218
|
name = "comrak"
|
219
|
-
version = "0.
|
219
|
+
version = "0.23.0"
|
220
220
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
221
|
-
checksum = "
|
221
|
+
checksum = "ab5681b26a36dc46800a908f7d932672a4e82f74759419dd4018bf40658457d5"
|
222
222
|
dependencies = [
|
223
223
|
"derive_builder",
|
224
224
|
"entities",
|
@@ -361,7 +361,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|
361
361
|
|
362
362
|
[[package]]
|
363
363
|
name = "glfm_markdown"
|
364
|
-
version = "0.0.
|
364
|
+
version = "0.0.16"
|
365
365
|
dependencies = [
|
366
366
|
"clap",
|
367
367
|
"comrak",
|
data/README.md
CHANGED
@@ -3,9 +3,11 @@
|
|
3
3
|
[](https://gitlab.com/gitlab-org/ruby/gems/gitlab-glfm-markdown/-/commits/main)
|
4
4
|
[](https://gitlab.com/gitlab-org/ruby/gems/gitlab-glfm-markdown/-/releases)
|
5
5
|
|
6
|
-
Implements GLFM (as used by GitLab) using
|
6
|
+
Implements GLFM (as used by GitLab) using the Rust-based markdown parser [comrak](https://github.com/kivikakk/comrak)
|
7
|
+
and providing a Ruby interface.\
|
8
|
+
_Currently using `comrak 0.23.0`_.
|
7
9
|
|
8
|
-
This project is
|
10
|
+
This project is still in constant flux, so interfaces and functionality can change at any time.
|
9
11
|
|
10
12
|
## Installation
|
11
13
|
|
@@ -25,9 +27,37 @@ Try on command line:
|
|
25
27
|
rake compile
|
26
28
|
bin/console
|
27
29
|
|
28
|
-
GLFMMarkdown.to_html('# header', options: {
|
30
|
+
GLFMMarkdown.to_html('# header', options: { sourcepos: true })
|
29
31
|
```
|
30
32
|
|
33
|
+
### Options
|
34
|
+
|
35
|
+
| Option name | Description |
|
36
|
+
|------------------------------|---------------------------------------------------------------------------------------|
|
37
|
+
| `autolink` | Enable the `autolink` extension |
|
38
|
+
| `description_lists` | Enable the `description-lists` extension |
|
39
|
+
| `escape` | Escape raw HTML instead of clobbering it |
|
40
|
+
| `escape_char_spans` | Wrap escaped characters in a `<span>` to allow any post-processing to recognize them |
|
41
|
+
| `footnotes` | Enable the `footnotes` extension |
|
42
|
+
| `full_info_string` | Enable full info strings for code blocks |
|
43
|
+
| `github_pre_lang` | Use GitHub-style `<pre lang>` for code blocks |
|
44
|
+
| `hardbreaks` | Treat newlines as hard line breaks |
|
45
|
+
| `header_ids <PREFIX>` | Enable the `header-id` extension, with the given ID prefix |
|
46
|
+
| `math_code` | Enables `math code` extension, using math code syntax |
|
47
|
+
| `math_dollars` | Enables `math dollars` extension, using math dollar syntax |
|
48
|
+
| `multiline_block_quotes` | Enable the `multiline-block-quotes` extension |
|
49
|
+
| `relaxed_autolinks` | Enable relaxing of autolink parsing, allowing links to be recognized when in brackets |
|
50
|
+
| `relaxed_tasklist_character` | Enable relaxing which character is allowed in tasklists |
|
51
|
+
| `sourcepos` | Include source mappings in HTML attributes |
|
52
|
+
| `smart` | Use smart punctuation |
|
53
|
+
| `strikethrough` | Enable the `strikethrough` extension |
|
54
|
+
| `superscript` | Enable the `superscript` extension |
|
55
|
+
| `table` | Enable the `table` extension |
|
56
|
+
| `tagfilter` | Enable the `tagfilter` extension |
|
57
|
+
| `tasklist` | Enable the `tasklist` extension |
|
58
|
+
| `unsafe` | Allow raw HTML and dangerous URLs |
|
59
|
+
| `debug` | Show debug information |
|
60
|
+
|
31
61
|
## Dingus / Demo
|
32
62
|
|
33
63
|
A demo is running via GitLab Pages, and can be accessed at:
|
@@ -50,18 +80,16 @@ directly to the gem's source directory, make sure that you're using the same ver
|
|
50
80
|
of Ruby for the project and the gem. Otherwise you can see unexplained errors when
|
51
81
|
calling into the gem.
|
52
82
|
|
53
|
-
|
83
|
+
NOTE: This project generates a changelog automatically that gets attached to the release entry.
|
84
|
+
The normal [GitLab changelog entry process](https://docs.gitlab.com/ee/development/changelog.html)
|
85
|
+
should be followed.
|
54
86
|
|
55
|
-
|
87
|
+
### Releasing a new version
|
56
88
|
|
57
|
-
|
58
|
-
1. Update `CHANGELOG.md` with the changes in the release.
|
59
|
-
1. Create a merge request and merge it to `master`.
|
60
|
-
1. Push a new tag to the repository.
|
89
|
+
To release a new version, create a merge request and use the `Release` template, following it's instructions.
|
61
90
|
|
62
|
-
|
63
|
-
published to [RubyGems](https://rubygems.org/gems/gitlab-glfm-markdown)
|
64
|
-
pipeline for the tag completes.
|
91
|
+
Once merged, the new version with precompiled, native gems will automatically be
|
92
|
+
published to [RubyGems](https://rubygems.org/gems/gitlab-glfm-markdown).
|
65
93
|
|
66
94
|
## Contributing
|
67
95
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[package]
|
2
2
|
name = "glfm_markdown"
|
3
|
-
version = "0.0.
|
3
|
+
version = "0.0.16"
|
4
4
|
edition = "2021"
|
5
5
|
authors = ["digitalmoksha <bwalker@gitlab.com>"]
|
6
6
|
description = "GitLab Flavored Markdown parser and formatter. 100% CommonMark-compatible. Experimental."
|
@@ -15,7 +15,7 @@ required-features = ["cli"]
|
|
15
15
|
|
16
16
|
[dependencies]
|
17
17
|
clap = { version = "4.0", optional = true, features = ["derive", "string"] }
|
18
|
-
comrak = { version = "0.
|
18
|
+
comrak = { version = "0.23.0", default-features = false }
|
19
19
|
magnus = "0.6.2"
|
20
20
|
rb-sys = { version = "0.9.86", default-features = false, features = ["stable-api-compiled-fallback"] }
|
21
21
|
|
@@ -3,11 +3,14 @@ pub struct RenderOptions {
|
|
3
3
|
pub autolink: bool,
|
4
4
|
pub escape: bool,
|
5
5
|
pub description_lists: bool,
|
6
|
+
pub escaped_char_spans: bool,
|
6
7
|
pub footnotes: bool,
|
7
8
|
pub full_info_string: bool,
|
8
9
|
pub github_pre_lang: bool,
|
9
10
|
pub hardbreaks: bool,
|
10
11
|
pub header_ids: Option<String>,
|
12
|
+
pub math_code: bool,
|
13
|
+
pub math_dollars: bool,
|
11
14
|
pub multiline_block_quotes: bool,
|
12
15
|
pub relaxed_autolinks: bool,
|
13
16
|
pub relaxed_tasklist_character: bool,
|
@@ -34,6 +37,8 @@ fn render_comrak(text: String, options: RenderOptions) -> String {
|
|
34
37
|
comrak_options.extension.description_lists = options.description_lists;
|
35
38
|
comrak_options.extension.footnotes = options.footnotes;
|
36
39
|
comrak_options.extension.header_ids = options.header_ids;
|
40
|
+
comrak_options.extension.math_code = options.math_code;
|
41
|
+
comrak_options.extension.math_dollars = options.math_dollars;
|
37
42
|
comrak_options.extension.multiline_block_quotes = options.multiline_block_quotes;
|
38
43
|
comrak_options.extension.strikethrough = options.strikethrough;
|
39
44
|
comrak_options.extension.superscript = options.superscript;
|
@@ -42,6 +47,7 @@ fn render_comrak(text: String, options: RenderOptions) -> String {
|
|
42
47
|
comrak_options.extension.tasklist = options.tasklist;
|
43
48
|
|
44
49
|
comrak_options.render.escape = options.escape;
|
50
|
+
comrak_options.render.escaped_char_spans = options.escaped_char_spans;
|
45
51
|
comrak_options.render.full_info_string = options.full_info_string;
|
46
52
|
comrak_options.render.github_pre_lang = options.github_pre_lang;
|
47
53
|
comrak_options.render.hardbreaks = options.hardbreaks;
|
@@ -18,11 +18,14 @@ pub fn render_to_html_rs(text: String, options: RHash) -> String {
|
|
18
18
|
autolink: get_bool_opt("autolink", options),
|
19
19
|
description_lists: get_bool_opt("description_lists", options),
|
20
20
|
escape: get_bool_opt("escape", options),
|
21
|
+
escaped_char_spans: get_bool_opt("escaped_char_spans", options),
|
21
22
|
footnotes: get_bool_opt("footnotes", options),
|
22
23
|
full_info_string: get_bool_opt("full_info_string", options),
|
23
|
-
header_ids: get_string_opt("header_ids", options),
|
24
24
|
github_pre_lang: get_bool_opt("github_pre_lang", options),
|
25
25
|
hardbreaks: get_bool_opt("hardbreaks", options),
|
26
|
+
header_ids: get_string_opt("header_ids", options),
|
27
|
+
math_code: get_bool_opt("math_code", options),
|
28
|
+
math_dollars: get_bool_opt("math_dollars", options),
|
26
29
|
multiline_block_quotes: get_bool_opt("multiline_block_quotes", options),
|
27
30
|
relaxed_autolinks: get_bool_opt("relaxed_autolinks", options),
|
28
31
|
relaxed_tasklist_character: get_bool_opt("relaxed_tasklist_character", options),
|
@@ -24,6 +24,10 @@ struct Args {
|
|
24
24
|
#[arg(long)]
|
25
25
|
escape: bool,
|
26
26
|
|
27
|
+
/// Wrap escaped characters in a `<span>` to allow any post-processing to recognize them
|
28
|
+
#[arg(long)]
|
29
|
+
escaped_char_spans: bool,
|
30
|
+
|
27
31
|
/// Enable 'footnotes' extension
|
28
32
|
#[arg(long)]
|
29
33
|
footnotes: bool,
|
@@ -40,6 +44,22 @@ struct Args {
|
|
40
44
|
#[arg(long)]
|
41
45
|
hardbreaks: bool,
|
42
46
|
|
47
|
+
/// Enable the 'header IDs` extension, with the given ID prefix
|
48
|
+
#[arg(long, value_name = "PREFIX")]
|
49
|
+
header_ids: Option<String>,
|
50
|
+
|
51
|
+
/// Enables `math code` extension, using math code syntax
|
52
|
+
#[arg(long)]
|
53
|
+
math_code: bool,
|
54
|
+
|
55
|
+
/// Enables `math dollar` extension, using math dollar syntax
|
56
|
+
#[arg(long)]
|
57
|
+
math_dollars: bool,
|
58
|
+
|
59
|
+
/// Enable 'multiline block quotes' extension
|
60
|
+
#[arg(long)]
|
61
|
+
multiline_block_quotes: bool,
|
62
|
+
|
43
63
|
/// Write output to FILE instead of stdout
|
44
64
|
#[arg(short, long, value_name = "FILE")]
|
45
65
|
output: Option<String>,
|
@@ -107,10 +127,15 @@ fn main() {
|
|
107
127
|
autolink: cli.autolink,
|
108
128
|
description_lists: cli.description_lists,
|
109
129
|
escape: cli.escape,
|
130
|
+
escaped_char_spans: cli.escaped_char_spans,
|
110
131
|
footnotes: cli.footnotes,
|
111
132
|
full_info_string: cli.full_info_string,
|
112
133
|
github_pre_lang: cli.github_pre_lang,
|
113
134
|
hardbreaks: cli.hardbreaks,
|
135
|
+
header_ids: cli.header_ids,
|
136
|
+
math_code: cli.math_code,
|
137
|
+
math_dollars: cli.math_dollars,
|
138
|
+
multiline_block_quotes: cli.multiline_block_quotes,
|
114
139
|
relaxed_autolinks: cli.relaxed_autolinks,
|
115
140
|
relaxed_tasklist_character: cli.relaxed_tasklist_character,
|
116
141
|
sourcepos: cli.sourcepos,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/glfm_markdown.rb
CHANGED
@@ -8,10 +8,13 @@ load_rust_extension
|
|
8
8
|
module GLFMMarkdown
|
9
9
|
GLFM_DEFAULT_OPTIONS = {
|
10
10
|
autolink: true,
|
11
|
+
escaped_char_spans: false,
|
11
12
|
footnotes: true,
|
12
13
|
full_info_string: true,
|
13
14
|
github_pre_lang: false,
|
14
15
|
hardbreaks: false,
|
16
|
+
math_code: false,
|
17
|
+
math_dollars: false,
|
15
18
|
multiline_block_quotes: true,
|
16
19
|
relaxed_autolinks: false,
|
17
20
|
sourcepos: true,
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-glfm-markdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: x86_64-darwin
|
6
6
|
authors:
|
7
7
|
- Brett Walker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rb_sys
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.9.
|
19
|
+
version: 0.9.94
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.9.
|
26
|
+
version: 0.9.94
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pry-byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|