obsidian-parser 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +1 -1
- data/lib/obsidian/parser/markdown_parser.rb +3 -10
- data/lib/obsidian/parser/page.rb +9 -0
- data/lib/obsidian/parser/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a42c0c17e1a6bf59469e5fa253cc97ab46447fdcf0db2774d07a5fec5037644e
|
4
|
+
data.tar.gz: ddeebe509043968eea80be079bac016136c1aaf53691193572c189865b796f92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18703d0907adb786b9eea2c281763c9a9914f84961b98831e2cac4dcc0c2f22a6a95af8c35953d86abe2fb25b74c2532ff2ef4a574978a4d2b8dc9709c81e67a
|
7
|
+
data.tar.gz: e0e3c25cd72631c8148584906e66335606fdc09469a28a363e082c98edec64e69d2d8513c37ff514b114b1518f83370bde799ef58e6b1ea75255785d06fa20f0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.7.0] - 2023-08-03
|
4
|
+
- Fix wikilinks pointing to slugs with spaces not rendering properly.
|
5
|
+
- Links created from wikilinks now include a leading slash
|
6
|
+
|
7
|
+
## [0.6.1] - 2023-08-03
|
8
|
+
- Prevent `HtmlRenderer` state being shared across documents
|
9
|
+
|
3
10
|
## [0.6.0] - 2023-08-03
|
4
11
|
- Replace Kramdown with Markly
|
5
12
|
- Enabled support for Github Flavored Markdown tables and tasklists
|
data/Gemfile.lock
CHANGED
@@ -16,10 +16,6 @@ module Obsidian
|
|
16
16
|
\]\]
|
17
17
|
}x
|
18
18
|
|
19
|
-
def initialize(renderer: HtmlRenderer.new)
|
20
|
-
@renderer = renderer
|
21
|
-
end
|
22
|
-
|
23
19
|
# Convert Obsidian-flavored-markdown syntax to something parseable
|
24
20
|
# (i.e. with Github-flavored-markdown syntax)
|
25
21
|
def expand_wikilinks(markdown_text, root:)
|
@@ -32,8 +28,8 @@ module Obsidian
|
|
32
28
|
if page.nil?
|
33
29
|
text.nil? ? target.split("/").last : text
|
34
30
|
else
|
35
|
-
display_text = text.nil? ? page.
|
36
|
-
href = fragment.nil? ? page.
|
31
|
+
display_text = text.nil? ? page.title : text
|
32
|
+
href = fragment.nil? ? page.uri : "#{page.uri}##{fragment}"
|
37
33
|
|
38
34
|
"[#{display_text}](#{href})"
|
39
35
|
end
|
@@ -41,13 +37,10 @@ module Obsidian
|
|
41
37
|
end
|
42
38
|
|
43
39
|
def parse(markdown_text, root: nil)
|
40
|
+
renderer = HtmlRenderer.new
|
44
41
|
normalized = expand_wikilinks(markdown_text, root: root)
|
45
42
|
document = Markly.parse(normalized, flags: Markly::SMART | Markly::UNSAFE | Markly::HARD_BREAKS, extensions: [:table, :tasklist, :autolink])
|
46
43
|
Obsidian::ParsedMarkdownDocument.new(document, renderer: renderer)
|
47
44
|
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
attr_reader :renderer
|
52
45
|
end
|
53
46
|
end
|
data/lib/obsidian/parser/page.rb
CHANGED
@@ -29,6 +29,15 @@ module Obsidian
|
|
29
29
|
"Page(title: #{title.inspect}, slug: #{slug.inspect})"
|
30
30
|
end
|
31
31
|
|
32
|
+
# Apply percent encoding to the slug
|
33
|
+
def uri
|
34
|
+
if slug == ""
|
35
|
+
"/"
|
36
|
+
else
|
37
|
+
"/" + slug.split("/").map { |part| ERB::Util.url_encode(part) }.join("/")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
32
41
|
def ==(other)
|
33
42
|
self.class == other.class &&
|
34
43
|
!slug.nil? &&
|