-
Notifications
You must be signed in to change notification settings - Fork 2
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
Try it now experience #30
Comments
I think JSON is not a good format for this. Eclipse desktop IDE has a similar functionality which uses XML. The problem with formats such as XML or JSON is they are good for consuming on the software but they are not good for content creation. The ease of content creation is the most critical concern for this feature as we have seen from the experience on Eclipse IDE. I think we should rather use markdown or asciidoc for content for content for content. Also the design should consider having multiple tutorials on a project. Right now it looks like this accommodates a single file or tutorial. |
asciidoc looks like the better way. Also rendering is supported on github. |
asciidoc probably fits better. @benoitf Is there a good tool chain we can utilize to do live preview on our editor for asciidoc? |
Another alternative is markdown preview with embedded action buttons. This, however, makes the task a bit more difficult. @gorkem @benoitf what do you think about the following?
We should also agree on different uses cases, like where to open the preview, wheather or not we do it automatically, what happens if there are multiple projects in a workspace, what happens to a multi module project with each module having own .md file etc. |
Asciidoc provides extensibility with macros while markdown is not (there are different markdown renderer so you don't know what you can use or not) about toolchain, Asciidoctor provides rendering with also binding in Java but in our case it's the javascript port that is interesting An example of what we could do with live editing: https://espadrine.github.io/AsciiDocBox/ |
@benoitf yeah, I have read a bit about anciidoc - markdown syntax respected which is good. So, yes, it looks like this is smth to look at. |
We need to consider this issues in a bigger picture - not only for our specific needs but also consider how it could be interesting for anyone in the community. Guides and tutorials are a very important way to drive adoption of Che workspaces and growth of our community. FormatAuthoring and maintaining guides must be something simple and I agree the JSON format that is proposed at this moment will not be convenient. We had guided tours in the past but the format was really making them tricky to create and maintain. A guide/tutorial can contain different kind of content (not exhaustively listed here):
On those elements some specific formatting could be defined. For example, in the body, a tutorial might use a bulleted list. Considering markdown/asciidoc formats are definitely going to provide what we need. Using that format would also allow us to leverage ActionsActions would be provided as macros inside of the guides. We already have actions defined in multiple places: factories and Chefile. We need to carefully think about using a consistent format to define the macros. To make it easier to create the guides, we could, in the future, build a dedicated language server which would simplify the edition. Multiple guidesThere might be multiple guides provided for a single project and I agree that it is important to take that into consideration now as it would impact the end-user experiences. The guides could be accessed when the user is using a "Try it now" button, but they should also be available at any point in time. There could be different guides, for different areas, for "getting started" indeed but there could be guides for more advanced/sophisticated information which the developer will progressively dig in after few hours of work on the project. I believe that the guides could be provided inside of a I would provide a guides explorer, as a left panel, along with the other explorers that we are providing. This way, we can provided a unified and consistent user experience. End-user experiences1. Loading default guides by defaultThis is a great opportunity to improve the empty state in the IDE. The first time a workspace is opened with a project, we will open the default guide.
2. Guide windowI don't think using the right side panel is the right choice. I would rather use the editor area to display the guides. There will be two modes to open a Guide:
We will provide a switcher so that it's possible to go from one mode into the other one. (Similarly to how github is handling the edition of markdown file). The basic requirements here is to provide a convenient editor for markdown/asciidoc files, which allow edition and preview. By default, we would open the guide in rendering mode. By using the editor tabs to do that, there will be a lot of benefits:
3. UIFor consistency and integrated experience, we will reuse the UI components and different styles we already have in the IDE. We will apply the theme that is selected by the user. This will also make it easier for anyone (who might not have CSS skills) to get a guide properly rendered in the layout, without having to provide any particular efforts. |
@slemeur agree on everything but not guides explorer. That's a) overkill b) takesmore time to implement. Otherwise, it's the vision that we have as well. Get rid of a tab and open in an edito in split mode. |
We first need to focus on:
If you need to phase the requirements, there are two aspects which I believe can be added after those elements are in place: 1. Default open of readme.md and readme.asciidoc files for any projects 2. Multiple guides support
|
I'd say ancii preview editor and own macros are two immediate goals. Live editing and multiple guides support are tasks to come after. |
@eivantsov +1 on iterating on the features. Can you create subtasks so that we can plan them separately? |
Updated json format in the issue accordingly to what we have right now. |
There's a need to create an IDE plugin that will:
Open a right side panel (just like pull request panel) with nicely formatted text and action buttons that help a user learn new project/technology and IDE as well.
The plugin should use a descriptor file that defines content of the panel and actions tied to buttons.
The name of the descriptor file is
walkme.json
. Awalkme.json
is located in.che
in the project root.Format of a descriptor file:
In a nutshell, we need to define text elements (Subtitles, body) and buttons. All buttons will execute some actions. Actions can be simple IDE actions (like expanding project, opening wizards), executing commands by their IDs and opening files. The latter two will require attributes. A command should have a name or ID, while opening a file requires path, scroll to line and line(s) to be highlighted.
Once a user presses the button, an action is triggered. The plugin should be able to open files at particular position.
When a user selects a project in the project tree, the plugin looks for this file, and if found, right side panel becomes active and filled with content and buttons defined in the file.
It should be easy to customize json and see results in the ide - so, refreshing browser page or project explorer should make the plugin re-source the json and re-draw the panel.
Styles are not customizable in a json - in order to change styles, plugin and eventually assembly rebuild is required.
Right panel should be opened automatically when the IDE opens. Default width is to be discussed, but it should be reasonable enough to have space for the editor and at the same time make panel content readable.
Below is a very basic concept in a mockup.
The text was updated successfully, but these errors were encountered: