profile
viewpoint
Titus wooorm Amsterdam, NL wooorm.com 🐧 Making it easier for developers to develop · core team @unifiedjs · full-time OSS · syntax trees, markdown, markup, natural language 🐧

RichardLitt/standard-readme 4495

A standard style for README files

get-alex/alex 4150

Catch insensitive, inconsiderate writing

inikulin/parse5 2803

HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant.

sindresorhus/awesome-lint 427

Linter for Awesome lists

Flet/github-slugger 194

:octocat: Generate a slug just like GitHub does for markdown headings.

get-alex/atom-linter-alex 86

Linter plugin using alex to catch insensitive, inconsiderate writing

rhysd/remark-emoji 72

Remark markdown transformer to replace :emoji: in text

get-alex/SublimeLinter-contrib-alex 58

SublimeLinter plugin for Alex

jlevy/atom-flowmark 34

Markdown auto-formatting, beautification, and cleanup for Atom

mntnr/build-a-space 18

Automatically add community documentation to your repository

pull request commentmdx-js/mdx

Cache MDX compiler in the Webpack loader

Oh right. This was around the xdm time, I believe the plan was to land it there too but it never did? xdm has proper caching mechanisms for rollup, esbuild, and node, which have been ported over to mdx-js/mdx. But not for webpack.

remcohaszing

comment created time in 40 minutes

issue commentremarkjs/remark-gfm

Footnotes in tables are listed in the wrong order

Thanks, solved!

Josh-Cena

comment created time in an hour

release syntax-tree/mdast-util-to-hast

12.1.1

released time in an hour

created tagsyntax-tree/mdast-util-to-hast

tag12.1.1

utility to transform mdast to hast

created time in an hour

issue closedremarkjs/remark-gfm

Footnotes in tables are listed in the wrong order

Initial checklist

Affected packages and versions

Tested with MDX v1/v2 playground + remark-gfm enabled

Link to runnable example

No response

Steps to reproduce

Consider this code:

Before table[^t0]

| h1 [^h1] | h2 [^h2] | h3 [^h3] |
| --- | --- | --- |
| 1 [^c1] | 2 [^c2] | 3 [^c3] | 
| 4 [^c4] | 5 [^c5] | 6 [^c6] |
| 7 [^c7] | 8 [^c8] | 9 [^c9] |

After table[^t1]

[^t0]: t0
[^h1]: h1
[^h2]: h2
[^h3]: h3
[^c1]: c1
[^c2]: c2
[^c3]: c3
[^c4]: c4
[^c5]: c5
[^c6]: c6
[^c7]: c7
[^c8]: c8
[^c9]: c9
[^t1]: t1

This is tested in MDX v1 playground, v2 playground, and Docusaurus which uses MDX v1. I've selected "other" in the environment because it's most easily reproduced in the playgrounds.

Expected behavior

How GH renders it:

Before table^t0

h1 ^h1 h2 ^h2 h3 ^h3
1 ^c1 2 ^c2 3 ^c3
4 ^c4 5 ^c5 6 ^c6
7 ^c7 8 ^c8 9 ^c9

After table^t1

Actual behavior

In the MDX v2 playground (which I presume uses the latest versions of the dependencies):

  1. t0
  2. h3
  3. h2
  4. h1
  5. c3
  6. c2
  7. c1
  8. c6
  9. c5
  10. c4
  11. c9
  12. c8
  13. c7
  14. t1

p.s. this issue was first discovered in Docusaurus which uses MDX v1, which seems to include things like remark-footnotes by default. Interestingly, in v1 the footnotes are resolved in yet another order:

  1. t0
  2. c9
  3. c8
  4. c7
  5. c6
  6. c5
  7. c4
  8. c3
  9. c2
  10. c1
  11. h3
  12. h2
  13. h1
  14. t1

Runtime

Node v17, Other (please specify in steps to reproduce)

Package manager

yarn v1, Other (please specify in steps to reproduce)

OS

macOS, Other (please specify in steps to reproduce)

Build and bundle tools

Docusaurus, Other (please specify in steps to reproduce)

closed time in an hour

Josh-Cena

push eventsyntax-tree/mdast-util-to-hast

Titus Wormer

commit sha f2657169a53bf1004592d53636ec1a656c36d669

Fix footnote order in table cells Related-to: mdx-js/mdx#1638. Closes remarkjs/remark-gfm#35.

view details

Titus Wormer

commit sha 3d839584819a87a287d3b0911004860cb5842961

Refactor

view details

Titus Wormer

commit sha 545de12d3d9f14ddb022c1c15c96d7c4ed240e2f

12.1.1

view details

push time in an hour

push eventmdx-js/mdx

Titus

commit sha d4d969ffaad18b37a6542604e4e23980cac4c427

Update `package-lock.json` (#1906)

view details

push time in an hour

delete branch mdx-js/mdx

delete branch : deps-3

delete time in an hour

PR merged mdx-js/mdx

Update `package-lock.json` 📦 area/deps

<!-- Read the contributing guidelines.

We are excited about pull requests, but please try to limit the scope, provide a general description of the changes, and remember, it's up to you to convince us to land it.

If this fixes an open issue, link to it in the following way: Closes GH-123.

New features and bug fixes should come with tests.

P.S. have you seen our support and contributing docs? https://mdxjs.com/community/support/ https://mdxjs.com/community/contribute/ -->

+826 -1017

2 comments

4 changed files

wooorm

pr closed time in an hour

PR opened mdx-js/mdx

Update `package-lock.json` 📦 area/deps

<!-- Read the contributing guidelines.

We are excited about pull requests, but please try to limit the scope, provide a general description of the changes, and remember, it's up to you to convince us to land it.

If this fixes an open issue, link to it in the following way: Closes GH-123.

New features and bug fixes should come with tests.

P.S. have you seen our support and contributing docs? https://mdxjs.com/community/support/ https://mdxjs.com/community/contribute/ -->

+826 -1017

0 comment

4 changed files

pr created time in an hour

create barnchmdx-js/mdx

branch : deps-3

created branch time in an hour

issue commentremarkjs/remark-gfm

Footnotes in tables are listed in the wrong order

Thanks for the report. The “yet another method” you mention was solved in https://github.com/syntax-tree/mdast-util-to-hast/commit/fd38c45421bbec497f56e5c624eb8652d3a3bba4#diff-26dd410dc440b16482adff4a087672967680db3e7271052fbaab18a90a7d4ffe.

Here is a smaller reproduction:

import {unified} from 'unified'
import remarkParse from 'remark-parse'
import remarkGfm from 'remark-gfm'
import remarkRehype from 'remark-rehype'
import rehypeStringify from 'rehype-stringify'

const file = await unified()
  .use(remarkParse)
  .use(remarkGfm)
  .use(remarkRehype)
  .use(rehypeStringify)
  .process(`| [^1] | [^2]
| --- | --- |
| [^3] | [^4]

[^1]: a
[^2]: b
[^3]: c
[^4]: d
`)

console.log(String(file));

Yields:

<table>
<thead>
<tr>
<th><sup><a href="#user-content-fn-1" id="user-content-fnref-1" data-footnote-ref aria-describedby="footnote-label">2</a></sup></th>
<th><sup><a href="#user-content-fn-2" id="user-content-fnref-2" data-footnote-ref aria-describedby="footnote-label">1</a></sup></th>
</tr>
</thead>
<tbody>
<tr>
<td><sup><a href="#user-content-fn-3" id="user-content-fnref-3" data-footnote-ref aria-describedby="footnote-label">4</a></sup></td>
<td><sup><a href="#user-content-fn-4" id="user-content-fnref-4" data-footnote-ref aria-describedby="footnote-label">3</a></sup></td>
</tr>
</tbody>
</table>
<section data-footnotes class="footnotes"><h2 id="footnote-label" class="sr-only">Footnotes</h2>
<ol>
<li id="user-content-fn-2">
<p>b <a href="#user-content-fnref-2" data-footnote-backref class="data-footnote-backref" aria-label="Back to content">↩</a></p>
</li>
<li id="user-content-fn-1">
<p>a <a href="#user-content-fnref-1" data-footnote-backref class="data-footnote-backref" aria-label="Back to content">↩</a></p>
</li>
<li id="user-content-fn-4">
<p>d <a href="#user-content-fnref-4" data-footnote-backref class="data-footnote-backref" aria-label="Back to content">↩</a></p>
</li>
<li id="user-content-fn-3">
<p>c <a href="#user-content-fnref-3" data-footnote-backref class="data-footnote-backref" aria-label="Back to content">↩</a></p>
</li>
</ol>
</section>
Josh-Cena

comment created time in 2 hours

delete branch mdx-js/mdx

delete branch : dependabot/npm_and_yarn/nanoid-3.1.31

delete time in 2 hours

PR closed mdx-js/mdx

Bump nanoid from 3.1.30 to 3.1.31 dependencies

Bumps nanoid from 3.1.30 to 3.1.31. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ai/nanoid/blob/main/CHANGELOG.md">nanoid's changelog</a>.</em></p> <blockquote> <h2>3.1.31</h2> <ul> <li>Fixed collision vulnerability on object in <code>size</code> (by Artyom Arutyunyan).</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ai/nanoid/commit/07fdfa6618e2668ce51b2554ee3e1a3ad87b0492"><code>07fdfa6</code></a> Release 3.1.31 version</li> <li><a href="https://github.com/ai/nanoid/commit/e3b394234b42c024e61e2c17644e9cb254a15981"><code>e3b3942</code></a> Update dependencies</li> <li><a href="https://github.com/ai/nanoid/commit/2b7bd9332bc49b6330c7ddb08e5c661833db2575"><code>2b7bd93</code></a> fix collision by proxy number (<a href="https://github-redirect.dependabot.com/ai/nanoid/issues/328">#328</a>)</li> <li><a href="https://github.com/ai/nanoid/commit/3b566347594f9a4ed2ba977c7dc3185e574a87ca"><code>3b56634</code></a> Replace Parcel to Vite</li> <li><a href="https://github.com/ai/nanoid/commit/55a935a9e5c457b60905763a4b9abe0e73fdfb46"><code>55a935a</code></a> Update dependencies</li> <li><a href="https://github.com/ai/nanoid/commit/8b9a0796f05d43b6a0e79d0bfaaaf543e158c19b"><code>8b9a079</code></a> Update dependencies</li> <li><a href="https://github.com/ai/nanoid/commit/725a2413f862ddd1c2272394eec09703b9c73fe9"><code>725a241</code></a> Fix Node.js 10 CI</li> <li><a href="https://github.com/ai/nanoid/commit/d8712eec6c6877db2b14188259b5514db29e24a3"><code>d8712ee</code></a> Update dependencies</li> <li><a href="https://github.com/ai/nanoid/commit/cd56aa9ddef0df1abd8ed67253f3b845c1d96851"><code>cd56aa9</code></a> Clean up docs</li> <li><a href="https://github.com/ai/nanoid/commit/96613207811b950477a06293fd58d6f2121e6a12"><code>9661320</code></a> Add documentation in Bahasa Indonesia (<a href="https://github-redirect.dependabot.com/ai/nanoid/issues/326">#326</a>)</li> <li>Additional commits viewable in <a href="https://github.com/ai/nanoid/compare/3.1.30...3.1.31">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

</details>

+9 -9

2 comments

2 changed files

dependabot[bot]

pr closed time in 2 hours

issue closedwooorm/franc

How to generate data.js in franc packages

Hi @wooorm, Thanks for create greate packages I have a question: How to generate https://github.com/wooorm/franc/blob/main/packages/franc/data.js file ? Can you tell me the way to do it ? Where the data base is also OK 🙇

Thanks

closed time in 2 hours

vuongnv-0085

issue commentwooorm/franc

How to generate data.js in franc packages

Yup, as Gábor explains, use the npm scripts!

vuongnv-0085

comment created time in 2 hours

issue closedremarkjs/remark

Backtics are missing if code blocks language is not defined

Initial checklist

Affected packages and versions

react-stringify 10.0.2, unified 10.1.1

Link to runnable example

No response

Steps to reproduce

codesandbox

Expected behavior

The second code block without lang parameter is missing backticks:

{
    "stringified": "```javascript\nfunction $initHighlight(block, cls) {\n  return (\n    <div>\n      <web-component>test</web-component>\n    </div>\n  )\n}\nexport  $initHighlight;\n```\n\n    function $initHighlight(block, cls) {\n      return (\n        <div>\n          <web-component>test</web-component>\n        </div>\n      )\n    }\n    export  $initHighlight;\n"
}

The correct output would be:

{
    "stringified": "```javascript\nfunction $initHighlight(block, cls) {\n  return (\n    <div>\n      <web-component>test</web-component>\n    </div>\n  )\n}\nexport  $initHighlight;\n```\n\n    ```function $initHighlight(block, cls) {\n      return (\n        <div>\n          <web-component>test</web-component>\n        </div>\n      )\n    }\n    export  $initHighlight;```\n"
}

Actual behavior

When code block is converted to string, it should be wrapped with backticks ```.

This is the input wuth two code blocks. The lang parameter is defined in the first one.

{
      type: "root",
      children: [
        {
          type: "code",
          lang: "javascript",
          meta: null,
          value:
            "function $initHighlight(block, cls) {\n  return (\n    <div>\n      <web-component>test</web-component>\n    </div>\n  )\n}\nexport  $initHighlight;"
        },
        {
          type: "code",
          lang: null,
          meta: null,
          value:
            "function $initHighlight(block, cls) {\n  return (\n    <div>\n      <web-component>test</web-component>\n    </div>\n  )\n}\nexport  $initHighlight;"
        }
      ]
    }

This is the result:

{
    "stringified": "```javascript\nfunction $initHighlight(block, cls) {\n  return (\n    <div>\n      <web-component>test</web-component>\n    </div>\n  )\n}\nexport  $initHighlight;\n```\n\n    function $initHighlight(block, cls) {\n      return (\n        <div>\n          <web-component>test</web-component>\n        </div>\n      )\n    }\n    export  $initHighlight;\n"
}

Runtime

No response

Package manager

No response

OS

No response

Build and bundle tools

No response

closed time in a day

AndrejGajdos

issue commentremarkjs/remark

Backtics are missing if code blocks language is not defined

You can configure remark: https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#unifieduseremarkstringify-options.

AndrejGajdos

comment created time in a day

pull request commentget-alex/.github

Add mention of `retext-equality` for new words

Thank you!

thibaudcolas

comment created time in a day

push eventget-alex/.github

Thibaud Colas

commit sha a5b03b089fc97d6b7c37877e2c566c67e4d3181f

Add mention of `retext-equality` for new words Reviewed-by: Titus Wormer <tituswormer@gmail.com> Closes GH-2.

view details

push time in a day

PR merged get-alex/.github

Add mention of `retext-equality` for new words

This is pretty minor but I thought it might help. I was trying to figure out where to check whether there has been discussions on a given word, and I think retext-equality should be mentioned alongside cuss.

+3 -3

0 comment

1 changed file

thibaudcolas

pr closed time in a day

PullRequestReviewEvent

push eventthibaudcolas/.github

Titus

commit sha a1a55ce467e1ce714d77810e08fc6c87c8759562

Update contributing.md

view details

push time in a day

Pull request review commentget-alex/.github

Mention retext-equality as a place to submit new words

 built to the [`dest`][dest-folder] folder. ### Adding profanities and other words  If you have profanities, insensitive words, and/or any other additions to add-to our repository, you’ll need to make a PR to [`cuss`][cuss].+to our repository, you’ll need to make a PR to either [`cuss`][cuss] or+[`retext-equality`][equality]. The words will automatically be added into [`retext-profanities`][profanities] and alex as well.
The words will automatically be used in alex as well.

your suggestion made this sentence incorrect.

thibaudcolas

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent

issue commentwooorm/markdown-table

Is there any forked package that supports CommonJS

https://github.com/wooorm/markdown-table/releases

The one before "Use ESM" (this major)

glinda93

comment created time in 2 days

issue closedmicromark/micromark

HTML with excess whitespace is not parsed correctly

Initial checklist

Affected packages and versions

micromark 3.0.10, mdast-util-from-markdown 1.2.0

Link to runnable example

https://codesandbox.io/s/awesome-elbakyan-c0gus?file=/src/index.ts

Steps to reproduce

If you remove the line between Some HTML and Spanning multiple lines it does work but excess whitespace makes the parser confused (it thinks the extra line means a new paragraph starts)

Expected behavior

The HTML should be all combined in a single html node

Actual behavior

The parsing fails

closed time in 2 days

bryanph

issue commentmicromark/micromark

HTML with excess whitespace is not parsed correctly

“Fails”?

If you mean that Spanning multiple lines turns into a paragraph, that is how markdown (CommonMark, GFM, markdown.pl) works. That’s expected.

bryanph

comment created time in 2 days

issue closedwooorm/markdown-table

Is there any forked package that supports CommonJS

Is there any forked package that supports commonjs?

It's a pain that jest throws error: unexpected token 'export'

closed time in 2 days

glinda93
more