profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/jfmengels/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Jeroen Engels jfmengels Humio Paris, France https://jfmengels.net/ Elm developer. Author of elm-review. Co-host of Elm Radio. Working on making programming easier through static analysis and functional programming.

all-contributors/all-contributors 5657

✨ Recognize all contributors, not just the ones who push code ✨

import-js/eslint-plugin-import 3559

ESLint plugin with rules that help validate proper imports.

amilajack/eslint-plugin-compat 2719

Lint the browser compatibility of your code

dustinspecker/awesome-eslint 2652

A list of awesome ESLint plugins, configs, etc.

all-contributors/all-contributors-cli 355

Tool to help automate adding contributor acknowledgements according to the all-contributors specification ✨

jfmengels/awesome-elm-sponsorship 16

Elm profiles to sponsor

jamestalmage/generator-codemod 10

A generator to create codemods quickly.

jfmengels/ama 4

Ask me anything!

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 4cc9a37eeb1c627cb90d31e1233d7a740a5c2cf8

Add Docs.NoAtDocsMisuse

view details

Jeroen Engels

commit sha 7d29c86b1bdf9de00724fa1add8c7d8d698a8fdb

Add failing test

view details

Jeroen Engels

commit sha a8a3562bda85013244621b1bbddac7ec0a4b4306

Add visitor

view details

Jeroen Engels

commit sha 9d26dd49e6b6e53b6edb45c8545b46daf7fe3825

Add TODO

view details

Jeroen Engels

commit sha b03dc530a4daa6be1316fe68c549a30c6296df8c

Add find

view details

Jeroen Engels

commit sha 05157f8148d2d1971b47c32cacd9eb00186a4309

Case of for finding first element

view details

Jeroen Engels

commit sha c9bb73e5aa538727874d7b732d6162e54de4fd1a

Change Context

view details

Jeroen Engels

commit sha 23a7deff377e8a7f53bf36cc35480ebea1df6eca

Add dummy value

view details

Jeroen Engels

commit sha 2ddbbdfb85ac60e1127a4643ce97b3e1e78a9055

Add declaration list visitor

view details

Jeroen Engels

commit sha 15093acb5d6a787719e5903a84c734e2d5a9d282

Remove context returning

view details

Jeroen Engels

commit sha 0f7fd11993e6aab17c37734d313af5cfd7580b90

Move error reporting

view details

Jeroen Engels

commit sha d5955e5fdfdc71754570cc7e7bf25fd0aeb86b86

Map

view details

Jeroen Engels

commit sha 2375c523ca213616b9788f465ab38ffa40d03eee

Use docsReferences from Context

view details

Jeroen Engels

commit sha 079902b7a4fb7df90f073d1f20f29792c47fb7ef

Add failing test

view details

Jeroen Engels

commit sha a4fac1e50db73cc32542f2d4ed0d6270b66cadf7

De-hardcode name

view details

Jeroen Engels

commit sha b7ac21f30b065bd0bb8bbf6c0492e5408ea81885

Add indexedConcatMap

view details

Jeroen Engels

commit sha c8ca4ba5a5f1c87996f02ed48e43788b030b27d2

Add collectDocStatements

view details

Jeroen Engels

commit sha 9c84ab4685ccebc73c7bd6ee5bb9b0e1a34c6e41

Add TODO

view details

Jeroen Engels

commit sha f71f950b6d70841f2dd184b1fbeb859d03d5649a

Add parser

view details

Jeroen Engels

commit sha 306e53291eb2677a0ba76d4dfe00cc3379be5382

Write parser

view details

push time in 44 minutes

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 4e2c7932d5f52dba98c5b8f1d78a1ce420c14a67

Add Docs.NoMissing rule

view details

push time in 44 minutes

create barnchjfmengels/elm-review-documentation

branch : Docs.ReviewAtDocs

created branch time in a day

CommitCommentEvent
CommitCommentEvent
CommitCommentEvent
CommitCommentEvent

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha c14669158581d56b9eed6cd78400159a0697425a

Add reasoning documentation

view details

push time in 4 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 677394c115cc3e2a02b41abd4e0d61b027bf0871

Update elm-review

view details

Jeroen Engels

commit sha 025fbdd80473f32ad3c6505f91aef4d43185877d

Update elm-review dependencies in review/

view details

Jeroen Engels

commit sha e9874d0f44f8daa25d3f5febe9e9652a7ac757dc

Mention rule is autofixable

view details

Jeroen Engels

commit sha 8c9e50f9a05d13ab4520e591d2bac7d1c21f506d

Update package maintenance scripts

view details

Jeroen Engels

commit sha bcb93f1c41d5a9d27eb8ad4274677faf2dc5f265

Update review dependencies

view details

Jeroen Engels

commit sha cbc2e87a9503ac6b4e3271484552b0ffb5f56143

Update GitHub actions

view details

Jeroen Engels

commit sha a92e0241bc52e0dfc299be9d6d722a290936549b

1.0.2

view details

Jeroen Engels

commit sha ead02f516f55348d0139b904081dc74166c4fc5f

Remove test dependencies from configurations

view details

Jeroen Engels

commit sha 8dc625d4db73ce94aef9503172fb36b5b6b44d0a

Fix rule name

view details

Jeroen Engels

commit sha ba404e8d4321265d757889eab6a2b22abe2c848d

Bump elm-review dependencies

view details

Jeroen Engels

commit sha fcb01cc1a5e1feb5e8aa50789df0c7c8d176c386

Bump dependencies

view details

Jeroen Engels

commit sha fbeaef99cc18be542cb9082e923395eabbde074a

1.0.3

view details

Jeroen Engels

commit sha b9ab2fce0ad2797b7617f4d64c9edc9cfec36845

Bump review dependencies

view details

Jeroen Engels

commit sha c22ae433bf73eb9f225eb083788c581d509e481a

Rename rule to Docs

view details

Jeroen Engels

commit sha c428f358f9b3fb787778460c20f774cb3f6cd7ee

Add configuration example

view details

Jeroen Engels

commit sha f3d2f603a9ef2442d43557a3329d655c15b6d4f9

Fix typo

view details

Jeroen Engels

commit sha 6c259f041b3149fcf9d679b00949faf1ddf639a7

Bump npm dependencies

view details

Jeroen Engels

commit sha ea738abad2a4bb82417855c972c012e2945910d7

Add new review rules

view details

Jeroen Engels

commit sha a0cbd5d84852decec60a0a674b2bc647c38e99d8

Add dependencies

view details

Jeroen Engels

commit sha 8f39dd710cfb694f73987538cf20f9eba17938f8

Copy rule from lue-bird/elm-review-links-point-to-existing-package-members

view details

push time in 7 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 2dffe4e3170142eae1675a04211c078566476f79

Remove unused imports

view details

Jeroen Engels

commit sha 2d1d506371db1ecf9c7117d7f4be7ad1021cb52e

Move everything back into a record

view details

Jeroen Engels

commit sha 36c7d34e5e8fb549f94b5cb55dbab8b05ec669c2

Extract function

view details

Jeroen Engels

commit sha 5f08ac873dd90ca2fc19d12394a6d1dabba2c3fa

Handle link to module name with an alt text

view details

push time in 7 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 25cf5866ea74d57d943993eac5e90e8b9a785334

Remove TODO

view details

Jeroen Engels

commit sha e62f93abd26d0bd132d0b427b9184e713c303ce7

Handle absolute links to package registry

view details

Jeroen Engels

commit sha 35e14c94e339405dfbdacf8cd2d625601a8b3b4b

Move line-splitting to Link.findLinks

view details

Jeroen Engels

commit sha bb765bc6ece9e559dc240742cda07a026754cb32

Ignore alt text in links

view details

Jeroen Engels

commit sha e26ea50a7c184500cef75eae1db2182defd39436

Rename to shortcut link to reference

view details

push time in 7 days

delete branch jfmengels/elm-review-documentation

delete branch : NoLinksToMissingSections

delete time in 7 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 6b1b127b46c66b017c93b2ba7083b5fd0c3d73a2

Change error message

view details

push time in 7 days

issue closedjfmengels/elm-review-documentation

New rule: Detect links to non-existing sections

<!-- This template may feel a bit too structured, so feel free to change the sections if they do not fit your style. I think that these questions are useful to think about though!

Also the answer suggestions may feel a bit robotic, so definitely replace them with nice sentences.

Don't forget to be respectful, and to give enough details for others to pitch in or give advice. Don't fret if you can't figure all of these out though, we'll discover these together! -->

What the rule should do:

Detect links to non-existing sections/functions/types in the documentation, in the README and in the modules.

What problems does it solve:

This would help maintaining documentation (it would notice outdated documentation), and notice when you add a link with an error in the path to the section

I don't think the rule should provide an automatic fix, but I think it could provide suggestions ("Did you mean '#init'?")

Example of things the rule would report:

A [section](#section), if that section does not exist

Example of things the rule would not report:

# section

A [section](#section)

A [section](./ModuleName#section) from another file, if it exists in that file.

Link to image [](./image.png)
{-|
@docs init

Look at the [init](#init) function
-}

{-| the init function -}
init : Model
init = 1

When (not) to enable this rule:

If you are working on an application and it has no documentation?

I am looking for:

  • A good rule name
  • Someone to implement it (I can provide help and guidance)

(More unorganized thoughts over at https://trello.com/c/BKfdmp8v/2-noinvalidreferences-noinvalidlinks-make-sure-that-all-references-to-sections-are-valid)

<!-- Thanks for writing all these helpful details. These are all useful details that you can use in the rule's documentation when you go implementing it, so this was definitely worth your investment. -->

closed time in 8 days

jfmengels

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 8801bd45d36c8296ee693ae796445a4982d5a23c

Update docs.json

view details

push time in 8 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha a0cbd5d84852decec60a0a674b2bc647c38e99d8

Add dependencies

view details

Jeroen Engels

commit sha 8f39dd710cfb694f73987538cf20f9eba17938f8

Copy rule from lue-bird/elm-review-links-point-to-existing-package-members

view details

Jeroen Engels

commit sha 93b919dbc0341f0110d185bd797269066a146929

Move to Docs module

view details

Jeroen Engels

commit sha 952c91bf42fbfffbccf6e38d7c5e54df264d590b

Add type annotations

view details

Jeroen Engels

commit sha 455a9146eea11ee0433c92524c4cace6464bd774

Extract variable

view details

Jeroen Engels

commit sha 6294b0e753f8bb3c69cdea8d5a49aee2f213ae9f

Use ++

view details

Jeroen Engels

commit sha 74c763b3fc7d8d56f0cd5a92f54a4bf958f2ac32

Formatting

view details

Jeroen Engels

commit sha ff4af004a4da21459c23de38adfd828af7b01e4b

Extract variable

view details

Jeroen Engels

commit sha 1eb393c63faaf1c9fda4970c0b568ab12ac490ea

Use ++

view details

Jeroen Engels

commit sha 91701b48b5924f0e115a097561a6f87d78752e61

Extract readme visitor

view details

Jeroen Engels

commit sha 8d557d89bc31734d4dbacf99ec663dacf5a67e04

Extract elm.json visitor

view details

Jeroen Engels

commit sha 38f88981c5a8bb4b8387746e17789060482ecae3

Move context definition

view details

Jeroen Engels

commit sha 3d9f0cdaf84bb6b7a8bc94b98eea747c1f9f5fd5

Extract moduleVisitor

view details

Jeroen Engels

commit sha 021095e8eddd6e3466b67473767331d8f4bcb9a3

Use argument instead of point-free

view details

Jeroen Engels

commit sha ef82866ab70ff8aff0e4bedc49336ca82718aec6

Move function to top-level

view details

Jeroen Engels

commit sha 3f55f7340529f71abf4704a4412b651840e35090

Formatting

view details

Jeroen Engels

commit sha ffaf1bd8f190091cfb37f4f687e34127e15e8a0d

Add find function

view details

Jeroen Engels

commit sha 1522bf6d11772d62ead5410f739d064663b682f3

Use find to avoid going too far

view details

Jeroen Engels

commit sha ca44599ba03efb26a4684a6a311411feaa4de463

Reverse composition

view details

Jeroen Engels

commit sha cdce67d71167737c7ac4f4b30c5b74cf3f81a81a

Extract comments visitor

view details

push time in 8 days

PR merged jfmengels/elm-review-documentation

Add rule to report problems with links and sections

This Docs.ReviewLinksAndSections rule reports about problems with links and sections, most prominently links to non-existent modules or sections.

This work was inspired by @lue-bird's https://github.com/lue-bird/elm-review-links-point-to-existing-package-members/. I've wanted to have and work on this rule for a very long time, and @lue-bird's showed how to do some things that blocked me.

The main differences with @lue-bird's rule are:

  • Links to sections created by Markdown titles (# Section) are allowed
  • Links in non-exposed parts of the code are allowed, as long as they're correct.
  • (Therefore) Invalid/out-of-date links in applications will be reported. Hopefully, this will make people feel like adding nice documentation to their Elm applications because there's a mechanism to prevent it from going stale.
  • For packages, links from sections that would be part of the public documentation that target non-exposed parts are reported. That way, we should help prevent links from pointing to unfollowable elements.

Feedback requests

  1. I feel like the error message is a bit crude, but I don't know if it's good enough or what details could be added.
  2. I expect false positives regarding links to Markdown sections, when they contain weird characters (# This _is_ a @section [title](#foo)). I did some work, but at this point, I mostly feel like it should be improved by cycles of trial, feedback and new release cuts. Please try those things out and let me know if you encounter weird things. (The link in my example is not handled correctly for instance)

I have other plans for this rule, and here's a list of things I want to report. For each, I am unsure whether to allow configuration to disable this, considering both application developers and package developers might use this rule.

  1. I think it would be interesting to look at the documentation of dependencies (the one in docs.json, which we have access to with elm-review), and report links to sections/modules that don't exist.
  2. Report when duplicate sections are found. If there is a # Error section in the documentation but also an exposed error value in the same module, then there will be 2 ids for the same thing and a problem.
  3. Report links to # or Foo# which are not useful?
  4. Report unused [foo]: #b links?
  5. Report images that are relative (only for packages and for links in exposed sections). They should be linking to images with an absolute url, hosted on GitHub for instance. These images will otherwise not display correctly once published.
  6. Enforce that the readme uses links that link to GitHub (only for packages). This allows for links to be usable both on the packages website AND on GitHub. The Docs.ReadmeLinksPointToCurrentVersion.rule is there to make sure the version to point to is always up-to-date, but if you don't have that rule enabled, this rule will be actively annoying.

Please let me know what you think!

Result

Documentation preview: https://elm-doc-preview.netlify.app/Docs-ReviewLinksAndSections?repo=jfmengels%2Felm-review-documentation&version=NoLinksToMissingSections

You can try this rule out by running the following command:

elm-review --template jfmengels/elm-review-documentation/preview#NoLinksToMissingSections --rules Docs.ReviewLinksAndSections
+2087 -10

0 comment

14 changed files

jfmengels

pr closed time in 8 days

issue closedjfmengels/elm-review-documentation

Only the first version in a line will be replaced

For Documentation.ReadmeLinksPointToCurrentVersion, if we change the version, only the first link will be searched through and reported. I haven't dug into it further, but this is my theory at this point.

Failing SSCCE

[NoUnused.Parameters](https://package.elm-lang.org/packages/jfmengels/elm-review-unused/1.0.1/NoUnused-Dependencies) and [NoUnused.Patterns](https://package.elm-lang.org/packages/jfmengels/elm-review-unused/1.0.1/NoUnused-Dependencies).

closed time in 8 days

jfmengels

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha fb8b72d4fdec9a152536c0781d49b03a807374cb

ok

view details

push time in 8 days

create barnchjfmengels/elm-review-documentation

branch : foo

created branch time in 8 days

create barnchjfmengels/elm-review-documentation

branch : readme

created branch time in 8 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha d52309d62c1607150cfeaff402a39042ecb0dd12

Report links to #

view details

Jeroen Engels

commit sha 825e22d0b6e7c62846d81c5aec93feb6738fcced

Add TODO

view details

push time in 9 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 8478bddf14f1b1edb5009780ee9ebc54525f8ef6

Extract function

view details

Jeroen Engels

commit sha 4be728d5ea394e74891c750c3c1b4b9b64ca6f08

Remove unused code

view details

push time in 9 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 9bb913229b0702fc65d54157286fd88a69b58cd7

Only report about external resources in packages

view details

push time in 9 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha c5422e0f7dcaedc87edec88039b20f3d12928462

Reorganize tests

view details

Jeroen Engels

commit sha a5450b7d8b1f16cb3c0caf09a59f2ecb71fe950a

Add tests for slugs

view details

Jeroen Engels

commit sha 089b9d218972129192ceea64bde7f96b8872fd24

Report links to images and external resources

view details

push time in 9 days

delete branch jfmengels/elm-review-documentation

delete branch : section-in-docs

delete time in 11 days

delete branch jfmengels/elm-review-documentation

delete branch : sections-from-scratch

delete time in 11 days

delete branch jfmengels/elm-review-documentation

delete branch : report-duplicate-sections

delete time in 11 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha 2c100e8a3b352c8ea8b93791dc1dce3d6ff1806d

Report duplicate sections

view details

Jeroen Engels

commit sha b710d0b508fa15136aca95fc41c07f2a0484fc01

Add TODO

view details

push time in 11 days

push eventjfmengels/elm-review-documentation

Jeroen Engels

commit sha b710d0b508fa15136aca95fc41c07f2a0484fc01

Add TODO

view details

push time in 11 days