gonzalezreal / swift-markdown-ui

Display and customize Markdown text in SwiftUI
MIT License
2.24k stars 266 forks source link

Make cmark-gfm as dependency package #306

Open nbmisen opened 3 months ago

nbmisen commented 3 months ago

My project uses github.com/apple/swift-markdown's SPM as a dependency, and swift-markdown uses https://github.com/apple/swift-cmark as a dependency. When I also use swift-markdown-ui as a dependency, Xcode indicates a conflict with cmark-gfm. Therefore, is it possible to use cmark-gfm as a dependency rather than as source in the code?

Conflict report:multiple targets named 'cmark-gfm' in: 'swift-cmark', 'swift-markdown-ui'

andreivladmatei commented 3 months ago

I have the same issue. What's the recommendation?

zhang-hongshen commented 2 months ago

Same issue. Is this repository still active ?

gonzalezreal commented 2 months ago

Hey folks, Sorry for the late response. Unfortunately, apple/swift-cmark is not using semantic versioning, so is not possible make a flexible version requirement.

For instance, this doesn't work:

dependencies: [
  .package(url: "https://github.com/apple/swift-cmark", "swift-4.2-RELEASE"..<"swift-5.10-RELEASE")
]

Additionally, apple/swift-markdown depends on the gfm branch, instead of an specific version:

https://github.com/apple/swift-markdown/blob/907674c2ae2d24c32fba50101821b1a7fdd291e2/Package.swift#L48

I will be happy to use apple/swift-cmark if it were possible to have a flexible requirement on the version. I am open to any ideas.

Thanks!

lovetodream commented 1 month ago

Hey everyone, I had the same issue a few months ago and created a fork which uses apple/swift-markdown. Initially I've planned to open a PR here but since I had limited time and needed to remove a few methods from the public API (might be due to lack of knowledge), I've restrained from doing so. Maybe it is of some help to anyone. If this is interesting to you @gonzalezreal, I can open a PR. Here's the branch: https://github.com/lovetodream/swift-markdown-ui/tree/feature/swift-markdown-refactor