iPhone • 37:59
Wiki Server 2 in Snow Leopard Server allows any organization's users to collaborate more easily and effectively. Learn about new features such as Quick Look previews of wiki attachments in the browser window; content searching across multiple wikis; and wiki and blog templates optimized for viewing on iPhone. Wiki Server 2 also introduces My Page, which gives each user one convenient web portal to view and create wikis and blogs, use web calendars, track wiki updates, and access webmail.
Speakers: John Anderson, Skip Baney, Andrew Nesbitt
Unlisted on Apple Developer site
Downloads from Apple
Transcript
This transcript has potential transcription errors. We are working on an improved version.
Welcome to the What's New in Wiki Server 2 session. My name is John Anderson and I'm the Manager of the Wiki Server Team. Today, we're going to be talking about some of the new features in Snow Leopard's Wiki Server including the ability to create wikis from the web and there are a lot of implications from this that we're really excited about. Next, we're going to show you how you can search across all the wikis on your server simultaneously and see updates for all the wikis that you care about.
We're also going to show you an iPhone-optimized version of the wiki server and we're going to show you web-based personal calendars, which allow you to access not only read your calendar but invite people to new events. We're going to show you how you can view documents online without needing to download them using server side Quick Look. And finally, we will be showing you some new tools that we provided theme developers so that you can extend the server in more ways than ever.
Now, before I do that, I'm going to get in to some of the features that wiki server already has in Leopard. And first and foremost in that is a great WYSIWYG editor, and this means that anyone can edit pages and it's extremely unintimidating. However, for those of you that actually do want to use markup, we figured that the most well-known markup there is, is HTML. So you can code your pages by hand in HTML if you want to.
Now, of course, there is one asterisk here, one caveat and that's that with HTML, you have a risk of cross-site scripting and something where one use or can put data on a page that gets executed as another user. In order to safeguard against that, we have a very versatile HTML scrubber which you can configure however you want. But by default, it's configured to drop any scripting attributes and tags that could be used to exploit other people's sessions. We also have a built-in weblog server and that includes podcasting support.
So if you turn that on, you can send podcasts out either via a great Web UI or through Podcast Producer. We have searchable mailing list archives. This means you can enable an email address that you can send to, which will get cc'd out to everybody that's in the wiki and also will get archived online for easy retrieval.
We, of course, in Leopard offered a web-based calendar for wikis which means that your wiki can contain its own calendar. We've enhanced that for Snow Leopard as well to allow for multiple calendars in multiple colors and to allow for subscription in iCal. But, of course, everybody here is probably here to see what's new for Wiki Server 2 in Snow Leopard. And first and foremost, the thing that's really big for us this year is the fact that wikis are no longer tied to Open Directory groups.
That means that [applause]-- that means that a wiki is just that. It's just a wiki. It's not necessarily tied to any particular entity in the directory and this means that you can create or manage wikis from the web. That means somebody can make a wiki from a Windows machine, from a Mac machine, and they don't need to be bound to Open Directory to do so. It means that groups can have more than one wiki.
So instead of having to make duplicate groups in your directory to handle all the different wikis that a particular Open Directory group wants to have, it's much more versatile now. You are actually allowed fine-grained access permissions which means that you can actually pick a combination of groups and individual users and choose which of them have read access and write access and most importantly, and this always seems to be a big applause line, you can have a multiple admins for a wiki now as well [applause]. This is a big one as well.
There's no need any more to run an OD Master on the Wiki Server [applause]. And for those of you that are familiar with Snow-- with Leopard, you may be familiar with ServicesLocator records. It's-- I'll probably get a combination of confusion and happiness here, but for anybody who's familiar with them, ServicesLocator records are now obsolete in Snow Leopard [applause].
So, when you make a decision to create wikis and set them up with all these different attributes, you're going to find that you have an awesome new problem, and that problem is that you're going to have a ton of wikis on your server. Even within Apple's deployment, we set up a server with our engineering group. We set up a server for ourselves to use. And then started and invited a couple-- inviting a couple of other groups to use it so that we could get people actually hammering on our Wiki Server and, you know, test the performance with more and more users.
We've now found that that single server that we've deployed and that we're, unfortunately, still managing in our engineering group, now hosts about 500 wikis. And so, we found that we needed to do something to make it easier to search across all the wikis on a particular server. And our solution to that problem is something we would like to call "My Page." This is something which allows you to access all the-- search across all the wikis that you have access to and you can also see updates for all of the pages in all the wikis that you care about.
You can set up a lot of different filters here, but instead of talking about it, I'm actually just going to bring Skip Baney on stage to show it to you. So, Skip.
Good morning, everybody. I hope you all are enjoying your WWDC so far. Here's the new Snow Leopard Server homepage. It access sort of launch pad to all of the web-based services that you have enabled on your machine.
Since I'd like to get started by showing you how to create a wiki on the web, I'm going to go ahead and navigate to the wiki listing page. Now, in order to facilitate demoing this morning, we've created a fictional startup called Twunk. We're all big fans of Twitter in our group and, you know, there are just not enough third-party Twitter clients out there, so we decided to create our own.
We already have funding and marketing wikis and the essentials. We're at the point where we're ready to start building something. So go-- let's go ahead and create an engineering wiki. I'm going to go over into the sidebar and click on the Create a New Wiki button. And up appears our wiki setup assistant. I'm going to go ahead and give it a name. Let's give it engineering, and a short description.
[ Pause ]
Go ahead and click Next. And with Leopard, we shipped a ton of great themes. And in Snow Leopard, we've added even more, including our default Apple theme which I've selected here. I'm going to go ahead and click Next. And the last thing I get to do is to choose the wiki's access control settings.
You can choose to make this wiki publicly accessible or only accessible to certain users or groups in your directory. Now since this is a dead wiki, I'm going to limit access to the people in the engineering group. Go ahead and select that. And because I have the Send the Email checkbox selected, a welcome message will be sent out to all the members of that group letting them know this wiki-- they have been just invited to this wiki and provide a link back.
So with that, I'm going to create, and my wiki's provisioned and ready for use. I can go ahead and click a second time and I'm taken directly to the wiki where I can go ahead and get started adding new content. Now, we're really happy with the way creating a wiki works on Snow Leopard and we hope that you and your users will feel the same.
I'm going to go ahead and close this window and go back to the wiki listing page. Now, you'll see that our engineering wiki is now on the list. Because I'm the person who created the wiki, I have the ability to delete it on the web as well and I can choose to hide updates from this wiki from the updates list, which is a feature I'll go into in just a moment. But, as John mentioned, when you do make it this easy to create wikis on the web, it becomes really difficult sometimes.
You have content spread out over a number of different locations so you need-- we enhanced our search technology to allow you to search across multiple wikis on your server. So as a developer in Twunk, I want to know what features that we're supposed to be building now that we're getting started. So I'll go ahead and search for features in the Quick Search filter or Quick Search field.
And here I have a mix of likely searcher mashes across a number of different wikis or user blogs. I could go ahead and click on one of these items and be taken to that page directly but I'm going to go ahead and hit Enter and go to the full search results listing page. Here I can further refine my search by any combination of type or tag. Because I'm not really interested in blog posts, I'm going to go ahead and filter those out of the list.
And I'm only interested in pages that are exclusively tagged with the keyword "features." So I'm going to go ahead and click on Features, and there, I have exactly what I'm looking for. Now, I can go ahead and save this as a smart filter for use later by clicking on the link in the sidebar, and I'll call this Project Features, and click Save.
There you have it. Now, one thing I'd like to show-- one last thing I'd like to show you is that we've added the ability to star pages. Now, because starred pages can be used as criteria in filters and saved as smart filters, this makes it a really useful to find just the content that you're looking for.
The last thing MyPage features that I'd like to show you is the Updates List which I'll navigate to by clicking on Updates in the primary header. The Updates list acts as a real-time activity stream of all the pages that you're watching on the server. Here, I have a list of unread page updates since the last time I visited.
I can click on one of the blue status messages in the list to open a summary of the recent activity that happened on this page. Here, one-- the page has been edited, a couple of comments have been added. If this is not enough information for me, I can go ahead and click on the title to go directly to that page. But if that's enough for me to get an idea of what's happened on that page, I can go ahead and continue scanning through items in the list.
We've made the page dynamically resizable so that all the items that can fit on screen will show there. And this is really useful if you're on the small display device and you want to get-make maximum use of the available space. We've also added rich application like keyboard shortcuts such as using the Spacebar, Page Up, Page Down as well as well as the up and down arrow keys so you can quickly scan through items.
Now, once I've looked at everything and I'm ready to clear out the list, I can mark the items as read and they quickly fade out of view Now over on the Sidebar, we have some common default filters that you might use. One is all items, the other is all of the items that I've created or edited, all the starred pages that I have as well as all the pages that are explicitly tagged with the word Hot.
We also include all the smart filters that you may have saved on the Search page. Now, smart filters combined with starring and tagging make it really easy for you to find all of the content that you're looking for on your server. Now, you may have noticed that while I was talking, a few new updates have come in through the list because as I mentioned this is a real-time activity stream.
We found it really useful to keep this list open throughout the day and keep abreast of what's happening on your server. Now, the updates list is really helpful but you're not always at your desktop. So that's why we've created a custom version for the iPhone that allows you to keep abreast of updates while you're on the go.
So I'm going to ahead and close Safari and launch the iPhone simulator to show you. Go ahead and open Safari on the phone. And just like the desktop version, we're presented with the primary updates list. I have access to all of my default and custom filters. I can go ahead and click on the selector here in the header and I'll go ahead and choose the save-- smart filter that I created just a few moments ago. I'm going to list the updates and I see just those items. Now, I can click or tap on one of the items to go into a detailed view.
And here, I see the page title, the wiki or blog that the page came from and the full page content. I can tap on the Details button and have access to the page's metadata. There is a change recently. So I'll go ahead and tap on Show Changes and see what's happened. It seems that John's prioritizing the icon for the phase one features.
I can tap on the button again and hide changes. And I commented on this page recently and it looks like someone's replied. So I'm going to ahead and tap in and see the comments. Yeah, I'm not sure if agree either. So I'm going to go ahead and click on the Plus button to add a new comment straight from the phone.
Let's discuss this at the next meeting. Post and the comment is added. Now, I'll go ahead and return to the page detail view and just like the updates list on the iPhone or just like on the desktop, we have access to star pages, we can add tags or remove tags. And up in the header bar, we have the up or down arrows to allow you to quickly stand through page updates. Now, this is really helpful when you're on the go.
You can triage new activity that comes in on your machine and we just found it to be really useful. Go ahead and return back to the updates list. And just like My Page on the desktop, we have access to the Wiki listings, blog listings as well as the ability to search across all pages on your server. We think that viewing the wiki on an iPhone is a fabulous experience in Snow Leopard and the new My Page features make it easier than ever to keep up-to-date with all the activity on your server.
[ Applause ]
Thanks Skip. So, the next thing I'd like to talk about is the Web Calendar. Now of course like I said in Leopard, we offered a Web Calendar for Wikis but we now actually allow you to access your personal Web Calendar as well.
And this is kind of neat because this is a stand-alone service but if you have a Wiki running, then it gets completely integrated into My Page. Now this is a full-featured calendar client which has full time zone support, support for recurrences, you can even receive meetings. You can see here, I have a notification for a new meeting. And you can send meetings and actually browse people's free and busy schedule right from the web as you enter people's names. So this is definitely a full-featured calendar client.
The really cool thing about this is that this is actually a complete CalDAV calendar client built entirely in JavaScript. So it's talking directly to the calendar server. You can embed it in any web page with just a couple of tags, so you can add it to your own Internet site if you want to.
And that also means that since it's talking directly to the calendar server in a standards-based way then you can subscribe with only to this calendar from any calendar client and you can sink it with any CalDAV client and that includes iCal and it also means that any changes that you make on your web calendar will also show up an iCal on the phone.
So that's Web Calendar. And next stop, I like to move into Server-side Quick Look and this is always such a fun thing to demo to you guys that I'm basically just going to hand the stage back over to our engineer Andrew who's going to give you a look at Server-side Quick Look.
So, Andrew?
[ Applause ]
Thanks John. So I am really excited to be showing you Quick Look today. This is something we have worked really hard on in Snow Leopard. In Leopard, we made it really easy to attach documents to wiki pages and blog posts. And this is one of the things that we're continually getting feedback on that our users love.
So let's take a look at how we've improved that even more with Quick Look in Snow Leopard. So I'm going to start on My Page here which is our great way to see updates on our server. And on the right, I'm going to click on Star Pages where I flag some wiki pages I'm going to be using in my demo today. And I'm going to switch over to all here. So the first page I want to show you is something that our marketing team has been using to explore ideas around our new revolutionary Twunk brand which is a White Elephant, right.
So I'm going to click on Elephant research here and I can see that we're already off to a pretty great start. We've got Babar on there which is a good one. So I've been working on the pages documents through the week. So my entire time at WWDC had been pretty busy and I'm going to add that to this page.
So in the Toolbar, I'm going to click on the Pencil icon right here. And I'm going to get rid of this text that someone has left me. And back on the Toolbar, I'm going to click on the Paperclip icon which is going to let me attach a file.
And click on Choose and grab that pages where I've been working on and click Attach. And you can see that this is a really great way to share files with your team members. But the problem is you've got to know all these awesome new problems. Because it's so easy to attach files to wiki pages, you end up with a lot of them. So more often than enough, you get more than one attachment on a page and it's often hard to know which one you need.
And so what happens is you end up downloading these sometimes large documents over sometimes slow internet connections. You get them to your desktop and you realize, "Oh, hey I don't have the right software to open this." So when we looked at this, we realized that we'd already solved this in Leopard on the desktop with Quick Look.
So what we've done in Snow Leopard is brought that right over to the Wiki Server. So whenever we attach a file, and we click See, the Wiki Server is automatically rendering a web compatible version of that file that can be viewed in any standards-compliant browser on any platform.
So let's take a look at that.
[ Applause ]
So because this is a multipage document, we get thumbnails down the left through which I can scroll through like this. And then in my server I see the page number, and I really get indication on where I am in the document. And as I click in these thumbnails, you see the preview changes in the main panel.
This is pretty cool. So as Skip and John have both mentioned, we're a new twitter start off and as such we're pretty struck for cash. So I'm going to go back to My Page where I've flagged a funding presentation, wiki page that we've been working on. So we're working on this PowerPoint presentation to show potential investors and trying to get some cash together, right.
So let's go ahead and preview that PowerPoint file in the web. So, just like before, we can flip through the pages of the presentation. If this presentation had presenter's notes or notes or annotations, they will show up right here. So, one thing I haven't shown you about Quick Look is that I can resize its window up, and back down.
[ Applause ]
And you notice that the preview stays beautifully centered right in the web browser. And as in my server, the main area, we got some options here. So the middle one is I can download this attachment so I've Quick Look it and I know this is the one I want, so I can download it right to my laptop or my desktop or wherever I am. But on the left here, we have this Fit to Screen button which lets me go full screen and I can see our previews in all their glory and pan around.
This is really great. So from looking at this page, there's something funny here. I think I'm missing an attachment. So the good thing about Quick Look is that we've built that into the document revisions on wiki page. So if you're not familiar with the Leopard Wiki Server, we've a really great way of seeing changes to a page by viewing its document history and as each person has made a change, you see a summary of their change.
And it looks like John made a really helpful edit to this page and deleted the file I need at my demo today. So luckily, Quick Look is to the rescue. I'm going to go back and look at this revision and I can Quick Look this attachment. Yeah, this is the numbers presentation that we were-- or the numbers that we were looking at.
[ Applause ]
So the last thing that I want to show you about Quick Look is support for your custom file types. This is something we've worked really hard on Snow Leopard to make sure that it's going to work with your custom applications as well. There's one thing that I should mention here that this requires that the Quick Look generator be installed on the server but there are no dependencies on the clients.
So any client from any web browser can view the files as long as Quick Look-- the Quick Look generator is installed on the server for that particular file type. So I just got an email this morning and it has our latest application walkthrough. So I'm going to type in iPhone walkthrough, create a new page here. And it just so happens that we're using a really great application called OmniGraffle to do our walkthrough.
And I'm going to choose that Graffle file right here and click Attach. And you notice a few things. So Safari for-- in Snow Leopard is automatically recognizing that the OmniGraffle file is a bundle. So in plain language that means that it's a folder. So what we're doing here is on the wire, we're zipping the file and transferring it and as the Wiki Server receives that zipped file, we're inspecting the zip file and recognizing that there is a Quick Look of a document inside. So like before, I can Quick Look this document.
This is an OmniGraffle file, and remember [applause] that client has no [applause]-- the client does not have OmniGraffle installed here. So like before, I can resize the window and I can pan. So we can actually step through the stages of our iPhone application. This is really great. So I hope you'll agree that our Quick Look is an awesome feature in Wiki Server 2 and lets you preview documents on Wiki pages and blog posts.
So these are the-- this has been a real productivity boost that Apple on our internal Wiki Server particularly when a lot of us are around on campus during the day and we don't have access to our desktop machines and maybe on laptops that don't have the right software. So with that I'd like to pass this back to John.
[ Applause ]
There are few additional features that I'd like to go over. We're not actually going to demo them today but they're important enough that I figured that we should talk about them. All of these things again are standalone services so they will run independently of the Wiki Server. But the cool thing is all of these are available inside at My Page integrated with everything else if the Wiki Server is running. The first one that I think everybody is going to be really happy about is web-based password change [applause].
This does require, in order to turn this on, you do need to have SSL enabled on your web server for obvious reasons. But, it means that you can actually direct your users now to a website to change their password. And this works with any Open Directory system. So depending on your setup, you can actually use the web-based password change integrated with the Wiki Server to even change your active directory passwords, so that's pretty cool.
[Applause] Next up, I'd like to talk about server side email rules. We actually did some work with the mail server to set this up. And again, this is integrated in the Wiki Server if you have it enabled. This means that you can filter all of your email before it arrives in your inbox, and this is a great boon to iPhone users who want to-- who don't want to open up their inbox and see a bunch of mailing list stuff show up. Hand in hand with that of course, we also offer vacation notices.
And so this means that you can set a timed email rule to automatically apply-- to automatically reply to every message that comes in during the time period when you're away. And so that's some of the additional features we've added that we've integrated into the Wiki Server if it's running. Next I'd like to talk about some of the new tools that we have for theme developers. And now of course in Leopard, you could do a lot to extend your Wiki and customize it using themes.
So you can add your own functionality, you can add your own CSS, but we've added a lot of new stuff in Snow Leopard that we're actually pretty excited about. I would suggest that anybody that wants to brush up on creating themes for the Wiki Server were actually going to have some documentation reference at the end of this session. However, right now, I'd like to just kind of recap by going over what makes up at any page sent out by the Wiki Server. So the first thing that we send out is the Theme CSS.
This is your CSS and it defines the look and feel and the visual presentation of the Wiki Server when your theme is selected. The next thing we send out is the required System CSS. We send this out last because it generally defines the overall layout of the page as well as the look and feel and icons for all of the toolbars and functionality that we add. We next send out the System JavaScript.
This basically creates all the functionality you've seen here for Quick Look and editing pages, all of that client-side functionality sent out at this point. And next, we send out the Theme JavaScript, and this is your JavaScript. And this is primarily what we're going to be getting into today.
But this is where you can actually add your own functionality to supplant our own. So the first thing that we've added-- that we've used really heavily internally and decided to go ahead and document for you guys here is the concept of shared instances. Now, this is something that we'd borrowed from Cocoa, there's a lot of things in Cocoa that have shared instances and we did this by extending the class functionality that's present in the really great prototype JavaScript library.
So in JavaScript, you would generally create a JavaScript class by using Class.create. We added some thing called Class.create.WithSharedInstance and this is basically going to create a global that you can refer to an instance of your class by and it will create it on demand. So this is a great way to make your pages continue to perform well but add your own functionality to it.
And if I should go through this example code, you can see here, I've created my class using Class.create.WithSharedInstance. And the first argument I'm passing to this function is the name of the shared instance. So this is the name by which I'm going to refer to this instance of this class and it will get created automatically whenever it needs to be.
However, the second argument I'm sending which is a Boolean, that's optional, if you passed through here, then your class will get automatically instantiated when the document is loaded. And this is actually even faster than attaching something to the window loading. This is going to happen as soon as the document object is available, so that means that there's no delay when adding your own functionality to page like there would be if you attach something to the window's unload handler.
And then of course, you define the prototype with an initialized method as is dictated by the structure of the prototype library. So that showed instances and that's a great way to add your functionality without having to hook into some of the methods that we have or hack into some of the methods we have. You can just add your own functionality in the themes and have it automatically pull out when any page loads.
When you're doing this of course, one of the things that we've found we needed to do and we've figured you would as well is to start listening for events that happened on the Wiki's content. And this is how you can actually add your own functionality to these pages and do it much easier than you could before.
If any of you are really familiar with Cocoa, this is basically-- we kind of stole this from the idea of the NSNotificationCenter.
You have these messages that get sent out. You can publish your own messages. You can subscribe to them and you can subscribe to some that are sent out by the Wiki Server.
And you can see in this sort of poorly drawn cloud here that there's a ton of these messages that we send out when people Quick Look documents, attach things, change content, start and finish editing, tag, everything. So to show you an example of how you would set up and how you would listen for these notifications., you could see here I've created a class again with Class.createWithSharedInstance.
I have an initialized method here that tells the publisher shared instance that I would like to subscribe to a message using publisher.subscribe. The first argument I pass to this is the call back I want to be ran when that message gets thrown. And then of course the message that I want to listen for, and then you could see below that I've defined my call back. This is really cool. I think that, you know, it takes a little bit, maybe to wrap your head around it but I think to that end, we have a great demo that's going to show you what's possible with some of the notification API in Snow Leopard.
So we spent some time last week writing a little showcase of this new notification on Class.createWithSharedInstance technology on Snow Leopard. And what we've come up with is a way of providing syntax highlighting for code snippets in a wiki page. This is all done as part of a custom theme and I've created a new wiki already called Developer Demo and to this I've applied the custom theme. So, I'm going to go ahead here and create a new page and let's call that Code Snippet.
I'll click Create. And those of you familiar with the Leopard Wiki Server might notice that we have a new button here in the toolbar and as I mouse over that. It's going to tell me that I can intact-- insert some syntax-highlighted code. So when I click on that, we get this neat little dialog that lets me either paste or type in that Code Snippet and I've got one prepaste on here, not that one.
I'm just going to paste that in-- sorry, excuse me, give me a second. And choose the language, and this is Python since this is calculating the Fibonacci sequence of numbers. [Applause] And click OK. And you see that that code is inserted in the page. So using the new notifications, we're going to listen for when this page is getting saved. And when it is, we're going to transform this code and make it really pretty.
[ Applause ]
So let's take a look at how you can achieve something fairly similar on your themes. Just a disclaimer here first, I'm not going to cover the structure of a Wiki theme. If you're interested in that, you can download last year's Extending Your Wiki Server Session which should be available on iTunes or look at the documentation that we're going to reference at the end of this session. Also for the syntax highlighting, were using a third party library. But you could pretty much substitute any library or write your own if you're feeling adventurous. So with that said, let's look at this code. So the WWDC JavaScript file is our main JavaScript file in our theme.
And like what we've been talking about, I'm creating this new code snippet controller share instance on the page. So this is going to be available globally as code snippet controller. And because I'm passing through here as a second argument that they're going to structure, this gets created on page load. So just like other prototype-extended classes, the first thing that's get called here is initialize.
So whenever we initialize this new object, this function gets called. And my first step is to check that we're on a page that has some sort of editable content. And I'm doing that by using prototype mutation to look for something that has an ID of editable content. And that is this ID that we applied for our Wiki Editor which is on both Wiki Pages and blog post. And if we don't find that, I'm returning this new keyword in Snow Leopard called invalidate.
So invalidate is-- it's something that's going to destroy the shared instance in a case that you may not want it anymore. And in this case, if I'm not on the page that's editable, so I'm not on the page on which I can insert code, then I don't want to have this shared instance hanging around.
And this invalidate keyword is going to clean that up for you. So the next 2 lines are something I'm going to skip over. The first one is for adding the custom toolbar button and the second one is for initializing the code snippet dialog in the background. So this is using some DOM manipulation, the builder library, script.aculo.us library, the prototype library. If you're interested in that, you can download the source code from our session website and look at that in more detail. But the interesting part of the initialize method is the last 2 lines here.
So here we're asking this publisher shared instance to watch for whenever we go both into and out of an idle edit mode on the page. And we're doing that by calling publisher.subscribe and we're listening for both DID_START_EDITING and DID_FINISH notifications, DID_FINISH_EDITING notifications. And when we get those call backs, we're calling REMOVE_SYNTAX_HIGHLIGHTING and ADD_SYNTAX_HIGHLIGHTING.
So I'm going to scroll past the next few methods which like I said before are just repeating some UI magic in the background and scroll right down to this ADD_SYNTAX_HIGHLIGHTING function. So what's actually happening behind the curtain whenever we insert code into the pages, is we're just adding a pretag to the markup.
It's really simple. And when we come back out of editing mode, we get the DID_FINISH_EDITING notification and this function gets called. So the first step is to use the prototype $$ notation to find all the pretags on the page. And after we've got those we use a little closure here and then we're calling our third party library to make those pretty so to add colors, to add line numbers, to add formatting depending on the lines that we've chosen to pop up. And on the flip side of that, when we go back into Edit Mode, we want to strip by to all that extra formatting rate, so we're pretty much doing the opposite of what ADD_SYNTAX_HIGHLIGHTING does.
So this is a really simple example of what you can achieve with the new notification stuff and the Class.createwithSharedInstances in Snow Leopard, I would really encourage you to check the stuff either if you're a theme developer, I think you'd like getting involved in this. It's helped us a lot in Snow Leopard.
I would also encourage you to download, adopt, and extend this sample code. It's fairly simple and it's fairly well commented, so you should be able to follow it pretty easily. So with that, I guess I can't wait to see your custom themes and I like to pass it back to John.
[ Applause ]
Thanks Andrew. So you've seen today how it's really easy to create new wikis via the web. We provided a way to search across all wikis and see information for wikis you care about really easily. We've shown you how you can view all of your documents without having to download them using server-side Quick Look. We've talked about some of the stuff on how wikis are created without groups and we've shown you some of the things you can do as a theme developer to extend the wiki in more ways than ever.
I would suggest if you're going to start with writing a theme that you consult our award-winning documentation and extending your Wiki Server is a great place to start. This is against Leopard but the basic theme API has not changed for Snow Leopard with the exception of things we went through today.
I would also suggest if you're going to write some of the things like Andrew showed you today, that you look at a couple of the libraries that we based the Wiki Server on, primarily being a prototype of course and script.aculo.us as well which is what we use to build a lot of our UI onto the screen.