Embedding run.dlang.io - allowed?

Petar Petar
Thu May 7 09:12:35 UTC 2020


On Thursday, 7 May 2020 at 07:03:43 UTC, WebFreak001 wrote:
> Hi,
>
> I would like to write a blog entry and include some small D 
> snippets in it. I think it would be great if readers of my blog 
> could experiment and edit the code right inside the website if 
> they feel like it.
>
> This would
> 1) help validate the code snippets are up-to-date
> 2) increase engagement with users
> 3) possibly increase users interested in D because they can 
> quickly try it out
>
> I saw the dlang tour has an API for doing the compilation, but 
> is it allowed to use it for third party sites? For the few 
> visitors I get anyway I would like to avoid hosting and 
> maintaining what is basically "remote code execution as a 
> service". To keep it secure I would obviously need to rent a 
> new server for this or spin up cloud servers per API, so I 
> would rather avoid that while I can.
>
> I would also like to release the blog engine source code for 
> this so anyone can make a blog with embedded D code (and 
> possible future editor feature integrations) - so I wouldn't 
> want an individual permission just for my blog!
>
> Thanks!
> WebFreak

Hi WebFreak,

I think this is a great use case that we definitely want to 
support!
In fact, all runnable examples on the dlang.org docs are powered 
by this API already ;)

---
Unfortunately, lately, we (me and the other maintainers) have 
been quite busy and which is why we still haven't addressed some 
of the long-standing issues (fixing GitHub Gist support and URL 
shortening). Fortunately, other members of the community were 
able to help with tracking down the root cause and there's a PR 
open that would likely fix it: 
https://github.com/dlang-tour/core/pull/750, but it was blocked 
on pending PR for vibe-d: 
https://github.com/vibe-d/vibe.d/pull/2439)

Edit: I see now that the dlang-tour/core PR is merged, but there 
are still some issues that need to be resolved, that I'll try to 
look into later this week.
---

That said, we're very happy to accept contributions in this area 
(making it easier for users to embed runnable code snippets in 
their sites). Of course, if we notice that the service is being 
abused we will need to put some restrictions (request throttling, 
HTTP Referer whitelisting, requiring API tokens, etc.), but so 
far I think that we're good :)

I suggest you have a look at the integration on dlang.org to have 
an idea what you need to do, in order to have the same 
functionality for your site:
https://github.com/dlang/dlang.org/blob/master/js/run.js#L96


In the more distant future, one of the projects that I'd like to 
explore is completely overhauling the web UI to replace it with 
something IDE-like (e.g. hosting a web version VS Code), along 
the lines of https://codesandbox.io/.
Of course, we should still have a very simple and bare-bones text 
editor, as I find it quite useful to test snippets on the go from 
my phone, and I think that many other users value simplicity.

Cheers,
Petar


More information about the Digitalmars-d mailing list