pimd icon indicating copy to clipboard operation
pimd copied to clipboard

Links plugin

Open hagenburger opened this issue 6 years ago • 0 comments

New feature

Allow links in code blocks. This is useful when there are definitions elsewhere.

Specifications

``` html +link=/class/g:https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class,/my-special-list-item/g:#my-special-list-item
<ul>
  <li class="my-list-item">
    Item 1
  </li>
  <li class="my-list-item my-special-list-item">
    Item 2
  </li>
  <li class="my-list-item">
    Item 3
  </li>
  <li class="my-list-item">
    Item 4
  </li>
</ul>
```

Result:

preview

The following syntax should be valid:

  • +link="xxx":url – link xxx to url
  • +link="xxx":url-a,"yyy":url-b – link multiple strings
  • +link=/xxx/:url – search for RegExp
  • +link=/xxx/g:url – allow modifiers
  • +link=/xxx/:url-a,/yyy/:url-b – allow multiple RegExp
  • +link="xxx":url-a,/yyy/:url-b,/zzz/gi:url-c – mix everything up

Open questions

  • How to escape ", :, ;, and /? → Use JavaScript syntax
  • Should " and ' be allowed? → No, use JSON syntax
  • Maybe /class=".*(my-class).*"/ could link my-class only (as in the group). This could be useful for linkin the tag name of li in <li class="list-item"> but not within list-item. Background: Look ahead/behind in JavaScript’s RegExp are not supported well and hard to read/write. Using a group could be much more easy.

→ This is not optimal yet as it results in long lines. Maybe another solution could be better.

hagenburger avatar Aug 18 '18 13:08 hagenburger