Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lints to ensure link text for EIPs should match the EIP's number #67

Open
SamWilsn opened this issue Mar 8, 2023 · 12 comments
Open

Lints to ensure link text for EIPs should match the EIP's number #67

SamWilsn opened this issue Mar 8, 2023 · 12 comments
Assignees
Labels
ready to implement Feature has reached rough consensus among editors and is ready to be implemented

Comments

@SamWilsn
Copy link
Contributor

SamWilsn commented Mar 8, 2023

Let's create two lints:

markdown-link-eip

If the link destination matches the pattern eip-([^.]*)\.md$, trigger if the link text does not match ^(EIP|ERC)-\1$, where \1 is the proposal's number from the file name (aka capture group 1.)

For example:

  • [EIP-1](./eip-2.md)
  • [EIP-1: Foo](./eip-1.md)
  • [Another Proposal](./eip-1.md)

If the link destination matches the pattern eip-([^.]*)\.md#.+$, trigger if the link text does not match ^(EIP|ERC)-\1\s*\S+, where \1 is the proposal's number from the file name (aka capture group 1.) Note that this pattern allows trailing characters.

For example:

  • [EIP-1](./eip-1.md#motivation)
  • [EIP-2: Hello](./eip-1.md#abstract)
  • [Another Proposal](./eip-1.md#rationale)

markdown-link-other

If the link text begins with EIP or ERC, the link target must be an EIP. For example:

  • [EIP-2](../assets/eip-2/foo.txt)
@SamWilsn SamWilsn added the ready to implement Feature has reached rough consensus among editors and is ready to be implemented label Mar 8, 2023
@Pandapip1
Copy link
Member

Note: if it links to a section, then this lint should be ignored, such as [EIP-721's Motivation](./eip-721.md#motivation).

@SamWilsn
Copy link
Contributor Author

SamWilsn commented Mar 8, 2023

That's a good point!

@SamWilsn SamWilsn changed the title Lint to ensure link text for EIPs should match the EIP's number Lints to ensure link text for EIPs should match the EIP's number Mar 8, 2023
@swetshaw
Copy link

Hi, I would like take this up with Katya

@KatyaRyazantseva
Copy link

Hi @SamWilsn, yep, we both would like to contribute into it. Please, assign us to this issue

@KatyaRyazantseva
Copy link

Hi @SamWilsn, taking into account @Pandapip1 's comment about sections, should all these links matching the pattern eip-([^.]*)\.md#.+$ be ignored? Those ones having the section in the link, the second part of markdown-link-eip part:

  • [EIP-1](./eip-1.md#motivation)
  • [EIP-2: Hello](./eip-1.md#abstract)
  • [Another Proposal](./eip-1.md#rationale)

@SamWilsn
Copy link
Contributor Author

SamWilsn commented Jun 21, 2024

This paragraph covers those examples:

If the link destination matches the pattern eip-([^.]*)\.md#.+$, trigger if the link text does not match ^(EIP|ERC)-\1\s*\S+, where \1 is the proposal's number from the file name (aka capture group 1.) Note that this pattern allows trailing characters.

So:

  • [EIP-1](./eip-1.md#motivation) would not be allowed because it doesn't have anything in the \S+ position of the regex.
  • [EIP-2: Hello](./eip-1.md#abstract) would not be allowed because it doesn't match EIP number.
  • [Another Proposal](./eip-1.md#rationale) would not be allowed because it doesn't begin with either ERC or EIP.

However, [EIP-1: Motivation](./eip-1.md#motivation) would be allowed.

@KatyaRyazantseva
Copy link

@SamWilsn could you please explain why [EIP-1: Foo](./eip-1.md) is incorrect?

@SamWilsn
Copy link
Contributor Author

Because it doesn't have a subsection (after the # in the link.)

@KatyaRyazantseva
Copy link

if [EIP-N] is extended with extra text like ': Foo' it means the link should have a section?

@SamWilsn
Copy link
Contributor Author

Pretty much. So URLs with a # should have : ...

@KatyaRyazantseva
Copy link

@SamWilsn, for markdown-link-other should I check eip number match in the text and the link?

@SamWilsn
Copy link
Contributor Author

markdown-link-other should prevent links that look like EIPs/ERCs that don't point to EIPs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready to implement Feature has reached rough consensus among editors and is ready to be implemented
Projects
None yet
Development

No branches or pull requests

4 participants