yiisoft / yii2-apidoc

Yii 2 apidoc extension.
https://www.yiiframework.com
BSD 3-Clause "New" or "Revised" License
258 stars 121 forks source link

Fix `ApiMarkdown::renderLink()` #287

Closed WinterSilence closed 2 years ago

WinterSilence commented 2 years ago

Normalizes .md URLs

Q A
Is bugfix? ✔️
New feature?
Breaks BC?
Fixed issues #286
WinterSilence commented 2 years ago

@rob006 what's wrong?

rob006 commented 2 years ago

@WinterSilence You didn't explained your change and I'm not sure how these changes could help with https://github.com/yiisoft/yii2-apidoc/issues/286. Right now renderLink() implementation just don't make any sense - you have a lot of dead code, because both preg_replace_callback() calls do exactly the same.

https://github.com/yiisoft/yii2-apidoc/issues/286 is weird, because there are 2 nearly identical links, but only one of them works. Did you figure out what is so special about second link that it is incorrectly rendered?

WinterSilence commented 2 years ago

@rob006

Did you figure out what is so special about second link that it is incorrectly rendered?

link don't have guide: prefix: [Filtering Data](output-data-widgets.md#filtering-data) and [Separate Filter Form](output-data-widgets.md#separate-filter-form)

Prefix is bad idea, because prefixed links not works in github wiki.

do exactly the same

i don't want create method with duplicated code

rob006 commented 2 years ago

link don't have guide: prefix: [Filtering Data](output-data-widgets.md#filtering-data) and [Separate Filter Form](output-data-widgets.md#separate-filter-form)

First link does not have guide prefix and it works, so that's not it.

WinterSilence commented 2 years ago

@rob006 what link are you talking about?

rob006 commented 2 years ago

"Filtering Data" is ok, only "Separate Filter Form" is broken.

WinterSilence commented 2 years ago

@rob006 aaa... you about this: greedy condition in RegExp

arogachev commented 2 years ago

Thanks for contributing and sorry for the late review again.

I checked these changes locally and unfortunately they do nothing. Both before and after them the last mentioned problematic link is rendered like this:

<a href="guide-output-data-widgets.html#separate-filter-form">Separate Filter Form</a>

So I guess either the rendered version shown at production site is outdated or there is some additional post processing done at site level.

The bottom line is it can't be merged in the current state.

WinterSilence commented 2 years ago

@arogachev how you test it? ApiMarkdown::process('[Filtering Data](output-data-widgets.md#filtering-data) and [Separate Filter Form](output-data-widgets.md#separate-filter-form) returns correct result

there is some additional post processing done at site level

"site" don't don't post-fix results

arogachev commented 2 years ago
  1. Using guide console command on the whole en guide (before and after the changes).
  2. Might be something here, need to check more thoroughly.
WinterSilence commented 2 years ago

@arogachev 1. this PR changed only yii\apidoc\helpers\ApiMarkdown, incorrect test it by guide command. This PR not full fix for #286.

  1. as I'm already told you, this is bug in apidoc
rob006 commented 2 years ago

@WinterSilence Can you provide failing unit tests and then show how your change fixes it?

WinterSilence commented 2 years ago

@rob006