 Welcome to Visual Studio Toolbox. I'm your host, Donovan Brown. Today, we're going to be talking about wikis with Sandeep. Sandeep, welcome to the show. Tell us what you do here at Microsoft. Hey, Donovan. Hey, everyone. I'm Sandeep. I'm the product manager for Visual Studio Team Services, and yeah, the PM for wiki as well. Wikis, all right. So that's exciting topic that we're going to be talking about. Before we jump into it, why don't you explain to us what is a wiki and why do teams actually use them? Sure. So, let me talk about the philosophy of wiki, like how we started off with wiki, right? The main intent was to make it really easy for teams to create and maintain project and process documentation in an extremely simplified manner so that they can effectively guide their team members to collaborate and contribute. Okay, great. We've just added that support to Visual Studio Team Services, it sounds like. Yep, absolutely. So, Visual Studio Team Services has its own very own wiki. All right, great. So, why don't you show us how it works? Sure. So, let me start off with like a day-zero experience, right? I'm really new to VSTS. I'm creating my first project. So, let's call it the wiki demo, and I'm going to create my first project from scratch. So, while this project is creating, I wanted to give you a quick overview as to how wiki works. When I'm creating this project wiki demo, you would see a wiki associated with this project wiki demo itself. So, now that we're navigating. So, now you see that I am in a VSTS project, and you see a small wiki star right here, and that is the new wiki that we've just launched. Okay. So, Sandeep, I see you just created a project, but there's actually two wikis, one with a star and one without. Why is that happening? Hey, Donovan, thanks for asking that question. So, let's talk about this. So, wiki star is the new wiki, the new VSTS wiki that you just launched. For those users who have already installed the old wiki extension that was published on the marketplace, they will actually continue to see wiki. And our recommendation is that once you have moved from the old wiki to the new VSTS wiki, you should go ahead and uninstall your wiki. I see. So, this is an example where we actually created an extension, and now we've put that functionality in the box. So, now we need people to go back and uninstall the old way that they were using it. Absolutely. Once they've migrated the pages, they should go back and uninstall. Okay. That's a good point. So, they're actually going to need to migrate the content of the extension over to the new wiki before they uninstall it. Absolutely. And we provide a tool for users to do that, and all the details are right here on the extension. Oh, fantastic. All right, cool. So, let's show us how the new wiki works. All right. So, this is what any user would see who has permission to create a wiki, and this is like a day-zero experience. So, let's go ahead. There's not much to do. Let's just create the wiki. So, directly as you could, I would see, I've landed directly on a homepage, on a page that is a simple edit experience. So, let's now create our first page, right? I'm just going to call it the home page, and let's save it. Let's save it without content and let's see what happens. So, as you would have seen, right, I just created a page, and the first page that I create kind of gets created as a home page. What basically it means is that any visitor who comes and clicks on wiki star would actually land on this home page. Now, let me start getting to details of how people generally create wikis, or how do you just structure documentation? So, Donovan, let me ask you this question, right? Let's say you have to create a PowerPoint. What would be the first thing that you will do when you're creating the PowerPoint? I'll usually start to lay out an outline or some type of table of contents to get some idea where I want the application or the document to go. Absolutely. So, let's do it, right? Let's do the conventional way. So, this is a classic table of content that I really want to create. I don't want to talk about wiki capabilities, what are the various capabilities that we support. As you see that I edited in Markdown, I'm able to preview it, but hey, that's like really old-fashioned, right? Let's see how you could do it, something very similar in the new wiki. So, I know I want to talk about the home page. As part of the home page, I want to talk about, let's add a sub-page. And I want to talk about the rich Markdown capabilities, right? And this is the TOC that you're creating. So, let's just create this TOC right here with us. So, if you see, I'm able to create this TOC right here. So, let's create another page just for argument 6. So, let's create another sub-page and let's call it the built-in TOC. And for demo purposes, I'm just going to create a new page on the root. And that is about what is coming up next. All righty. So, you see that I really don't need to think about creating a TOC and then adding pages separately. We have a built-in TOC in the wiki itself. You keep creating these pages, just forget about content, create this TOC, and then you can always add your content later. Gotcha. All right. So, let's now, since I'm talking about the TOC, let's just play around with a little bit. So, let's say I create another page called support and you know what, fat fingers. Let's create a sub-page right here called contact us. So, I'm just building something up. Let's see how it goes. All right. So, I think so my TOC is fairly ready. But hey, you know what? I just made a mistake. According to what I wanted to show you in the home page, what is coming up next should be before support. So, I just click on it, I drag it, and I move it up. And that's it. Great. So, your TOC is actually, you can manage the TOC from right here. I was about to ask that question too, because my outline frequently changes as I start to do development and start working on it. And all I have to do now is just drag and drop, and I can reparent items and everything from here. Absolutely. So, since you talked about reparenting, as you can see contact us really does not belong to the home page. That should be somewhere in support, right? Sure. So, I should be able to move it right here, and as you can see I'm just clicking and dragging it and dropping it on support. Once I do it, of course it's a page move. It's a hierarchical change, and there you see. You see the contact us, car has just moved down. Fantastic. All right. So, now that we've created the TOC, let's do something fun, right? So, I want to talk about the home page. And if you remember, I just wanted to show you all the capabilities of Wiki that I have. So, let's just, I'm going to create a pre-prepared markdown and I'm going to do something with the markdown. Let's give you one second please. No problem. Yeah, markdown is not always my favorite language to work in because sometimes I have to get in, getting images inside of markdown can be a pain, attaching documents can be a pain. But I see that you have a nice, it looks like a wheezy wig editor, but how do I do with some of that other stuff? Sure. So, let's do it. So, I've just copy pasted some content from the markdown and if you see it's rendering, all right. So, I can see some texturing, but guess what? What happened to the images? They're all broken. And you see that I wanted to show you an image for the Wiki homepage, but you can clearly see that it's broken. But guess what? I am on the homepage. So, what I'm going to do is, I'm going to use my snipping tool. Let's take this image right here because this is my homepage. All I've done is a copy. I just copied this image. I'm going to go to the Edit Experience. This is the faulty image as you can see and all I do is a Ctrl V. And as you can see in the preview, I can actually see the image right here. Fantastic. But, Donald, don't you think that this image is too broad? So, let me see if I can actually resize it real quick. So, let's resize it to 1,000x. All right, let's see. Okay. So, at least it's in the same container. I think 1,000 is not really working out very well. Let's do 1,500x. And you see how I'm able to just customize this entire page according to my needs. I'm just customizing this image right here. Is that standard markdown or is that something that you're implementing as part of the editor? So, this is standard markdown. But yeah, so these are capabilities that we've built into the markdown that we're basically supporting. Perfect. So, of course, images was just one of the entities, right? So, let's do some more fun stuff. Let's create a new page. I'm going to call it my HTML page capabilities. So, let's see what I can do with HTML. So, by the way, this markdown also supports HTML tags. And as you can see, I've just copy pasted some stuff from HTML. And you see that there's a logo. There's rich table content. I have tables inside tables. And the fantastic aspect about this is the page that I've just created is actually a hybrid. You'll see a ton of markdown capabilities that are within HTML capabilities. So, you see that the entire page is an HTML table. But you can see I've created a markdown table within. Interesting. Yep. So, these are some of the rich editing capabilities that we're supporting. And I think so this demo wouldn't go too far if I were not to talk about some more HTML stuff that we've done. So, let's just copy some more content. And this is, I'm just going to call it HTML2 because there's some more rich capabilities. So, just save it. It's probably one of a number one ask. And that is the ability to embed videos. So, as you can see, I've embedded a video right here. And you can just embed videos, play around with a ton of additional HTML capabilities. You see I have complex tables, hybrid tables, a ton of formatting, et cetera. Got it. So, how do I link between these pages? Oh, that's a good question. So, let's just link it, right? So, I'm on the home page. Hey, this home page does not really look good without a table of content, right? So, what's my table of content? So, you see I created this rich markdown built in TOC. This built in TOC should not be a bullet point, right? It should be this page. So, let's just go to this page, click on copy page path. I come here and I paste and let's just save it. So, you see now built in TOC is no more text. If I click on it, I actually land on the built in TOC page. Fantastic. So, yep. So, you can create your own table of content within the markdown file seamlessly. No, I notice you've done a lot of incredible improvements to make editing markdown inside of this particular tool easy. But a lot of us who have actually been doing markdown for a while use our own editors on our own machines. How do I get this content out of the web browser and onto my machine so that I can use the editor of my choice? Absolutely. So, a lot of people will have noticed that I'm currently completely working on wiki as a whole, right? Now, in the back end, this is nothing but a git repository. So, if I were to go on more and click on clone wiki, you would see that I'm actually being exposed to URL. So, let's just copy paste this URL and browser and see what happens. So, right now what you're seeing is actually a git repository that is powering this wiki. So, let's just do something, right? I'm going to make some changes to this home page right here. I'm going to say support demo of the wiki. And let's just commit it. So, right now, if you see, I'm making changes to the git repository and not to the wiki per se. And let's go back to the built-in TOC. Let's go to my home page and there you see. You see demo of wiki is showing right here. Great. So, you can make changes in any editor that you prefer even if you wanted to edit them somewhere else. Exactly. So, you could have cloned this and you clone it. You make all the changes offline and then basically just push it back to the master branch of this wiki and you will start seeing these changes right here. All right. Now, you mentioned git and I know a lot of our customers still use TFVC. Are they going to be able to use wikis if they chose TFVC when they originally created their team project? Absolutely. So, as I said, that this is just a hidden git repository in the back end. If you have TFVC customers, they will be able to use wiki seamlessly. The other good part is that if they're using TFVC and they have a TFVC repository and if they were to click on the repo drop-down, they will actually not see this git repository, this wiki git repository. And we basically kind of curtailing the unnecessary noise for those who are not very conversant with git as well. I see. Very good. All right. So, we've talked a lot about the edit experience. I really want to talk about some of the advanced experiences that probably not a lot of power users would use, but I think so these are things that users should definitely know about. So, you see that I've made a ton of changes on the page already, right? You see all my revisions are being called out right here. I can go to any of these revisions and I can right here see that, hey, I made one addition and one removal from this page right here. And this basically gives you a high-level view as to who has made the change, when the change was made, and of course what the change is. And you see that these are these pretty breadcrumbs that allow you to go back to where you started from. Great. All right. So, one more thing that I really want to talk about, right? So, there's a ton of functionality that we've built in to make the experience for using wiki really convenient. I've seen a lot of times when people have actually created a home page which they really didn't intend to. As a result, what they have to do is do some cumbersome tasks of copy-pasting, etc. Well, not anymore, right? So, you go here, you just set this page as a wiki home page. As soon as I set this page as a wiki home page, anybody and everybody who clicks on the wiki star would actually land on my new wiki home page. So, I don't need to do that cumbersome activity of copy-paste. Fantastic. And I can see the icon on the right-hand side actually change so I would indicate which one is actually the home page or not. Absolutely, absolutely. That is the whole intent. Great. Well, this has been fantastic. Sure. And I know that we are about to conclude. I just want to conclude with two additional things which I think so uses what I've seen already. One is that if your wikis grow pretty big, we are powering the rich filter capability so that you can easily filter out your content. And this is interesting actually. When I just filtered by contact, you see the whole hierarchy so that you're not lost. And last but not the least, you will be able to control the security of the wiki. As I said, it's a git repository in the backend so you will be able to control who reads, who writes, and who deletes pages on the wiki. Man, thank you so much, Sandeep. So I'm really excited to be able to share this new functionality and I'm glad that it's actually in the box now. So my last question is, is there any additional charge to use the wikis? If I have a VSTS account, am I just going to get this or am I going to have to pay for it? So wiki is part of your basic license. So if any user who has a basic license will be able to create and read anything on the wiki, the good news is that if you have stakeholders, stakeholders can also read all the content on the wiki. That is fantastic. Thank you so much for showing us this new cool features of Visual Studio Team Services and everyone, thank you for joining us today on Visual Studio Toolbox and we'll see you in the next episode. Thanks.