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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5882ab166c0770a2b52258e31fbaea89646292b0288f60116373072e389a375e
4
- data.tar.gz: 37139895344d860500ae5b29135645adf4b34dcfa8e395d5d2c41f6029870d4f
3
+ metadata.gz: a42c0c17e1a6bf59469e5fa253cc97ab46447fdcf0db2774d07a5fec5037644e
4
+ data.tar.gz: ddeebe509043968eea80be079bac016136c1aaf53691193572c189865b796f92
5
5
  SHA512:
6
- metadata.gz: 6b3254e1c0f267646c7846568c48a6070615488130a335f46a01e7f1e3b1ab03e2ceb22aa090a379164ec2f81e0632217cec53e9bc61577c78240f04f7eee739
7
- data.tar.gz: 5afe24ce2c30d488e4d89a5d57d421a8b4b65aefe915ab48a37f16c22d8cc5a04f147e5dd804772630377cbd01a73c07f5dfa421550c6dbf0ee9559980d45a6f
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- obsidian-parser (0.6.0)
4
+ obsidian-parser (0.7.0)
5
5
  markly (~> 0.7.0)
6
6
 
7
7
  GEM
@@ -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.slug.split("/").last : text
36
- href = fragment.nil? ? page.slug : "#{page.slug}##{fragment}"
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
@@ -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? &&
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Obsidian
4
4
  class Parser
5
- VERSION = "0.6.0"
5
+ VERSION = "0.7.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: obsidian-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mat Moore