Skip to content

GFM support  #4

Open
Open

Activity

  1. changed the title [-]support GFM[/-] [+]GFM support [/+] on Jul 13, 2017
  2. drum445 commented on Mar 12, 2019

    @drum445

    Will this include dimensions for images?
    Usually done via:

    ![](https://imageurl.com =500x500)
    
  3. watzon commented on Jun 20, 2019

    @watzon

    Until this is added I do have support for gfm in my octokit.cr shard. The downside is that it has to make http requests to github's api, but it works.

  4. icyleaf commented on Jun 25, 2019

    @icyleaf
    OwnerAuthor

    Smart, but the best solution is to use javascript markdown library for now 🤣

  5. amauryt commented on Oct 14, 2019

    @amauryt

    I really hope that GFM is added soon to markd. In the meantime, I created a cr-cmark-gfm, a shard that binds to the official GFM C library. You can render to multiple formats, create custom nodes, renderers, etc. If you need full support of GFM in crystal give it a try. PRs welcome!

  6. nanobowers commented on Jul 11, 2021

    @nanobowers

    Emoji does not appear to really be part of cmark-gfm, FWIW per: github/cmark-gfm#75
    Guess that leaves tables and task-lists.

  7. straight-shoota commented on Mar 15, 2022

    @straight-shoota
    Contributor

    Tables are probably the most commonly used feature of GFM. They're dearly missed in markd.

  8. icyleaf commented on Mar 21, 2022

    @icyleaf
    OwnerAuthor

    I'm currently focused on my work and no more time on Crystal language, as I mentioned before I would like to donate the project to crystal officials.

    Sorry about this 🥲

  9. straight-shoota commented on Mar 21, 2022

    @straight-shoota
    Contributor

    Just to be clear, my comment was not a request for you to take care of this.

    Why don't you start a discussion about transferring ownership of the project? I think https://forum.crystal-lang.org/ would be a good place to find a solution for a community-supported new home.

    I'm sure we'll find a good way to move forward. markd is an important piece of Crystal's ecosystem. Thank you very much for creating it and taking care of it!

  10. nobodywasishere commented on Mar 27, 2024

    @nobodywasishere
    Collaborator

    I've started working on this here. So far I've done strikethrough, hope to get to the rest soon.

    • tables
    • task list
    • strikethrough
    • autolinks
    • disallow raw html (don't know if we should do this one)
    • emoji (not part of gfm but I think would be fun to implement)
  11. zw963 commented on Feb 4, 2025

    @zw963
    Contributor

    after use markd several days, I find the table feature is still missing ...

  12. nobodywasishere commented on Feb 4, 2025

    @nobodywasishere
    Collaborator

    That is correct. Tables are complex and will require a lot of work to fit into the existing architecture (which itself should probably be updated).

  13. zw963 commented on Feb 7, 2025

    @zw963
    Contributor

    Just for guys want table feature with markd, i workaround this use a trick.

    e.g. i create a table like this:

    …………………………………………………………………………  Ruby   ……………………………………………………   Crystal
    
    ------------
    
    Enumerable#each  ………………………… 返回 self ………………………………………………………… 返回 nil
    
    Array#fetch  …………………………  接受一个参数的形式 …… 需提供第二参数或 `block` 指定默认值
    
    alias ………………………………………………    创建方法的别名 ………… 为(通常比较复杂的)类型定义一个别名
    
    -------------
    

    the Char between the column is ……, it's a full width character, I can input it use keyboard ^ when enable Chinese input method(fcitx) in Linux, it will be replace with "\u{3000}", which is a Chinese full width Space, it can show a really space even in the

    tag.

    following is the replacement code:

    text = text.gsub(/……(?=……| )/, "‏ ").gsub("…", "")
    Markd.to_html(text)

    Following is the rendered result use markd

    Image

    Not pefect, but useable, and write quickly too.

    I am thinking, maybe we can use this trick to add a poor person's version of the table?

  14. straight-shoota commented on Feb 7, 2025

    @straight-shoota
    Contributor

    Most of the time you can use HTML tables as a workaround.

  15. 12 remaining items

  16. nobodywasishere commented on Mar 7, 2025

    @nobodywasishere
    Collaborator

    Go for it!

  17. zw963 commented on Mar 8, 2025

    @zw963
    Contributor

    How about #57 ? should we add back to markd from markterm?

  18. ralsina commented on Mar 8, 2025

    @ralsina
    Contributor
  19. zw963 commented on Mar 9, 2025

    @zw963
    Contributor

    I opened an issue to talk about that, I will try to do a PR bringing two
    renderers from markterm into marks later today
    …

    Hi, I am not use this feature, i mention it just because there is a open issue about it.

    Consider talk about it at first with maintainer before you do it anyway.

  20. ralsina commented on Mar 9, 2025

    @ralsina
    Contributor

    Footnotes is more complicated than it seems but I am making progress (about 30% there I guess), probably will get it working in another week.

    WIP PR here

  21. zw963 commented on Mar 9, 2025

    @zw963
    Contributor

    I opened an issue to talk about that, I will try to do a PR bringing two
    renderers from markterm into marks later today
    …

    Hi, I am not use this feature, i mention it just because there is a open issue about it.

    Consider talk about it at first with maintainer before you do it anyway.

    Sorry, In fact, It may be useful for me when convert/fix the users (markdown)input in the comment into valid markdown, anyway, thanks

  22. ralsina commented on Mar 13, 2025

    @ralsina
    Contributor

    Initial very limited support for footnotes:

    #78

    I still need to do one or two PRs more, but didn't want to make this one bigger and harder to review.

  23. ralsina commented on Mar 13, 2025

    @ralsina
    Contributor

    Also, I think I already fixed all the "table edge cases" in a previous PR so it can be checked in the description.

  24. ralsina commented on Mar 18, 2025

    @ralsina
    Contributor

    I am stumped about how to make the footnote definition work as a container in #78

    Surely I am missing the exact combination of Match::Container ans parser.advance or whatever.

    This is needed because the content of the definition are basically to be parsed as part of the document, they may include blocks (code blocks, blockquotes, etc)

    Sorry but at the end of my rope with that, so unless someone gives a hand it's probably not going to progress further.

  25. ralsina commented on Apr 14, 2025

    @ralsina
    Contributor

    Why not make a release? There are a lot of features implemented, there is no need to have full GFM support to do it.

  26. nobodywasishere commented on Apr 14, 2025

    @nobodywasishere
    Collaborator

    I've been meaning to take a look at your PR to see if I could help get it over the line, life stuff has gotten in the way recently though. Should have time soon.

  27. ralsina commented on Apr 14, 2025

    @ralsina
    Contributor

    @nobodywasishere no worries, I suspect tables is a much more interesting thing for users than footnotes, so a release without that PR should still be nice :-)

  28. ralsina commented on Feb 15, 2026

    @ralsina
    Contributor

    I have pushed changes in #78 that complete the footnote implementation, which was the only thing left for GFM support AFAIK?

  29. nobodywasishere commented on Feb 23, 2026

    @nobodywasishere
    Collaborator

    @ralsina What are the remaining pending gfm tests with that PR done?

  30. ralsina commented on Feb 23, 2026

    @ralsina
    Contributor

    There are 5 pending tests in total, 4 of them gfm related:

    1 in gfm regressions:

    Issue commonmark#526 - unescaped ( in link title
    
    ```````````````````````````````` example pending
    [link](url ((title))
    .
    <p>[link](url ((title))</p>
    

    2 in gfm-spec:

    
    foo <!-- this is a --
    comment - with hyphens -->
    .
    <p>foo <!-- this is a --
    comment - with hyphens --></p>
    
    foo <!--> foo -->
    
    foo <!---> foo -->
    .
    <p>foo <!--> foo --&gt;</p>
    <p>foo <!---> foo --&gt;</p>
    

    1 in gfm-extensions (which I think is not a bug but a spec ambiguity)

    mmmmailto:scyther@pokemon.com
    .
    <p>mmmmailto:<a href="mailto:scyther@pokemon.com">scyther@pokemon.com</a></p>
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions