On Tuesday, 1 September 2020 at 16:24:29 UTC, Petar Kirov
[ZombineDev] wrote:
Yeah, I think we should add the following feature:
Whenever there's a snippet of code (fenced code block in
markdown), a button should appear under, which when clicked
would replace the content of the text editor with the code
snippet.
There two challenges with this:
1. Many of the code snippets that appear throughout the
articles are not meant to be runnable, so we would need a way
to provide the necessary scaffolding (e.g. wrap them in `void
main() { /+ ... +/ }`)
I think there should be two kinds of code area.
i. The regular "dumb code" fences (as we already have) which is
just for displaying code. I have lots of these throughout my
text, the code they contain are in general not runnable because
they are designed to show only part of it or some output for
discussion.
ii. Runnable code areas for actual scripts, the same width and in
line with the text like the "dumb code" fences but as you said
with a few buttons on the top for running the code (I'm not
really bothered if they can pop out to another window/tab and so
on). They should be scrollable because you don't want a huge
amount of code just pasted in going potentially over one or more
pages long.
I wonder if that is doable?
2. It may surprising and inconvenient for users to have the
code they have potentially modified disappear. This could be
solved by adding proper support for multiple open files to the
editor (along the lines of commercial solutions like
codesandbox, github workspaces, etc.). What would happen is
that click [Edit] on a code-block would simply open another
file.
I leave that to your expertise. The main thing is that people
should be able to run and/or modify the code, and that the
original content comes back on reload. I'm not sure it needs to
be super-robust in terms of storing everything from the user
because it's not a proper development area, only for learning.
[:shrug:]