Rendering?
See AngleSharp #26 for the full discussion.
The IRenderDevice will be part of that story, even though the CSS library won't build up a render tree. Nevertheless, the CSS library will contain everything to make style computations and empower a rendering library in the task to derive the render tree.
Hi. Nice work, amazing to see just 1 person doing all this (I mean the <#> project as a whole).
What did happen to the renderer idea? I'd like to tinker with a new Html>PDF converter, so came here from HtmlRenderer which as you know is more or less dead.
Thanks for the encouraging post @bjorn-ali-goransson! Yeah, the idea is not dead, actually currently I am trying to allocate some time again for AngleSharp development. My current plan is to try to bring AngleSharp.Css up to speed which would allow me to release AngleSharp.Core v0.10 and AngleSharp.Css in v0.1.
After that I want to focus mostly on providing a (simple) renderer, which would be similar to the HtmlRenderer. Additionally, I am thinking of a project for a cross-platform GUI framework that uses the renderer + a React-like paradigm (so you would write C# code to declare components with a Render function that uses a DSL to specify what components to create / bring to the DOM). But all of it music of the future.
Regarding the timeline I cannot promise much, but hopefully somewhere between April and May I could be close / release the simple renderer.
I would be up to the potential task of taking htmlrenderer and removing the parser, instead utilizing anglesharp. The nice idea about that library is that it generalises the rendering output (the graphics class), making it possible to output images as well as using it for wpf etc.
Not a very popular scenario perhaps but nontheless interesting and a base to build further on.
Imagine AngleSharp.Renderer, AngleSharp.Renderer.PdfSharp etc.
Den 17 jan 2018 09:01 skrev "Florian Rappl" [email protected]:
Thanks for the encouraging post @bjorn-ali-goransson https://github.com/bjorn-ali-goransson! Yeah, the idea is not dead, actually currently I am trying to allocate some time again for AngleSharp development. My current plan is to try to bring AngleSharp.Css up to speed which would allow me to release AngleSharp.Core v0.10 and AngleSharp.Css in v0.1.
After that I want to focus mostly on providing a (simple) renderer, which would be similar to the HtmlRenderer. Additionally, I am thinking of a project for a cross-platform GUI framework that uses the renderer + a React-like paradigm (so you would write C# code to declare components with a Render function that uses a DSL to specify what components to create / bring to the DOM). But all of it music of the future.
Regarding the timeline I cannot promise much, but hopefully somewhere between April and May I could be close / release the simple renderer.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AngleSharp/AngleSharp.Css/issues/2#issuecomment-358226507, or mute the thread https://github.com/notifications/unsubscribe-auth/AAoyADlWSZ7VkTaYHLYTctzN0M2CWUYbks5tLai7gaJpZM4K7Www .
@bjorn-ali-goransson the major reason I follow Anglesharp and gave up of htmlrenderer is that Anglesharp has a big potention of becoming a de-facto web runtime engine for .net/.net core.
I have huge need to develop UI for embedded devices in HTML but none of the web runtimes I've found (CEF, libchromium, webkit) are lightweight enough nor support embedded (ARM) devices.
So I would really love to have the core rendering working so I could render to a GFX device, like for example a byte[] as a pointer to a framebuffer.
Once we have basic rendering of the HTML, I would quickly integrate it with a drawing backend, like for example, Skia. From that point, it would be easier to have WPF/WinForms/UWP integrated with it...
That being said, I also understand that probably the whole project would have to be essentially rewritten from scratch to get it up to par with modern programming standards, architecture and principles. But to have an alternative to htmlrenderer in a short amount of time would be an unbelievable relief, especially as the issues would not simply go to the depths but taken care of by the community.
Den 17 jan 2018 17:07 skrev "Björn Göransson" [email protected]:
I would be up to the potential task of taking htmlrenderer and removing the parser, instead utilizing anglesharp. The nice idea about that library is that it generalises the rendering output (the graphics class), making it possible to output images as well as using it for wpf etc.
Not a very popular scenario perhaps but nontheless interesting and a base to build further on.
Imagine AngleSharp.Renderer, AngleSharp.Renderer.PdfSharp etc.
Den 17 jan 2018 09:01 skrev "Florian Rappl" [email protected]:
Thanks for the encouraging post @bjorn-ali-goransson https://github.com/bjorn-ali-goransson! Yeah, the idea is not dead, actually currently I am trying to allocate some time again for AngleSharp development. My current plan is to try to bring AngleSharp.Css up to speed which would allow me to release AngleSharp.Core v0.10 and AngleSharp.Css in v0.1.
After that I want to focus mostly on providing a (simple) renderer, which would be similar to the HtmlRenderer. Additionally, I am thinking of a project for a cross-platform GUI framework that uses the renderer + a React-like paradigm (so you would write C# code to declare components with a Render function that uses a DSL to specify what components to create / bring to the DOM). But all of it music of the future.
Regarding the timeline I cannot promise much, but hopefully somewhere between April and May I could be close / release the simple renderer.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AngleSharp/AngleSharp.Css/issues/2#issuecomment-358226507, or mute the thread https://github.com/notifications/unsubscribe-auth/AAoyADlWSZ7VkTaYHLYTctzN0M2CWUYbks5tLai7gaJpZM4K7Www .
Gutemberg, with my suggestion to quickly get up to speed you would have to implement the likes of these classes which themselves have some connection with the byte array you are referring to.
https://github.com/ArthurHub/HTML-Renderer/blob/master/Source/HtmlRenderer.PdfSharp/Adapters/GraphicsAdapter.cs
The whole adapters folder is relevant. It contains functions for loading fonts, measuring string dimensions (for text wrapping), drawing paths, images and other things.
Den 17 jan 2018 17:13 skrev "Gutemberg Ribeiro" [email protected]:
@bjorn-ali-goransson https://github.com/bjorn-ali-goransson the major reason I follow Anglesharp and gave up of htmlrenderer is that Anglesharp has a big potention of becoming a de-facto web runtime engine for .net/.net core.
I have huge need to develop UI for embedded devices in HTML but none of the web runtimes I've found (CEF, libchromium, webkit) are lightweight enough nor support embedded (ARM) devices.
So I would really love to have the core rendering working so I could render to a GFX device, like for example a byte[] as a pointer to a framebuffer.
Once we have basic rendering of the HTML, I would quickly integrate it with a drawing backend, like for example, Skia. From that point, it would be easier to have WPF/WinForms/UWP integrated with it...
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AngleSharp/AngleSharp.Css/issues/2#issuecomment-358354983, or mute the thread https://github.com/notifications/unsubscribe-auth/AAoyAMPjCISjleb9jlRaACiNVbuQLDtyks5tLhwhgaJpZM4K7Www .
Also, on another note, rendering is not the same as having a web runtime. That would be a separate, more complex package. I refer only to the rendering of a snapshot of page, not reflecting updates to the dom nor handling any events.
Not saying that it wouldn't be awesome, of course ☺
Den 17 jan 2018 17:23 skrev "Björn Göransson" [email protected]:
Gutemberg, with my suggestion to quickly get up to speed you would have to implement the likes of these classes which themselves have some connection with the byte array you are referring to.
https://github.com/ArthurHub/HTML-Renderer/blob/master/ Source/HtmlRenderer.PdfSharp/Adapters/GraphicsAdapter.cs
The whole adapters folder is relevant. It contains functions for loading fonts, measuring string dimensions (for text wrapping), drawing paths, images and other things.
Den 17 jan 2018 17:13 skrev "Gutemberg Ribeiro" <[email protected]
:
@bjorn-ali-goransson https://github.com/bjorn-ali-goransson the major reason I follow Anglesharp and gave up of htmlrenderer is that Anglesharp has a big potention of becoming a de-facto web runtime engine for .net/.net core.
I have huge need to develop UI for embedded devices in HTML but none of the web runtimes I've found (CEF, libchromium, webkit) are lightweight enough nor support embedded (ARM) devices.
So I would really love to have the core rendering working so I could render to a GFX device, like for example a byte[] as a pointer to a framebuffer.
Once we have basic rendering of the HTML, I would quickly integrate it with a drawing backend, like for example, Skia. From that point, it would be easier to have WPF/WinForms/UWP integrated with it...
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AngleSharp/AngleSharp.Css/issues/2#issuecomment-358354983, or mute the thread https://github.com/notifications/unsubscribe-auth/AAoyAMPjCISjleb9jlRaACiNVbuQLDtyks5tLhwhgaJpZM4K7Www .
The whole adapters folder is relevant. It contains functions for loading fonts, measuring string dimensions (for text wrapping), drawing paths, images and other things.
That is the work of the render @FlorianRappl was thinking of.
Also, on another note, rendering is not the same as having a web runtime. That would be a separate, more complex package. I refer only to the rendering of a snapshot of page, not reflecting updates to the dom nor handling any events.
I know. Like I said, I would like to have AngleSharp as the HTML5/CSS core of a web engine. As much as it can parse/update a DOM in memory, I'm more than happy to implement the hooks for the DOM events on top of that, and later on, have the Drawing layer attached to it as well.
I'm not saying I would have a full blow browser (who knows?!?!?), what I'm saying is that I would like to have a web-like UI framework (i.e. like react) that you can write your JS/TS and works with the DOM.
I'm really loving the discussion in here, maybe I should just upload what I already have (hopefully I'll find the time in the next 1-2 weeks to structure / push it) with the hope that it forms the basis for future collaboration. Fact is (and why AngleSharp stalled in the recent year) with me alone it cannot scale. Some people contributed, but we need a continuous / uniform approach here where a group of people maybe also has some online meetings and works out a roadmap together (such that we are on the same page).
No pressure here, just some thoughts. A would love to have a lightweight and extensible renderer. Performance-wise it could not compete with a webbrowser, but the mission would of course be to improve it then iteratively.
I for one can help out somewhat, but I need to see the existing code first to determine how much effort will be required.
HtmlRenderer, however bad it may be coded, is still tangible and enables one to quantify the amount of remaining work.
On another note, that library represents a minimum level of functionality needed to be implemented before expecting users to start switching over.
Den 17 jan 2018 18:06 skrev "Florian Rappl" [email protected]:
I'm really loving the discussion in here, maybe I should just upload what I already have (hopefully I'll find the time in the next 1-2 weeks to structure / push it) with the hope that it forms the basis for future collaboration. Fact is (and why AngleSharp stalled in the recent year) with me alone it cannot scale. Some people contributed, but we need a continuous / uniform approach here where a group of people maybe also has some online meetings and works out a roadmap together (such that we are on the same page).
No pressure here, just some thoughts. A would love to have a lightweight and extensible renderer. Performance-wise it could not compete with a webbrowser, but the mission would of course be to improve it then iteratively.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AngleSharp/AngleSharp.Css/issues/2#issuecomment-358372745, or mute the thread https://github.com/notifications/unsubscribe-auth/AAoyAEmMglil2kjSjAV5Fcy2w-RP34YWks5tLiiTgaJpZM4K7Www .
Yes, I forgot to mention that although a web runtime will have some components shared with a simplistic renderer, building / improving a renderer is all I can help out with for now.
The reason for this is that a decent renderer is what I've continously been needing for the past 10 years in my work, and the scope for it is somewhat limited and within reach.
A web runtime, maybe also so, but not now.
Den 17 jan 2018 18:41 skrev "Björn Göransson" [email protected]:
I for one can help out somewhat, but I need to see the existing code first to determine how much effort will be required.
HtmlRenderer, however bad it may be coded, is still tangible and enables one to quantify the amount of remaining work.
On another note, that library represents a minimum level of functionality needed to be implemented before expecting users to start switching over.
Den 17 jan 2018 18:06 skrev "Florian Rappl" [email protected]:
I'm really loving the discussion in here, maybe I should just upload what I already have (hopefully I'll find the time in the next 1-2 weeks to structure / push it) with the hope that it forms the basis for future collaboration. Fact is (and why AngleSharp stalled in the recent year) with me alone it cannot scale. Some people contributed, but we need a continuous / uniform approach here where a group of people maybe also has some online meetings and works out a roadmap together (such that we are on the same page).
No pressure here, just some thoughts. A would love to have a lightweight and extensible renderer. Performance-wise it could not compete with a webbrowser, but the mission would of course be to improve it then iteratively.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/AngleSharp/AngleSharp.Css/issues/2#issuecomment-358372745, or mute the thread https://github.com/notifications/unsubscribe-auth/AAoyAEmMglil2kjSjAV5Fcy2w-RP34YWks5tLiiTgaJpZM4K7Www .
As we previously discussed on Skype @FlorianRappl, you can count on me as well to make this happen. I told you back last year that once you have pushed something to GH, we could see what is missing and start thinking on how to approach that.
Thanks
@FlorianRappl IMO just upload whatever you have got, however unready it may be. There's no harm in publishing anything unfinished.
“If you're not embarrassed when you ship your first version you waited too long.” –Matt Mullenweg
CHEER!
@prepare What's this little thing you have here??? https://github.com/LayoutFarm/HtmlRenderer
Hello, @bjorn-ali-goransson
What's this little thing you have here??? https://github.com/LayoutFarm/HtmlRenderer
check it out :)
I did! Looking good!
@FlorianRappl you seem to be an amazing developer but I am noticing a lack of überblick here. We are all waiting because you want to release more complete functionality than what is currently in a working condition in your codebase. This is clearly not optimal.
As for what I'm concerned, I currently have a large client (39bn+ EUR annual turnover) who want's a better PDF renderer and if this is any better than Arthurs, we'll use it immediately. But neither do I want to privately fork that code (several additional projects in our compile pipeline), nor do I want to publish it as a NuGet package that will soon be abandoned, enlarging my OSS footprint with unnecessary garbage.
Let me propose the following roadmap which we can quickyl decide on, or I will have to move on.
Proposed roadmap
Phase 1
- Push @prepare s code to @FlorianRappl s new Renderer repo. Publish repo at once.
- Get rid of custom parser - use AngleSharp.
- Push to Nuget prerelease, 1.0-alpha.
- Improve continually at GitHub.
Then, we may start benefitting from an OS .NET PDF renderer today, from a project which is ALIVE and not dead. Seeing all the forks scattered from Arthurs code feels almost post-nuclear.
Phase 2
- Push @FlorianRappl s code to repo. Publish repo at once.
- In order not to break anything for upgrading users, take note of any functionality that is currently missing in @FlorianRappl s code that is implemented in 1.0-alpha.
- Implement any missing features from @prepare s code.
- Push to Nuget prerelease, 1.0-beta.
- Improve continually at GitHub.
Phase 3
- Make roadmap for 1.0.
- Push code from 1.0-beta
- Implement roadmap.
- Push to Nuget, 1.0.
- Improve continually at GitHub.
@prepare Would you be OK with me forking your repo and taking some PRs if I find any room for improvement? I really don't have time to wait for this disccussion to finish.
@FlorianRappl you seem to be an amazing developer but I am noticing a lack of überblick here.
Thanks for the words, but I guess its not about the overview here. Time is the problem and actively contributing is currently an issue with family and other (mostly paid) projects having a higher prio. I guess thats understandable.
The proposals are all good, but at the end of the day the question is: Who will do the work? As you can already see with all the traveling and other things I am pursuing I can't even manage to find a couple of hours to get the old code base lifted from my PC to a public repo (and this is not about making it perfect - it's just about some basics; having it building again, have at least basic infos in a README and all that essential stuff).
Since we have a (sketched) roadmap the question is - what's the proposed timeline?
I was meaning with überblick, to say the overall, "birds-eye" view, in lack of a good word in english (my actual german is almost zero, but it's pretty close to swedish).
With this I mean that if you're lacking the time to make it build, then you may at least have the time to delegate 😁. I mean, phase 1 involves/requires no actual development work on your part.
What: Phase 1 Who: I'll do the development required (step 2 and 4), you will need to do step 1 and 3. When: Personally, I need to have phase 1 done (steps 1-3) in maximum ~5 days time.
I won't bother you with lots of pushes to NuGet nor lots of PRs. I'll keep it at a minimum 1 or (hopefully not needed) 2.
Hello @bjorn-ali-goransson,
Would you be OK with me forking your repo and taking some PRs if I find any room for improvement? I really don't have time to wait for this disccussion to finish.
Lets do it!
Please don't use any copyleft code => I will bring your improvement back to merge with my repo. And I also welcome your PRs.
Cheer!
@prepare , your project seems extremely tangled and not fit for what I have in mind. The projects seem too intertwined and difficult to make out anything of (in my timeframe, at least).
What you are achieving though seems phenomenal.
I have to start out with Arthurs code however bad it may be.
@bjorn-ali-goransson, It is OK :)
Arthurs code is not bad.
(I started from it.)