obsidian-parser 0.6.0 → 0.7.0
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 +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? &&
|