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 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