-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Current State of the project #1655
Comments
Thanks for the interest! This was recently asked in #1589. I don't have a lot of time to devote to mdbook, and unfortunately there isn't anyone else helping with maintenance. If you want to insert content to an existing book, I think regular preprocessor can do that. Although I don't think it helps with additional assets like images (I think #1222 is related to that, and perhaps discussion can go there). My perception of Hacktoberfest in past years has been pretty poor, so I probably wouldn't be interested in that. Anyone is welcome to help with reviews, though! |
Hey, thanks for the reply! I'll surely take a look at the second issue for the assets, but I had a more of comprehensive idea, which might be better discussed in its own issue, and a separate PR. That said, there are quite a few issues and PRs already open, so I'd like to first help with them. I understand that you are busy, so I would like to help, as much as I can. Also I took a look at your comment in the maintainers issue, and I am writing my thoughts on it here :
Now I understand that it is hard to respond to every PR, and you don't have anyone else helping with maintaining, so I would like to ask you to set up a procedure for OS contributor reviewer : something like a checklist to do before calling you in on a PR : I understand your views on hacktoberfest, and that is your decision to make, which I respect. Sorry for the long comment 😅 |
Hey, I was going through the code once, and I feel that this might not even need a full-fledged AST, this might just need to use a custom enum to represent the MD elements given by pulldown_cmark. That way a pipeline can be build which processes the custom elements and which finally get converted to pulldown_cmark elements, which can be sent to renderer. |
Thanks for expressing interest in helping! It is difficult to say how best to help. I don't think it would be possible to make a checklist since most PRs are different in nature. There are basic things like not breaking backwards compatibility, and some things are written down such as browser compatibility. Just feel free to pick some PRs and review them. I would suggest starting with bug-fix oriented ones (like #1647 or #1617 in nature). Try to test UI changes on a wide variety of browsers, and try to understand what the impact will be. If you'd like, we could try to enable triagebot to allow anyone to add labels. One thing we could do from there is do some basic things, like labeling if PRs are bug fixes or new features. |
I forgot to mention, there are some E-help-wanted issues, those might also be places to start if you'd like to dive in. |
Hey, I took a look at the issues you mentioned, I checked out # 1617 and have left a review there, please check if possible ; but there is no reply from the original author yet. I have also opened PR #1662, which adds a template book containing various tags as well as short snippets of each language mentioned in the mdBook book, which should help in validating style changes quickly and for changes in highlightjs. I am looking at triagebot, and might make a PR for its TOML file next week, but as per the wiki, you will need to ask on the t-infra of rust zulip to enable it for this repo. I also wanted to ask about the versioning policy : are you planning on releasing a major version with breaking changes, or currently just planning to add patches and fixes which will maintain compatibility? As there are some issues such as #1666, #1611, #1330 etc. which are fixable only with some changes on how we structure / parse stuff, which would probably be breaking changes I had also added pulldown-cmark/pulldown-cmark#6 (comment) in pulldown-cmark about adding a dedicated tag that can be used to extend syntax by others, but as the replies say, and I agree, that would not be a good idea to include in pulldown-cmark itself, and make the implementation non-conforming. Is there any way similar extension can be introduced here, so people can use it to extend mdBook, rather than ask to add changes in the main repo? Let me know if there might be a way possible, I might try working on that next. I am thinking on working on the triagebot , and maybe look at some other issues next, let me know if you want me to work specifically on some issue/PR next. Thanks :) |
One of the possible ways to extend this I have thought is to use custom html elements : |
Ping! @ehuss 😅 😅 |
I normally queue up some breaking changes, and then decide to make a breaking change when there is enough to justify it. It is quite disruptive, especially with plugins, so I think it is good to avoid doing it unless there are compelling reasons. I have been marking breaking changes with the 0.5 milestone, so that when the time comes, those can be merged/addressed.
I would prefer to avoid any nonstandard changes that aren't part of pulldown-cmark. If people want to implement extensions via a preprocessor, that is usually the recommended way.
Yea, feel free to post a PR to enable triagebot, and I can look to getting it enabled. I'll try to find things to help out with. Personally I'm most interested in supporting the rust-lang documentation, and at the moment there isn't anything pressing that I am aware of.
Sorry, been busy with the recent Rust release and edition work and other projects. |
Yeah, I saw you commenting on some release issues there, no worries! So actually from the last time I posted this, I have been thinking a little more about the extensions and trying out some things, and found out, that the way I suggested would be quite ugly when actually implemented in code. So I have been thinking on a different way , please let me know your thoughts on it : Now the handlebars provides ways to register helpers, which are called on elements in The idea needs much more fleshing out, and might not work in the current mdbook architecture at all, but I would like to hear your opinion on it. Thanks!
I'll try to make the PR in the upcoming week, Thanks 👍 |
It seems a bit heavy to require any sort of wasm system for a preprocessor. I'm not sure I fully understand the use case here, though. I don't think the performance for preprocessors has really been an issue, has it? I would imagine if you want to make a new math extension that used syntax like that, you wouldn't really need to even parse markdown. You can just take the raw text, search for your start sigil ( I can see that if a preprocessor does need to parse the input, then roundtripping back to markdown is a pain. For that, I could image it would be useful to pass the pre-parsed structure to the preprocessor. However, that would tie mdbook to pulldown-cmark's structure pretty closely. That may not be a big deal, they don't do breaking releases very often, but something to be aware of. For math specifically, I'm curious what limitations there are with If you'd like to help review, I just posted #1675 which should close about 4 other PRs. I'm not sure if this will be terribly controversial, but it is the route I would prefer to go. |
Hey, I'm not sure that the search-and-replace you suggested works with what I had in mind, But I agree that using wasm for preprocessing is a quite heavy requirement, and there has not really been any open issues which states that parsing and re-parsing is a bottleneck. I kind of noticed that there were few open issues asking for a plugin system, and some suggesting a wasm based plug-in system, which made me think of unifying all of them, but that might not necessarily be a good idea, as you have pointed out. I feel that passing around a parsed structure would be a better choice, rather than passing raw markdown ; as any (external) preprocessor that needs only raw markdown, can easily work as a find-and-replace thing as you suggested on raw files. Preprocessors would be specifically for conditionally/ programmatically transforming input, based on what is the input, for which I think 99% of time one will need parsed markdown. Even though it will tie mdBook to pulldown-cmark, I think it is a good parser, and unless you have any reason why mdBook might move away from it, it would be safe to tie the preprocessors to it as well. I haven't checked out mdBook-katex much, but from its readme, it seems to generate static pages, which fits with rest of mdBook ( I don't think there is much dynamic hydration of pages generated by mdBook by default, is there?). It also provides support to various math rendering options, and support for latex-style macros. I will try taking a more detailed look later for what limitations or advantages might be for swapping built-in mathjax with katex. |
@ehuss , is this project used by rust-lang to generate any kind of docs or does it exist on its own? I wouldn't mind stepping in if this is something Rust ecosystem depends on. |
mdBook is used by all the books listed at https://doc.rust-lang.org/. That is its primary purpose. Help is always appreciated. I've been trying to fix the overlapping button issue in #1322 (comment). If you have any design experience, I'd like some feedback on the design. Or if you have access to android, that is a platform I cannot test on. |
@ehuss , it looks OK and works as intended on my good old Samsung S7. |
Hey, sorry to open an issue to ask this, but what is the current state of the project?
I was going to open an issue suggesting some added features such as hooks/syntax for inserting images,references and footnotes, and as I was going through the issues, I felt this might be good for plug-in system, in case you might not want to add it in main code.
When looking for plug-in issues, I came across issue #163 , opened in 2016, and which is still not resolved. As I was going through all issues, I saw many which seemed marked and tagged and few which have opened PR, and were still open without comments. Then again, I saw the commit history, and it seems quite active with style/bugfixes/dependency updates.
Now, I might be very wrong and missing things, and there might be changes in plugin system etc happening on other branch or repos which I have not checked, but I would like to ask what is the state of the project? Is there any way I can help with features or discussion of plug-in system?
In case there is need for more contribution or need more reviews and comments on existing PRs, would you be willing to open this for hacktoberfest, so maybe more people can come and contribute?
Thanks :)
The text was updated successfully, but these errors were encountered: