obsidian-parser 0.5.3 → 0.5.4

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