Markdown Documentation Wiki #2645
Replies: 9 comments
-
Hi @krispenner, yeah I can understand DevOps style approach. Do you think a small script (which you could embed it into your pipeline) that converts markdown documents into our internal format, and pushes them to APIM using REST API could solve your problem? One disadvantage to this approach - linked resource, i.e. if you want to change the location of a resource, you'll have to manually update hyperlinks everywhere in your markdown docs. Also, would a special "content writing" mode (i.e. like it is done in https://medium.com/) be better in this case? In this mode, you basically have just the tools required to type the docs into a predefined page template, without having all those widgets handles around. |
Beta Was this translation helpful? Give feedback.
-
Trying to convert images and possibly mermaid diagrams which are supported in markdown into the JSON using media components sounds really difficult and kind of backwards. Sure it could be possible but would be very limited without a lot of effort. Markdown is the standard these days for documentation so it should be a supported first class experience in the portal where documentation belongs.
We would not go that route, markdown is too portable and really is standard right now for documentation. Having our documentation as markdown will allow for easy importing to other systems later such as if MS publishes a new developer portal in a few years so we avoid re-writing all our documentation again in a new format of theirs. If you can find a markdown component where you just set a page in the portal designer to be of type wiki, then in the git repo there would be a wiki directory where we just dump md pages and the wiki component would just display those as it's own embedded wiki in the portal. I have not done anything like that before but I imagine there must be JS scripts you can find that just read a directory and display the markdown under a specific parent URL of the site. In my mind it would be easier for you to do something like that which everyone can use than for us to write a script to convert. Right now, without this support here, we are looking to create a public Azure DevOps team project for just the wiki and host our documentation there with links to it from the API developer portal. We don't have the resources to write a pipeline script and would want to stay with markdown for portability. Eg: dev.azure.com/myorg/apidocs/wiki |
Beta Was this translation helpful? Give feedback.
-
Don't bother with any support for markdown editing in the designer, at least not for now. I picture user flow like this:
Again, no need to edit markdown and wiki in the portal designer, if this could work people can just use their preferred local markdown editor (ie VS Code) and push their changes. |
Beta Was this translation helpful? Give feedback.
-
Technically, we could do export the content back to Markdown as well (losing, of course, all the attributes not supported by Markdown), if the change of the format in the future is your only concern. Basically, what you describe above defeats the purpose of this project, and probably your best bet would be one of the static website generators. @mikebudzynski do you have any thoughts on this question? |
Beta Was this translation helpful? Give feedback.
-
@krispenner, could you please confirm my understanding of the problem space, disregarding potential solutions?
|
Beta Was this translation helpful? Give feedback.
-
We currently phase the problem that we think about migrating different mark down pages and structures from different Azure wikis to the Developer Portal. Currently, these markdown pages are maintained directly by the dev teams which is more scalable than if I would need to centrally maintain and update the content from the portal in editor mode. |
Beta Was this translation helpful? Give feedback.
-
Can you elaborate on what the defined purpose of this project is? I'm sure there is much more than what I need it for, but I had assumed the primary focus was to list all of the available APIs to our customers, allow them to sign-up with a developer account, subscribe to the APIs, and then test them directly in the portal. While you are continually improving on these features, I never really understood the reason/benefit for all the widgets, sections and custom pages - we don't use them ourselves much. I wouldn't expect people would use this as their marketing or company web site which they need to update content on all the time. To me the next logical step is to incorporate API documentation into the portal so it can sit along side the APIs and be secured via the developer account login the portal provides. So using an external static website generator does not work nearly as well as incorporating right into the portal itself. @mikebudzynski
Absolutely. Without using sections, widgets, JSON structure, REST integration etc. A dedicated documentation wiki I think would be easiest, because if we have 100 pages of documentation to upload, we don't want to add each individual page to the portal, the current UI would not scale nicely for that kind of volume in my opinion. Interestingly I forgot the new portal dropped support for git and I even asked about this over a year ago, so this definitely complicates my request now. So to your points you asked about, the rest involve git in some way and obviously this is no longer a trivial ask since you don't support git anymore. The old deprecated portal supported git, which was a very powerful feature btw, and I forgot that when I raised this new issue. |
Beta Was this translation helpful? Give feedback.
-
That is very interesting feedback folks, I honestly haven't thought from that angle. I feel like we need a deeper and probably in-person conversation on these tocips. @krispenner, your definition of the purpose matches mine precisely. Answering your question: the widgets and the whole styling system here are to help the majority of customers to reflect their brand while publishing the API documentation, and with Markdown alone, it is hard to do so without getting into coding with all the outcomes, from my point of view not everybody ready to jump into it. We didn't drop Git btw, we just not yet added the support for it, and honestly, there were not many people asking for it, but looking at the conversation above I see that it is very much relevant. @AnRei123, @krispenner, I would love to look close into this hybrid approach. To me, having the markdown authored separately, in separate tools, and then "assigning" it to particular pieces of content (or a layout) rather than having everything in one place/tool, looks like creating additional work for yourself, and yet, you're ready to do it. This part I would like to better understand. For instance, what do you think is missing for you to switch to this single tool? Earlier I mentioned a special "content writing" mode above, plus maybe the ability to export content as Markdown any time, would that allow you to switch? Maybe something else? |
Beta Was this translation helpful? Give feedback.
-
Probably not, unless it came with a 100% confirmation that you would also add support shortly after for Git so we can manage the documentation externally. We would like to avoid all our developers going into the portal editor/designer to edit this documentation. It needs to be imported as markdown - hence why git makes the most sense. Allow me to describe a few more ideas and our bigger picture - this may not provide any answers but just some additional thoughts to consider. Similar to @AnRei123 we also have all our internal API documentation written by our developers in our Azure DevOps wiki - internal integrations use this documentation. We are in the process of re-writing the pages in a separate customer focused wiki that removes internal references and notes that are not applicable for our customers. So we also have internal vs external documentation. Right now, we use Print-to-PDF to print the documentation pages as needed to hand out to our customers - this is not a scalable solution. For deployments, our Azure pipelines use PowerShell scripts to create/update the version sets, APIs, products and security groups in our API Management instance per environment and then uploads the OpenAPI 3.0 JSON file to the API. So some thoughts to consider - these are not requests just thinking out loud here:
I actually think that: |
Beta Was this translation helpful? Give feedback.
-
It would be incredible if a page in the portal could be designated a wiki and then managed via markdown with child pages. The child pages would not appear in the portal designer - they would just be internal to the wiki which is managed via the parent page in the portal designer. Child markdown pages could be added via git using same directory structure as Azure DevOps wiki does. This would allow a DevOps style markdown wiki for all our documentation which right now is very difficult to publish at a large scale using clunky sections and content components or the REST API. Users really need a better way to host large amounts of documentation inside the developer portal where it belongs along side the API reference.
Similar to question here Option to import static html content into APIM Dev Portal - 1132 but this is a direct request to support a markdown wiki.
Please consider this.
Beta Was this translation helpful? Give feedback.
All reactions