So you have figured out what you want to do with your spiffy new Community Server theme. You are thinking "hey, I should add a page that lists all the fabulous widgets I've been involved with". You don't want to have to open Visual Studio and republish your theme every time you make a change. Instead you want to leverage Community Server's quasi-blog-based-content-management-system (or QBBCMS for short!). The article system seems like a great place to do this. Not only can you create pages on the fly without having to edit the theme, you can link to them as well. How you might ask? I never thought you would ask. :)
The first step is to create your article. This can be done through the control panel and is pretty much the same as writing a blog post. I won't go into detail around that, assuming instead, that you have been able to get that far.
The next step is to link to your article. You could hard link, but why go through the pain? The controls in CS2007 make it easy to call out the URL once you know how to harness the power:
<CSBlog:WeblogPostList runat="server">
<QueryOverrides runat="server" BlogPostType="Article" PostName="Books" />
<ItemTemplate>
<li><a href='<%# Eval("ViewPostUrl") %>'><span>
<%# Eval("Subject") %>
</span></a></li>
</ItemTemplate>
</CSBlog:WeblogPostList>
In the above example I'm grabbing the article named "Books", however you can exclude that to retrieve a list of all articles. Using this method will help you automagically maintain the links on your page which lets you focus on the more important bits - content.
It also brings up another point - how do you figure out what properties are available to bind? You can dig up the documentation, but we all know the manual gets thrown out the second we unwrap the toy. If that is the case you will want to break out Lutz Roeder's Reflector and poke around the CommunityServer.Blogs.Components.WeblogPost class to see what other properties are there, and in the base class, that you can bind to. Don't go too wild if you have a large number of links to display and are concerned about performance. Eval is slow and there are better ways.
I've got a few other tips up my sleeve which I will endeavour to post over the coming weeks. For now I need to finish figuring how to automate my development environment rebuild with Windows Deployment Services and the Business Desktop Deployment Solutions Accelerator. It should hopefully make the quarterly rebuild of my development environment quicker and a whole lot less painful. More on that as I figure it out.