obsidian-parser 0.5.3 → 0.5.4

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: 745a2099d25636971d45a662902f56bd3a66289074dad5b3386a617487d79237
4
- data.tar.gz: 969f3bbd5d98f78d065ae02896f326b1590f27ed04769dcc965f05aaba871ce4
3
+ metadata.gz: 37cfdc15ab5d67c4ac5972db19df269b71a20c516bc43bc9014daccdf42879eb
4
+ data.tar.gz: ed67a9489d6e3ed05df0b72d14773b5674945ae993b51386e76634023629de74
5
5
  SHA512:
6
- metadata.gz: 0f64c3105d81bc757680c24fd0d16ea748116b9bb7b8e45d32f62931b119bca04dc886a127548fe59baff3e00f3367e8d1d466d04c8911dd82e6345015fbabef
7
- data.tar.gz: be11496450bd3783d91f761c782a273b2a64ddaf54f74ca423cf7999da46b565b9b2da2b9716b02897f4bf19bd056a0d90d0e17449105f2bf375d9dc8fee8337
6
+ metadata.gz: 1b39d82790d769bda1434db80434715715c9be20b9fae0fd9f9c51147354e9f8adb46062b3500ff07d1084d3435ab764fc7f27a22481dfc48447ef0524802cec
7
+ data.tar.gz: acd7d36cac25c162da92a939e132033afd2b4585af490c188505295b9d51134a3073b47fc8e457777a984facec6884230c6b5e2188554be1a56a0a26f8ceec8e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.5.4] - 2023-08-02
4
+ - Fix page getting clobbered when wikilinks point to non-existent pages.
5
+ - Expand `[[foo/index]]` wiklinks to `[foo](foo)`.
6
+
3
7
  ## [0.5.3] - 2023-08-01
4
8
  - Support non-fully qualified titles when parsing wikilink syntax.
5
9
  - Autolink raw URLs.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- obsidian-parser (0.5.3)
4
+ obsidian-parser (0.5.4)
5
5
  kramdown (~> 2.4)
6
6
  kramdown-parser-gfm (~> 1.1)
7
7
 
@@ -47,12 +47,15 @@ module Obsidian
47
47
  target = $~[:target]
48
48
  fragment = $~[:fragment]
49
49
  page = root.find_in_tree(target)
50
- return text.nil? ? target.split("/").last : text if page.nil?
51
50
 
52
- display_text = text.nil? ? page.slug.split("/").last : text
53
- href = fragment.nil? ? page.slug : "#{page.slug}##{fragment}"
51
+ if page.nil?
52
+ text.nil? ? target.split("/").last : text
53
+ else
54
+ display_text = text.nil? ? page.slug.split("/").last : text
55
+ href = fragment.nil? ? page.slug : "#{page.slug}##{fragment}"
54
56
 
55
- "[#{display_text}](#{href})"
57
+ "[#{display_text}](#{href})"
58
+ end
56
59
  end
57
60
  end
58
61
 
@@ -103,16 +103,18 @@ module Obsidian
103
103
  # If there is an exact match, we should always return that
104
104
  # Otherwise, if we can skip over some anscestors and get a
105
105
  # match, then return the first, shortest match.
106
+ # If a query slug contains `/index` we ignore it and treat it
107
+ # the same as `/`
106
108
  def find_in_tree(query_slug)
107
109
  # Exact match
108
110
  return self if slug == query_slug
109
111
 
110
112
  # Partial match
111
- query_parts = query_slug.split("/")
113
+ query_parts = query_slug.split("/").reject { |part| part == "index" }
112
114
  length = query_parts.size
113
115
  slug_parts = slug.split("/")
114
116
 
115
- if slug_parts.length > length
117
+ if slug_parts.length >= length
116
118
  if slug_parts.slice(-length, length) == query_parts
117
119
  return self
118
120
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Obsidian
4
4
  class Parser
5
- VERSION = "0.5.3"
5
+ VERSION = "0.5.4"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: obsidian-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mat Moore
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-01 00:00:00.000000000 Z
11
+ date: 2023-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown