kareila: (Default)
kareila ([personal profile] kareila) wrote in [site community profile] changelog2009-08-05 12:33 am

[dw-free] remove ".bml" on the end of links throughout site

[commit: http://hg.dwscoalition.org/dw-free/rev/47d8462593ee]

http://bugs.dwscoalition.org/show_bug.cgi?id=1464

Strip remaining links to no longer include .bml suffix.

Patch by [staff profile] denise.

Files modified:
  • cgi-bin/DW/InviteCodeRequests.pm
  • cgi-bin/DW/Logic/ProfilePage.pm
  • cgi-bin/DW/Logic/UserLinkBar.pm
  • cgi-bin/DW/Setting/XPostAccounts.pm
  • cgi-bin/DW/Widget/AccountStatistics.pm
  • cgi-bin/DW/Widget/CommunityManagement.pm
  • cgi-bin/DW/Widget/LatestNews.pm
  • cgi-bin/DW/Widget/QuickUpdate.pm
  • cgi-bin/LJ/CProd.pm
  • cgi-bin/LJ/CProd/Birthdays.pm
  • cgi-bin/LJ/CProd/Feeds.pm
  • cgi-bin/LJ/CProd/FriendsFriends.pm
  • cgi-bin/LJ/CProd/Polls.pm
  • cgi-bin/LJ/CProd/UserPic.pm
  • cgi-bin/LJ/Comment.pm
  • cgi-bin/LJ/Console/Command/ResetPassword.pm
  • cgi-bin/LJ/Customize.pm
  • cgi-bin/LJ/Event/AddedToCircle.pm
  • cgi-bin/LJ/Event/Birthday.pm
  • cgi-bin/LJ/Event/CommunityInvite.pm
  • cgi-bin/LJ/Event/CommunityJoinRequest.pm
  • cgi-bin/LJ/Event/InvitedFriendJoins.pm
  • cgi-bin/LJ/Event/JournalNewEntry.pm
  • cgi-bin/LJ/Event/NewUserpic.pm
  • cgi-bin/LJ/Event/RemovedFromCircle.pm
  • cgi-bin/LJ/M/ProfilePage.pm
  • cgi-bin/LJ/MassPrivacy.pm
  • cgi-bin/LJ/OpenID.pm
  • cgi-bin/LJ/Poll.pm
  • cgi-bin/LJ/S2.pm
  • cgi-bin/LJ/S2/EntryPage.pm
  • cgi-bin/LJ/Session.pm
  • cgi-bin/LJ/Setting/Bio.pm
  • cgi-bin/LJ/Setting/Display/AccountStatus.pm
  • cgi-bin/LJ/Setting/Display/BanUsers.pm
  • cgi-bin/LJ/Setting/Display/DomainMapping.pm
  • cgi-bin/LJ/Setting/Display/Email.pm
  • cgi-bin/LJ/Setting/Display/EmailPosts.pm
  • cgi-bin/LJ/Setting/Display/Emails.pm
  • cgi-bin/LJ/Setting/Display/Logins.pm
  • cgi-bin/LJ/Setting/Display/Password.pm
  • cgi-bin/LJ/Setting/Display/Username.pm
  • cgi-bin/LJ/Setting/EmailPosting.pm
  • cgi-bin/LJ/User.pm
  • cgi-bin/LJ/Widget/AddQotD.pm
  • cgi-bin/LJ/Widget/AddSiteMessages.pm
  • cgi-bin/LJ/Widget/Browse.pm
  • cgi-bin/LJ/Widget/CreateAccount.pm
  • cgi-bin/LJ/Widget/CreateAccountEnterCode.pm
  • cgi-bin/LJ/Widget/CreateAccountNextSteps.pm
  • cgi-bin/LJ/Widget/CreateAccountProfile.pm
  • cgi-bin/LJ/Widget/CreateAccountTheme.pm
  • cgi-bin/LJ/Widget/CreateAccountUpgrade.pm
  • cgi-bin/LJ/Widget/CurrentTheme.pm
  • cgi-bin/LJ/Widget/CustomizeTheme.pm
  • cgi-bin/LJ/Widget/Feeds.pm
  • cgi-bin/LJ/Widget/InboxFolderNav.pm
  • cgi-bin/LJ/Widget/Login.pm
  • cgi-bin/LJ/Widget/ManageQotD.pm
  • cgi-bin/LJ/Widget/ManageSiteMessages.pm
  • cgi-bin/LJ/Widget/MoodThemeChooser.pm
  • cgi-bin/LJ/Widget/PopularInterests.pm
  • cgi-bin/LJ/Widget/QotD.pm
  • cgi-bin/LJ/Widget/QotDArchive.pm
  • cgi-bin/LJ/Widget/RecentComments.pm
  • cgi-bin/LJ/Widget/Search.pm
  • cgi-bin/LJ/Widget/SubmitRequest.pm
  • cgi-bin/LJ/Widget/SubmitRequest/Support.pm
  • cgi-bin/LJ/Widget/ThemeChooser.pm
  • cgi-bin/LJ/Widget/UserpicDisplay.pm
  • cgi-bin/bml/scheme/blueshift.look
  • cgi-bin/bml/scheme/celerity.look
  • cgi-bin/bml/scheme/global.look
  • cgi-bin/bml/scheme/gradation-vertical.look
  • cgi-bin/bml/scheme/lynx.look
  • cgi-bin/cleanhtml.pl
  • cgi-bin/communitylib.pl
  • cgi-bin/crumbs.pl
  • cgi-bin/customizelib.pl
  • cgi-bin/ljcmdbuffer.pl
  • cgi-bin/ljdefaults.pl
  • cgi-bin/ljprotocol.pl
  • cgi-bin/propparse.pl
  • cgi-bin/supportlib.pl
  • cgi-bin/talklib.pl
  • cgi-bin/weblib.pl
--------------------------------------------------------------------------------
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/InviteCodeRequests.pm
--- a/cgi-bin/DW/InviteCodeRequests.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/InviteCodeRequests.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -230,7 +230,7 @@ sub accept {
         fromname => $LJ::SITENAME,
         charset => $u->mailencoding,
         subject => LJ::Lang::ml( 'email.invitecoderequest.accept.subject' ),
-        body => LJ::Lang::ml( 'email.invitecoderequest.accept.body', { invitesurl => "$LJ::SITEROOT/manage/invitecodes.bml"} ),
+        body => LJ::Lang::ml( 'email.invitecoderequest.accept.body', { invitesurl => "$LJ::SITEROOT/manage/invitecodes"} ),
     });
 }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Logic/ProfilePage.pm
--- a/cgi-bin/DW/Logic/ProfilePage.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Logic/ProfilePage.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -109,11 +109,11 @@ sub userpic {
             if ( LJ::userpic_count( $u ) ) {
                 $ret->{userpic_url} = $u->allpics_base;
                 $ret->{caption_text} = LJ::Lang::ml( '.section.edit' );
-                $ret->{caption_url} = "$LJ::SITEROOT/editpics.bml?authas=$user"
+                $ret->{caption_url} = "$LJ::SITEROOT/editpics?authas=$user"
             } else {
-                $ret->{userpic_url} = "$LJ::SITEROOT/editpics.bml?authas=$user";
+                $ret->{userpic_url} = "$LJ::SITEROOT/editpics?authas=$user";
                 $ret->{caption_text} = LJ::Lang::ml( '.userpic.upload' );
-                $ret->{caption_url} = "$LJ::SITEROOT/editpics.bml?authas=$user"
+                $ret->{caption_url} = "$LJ::SITEROOT/editpics?authas=$user"
             }
         } else {
             if ( LJ::userpic_count( $u ) ) {
@@ -275,7 +275,7 @@ sub memory_stats {
     push @ret, LJ::Lang::ml( '.details.memories2', {
         num_raw => $ct,
         num_comma => LJ::commafy( $ct ),
-        aopts => "href='$LJ::SITEROOT/tools/memories.bml?user=" . $u->user . "'",
+        aopts => "href='$LJ::SITEROOT/tools/memories?user=" . $u->user . "'",
     } )
         unless $u->is_syndicated;
     
@@ -414,7 +414,7 @@ sub _basic_info_location {
             LJ::load_codes( { country => \%countries } );
 
             $country_ret = LJ::is_enabled( 'directory' ) ?
-                { url => "$LJ::SITEROOT/directory.bml?opt_sort=ut&s_loc=1&loc_cn=$ecountry", text => $countries{ $country } } :
+                { url => "$LJ::SITEROOT/directory?opt_sort=ut&s_loc=1&loc_cn=$ecountry", text => $countries{ $country } } :
                 $countries{ $country };
         }
 
@@ -427,14 +427,14 @@ sub _basic_info_location {
             $state = $states{$state} if $states_type && $states{$state};
             $estate = LJ::eurl( $state );
             $state_ret = $country && LJ::is_enabled( 'directory' ) ?
-                { url => "$LJ::SITEROOT/directory.bml?opt_sort=ut&s_loc=1&loc_cn=$ecountry&loc_st=$estate", text => LJ::ehtml( $state ) } :
+                { url => "$LJ::SITEROOT/directory?opt_sort=ut&s_loc=1&loc_cn=$ecountry&loc_st=$estate", text => LJ::ehtml( $state ) } :
                 LJ::ehtml( $state );
         }
 
         if ( $city ) {
             $city = LJ::ehtml( $city );
             $city_ret = $country && LJ::is_enabled( 'directory' ) ?
-                { url => "$LJ::SITEROOT/directory.bml?opt_sort=ut&s_loc=1&loc_cn=$ecountry&loc_st=$estate&loc_ci=$ecity", text => $city } :
+                { url => "$LJ::SITEROOT/directory?opt_sort=ut&s_loc=1&loc_cn=$ecountry&loc_st=$estate&loc_ci=$ecity", text => $city } :
                 $city;
         }
 
@@ -612,7 +612,7 @@ sub contact_rows {
 
     # private message
     if ( ( $u->is_personal || $u->is_identity ) && $remote && $u->can_receive_message( $remote ) ) {
-        push @ret, { url => "$LJ::SITEROOT/inbox/compose.bml?user=" . $u->user, text => LJ::Lang::ml( '.contact.pm' ) };
+        push @ret, { url => "$LJ::SITEROOT/inbox/compose?user=" . $u->user, text => LJ::Lang::ml( '.contact.pm' ) };
     }
 
     # email
@@ -625,7 +625,7 @@ sub contact_rows {
 
     # text message
     if ( !$u->is_syndicated && $u->can_be_text_messaged_by( $remote ) ) {
-        push @ret, { url => "$LJ::SITEROOT/tools/textmessage.bml?user=" . $u->user, text => LJ::Lang::ml( '.contact.txtmsg' ) };
+        push @ret, { url => "$LJ::SITEROOT/tools/textmessage?user=" . $u->user, text => LJ::Lang::ml( '.contact.txtmsg' ) };
     }
 
     return @ret;
@@ -677,7 +677,7 @@ sub interests {
                     my %remote_intids = map { $_ => 1 } @{ LJ::get_interests( $remote, { justids => 1 } ) };
                     $intname = "<strong>$intname</strong>" if $remote_intids{$intid};
                 }
-                push @ret, { url => "$LJ::SITEROOT/interests.bml?int=$eint", text => $intname };
+                push @ret, { url => "$LJ::SITEROOT/interests?int=$eint", text => $intname };
             } else {
                 push @ret, $intname;
             }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Logic/UserLinkBar.pm
--- a/cgi-bin/DW/Logic/UserLinkBar.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Logic/UserLinkBar.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -140,7 +140,7 @@ sub manage_membership {
         # if logged in and a member of the community $u
         if ( $remote && $remote->member_of( $u ) ) {
             return $self->fix_link( {
-                url      => "community/leave.bml?comm=$user",
+                url      => "community/leave?comm=$user",
                 title_ml => 'userlinkbar.leavecomm.title',
                 image    => 'community_leave.png',
                 text_ml  => 'userlinkbar.leavecomm',
@@ -165,7 +165,7 @@ sub manage_membership {
 
             # allowed to join
             } else {
-                $link->{url}      = "community/join.bml?comm=$user";
+                $link->{url}      = "community/join?comm=$user";
                 $link->{title_ml} = 'userlinkbar.joincomm.title.open';
                 $link->{image}    = 'community_join.png';
                 $link->{class}    = "join";
@@ -196,7 +196,7 @@ sub trust {
         my $remote_trusts = $remote && $remote->trusts( $u ) ? 1 : 0;
         $link->{text_ml} = $remote_trusts ? 'userlinkbar.modifytrust' : 'userlinkbar.addtrust';
         if ( $remote && ( $remote_trusts || $u->is_visible ) ) {
-            $link->{url} = "manage/circle/add.bml?user=$user&action=access";
+            $link->{url} = "manage/circle/add?user=$user&action=access";
             $link->{title_ml} = $remote_trusts ? 'userlinkbar.modifytrust.title.other' : 'userlinkbar.addtrust.title.other';
             $link->{class} = "addtrust";
             if ( $remote_trusts ) {
@@ -232,7 +232,7 @@ sub watch {
     my $remote_watches = $remote && $remote->watches( $u ) ? 1 : 0;
     $link->{text_ml} = $remote_watches ? 'userlinkbar.modifysub' : 'userlinkbar.addsub';
     if ( $remote && ( $remote_watches || $u->is_visible ) ) {
-        $link->{url} = "manage/circle/add.bml?user=$user&action=subscribe";
+        $link->{url} = "manage/circle/add?user=$user&action=subscribe";
 
         if ( $remote->equals( $u ) ) {
             $link->{title_ml} = $remote_watches ? 'userlinkbar.modifysub.title.self' : 'userlinkbar.addsub.title.self';
@@ -295,7 +295,7 @@ sub post {
 
     if ( $remote && $remote->is_personal && ( $u->is_personal || $u->is_community ) && $remote->can_post_to( $u ) ) {
         my $link = {
-            url => "update.bml?usejournal=$user",
+            url => "update?usejournal=$user",
             class => "postentry",
             image => 'post.png',
         };
@@ -350,7 +350,7 @@ sub track {
         }
 
         if ( $remote && $remote->can_use_esn ) {
-            $link->{url} = "manage/subscriptions/user.bml?journal=$user";
+            $link->{url} = "manage/subscriptions/user?journal=$user";
             $link->{class} = "trackuser";
             $link->{image} = 'track.png';
         } else {
@@ -385,7 +385,7 @@ sub message {
         $link->{title_ml} = 'userlinkbar.sendmessage.title.self' if $u->equals( $remote );
 
         if ( $remote && $u->can_receive_message( $remote ) ) {
-            $link->{url} = "inbox/compose.bml?user=$user";
+            $link->{url} = "inbox/compose?user=$user";
             $link->{class} = "sendmessage";
             $link->{image} = 'message.png';
         } else {
@@ -414,7 +414,7 @@ sub tellafriend {
     if ( $remote && ! $u->is_identity && LJ::is_enabled('tellafriend') )
     {
         my $link = {
-            url => "tools/tellafriend.bml?user=$user",
+            url => "tools/tellafriend?user=$user",
             image => "$LJ::IMGPREFIX/silk/profile/tellafriend.png",
             width => 16,
             height => 16,
@@ -441,7 +441,7 @@ sub memories {
     my $user = $u->user;
 
     my $link = {
-        url => "tools/memories.bml?user=$user",
+        url => "tools/memories?user=$user",
         image => 'memories.png',
         text_ml => 'userlinkbar.memories',
         class => 'memories',
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Setting/XPostAccounts.pm
--- a/cgi-bin/DW/Setting/XPostAccounts.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Setting/XPostAccounts.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -79,7 +79,7 @@ sub option {
                 id       => "${key}xpostbydefault[${acctid}]",
                 selected => $externalacct->xpostbydefault
             }) . "</td>";
-            $ret .= "<td style='text-align: center;'><a href='$LJ::SITEROOT/manage/externalaccount.bml?acctid=${acctid}'>" . $class->ml('setting.xpost.option.change') . "</a></td>\n";
+            $ret .= "<td style='text-align: center;'><a href='$LJ::SITEROOT/manage/externalaccount?acctid=${acctid}'>" . $class->ml('setting.xpost.option.change') . "</a></td>\n";
             $ret .= "<td class='checkbox'>" . LJ::html_check({
                 name     => "${key}delete[${acctid}]",
                 value    => 1,
@@ -99,7 +99,7 @@ sub option {
 
     # add account
     if (scalar @accounts < $max_accounts) {
-        $ret .= "<div class='xpost_add'><a href='$LJ::SITEROOT/manage/externalaccount.bml'>" . $class->ml('setting.xpost.btn.add') . "</a></div>\n";
+        $ret .= "<div class='xpost_add'><a href='$LJ::SITEROOT/manage/externalaccount'>" . $class->ml('setting.xpost.btn.add') . "</a></div>\n";
     }
 
     # disable comments on crosspost
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Widget/AccountStatistics.pm
--- a/cgi-bin/DW/Widget/AccountStatistics.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Widget/AccountStatistics.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -50,7 +50,7 @@ sub render_body {
         num_posted_raw => $remote->num_comments_posted,
         num_posted_comma => LJ::commafy( $remote->num_comments_posted )
         } ) . "</li>";
-    $ret .= "<li>" . $class->ml( 'widget.accountstatistics.memories2', { num_raw => $memories_count, num_comma => LJ::commafy( $memories_count ), aopts => "href='$LJ::SITEROOT/tools/memories.bml?user=" . $remote->user . "'", } );
+    $ret .= "<li>" . $class->ml( 'widget.accountstatistics.memories2', { num_raw => $memories_count, num_comma => LJ::commafy( $memories_count ), aopts => "href='$LJ::SITEROOT/tools/memories?user=" . $remote->user . "'", } );
     $ret .= ", " . $class->ml( 'widget.accountstatistics.tags2', { num_raw => $tags_count, num_comma => LJ::commafy( $tags_count ), aopts => 'href="' . $remote->journal_base . '/tag/"' } ) . "</li>";
     $ret .= "<li>" . $accttype_string . "</li>";
     $ret .= "</ul>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Widget/CommunityManagement.pm
--- a/cgi-bin/DW/Widget/CommunityManagement.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Widget/CommunityManagement.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -67,10 +67,10 @@ sub render_body {
                 $list .= "<dt>" . $cu->ljuser_display;
                 $list .= "<dd>" . $class->ml( 'widget.communitymanagement.pending' );
 
-                $list .= " [<a href='$LJ::SITEROOT/community/moderate.bml?authas=" . $cu->username . "'>" . $class->ml( 'widget.communitymanagement.pending.entry', { num => $pending_entries_count } ) . "</a>]"
+                $list .= " [<a href='$LJ::SITEROOT/community/moderate?authas=" . $cu->username . "'>" . $class->ml( 'widget.communitymanagement.pending.entry', { num => $pending_entries_count } ) . "</a>]"
                     if $pending_entries_count;
 
-                $list .= " [<a href='$LJ::SITEROOT/community/pending.bml?authas=" . $cu->username . "'>" . $class->ml( 'widget.communitymanagement.pending.member', { num =>  $pending_members_count } ) . "</a>]"
+                $list .= " [<a href='$LJ::SITEROOT/community/pending?authas=" . $cu->username . "'>" . $class->ml( 'widget.communitymanagement.pending.member', { num =>  $pending_members_count } ) . "</a>]"
                     if $pending_members_count;
 
                 $list .= "</dd>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Widget/LatestNews.pm
--- a/cgi-bin/DW/Widget/LatestNews.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Widget/LatestNews.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -51,7 +51,7 @@ sub render_body {
     $ret .= "<div class='sidebar'>";
     $ret .= "<p><a href='" . $entry->url . "#comments'>" . $class->ml( 'widget.latestnews.comments', { num_comments => $entry->reply_count } ) . "</a></p>";
     $ret .= "<p>" . $class->ml( 'widget.latestnews.subscribe', { 
-        aopts => "href='$LJ::SITEROOT/manage/circle/add.bml?user=" . $news_journal->user. "&action=subscribe'",
+        aopts => "href='$LJ::SITEROOT/manage/circle/add?user=" . $news_journal->user. "&action=subscribe'",
         news => LJ::ljuser( $news_journal ) } ) . "</p>";
     $ret .= "</div>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/DW/Widget/QuickUpdate.pm
--- a/cgi-bin/DW/Widget/QuickUpdate.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/DW/Widget/QuickUpdate.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -32,7 +32,7 @@ sub render_body {
     $ret .= "<div class='contents'>";
 
     # not using the LJ::Widget form of the HTML methods, because we're directing this to update.bml
-    $ret .= $class->start_form( action => "/update.bml" );
+    $ret .= $class->start_form( action => "/update" );
     $ret .= LJ::entry_form_date_widget();
     $ret .= LJ::entry_form_xpost_widget( $remote );
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/CProd.pm
--- a/cgi-bin/LJ/CProd.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/CProd.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -197,7 +197,7 @@ sub _trackable_link_url {
 sub _trackable_link_url {
     my ($class, $href, $goodclick, $version) = @_;
     $version ||= 0;
-    return "$LJ::SITEROOT/misc/cprod.bml?class=$class&g=$goodclick&version=$version&to=" . LJ::eurl($href);
+    return "$LJ::SITEROOT/misc/cprod?class=$class&g=$goodclick&version=$version&to=" . LJ::eurl($href);
 }
 
 sub clickthru_button {
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/CProd/Birthdays.pm
--- a/cgi-bin/LJ/CProd/Birthdays.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/CProd/Birthdays.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -18,7 +18,7 @@ sub render {
 }
 
 sub ml { 'cprod.birthday.text' }
-sub link { "$LJ::SITEROOT/birthdays.bml" }
+sub link { "$LJ::SITEROOT/birthdays" }
 sub button_text { "Birthdays" }
 
 1;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/CProd/Feeds.pm
--- a/cgi-bin/LJ/CProd/Feeds.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/CProd/Feeds.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -32,7 +32,7 @@ sub render {
 }
 
 sub ml { "cprod.feeds.text" }
-sub link { "$LJ::SITEROOT/syn/list.bml" }
+sub link { "$LJ::SITEROOT/syn/list" }
 sub button_text { "View feeds" }
 
 1;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/CProd/FriendsFriends.pm
--- a/cgi-bin/LJ/CProd/FriendsFriends.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/CProd/FriendsFriends.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -21,7 +21,7 @@ sub ml { 'cprod.friendsfriends.text2' }
 sub ml { 'cprod.friendsfriends.text2' }
 sub link {
     my $remote = LJ::get_remote()
-        or return "$LJ::SITEROOT/login.bml";
+        or return "$LJ::SITEROOT/login";
     return $remote->friendsfriends_url . "/";
 }
 sub button_text { "Friends of Friends" }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/CProd/Polls.pm
--- a/cgi-bin/LJ/CProd/Polls.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/CProd/Polls.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -11,7 +11,7 @@ sub applicable {
     return $used_polls ? 0 : 1;
 }
 
-sub link { "$LJ::SITEROOT/poll/create.bml" }
+sub link { "$LJ::SITEROOT/poll/create" }
 sub button_text { "Poll wizard" }
 sub ml { 'cprod.polls.text' }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/CProd/UserPic.pm
--- a/cgi-bin/LJ/CProd/UserPic.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/CProd/UserPic.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -21,7 +21,7 @@ height: 100px; border: 1px solid #000000
 }
 
 sub ml { 'cprod.userpic.text' }
-sub link { "$LJ::SITEROOT/editpics.bml" }
+sub link { "$LJ::SITEROOT/editpics" }
 sub button_text { "Userpic" }
 
 1;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Comment.pm
--- a/cgi-bin/LJ/Comment.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Comment.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -252,7 +252,7 @@ sub unscreen_url {
     my $journal = $entry->journal->{user};
 
     return
-        "$LJ::SITEROOT/talkscreen.bml" .
+        "$LJ::SITEROOT/talkscreen" .
         "?mode=unscreen&journal=$journal" .
         "&talkid=$dtalkid";
 }
@@ -265,7 +265,7 @@ sub delete_url {
     my $journal = $entry->journal->{user};
 
     return
-        "$LJ::SITEROOT/delcomment.bml" .
+        "$LJ::SITEROOT/delcomment" .
         "?journal=$journal&id=$dtalkid";
 }
 
@@ -990,22 +990,22 @@ sub manage_buttons {
     }
 
     if (LJ::Talk::can_delete($remote, $self->journal, $self->entry->poster, $poster)) {
-        $managebtns .= "<a href='$LJ::SITEROOT/delcomment.bml?${jargent}id=$dtalkid'>" . LJ::img("btn_del", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+        $managebtns .= "<a href='$LJ::SITEROOT/delcomment?${jargent}id=$dtalkid'>" . LJ::img("btn_del", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
     }
 
     if (LJ::Talk::can_freeze($remote, $self->journal, $self->entry->poster, $poster)) {
         unless ($self->is_frozen) {
-            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen.bml?mode=freeze&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen?mode=freeze&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
         } else {
-            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen.bml?mode=unfreeze&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen?mode=unfreeze&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
         }
     }
 
     if (LJ::Talk::can_screen($remote, $self->journal, $self->entry->poster, $poster)) {
         unless ($self->is_screened) {
-            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen.bml?mode=screen&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_scr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen?mode=screen&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_scr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
         } else {
-            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen.bml?mode=unscreen&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_unscr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+            $managebtns .= "<a href='$LJ::SITEROOT/talkscreen?mode=unscreen&amp;${jargent}talkid=$dtalkid'>" . LJ::img("btn_unscr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
         }
     }
 
@@ -1390,7 +1390,7 @@ sub _format_mail_both {
     my $want_form = $is_html && ($self->is_active || $can_unscreen);  # this should probably be a preference, or maybe just always off.
     if ($want_form) {
         $body .= LJ::Lang::get_text($lang, 'esn.if_suport_form', undef) . "\n";
-        $body .= "<blockquote><form method='post' target='ljreply' action=\"$LJ::SITEROOT/talkpost_do.bml\">\n";
+        $body .= "<blockquote><form method='post' target='ljreply' action=\"$LJ::SITEROOT/talkpost_do\">\n";
 
         $body .= LJ::html_hidden
             ( usertype     =>  "user",
@@ -1468,7 +1468,7 @@ sub _format_template_mail {
     $t->param(unscreen_url  => $self->unscreen_url) if $can_unscreen;
     $t->param(delete_url    => $self->delete_url) if $self->user_can_delete($targetu);
     $t->param(want_form     => ($self->is_active || $can_unscreen));
-    $t->param(form_action   => "$LJ::SITEROOT/talkpost_do.bml");
+    $t->param(form_action   => "$LJ::SITEROOT/talkpost_do");
     $t->param(hidden_fields => LJ::html_hidden
                                     ( usertype     =>  "user",
                                       parenttalkid =>  $self->jtalkid,
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Console/Command/ResetPassword.pm
--- a/cgi-bin/LJ/Console/Command/ResetPassword.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Console/Command/ResetPassword.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -44,7 +44,7 @@ sub execute {
     my $body = "The password for your $LJ::SITENAME account '$username' has been reset to:\n\n";
     $body .= "     $newpass\n\n";
     $body .= "Please change it immediately by going to:\n\n";
-    $body .= "     $LJ::SITEROOT/changepassword.bml\n\n";
+    $body .= "     $LJ::SITEROOT/changepassword\n\n";
     $body .= "Regards,\n$LJ::SITENAME Team\n\n$LJ::SITEROOT/\n";
 
     LJ::send_mail({
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Customize.pm
--- a/cgi-bin/LJ/Customize.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Customize.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -630,7 +630,7 @@ sub s2_upsell {
 
     my $ret .= "<?standout ";
     $ret .= "<p>This style system is no longer supported.</p>";
-    $ret .= "<p><a href='$LJ::SITEROOT/customize/switch_system.bml$getextra'><strong>Switch to S2</strong></a> for the latest features and themes.</p>";
+    $ret .= "<p><a href='$LJ::SITEROOT/customize/switch_system$getextra'><strong>Switch to S2</strong></a> for the latest features and themes.</p>";
     $ret .= " standout?>";
 
     return $ret;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/AddedToCircle.pm
--- a/cgi-bin/LJ/Event/AddedToCircle.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/AddedToCircle.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -87,22 +87,22 @@ sub _as_email {
         return LJ::Lang::get_text( $lang, 'esn.addedtocircle.trusted.email_text', undef, $vars ) .
             $self->format_options( $is_html, $lang, $vars,
             {
-                'esn.add_trust'       => [ $u->trusts( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add.bml?user=$postername&action=access" ],
+                'esn.add_trust'       => [ $u->trusts( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add?user=$postername&action=access" ],
                 'esn.read_journal'    => [ 2, $journal_url ],
                 'esn.view_profile'    => [ 3, $journal_profile ],
-                'esn.edit_friends'    => [ 4, "$LJ::SITEROOT/manage/circle/edit.bml" ],
-                'esn.edit_groups'     => [ 5, "$LJ::SITEROOT/manage/circle/editfilters.bml" ],
+                'esn.edit_friends'    => [ 4, "$LJ::SITEROOT/manage/circle/edit" ],
+                'esn.edit_groups'     => [ 5, "$LJ::SITEROOT/manage/circle/editfilters" ],
             }
         );
     } else { # watched
         return LJ::Lang::get_text( $lang, 'esn.addedtocircle.watched.email_text', undef, $vars ) .
             $self->format_options( $is_html, $lang, $vars,
             {
-                'esn.add_watch'       => [ $u->watches( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add.bml?user=$postername&action=subscribe" ],
+                'esn.add_watch'       => [ $u->watches( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add?user=$postername&action=subscribe" ],
                 'esn.read_journal'    => [ 2, $journal_url ],
                 'esn.view_profile'    => [ 3, $journal_profile ],
-                'esn.edit_friends'    => [ 4, "$LJ::SITEROOT/manage/circle/edit.bml" ],
-                'esn.edit_groups'     => [ 5, "$LJ::SITEROOT/manage/circle/editfilters.bml" ],
+                'esn.edit_friends'    => [ 4, "$LJ::SITEROOT/manage/circle/edit" ],
+                'esn.edit_groups'     => [ 5, "$LJ::SITEROOT/manage/circle/editfilters" ],
             }
         );
     }
@@ -158,11 +158,11 @@ sub as_html_actions {
     if ( $self->trusted ) {
         $ret .= $u->trusts( $fromuser ) ?
             " <a href='" . $fromuser->profile_url . "'>View Profile</a>" :
-            " <a href='$LJ::SITEROOT/manage/circle/add.bml?user=" . $fromuser->user . "&action=access'>Grant Access</a>";
+            " <a href='$LJ::SITEROOT/manage/circle/add?user=" . $fromuser->user . "&action=access'>Grant Access</a>";
     } else { # watched
         $ret .= $u->watches( $fromuser ) ?
             " <a href='" . $fromuser->profile_url . "'>View Profile</a>" :
-            " <a href='$LJ::SITEROOT/manage/circle/add.bml?user=" . $fromuser->user . "&action=subscribe'>Subscribe</a>";
+            " <a href='$LJ::SITEROOT/manage/circle/add?user=" . $fromuser->user . "&action=subscribe'>Subscribe</a>";
     }
     $ret .= "</div>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/Birthday.pm
--- a/cgi-bin/LJ/Event/Birthday.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/Birthday.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -119,7 +119,7 @@ sub _as_email {
         }) .
         $self->format_options($is_html, $lang, undef,
             {
-                'esn.post_happy_bday'   => [ 1, "$LJ::SITEROOT/update.bml" ],
+                'esn.post_happy_bday'   => [ 1, "$LJ::SITEROOT/update" ],
             },
             LJ::run_hook('birthday_notif_extra_' . ($is_html ? 'html' : 'plaintext'), $u)
         );
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/CommunityInvite.pm
--- a/cgi-bin/LJ/Event/CommunityInvite.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/CommunityInvite.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -64,11 +64,11 @@ sub _as_email {
     return LJ::Lang::get_text($lang, 'esn.comm_invite.email', undef, $vars) .
         $self->format_options($is_html, $lang, $vars,
         {
-            'esn.manage_invitations'        => [ 1, "$LJ::SITEROOT/manage/invites.bml" ],
+            'esn.manage_invitations'        => [ 1, "$LJ::SITEROOT/manage/invites" ],
             'esn.read_last_comm_entries'    => [ 2, $community_url ],
             'esn.view_profile'              => [ 3, $community_profile ],
             'esn.add_watch'                 => [ $u->watches( $self->comm ) ? 0 : 4,
-                                                "$LJ::SITEROOT/manage/circle/add.bml?user=$community_user&action=subscribe" ],
+                                                "$LJ::SITEROOT/manage/circle/add?user=$community_user&action=subscribe" ],
         }
     );
 }
@@ -97,7 +97,7 @@ sub comm {
 
 sub as_html {
     my $self = shift;
-    return sprintf("The user %s has <a href=\"$LJ::SITEROOT/manage/invites.bml\">invited you to join</a> the community %s.",
+    return sprintf("The user %s has <a href=\"$LJ::SITEROOT/manage/invites\">invited you to join</a> the community %s.",
                    $self->inviter->ljuser_display,
                    $self->comm->ljuser_display);
 }
@@ -107,7 +107,7 @@ sub as_html_actions {
 
     my $ret .= "<div class='actions'>";
     $ret .= " <a href='" . $self->comm->profile_url . "'>View Profile</a>";
-    $ret .= " <a href='$LJ::SITEROOT/manage/invites.bml'>Join Community</a>";
+    $ret .= " <a href='$LJ::SITEROOT/manage/invites'>Join Community</a>";
     $ret .= "</div>";
 
     return $ret;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/CommunityJoinRequest.pm
--- a/cgi-bin/LJ/Event/CommunityJoinRequest.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/CommunityJoinRequest.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -41,7 +41,7 @@ sub authurl {
 
 sub as_html {
     my $self = shift;
-    return sprintf("The user %s has <a href=\"$LJ::SITEROOT/community/pending.bml?authas=%s\">requested to join</a> the community %s.",
+    return sprintf("The user %s has <a href=\"$LJ::SITEROOT/community/pending?authas=%s\">requested to join</a> the community %s.",
                    $self->requestor->ljuser_display, $self->comm->user,
                    $self->comm->ljuser_display);
 }
@@ -51,7 +51,7 @@ sub as_html_actions {
 
     my $ret .= "<div class='actions'>";
     $ret .= " <a href='" . $self->requestor->profile_url . "'>View Profile</a>";
-    $ret .= " <a href='$LJ::SITEROOT/community/pending.bml?authas=" . $self->comm->user . "'>Manage Members</a>";
+    $ret .= " <a href='$LJ::SITEROOT/community/pending?authas=" . $self->comm->user . "'>Manage Members</a>";
     $ret .= "</div>";
 
     return $ret;
@@ -117,8 +117,8 @@ sub _as_email {
         {
             'esn.manage_request_approve'  => [ 1, $auth_url ],
             'esn.manage_request_reject'   => [ 2, $rej_url ],
-            'esn.manage_membership_reqs'  => [ 3, "$LJ::SITEROOT/community/pending.bml?authas=$communityname&jumpto=$user" ],
-            'esn.manage_community'        => [ 4, "$LJ::SITEROOT/community/manage.bml" ],
+            'esn.manage_membership_reqs'  => [ 3, "$LJ::SITEROOT/community/pending?authas=$communityname&jumpto=$user" ],
+            'esn.manage_community'        => [ 4, "$LJ::SITEROOT/community/manage" ],
         }
     );
 }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/InvitedFriendJoins.pm
--- a/cgi-bin/LJ/Event/InvitedFriendJoins.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/InvitedFriendJoins.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -62,11 +62,11 @@ sub _as_email {
     return LJ::Lang::get_text($lang, 'esn.invited_friend_joins.email', undef, $vars) .
         $self->format_options($is_html, $lang, $vars,
         {
-            'esn.add_trust'             => [ 1, "$LJ::SITEROOT/manage/circle/add.bml?user=$newusername&action=access" ],
-            'esn.add_watch'             => [ 2, "$LJ::SITEROOT/manage/circle/add.bml?user=$newusername&action=subscribe" ],
+            'esn.add_trust'             => [ 1, "$LJ::SITEROOT/manage/circle/add?user=$newusername&action=access" ],
+            'esn.add_watch'             => [ 2, "$LJ::SITEROOT/manage/circle/add?user=$newusername&action=subscribe" ],
             'esn.read_journal'          => [ 3, $newuser_url ],
             'esn.view_profile'          => [ 4, $newuser_profile ],
-            'esn.invite_another_friend' => [ 5, "$LJ::SITEROOT/manage/circle/invite.bml" ],
+            'esn.invite_another_friend' => [ 5, "$LJ::SITEROOT/manage/circle/invite" ],
         }
     );
 }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/JournalNewEntry.pm
--- a/cgi-bin/LJ/Event/JournalNewEntry.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/JournalNewEntry.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -231,11 +231,11 @@ sub _as_email {
                 'esn.read_recent_entries'   => [ $self->entry->journal->is_comm ? 2 : 0,
                                                     $journal_url ],
                 'esn.join_community'        => [ ($self->entry->journal->is_comm && !$u->member_of( $self->entry->journal )) ? 3 : 0,
-                                                    "$LJ::SITEROOT/community/join.bml?comm=$journal_user" ],
+                                                    "$LJ::SITEROOT/community/join?comm=$journal_user" ],
                 'esn.read_user_entries'     => [ ($self->entry->journal->is_comm) ? 0 : 4,
                                                     $journal_url ],
                 'esn.add_watch'             => [ $u->watches( $self->entry->journal ) ? 0 : 5,
-                                                    "$LJ::SITEROOT/manage/circle/add.bml?user=$journal_user&action=subscribe" ],
+                                                    "$LJ::SITEROOT/manage/circle/add?user=$journal_user&action=subscribe" ],
             });
 
     return $email;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/NewUserpic.pm
--- a/cgi-bin/LJ/Event/NewUserpic.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/NewUserpic.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -49,7 +49,7 @@ You can:
     unless ( $u->watches( $self->userpic->owner ) ) {
         $email .= "
   - Add $poster to your reading list:
-    $LJ::SITEROOT/manage/circle/add.bml?user=$poster&action=subscribe";
+    $LJ::SITEROOT/manage/circle/add?user=$poster&action=subscribe";
     }
 
 $email .= "
@@ -81,7 +81,7 @@ You can:<ul>";
 You can:<ul>";
 
     $email .= "<li><a href=\"$icons_url\">View all of $postername\'s userpics</a></li>";
-    $email .= "<li><a href=\"$LJ::SITEROOT/manage/circle/add.bml?user=$postername&action=subscribe\">Add $postername to your reading list</a></li>"
+    $email .= "<li><a href=\"$LJ::SITEROOT/manage/circle/add?user=$postername&action=subscribe\">Add $postername to your reading list</a></li>"
         unless $u->watches( $self->userpic->owner );
     $email .= "<li><a href=\"$journal_url\">View their journal</a></li>";
     $email .= "<li><a href=\"$profile\">View their profile</a></li></ul>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Event/RemovedFromCircle.pm
--- a/cgi-bin/LJ/Event/RemovedFromCircle.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Event/RemovedFromCircle.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -82,20 +82,20 @@ sub _as_email {
         return LJ::Lang::get_text( $lang, 'esn.removedfromcircle.trusted.email_text', undef, $vars ) .
             $self->format_options( $is_html, $lang, $vars,
             {
-                'esn.remove_trust'    => [ !$u->trusts( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add.bml?user=$postername" ],
-                'esn.post_entry'      => [ 2, "$LJ::SITEROOT/update.bml" ],
-                'esn.edit_friends'    => [ 3, "$LJ::SITEROOT/manage/circle/edit.bml" ],
-                'esn.edit_groups'     => [ 4, "$LJ::SITEROOT/manage/circle/editfilters.bml" ],
+                'esn.remove_trust'    => [ !$u->trusts( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add?user=$postername" ],
+                'esn.post_entry'      => [ 2, "$LJ::SITEROOT/update" ],
+                'esn.edit_friends'    => [ 3, "$LJ::SITEROOT/manage/circle/edit" ],
+                'esn.edit_groups'     => [ 4, "$LJ::SITEROOT/manage/circle/editfilters" ],
             }
         );
     } else { # watched
         return LJ::Lang::get_text( $lang, 'esn.removedfromcircle.watched.email_text', undef, $vars ) .
             $self->format_options( $is_html, $lang, $vars,
             {
-                'esn.remove_watch'    => [ !$u->watches( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add.bml?user=$postername" ],
-                'esn.post_entry'      => [ 2, "$LJ::SITEROOT/update.bml" ],
-                'esn.edit_friends'    => [ 3, "$LJ::SITEROOT/manage/circle/edit.bml" ],
-                'esn.edit_groups'     => [ 4, "$LJ::SITEROOT/manage/circle/editfilters.bml" ],
+                'esn.remove_watch'    => [ !$u->watches( $self->fromuser ) ? 0 : 1, "$LJ::SITEROOT/manage/circle/add?user=$postername" ],
+                'esn.post_entry'      => [ 2, "$LJ::SITEROOT/update" ],
+                'esn.edit_friends'    => [ 3, "$LJ::SITEROOT/manage/circle/edit" ],
+                'esn.edit_groups'     => [ 4, "$LJ::SITEROOT/manage/circle/editfilters" ],
             }
         );
     }
@@ -149,11 +149,11 @@ sub as_html_actions {
 
     my $ret .= "<div class='actions'>";
     if ( $self->trusted ) {
-        $ret .= "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=" . $fromuser->user . "'>Remove Access</a>"
+        $ret .= "<a href='$LJ::SITEROOT/manage/circle/add?user=" . $fromuser->user . "'>Remove Access</a>"
             if $u->trusts( $fromuser );
         $ret .= " <a href='" . $fromuser->profile_url . "'>View Profile</a>";
     } else { # watched
-        $ret .= "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=" . $fromuser->user . "'>Unsubscribe</a>"
+        $ret .= "<a href='$LJ::SITEROOT/manage/circle/add?user=" . $fromuser->user . "'>Unsubscribe</a>"
             if $u->watches( $fromuser );
         $ret .= " <a href='" . $fromuser->profile_url . "'>View Profile</a>";
     }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/M/ProfilePage.pm
--- a/cgi-bin/LJ/M/ProfilePage.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/M/ProfilePage.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -97,7 +97,7 @@ sub header_bar_links {
     my $label = $pm->{u}->is_community ? $BML::ML{'.monitor.comm2'} : $BML::ML{'.monitor.user'};
 
     my $user = $pm->{u}->user;
-    push @ret, "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=$user'><img src='$LJ::IMGPREFIX/silk/profile/subscription_add.png' width='16' height='16' alt='$label' title='$label' align='middle' border='0' /></a>";
+    push @ret, "<a href='$LJ::SITEROOT/manage/circle/add?user=$user'><img src='$LJ::IMGPREFIX/silk/profile/subscription_add.png' width='16' height='16' alt='$label' title='$label' align='middle' border='0' /></a>";
 
     my $remote = LJ::get_remote();
 
@@ -109,24 +109,24 @@ sub header_bar_links {
         }
 
         $label = LJ::ehtml($label);
-        push @ret, "<a href='$LJ::SITEROOT/update.bml?usejournal=$user'><img src='$LJ::IMGPREFIX/silk/profile/post.png' width='16' height='16' alt='$label' title='$label' align='middle' border='0' /></a>";
+        push @ret, "<a href='$LJ::SITEROOT/update?usejournal=$user'><img src='$LJ::IMGPREFIX/silk/profile/post.png' width='16' height='16' alt='$label' title='$label' align='middle' border='0' /></a>";
     }
 
     unless ($pm->{u}->is_identity || $pm->{u}->is_syndicated) {
         $label = LJ::ehtml($BML::ML{'.label.memories'});
-        push @ret, "<a href='$LJ::SITEROOT/tools/memories.bml?user=$user'><img src='$LJ::IMGPREFIX/silk/profile/memories.png' width='16' height='16' alt='$label' title='$label' align='middle' border='0' /></a>";
+        push @ret, "<a href='$LJ::SITEROOT/tools/memories?user=$user'><img src='$LJ::IMGPREFIX/silk/profile/memories.png' width='16' height='16' alt='$label' title='$label' align='middle' border='0' /></a>";
     }
 
      if ( LJ::is_enabled('tellafriend') && !$pm->{u}->is_identity ) {
-         push @ret, "<a href='$LJ::SITEROOT/tools/tellafriend.bml?user=$user'><img align='middle' hspace='2' vspace='2' src='$LJ::IMGPREFIX/silk/profile/tellafriend.png' width='16' height='16' alt='$BML::ML{'.tellafriend'}' title='$BML::ML{'.tellafriend'}' border='0' /></a>";
+         push @ret, "<a href='$LJ::SITEROOT/tools/tellafriend?user=$user'><img align='middle' hspace='2' vspace='2' src='$LJ::IMGPREFIX/silk/profile/tellafriend.png' width='16' height='16' alt='$BML::ML{'.tellafriend'}' title='$BML::ML{'.tellafriend'}' border='0' /></a>";
      }
 
      if ( LJ::is_enabled('offsite_journal_search') && $pm->has_journal ) {
-         push @ret, "<a href='$LJ::SITEROOT/tools/search.bml?journal=$user'><img align='middle' hspace='2' vspace='2' src='$LJ::IMGPREFIX/btn_search.gif' width='22' height='20' alt='$BML::ML{'.label.searchjournal'}' title='$BML::ML{'.label.searchjournal'}' border='0' /></a>";
+         push @ret, "<a href='$LJ::SITEROOT/tools/search?journal=$user'><img align='middle' hspace='2' vspace='2' src='$LJ::IMGPREFIX/btn_search.gif' width='22' height='20' alt='$BML::ML{'.label.searchjournal'}' title='$BML::ML{'.label.searchjournal'}' border='0' /></a>";
      }
 
      if ($remote && !$pm->{u}->is_syndicated && $remote->can_use_esn) {
-         push @ret, "<a href='$LJ::SITEROOT/manage/subscriptions/user.bml?journal=$user'>" .
+         push @ret, "<a href='$LJ::SITEROOT/manage/subscriptions/user?journal=$user'>" .
              LJ::img("track", "", { 'align' => 'middle' }) . "</a>";
      }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/MassPrivacy.pm
--- a/cgi-bin/LJ/MassPrivacy.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/MassPrivacy.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -128,7 +128,7 @@ sub handle {
               "been changed to be " . $privacy{$opts->{e_security}} . ".\n\n" .
               "If you made this change by mistake, or if you want to change " .
               "the security on more of your entries, you can do so at " .
-              "$LJ::SITEROOT/editprivacy.bml\n\n" .
+              "$LJ::SITEROOT/editprivacy\n\n" .
               "Thanks!\n\n" .
               "$LJ::SITENAME Team\n" .
               "$LJ::SITEROOT";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/OpenID.pm
--- a/cgi-bin/LJ/OpenID.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/OpenID.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -37,7 +37,7 @@ sub server {
                                     },
                                     is_trusted   => \&LJ::OpenID::is_trusted,
 
-                                    setup_url    => "$LJ::SITEROOT/openid/approve.bml",
+                                    setup_url    => "$LJ::SITEROOT/openid/approve",
 
                                     server_secret => \&LJ::OpenID::server_secret,
                                     secret_gen_interval => 3600,
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Poll.pm
--- a/cgi-bin/LJ/Poll.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Poll.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -1402,7 +1402,7 @@ sub process_submission {
     if ($poll->is_unique) {
         # make sure their email address is validated
         unless ($remote->is_validated) {
-            $$error = LJ::Lang::ml('poll.error.notvalidated2', { aopts => "href='$LJ::SITEROOT/register.bml'" });
+            $$error = LJ::Lang::ml('poll.error.notvalidated2', { aopts => "href='$LJ::SITEROOT/register'" });
             return 0;
         }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/S2.pm
--- a/cgi-bin/LJ/S2.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/S2.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -2021,7 +2021,7 @@ sub Page
             archive  => "$base_url/calendar",
             read     => "$base_url/read",
             tags     => "$base_url/tag",
-            memories => "$LJ::SITEROOT/tools/memories.bml?user=$u->{user}",
+            memories => "$LJ::SITEROOT/tools/memories?user=$u->{user}",
         },
         'linklist' => $linklist,
         'views_order' => [ 'recent', 'archive', 'read', 'tags', 'memories', 'userinfo' ],
@@ -2903,35 +2903,35 @@ sub _Comment__get_link
 
     if ($key eq "delete_comment") {
         return $null_link unless LJ::Talk::can_delete($remote, $u, $post_user, $com_user);
-        return LJ::S2::Link("$LJ::SITEROOT/delcomment.bml?journal=$u->{'user'}&amp;id=$this->{'talkid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/delcomment?journal=$u->{'user'}&amp;id=$this->{'talkid'}",
                             $ctx->[S2::PROPS]->{"text_multiform_opt_delete"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/delete.png", 16, 16));
     }
     if ($key eq "freeze_thread") {
         return $null_link if $this->{'frozen'};
         return $null_link unless LJ::Talk::can_freeze($remote, $u, $post_user, $com_user);
-        return LJ::S2::Link("$LJ::SITEROOT/talkscreen.bml?mode=freeze&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/talkscreen?mode=freeze&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
                             $ctx->[S2::PROPS]->{"text_multiform_opt_freeze"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/freeze.png", 16, 16));
     }
     if ($key eq "unfreeze_thread") {
         return $null_link unless $this->{'frozen'};
         return $null_link unless LJ::Talk::can_unfreeze($remote, $u, $post_user, $com_user);
-        return LJ::S2::Link("$LJ::SITEROOT/talkscreen.bml?mode=unfreeze&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/talkscreen?mode=unfreeze&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
                             $ctx->[S2::PROPS]->{"text_multiform_opt_unfreeze"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/unfreeze.png", 16, 16));
     }
     if ($key eq "screen_comment") {
         return $null_link if $this->{'screened'};
         return $null_link unless LJ::Talk::can_screen($remote, $u, $post_user, $com_user);
-        return LJ::S2::Link("$LJ::SITEROOT/talkscreen.bml?mode=screen&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/talkscreen?mode=screen&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
                             $ctx->[S2::PROPS]->{"text_multiform_opt_screen"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/screen.png", 16, 16));
     }
     if ($key eq "unscreen_comment") {
         return $null_link unless $this->{'screened'};
         return $null_link unless LJ::Talk::can_unscreen($remote, $u, $post_user, $com_user);
-        return LJ::S2::Link("$LJ::SITEROOT/talkscreen.bml?mode=unscreen&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/talkscreen?mode=unscreen&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
                             $ctx->[S2::PROPS]->{"text_multiform_opt_unscreen"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/unscreen.png", 16, 16));
     }
@@ -2940,7 +2940,7 @@ sub _Comment__get_link
     if ($key eq "unscreen_to_reply") {
         #return $null_link unless $this->{'screened'};
         #return $null_link unless LJ::Talk::can_unscreen($remote, $u, $post_user, $com_user);
-        return LJ::S2::Link("$LJ::SITEROOT/talkscreen.bml?mode=unscreen&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/talkscreen?mode=unscreen&amp;journal=$u->{'user'}&amp;talkid=$this->{'talkid'}",
                             $ctx->[S2::PROPS]->{"text_multiform_opt_unscreen_to_reply"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/comments/unscreen.png", 16, 16));
     }
@@ -2965,7 +2965,7 @@ sub _Comment__get_link
 
             my $etypeid = 'LJ::Event::JournalNewComment'->etypeid;
 
-            return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/comments.bml?journal=$u->{'user'}&amp;talkid=" . $comment->dtalkid,
+            return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/comments?journal=$u->{'user'}&amp;talkid=" . $comment->dtalkid,
                                 $ctx->[S2::PROPS]->{"text_multiform_opt_untrack"},
                                 LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/untrack.png", 16, 16, 'Untrack this',
                                               'lj_etypeid'    => $etypeid,
@@ -3020,12 +3020,12 @@ sub _Comment__get_link
         $btn_params{'id'}            = "lj_track_btn_" . $dtalkid;
 
         if ($key eq "watch_thread" && !$watching_parent) {
-            return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/comments.bml?journal=$u->{'user'}&amp;talkid=$dtalkid",
+            return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/comments?journal=$u->{'user'}&amp;talkid=$dtalkid",
                                 $ctx->[S2::PROPS]->{"text_multiform_opt_track"},
                                 LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/track.png", 16, 16, 'Track This', %btn_params));
         }
         if ($key eq "watching_parent" && $watching_parent) {
-            return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/comments.bml?journal=$u->{'user'}&amp;talkid=$dtalkid",
+            return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/comments?journal=$u->{'user'}&amp;talkid=$dtalkid",
                                 $ctx->[S2::PROPS]->{"text_multiform_opt_track"},
                                 LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/untrack.png", 16, 16, 'Untrack This', %btn_params));
         }
@@ -3511,13 +3511,13 @@ sub _Entry__get_link
         return $null_link unless $remote && ($remote->{'user'} eq $journal ||
                                         $remote->{'user'} eq $poster ||
                                         LJ::can_manage($remote, LJ::load_user($journal)));
-        return LJ::S2::Link("$LJ::SITEROOT/editjournal.bml?journal=$journal&amp;itemid=$this->{'itemid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/editjournal?journal=$journal&amp;itemid=$this->{'itemid'}",
                             $ctx->[S2::PROPS]->{"text_edit_entry"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/edit.png", 16, 16));
     }
     if ($key eq "edit_tags") {
         return $null_link unless $remote && LJ::Tags::can_add_tags(LJ::load_user($journal), $remote);
-        return LJ::S2::Link("$LJ::SITEROOT/edittags.bml?journal=$journal&amp;itemid=$this->{'itemid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/edittags?journal=$journal&amp;itemid=$this->{'itemid'}",
                             $ctx->[S2::PROPS]->{"text_edit_tags"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/tag_edit.png", 16, 16));
     }
@@ -3525,23 +3525,23 @@ sub _Entry__get_link
         return $null_link unless LJ::is_enabled('tellafriend');
         my $entry = LJ::Entry->new($journalu->{'userid'}, ditemid => $this->{'itemid'});
         return $null_link unless $entry->can_tellafriend($remote);
-        return LJ::S2::Link("$LJ::SITEROOT/tools/tellafriend.bml?journal=$journal&amp;itemid=$this->{'itemid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/tools/tellafriend?journal=$journal&amp;itemid=$this->{'itemid'}",
                             $ctx->[S2::PROPS]->{"text_tell_friend"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/tellafriend.png", 16, 16));
     }
     if ($key eq "mem_add") {
         return $null_link unless LJ::is_enabled('memories');
-        return LJ::S2::Link("$LJ::SITEROOT/tools/memadd.bml?journal=$journal&amp;itemid=$this->{'itemid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/tools/memadd?journal=$journal&amp;itemid=$this->{'itemid'}",
                             $ctx->[S2::PROPS]->{"text_mem_add"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/memories_add.png", 16, 16));
     }
     if ($key eq "nav_prev") {
-        return LJ::S2::Link("$LJ::SITEROOT/go.bml?journal=$journal&amp;itemid=$this->{'itemid'}&amp;dir=prev",
+        return LJ::S2::Link("$LJ::SITEROOT/go?journal=$journal&amp;itemid=$this->{'itemid'}&amp;dir=prev",
                             $ctx->[S2::PROPS]->{"text_entry_prev"},
                             LJ::S2::Image("$LJ::IMGPREFIX//silk/entry/previous.png", 16, 16));
     }
     if ($key eq "nav_next") {
-        return LJ::S2::Link("$LJ::SITEROOT/go.bml?journal=$journal&amp;itemid=$this->{'itemid'}&amp;dir=next",
+        return LJ::S2::Link("$LJ::SITEROOT/go?journal=$journal&amp;itemid=$this->{'itemid'}&amp;dir=next",
                             $ctx->[S2::PROPS]->{"text_entry_next"},
                             LJ::S2::Image("$LJ::IMGPREFIX//silk/entry/next.png", 16, 16));
     }
@@ -3588,7 +3588,7 @@ sub _Entry__get_link
                                                    arg1      => $this->{itemid},
                                                    );
 
-        return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/entry.bml?journal=$journal&amp;itemid=$this->{'itemid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/entry?journal=$journal&amp;itemid=$this->{'itemid'}",
                             $ctx->[S2::PROPS]->{"text_watch_comments"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/track.png", 16, 16, 'Track This',
                                           'lj_journalid'        => $journalu->id,
@@ -3618,7 +3618,7 @@ sub _Entry__get_link
                                                    subid  => $subscr->id,
                                                    action => 'delsub');
 
-        return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/entry.bml?journal=$journal&amp;itemid=$this->{'itemid'}",
+        return LJ::S2::Link("$LJ::SITEROOT/manage/subscriptions/entry?journal=$journal&amp;itemid=$this->{'itemid'}",
                             $ctx->[S2::PROPS]->{"text_unwatch_comments"},
                             LJ::S2::Image("$LJ::IMGPREFIX/silk/entry/untrack.png", 16, 16, 'Untrack this',
                                           'lj_journalid'        => $journalu->id,
@@ -3670,7 +3670,7 @@ sub EntryPage__print_multiform_start
 {
     my ($ctx, $this) = @_;
     return unless $this->{'multiform_on'};
-    $S2::pout->("<form style='display: inline' method='post' action='$LJ::SITEROOT/talkmulti.bml' name='multiform'>\n" .
+    $S2::pout->("<form style='display: inline' method='post' action='$LJ::SITEROOT/talkmulti' name='multiform'>\n" .
                 LJ::html_hidden("ditemid", $this->{'entry'}->{'itemid'},
                                 "journal", $this->{'entry'}->{'journal'}->{'username'}) . "\n");
 }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/S2/EntryPage.pm
--- a/cgi-bin/LJ/S2/EntryPage.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/S2/EntryPage.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -328,7 +328,7 @@ sub EntryPage
 
         $recurse->($recurse, $p->{'comments'});
 
-        my $js = "<script>\n// don't crawl this.  read http://www.livejournal.com/developer/exporting.bml\n";
+        my $js = "<script>\n// don't crawl this.  read http://www.livejournal.com/developer/exporting\n";
         $js .= "var LJ_cmtinfo = " . LJ::js_dumper($cmtinfo) . "\n";
         $js .= '</script>';
         $p->{'LJ_cmtinfo'} = $js if $opts->{'need_cmtinfo'};
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Session.pm
--- a/cgi-bin/LJ/Session.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Session.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -510,7 +510,7 @@ sub session_from_domain_cookie {
         my $reason = shift;
         my $rr = $opts->{redirect_ref};
         if ($rr) {
-            $$rr = "$LJ::SITEROOT/misc/get_domain_session.bml?return=" . LJ::eurl(_current_url());
+            $$rr = "$LJ::SITEROOT/misc/get_domain_session?return=" . LJ::eurl(_current_url());
         }
         return undef;
     };
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Bio.pm
--- a/cgi-bin/LJ/Setting/Bio.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Bio.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -22,7 +22,7 @@ sub as_html {
         $ret .= "<p class='detail'>" . $class->ml('.setting.bio.note') . "</p>";
     } else {
         $ret .= LJ::html_hidden("${key}bio_absent", 'yes');
-        $ret .= "<?p <?inerr " . LJ::Lang::ml('/manage/profile/index.bml.error.invalidbio', {'aopts' => "href='$LJ::SITEROOT/utf8convert.bml'"}) . " inerr?> p?>";
+        $ret .= "<?p <?inerr " . LJ::Lang::ml('/manage/profile/index.bml.error.invalidbio', {'aopts' => "href='$LJ::SITEROOT/utf8convert'"}) . " inerr?> p?>";
     }
     $ret .= $class->errdiv($errs, "bio");
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/AccountStatus.pm
--- a/cgi-bin/LJ/Setting/Display/AccountStatus.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/AccountStatus.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -25,11 +25,11 @@ sub actionlink {
     my ($class, $u) = @_;
 
     if ($u->is_deleted) {
-        return "<a href='$LJ::SITEROOT/accountstatus.bml?authas=" . $u->user . "'>" . $class->ml('setting.display.accountstatus.actionlink.undelete') . "</a>";
+        return "<a href='$LJ::SITEROOT/accountstatus?authas=" . $u->user . "'>" . $class->ml('setting.display.accountstatus.actionlink.undelete') . "</a>";
     } elsif ($u->is_suspended || $u->is_readonly) {
-        return $class->ml('setting.display.accountstatus.actionlink.contactabuse', { aopts => "href='$LJ::SITEROOT/abuse/report.bml'" });
+        return $class->ml('setting.display.accountstatus.actionlink.contactabuse', { aopts => "href='$LJ::SITEROOT/abuse/report'" });
     } elsif ($u->is_visible) {
-        return "<a href='$LJ::SITEROOT/accountstatus.bml?authas=" . $u->user . "'>" . $class->ml('setting.display.accountstatus.actionlink.delete') . "</a>";
+        return "<a href='$LJ::SITEROOT/accountstatus?authas=" . $u->user . "'>" . $class->ml('setting.display.accountstatus.actionlink.delete') . "</a>";
     }
 
     return "";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/BanUsers.pm
--- a/cgi-bin/LJ/Setting/Display/BanUsers.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/BanUsers.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -27,7 +27,7 @@ sub option {
     my $remote = LJ::get_remote();
     my $getextra = $remote && $remote->user ne $u->user ? "?authas=" . $u->user : "";
 
-    my $ret = "<a href='$LJ::SITEROOT/manage/banusers.bml$getextra'>";
+    my $ret = "<a href='$LJ::SITEROOT/manage/banusers$getextra'>";
     $ret .= $u->is_community ? $class->ml('setting.display.banusers.option.comm') : $class->ml('setting.display.banusers.option.self');
     $ret .= "</a>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/DomainMapping.pm
--- a/cgi-bin/LJ/Setting/Display/DomainMapping.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/DomainMapping.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -23,9 +23,9 @@ sub actionlink {
     my $upgrade_link = LJ::run_hook("upgrade_link", $u, "plus") || "";
 
     if ($u->get_cap('domainmap')) {
-        return "<a href='$LJ::SITEROOT/manage/domain.bml?authas=" . $u->user . "'>" . $class->ml('setting.display.domainmapping.actionlink') . "</a>";
+        return "<a href='$LJ::SITEROOT/manage/domain?authas=" . $u->user . "'>" . $class->ml('setting.display.domainmapping.actionlink') . "</a>";
     } elsif ($has_domain) {
-        return "<a href='$LJ::SITEROOT/manage/domain.bml?authas=" . $u->user . "'>" . $class->ml('setting.display.domainmapping.actionlink.remove') . "</a> $upgrade_link";
+        return "<a href='$LJ::SITEROOT/manage/domain?authas=" . $u->user . "'>" . $class->ml('setting.display.domainmapping.actionlink.remove') . "</a> $upgrade_link";
     } elsif ($upgrade_url) {
         return "<a href='$upgrade_url'>" . $class->ml('setting.display.domainmapping.actionlink') . "</a> $upgrade_link";
     }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/Email.pm
--- a/cgi-bin/LJ/Setting/Display/Email.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/Email.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -19,7 +19,7 @@ sub actionlink {
     my ($class, $u) = @_;
 
     my $text = $u->is_identity && !$u->email_raw ? $class->ml('setting.display.email.actionlink.set') : $class->ml('setting.display.email.actionlink.change');
-    return "<a href='$LJ::SITEROOT/changeemail.bml?authas=" . $u->user . "'>$text</a>";
+    return "<a href='$LJ::SITEROOT/changeemail?authas=" . $u->user . "'>$text</a>";
 }
 
 sub label {
@@ -38,7 +38,7 @@ sub option {
     } elsif ($u->email_status eq "A") {
         return "$email " . $class->ml('setting.display.email.option.validated');
     } else {
-        return "$email " . $class->ml('setting.display.email.option.notvalidated', { aopts => "href='$LJ::SITEROOT/register.bml?authas=" . $u->user . "'" });
+        return "$email " . $class->ml('setting.display.email.option.notvalidated', { aopts => "href='$LJ::SITEROOT/register?authas=" . $u->user . "'" });
     }
 }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/EmailPosts.pm
--- a/cgi-bin/LJ/Setting/Display/EmailPosts.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/EmailPosts.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -18,7 +18,7 @@ sub option {
 sub option {
     my ($class, $u, $errs, $args) = @_;
 
-    return "<a href='$LJ::SITEROOT/tools/recent_emailposts.bml'>" . $class->ml('setting.display.emailposts.option') . "</a>";
+    return "<a href='$LJ::SITEROOT/tools/recent_emailposts'>" . $class->ml('setting.display.emailposts.option') . "</a>";
 }
 
 1;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/Emails.pm
--- a/cgi-bin/LJ/Setting/Display/Emails.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/Emails.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -18,7 +18,7 @@ sub option {
 sub option {
     my ($class, $u, $errs, $args) = @_;
 
-    return "<a href='$LJ::SITEROOT/tools/emailmanage.bml'>" . $class->ml('setting.display.emails.option') . "</a>";
+    return "<a href='$LJ::SITEROOT/tools/emailmanage'>" . $class->ml('setting.display.emails.option') . "</a>";
 }
 
 1;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/Logins.pm
--- a/cgi-bin/LJ/Setting/Display/Logins.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/Logins.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -18,7 +18,7 @@ sub option {
 sub option {
     my ($class, $u, $errs, $args) = @_;
 
-    return "<a href='$LJ::SITEROOT/manage/logins.bml'>" . $class->ml('setting.display.logins.option') . "</a>";
+    return "<a href='$LJ::SITEROOT/manage/logins'>" . $class->ml('setting.display.logins.option') . "</a>";
 }
 
 1;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/Password.pm
--- a/cgi-bin/LJ/Setting/Display/Password.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/Password.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -18,7 +18,7 @@ sub actionlink {
 sub actionlink {
     my ($class, $u) = @_;
 
-    return "<a href='$LJ::SITEROOT/changepassword.bml'>" . $class->ml('setting.display.password.actionlink') . "</a>";
+    return "<a href='$LJ::SITEROOT/changepassword'>" . $class->ml('setting.display.password.actionlink') . "</a>";
 }
 
 sub label {
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/Display/Username.pm
--- a/cgi-bin/LJ/Setting/Display/Username.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/Display/Username.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -33,7 +33,7 @@ sub option {
     if ($u->is_identity) {
         return $u->display_username . " " . $class->ml('setting.display.username.option.openidusername', { user => $u->user });
     } else {
-        return $u->user . " <a href='$LJ::SITEROOT/misc/expunged_list.bml' class='smaller'>" . $class->ml('setting.display.username.option.list') . "</a>";
+        return $u->user . " <a href='$LJ::SITEROOT/misc/expunged_list' class='smaller'>" . $class->ml('setting.display.username.option.list') . "</a>";
     }
 }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Setting/EmailPosting.pm
--- a/cgi-bin/LJ/Setting/EmailPosting.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Setting/EmailPosting.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -33,7 +33,7 @@ sub option {
 
     my $pin = $class->get_arg($args, "emailposting_pin") || $u->prop("emailpost_pin");
 
-    my $ret .= "<p>" . $class->ml('setting.emailposting.option', { domain => $LJ::EMAIL_POST_DOMAIN, aopts => "href='$LJ::SITEROOT/manage/emailpost.bml?mode=help'" }) . " $upgrade_link</p>";
+    my $ret .= "<p>" . $class->ml('setting.emailposting.option', { domain => $LJ::EMAIL_POST_DOMAIN, aopts => "href='$LJ::SITEROOT/manage/emailpost?mode=help'" }) . " $upgrade_link</p>";
 
     $ret .= "<table class='setting_table' cellspacing='5' cellpadding='0'>";
 
@@ -76,7 +76,7 @@ sub option {
 
     if ($can_emailpost) {
         $ret .= "<tr><td>&nbsp;</td>";
-        $ret .= "<td><a href='$LJ::SITEROOT/manage/emailpost.bml'>" . $class->ml('setting.emailposting.option.advanced') . "</a></td></tr>";
+        $ret .= "<td><a href='$LJ::SITEROOT/manage/emailpost'>" . $class->ml('setting.emailposting.option.advanced') . "</a></td></tr>";
     }
 
     $ret .= "</table>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/User.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -2075,7 +2075,7 @@ sub profile_url {
 
     my $url;
     if ($u->{journaltype} eq "I") {
-        $url = "$LJ::SITEROOT/userinfo.bml?userid=$u->{'userid'}&t=I";
+        $url = "$LJ::SITEROOT/userinfo?userid=$u->{'userid'}&t=I";
         $url .= "&mode=full" if $opts{full};
     } else {
         $url = $u->journal_base . "/profile";
@@ -2360,7 +2360,7 @@ sub ljuser_display {
             $imgurl = $site->icon_url;
         }
 
-        my $profile = $profile_url ne '' ? $profile_url : "$LJ::SITEROOT/userinfo.bml?userid=$u->{userid}&amp;t=I$andfull";
+        my $profile = $profile_url ne '' ? $profile_url : "$LJ::SITEROOT/userinfo?userid=$u->{userid}&amp;t=I$andfull";
 
         return "<span $display_class lj:user='$name' style='white-space: nowrap;$strike'><a href='$profile'><img src='$imgurl' alt='[info - $type] ' width='$width' height='$height' style='vertical-align: bottom; border: 0; padding-right: 1px;' /></a><a href='$url' rel='nofollow'><b>$name</b></a></span>";
 
@@ -3238,8 +3238,8 @@ sub render_promo_of_community {
 
     my $blurb = $comm->prop('comm_promo_blurb') || '';
 
-    my $join_link = "$LJ::SITEROOT/community/join.bml?comm=$comm->{user}";
-    my $watch_link = "$LJ::SITEROOT/manage/circle/add.bml?user=$comm->{user}&action=subscribe";
+    my $join_link = "$LJ::SITEROOT/community/join?comm=$comm->{user}";
+    my $watch_link = "$LJ::SITEROOT/manage/circle/add?user=$comm->{user}&action=subscribe";
     my $read_link = $comm->journal_base;
 
     LJ::need_res("stc/lj_base.css");
@@ -4696,7 +4696,7 @@ sub message_url {
     croak "invalid user object passed" unless LJ::isu($u);
 
     return undef unless LJ::is_enabled('user_messaging');
-    return "$LJ::SITEROOT/inbox/compose.bml?user=$u->{'user'}";
+    return "$LJ::SITEROOT/inbox/compose?user=$u->{'user'}";
 }
 
 
@@ -6425,8 +6425,8 @@ sub ljuser
     # if invalid user, link to dummy userinfo page
     unless ($u && isu($u)) {
         $user = LJ::canonical_username($user);
-        $profile = "$LJ::SITEROOT/userinfo.bml?user=$user";
-        return $make_tag->('silk/identity/user.png', "$LJ::SITEROOT/userinfo.bml?user=$user", 17);
+        $profile = "$LJ::SITEROOT/userinfo?user=$user";
+        return $make_tag->('silk/identity/user.png', "$LJ::SITEROOT/userinfo?user=$user", 17);
     }
 
     $profile = $u->profile_url;
@@ -7752,7 +7752,7 @@ sub bad_password_redirect {
 
     return undef unless $remote->prop('badpassword');
 
-    my $redir = "$LJ::SITEROOT/changepassword.bml";
+    my $redir = "$LJ::SITEROOT/changepassword";
     unless (defined $opts->{'returl'}) {
         return BML::redirect($redir);
     } else {
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/AddQotD.pm
--- a/cgi-bin/LJ/Widget/AddQotD.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/AddQotD.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -61,7 +61,7 @@ sub render_body {
 
     # form entry
     my $ret =
-        "<?p (<a href='$LJ::SITEROOT/admin/qotd/manage.bml'>" . 
+        "<?p (<a href='$LJ::SITEROOT/admin/qotd/manage'>" . 
         "Manage questions</a>) p?>" . 
         "<?p Enter a new Question of the Day. p?>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/AddSiteMessages.pm
--- a/cgi-bin/LJ/Widget/AddSiteMessages.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/AddSiteMessages.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -47,7 +47,7 @@ sub render_body {
 
     # form entry
     my $ret =
-        "<?p (<a href='$LJ::SITEROOT/admin/sitemessages/manage.bml'>" . 
+        "<?p (<a href='$LJ::SITEROOT/admin/sitemessages/manage'>" . 
         "Manage site messages</a>) p?>" . 
         "<?p Enter a new site message. p?>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/Browse.pm
--- a/cgi-bin/LJ/Widget/Browse.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/Browse.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -24,13 +24,13 @@ sub render_body {
     $ret .= "<div class='browse-findby'>";
     $ret .= "<p><strong>" . $class->ml('widget.browse.findusers') . "</strong><br />";
     $ret .= "&raquo; <a href='$LJ::SITEROOT/schools/'>" . $class->ml('widget.browse.findusers.school') . "</a><br />";
-    $ret .= "&raquo; <a href='$LJ::SITEROOT/directory.bml'>" . $class->ml('widget.browse.findusers.location') . "</a></p>";
+    $ret .= "&raquo; <a href='$LJ::SITEROOT/directory'>" . $class->ml('widget.browse.findusers.location') . "</a></p>";
     $ret .= "</div>";
 
     $ret .= "<div class='browse-directorysearch'>";
     $ret .= "<p><strong>" . $class->ml('widget.browse.directorysearch') . "</strong><br />";
-    $ret .= "&raquo; <a href='$LJ::SITEROOT/directorysearch.bml'>" . $class->ml('widget.browse.directorysearch.users') . "</a><br />";
-    $ret .= "&raquo; <a href='$LJ::SITEROOT/community/search.bml'>" . $class->ml('widget.browse.directorysearch.communities') . "</a></p>";
+    $ret .= "&raquo; <a href='$LJ::SITEROOT/directorysearch'>" . $class->ml('widget.browse.directorysearch.users') . "</a><br />";
+    $ret .= "&raquo; <a href='$LJ::SITEROOT/community/search'>" . $class->ml('widget.browse.directorysearch.communities') . "</a></p>";
     $ret .= "</div>";
 
     $ret .= "</div>";
@@ -39,7 +39,7 @@ sub render_body {
     $ret .= "<div class='browse-extras'>";
     $ret .= "<div class='browse-randomuser'>";
     $ret .= "<img src='$LJ::IMGPREFIX/explore/randomuser.jpg' alt='' />";
-    $ret .= "<p><a href='$LJ::SITEROOT/random.bml'><strong>" . $class->ml('widget.browse.extras.random') . "</strong></a><br />";
+    $ret .= "<p><a href='$LJ::SITEROOT/random'><strong>" . $class->ml('widget.browse.extras.random') . "</strong></a><br />";
     $ret .= $class->ml('widget.browse.extras.random.desc') . "</p>";
     $ret .= "</div>";
     $ret .= LJ::run_hook('browse_widget_extras');
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CreateAccount.pm
--- a/cgi-bin/LJ/Widget/CreateAccount.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccount.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -299,8 +299,8 @@ sub render_body {
         $ret .= " <label for='create_tos' class='text'>";
         $ret .= $class->ml( 'widget.createaccount.field.tos', {
             sitename => $LJ::SITENAMESHORT,
-            aopts1 => "href='$LJ::SITEROOT/legal/tos.bml' target='_new'",
-            aopts2 => "href='$LJ::SITEROOT/legal/privacy.bml' target='_new'",
+            aopts1 => "href='$LJ::SITEROOT/legal/tos' target='_new'",
+            aopts2 => "href='$LJ::SITEROOT/legal/privacy' target='_new'",
         } );
         $ret .= "</label>";
         $ret .= $error_msg->( 'tos', '<span class="formitemFlag">', '</span><br />' );
@@ -392,7 +392,7 @@ sub handle_post {
             my $r = DW::Request->get;
             my $args = $r->query_string;
             my $querysep = $args ? "?" : "";
-            my $uri = "$LJ::SITEROOT/create.bml" . $querysep . $args;
+            my $uri = "$LJ::SITEROOT/create" . $querysep . $args;
             return BML::redirect( $uri );
         }
     }
@@ -515,13 +515,13 @@ sub handle_post {
             username => $nu->user,
             siteroot => $LJ::SITEROOT,
             sitenameshort => $LJ::SITENAMESHORT,
-            lostinfourl => "$LJ::SITEROOT/lostinfo.bml",
+            lostinfourl => "$LJ::SITEROOT/lostinfo",
             editprofileurl => "$LJ::SITEROOT/manage/profile/",
-            searchinterestsurl => "$LJ::SITEROOT/interests.bml",
-            editpicsurl => "$LJ::SITEROOT/editpics.bml",
+            searchinterestsurl => "$LJ::SITEROOT/interests",
+            editpicsurl => "$LJ::SITEROOT/editpics",
             customizeurl => "$LJ::SITEROOT/customize/",
-            postentryurl => "$LJ::SITEROOT/update.bml",
-            setsecreturl => "$LJ::SITEROOT/set_secret.bml",
+            postentryurl => "$LJ::SITEROOT/update",
+            setsecreturl => "$LJ::SITEROOT/set_secret",
             LJ::run_hook('extra_fields_in_postreg_esn'),
         });
 
@@ -567,7 +567,7 @@ sub handle_post {
         $redirect = LJ::run_hook('rewrite_redirect_after_create', $nu);
         return BML::redirect($redirect) if $redirect;
 
-        return BML::redirect( "$LJ::SITEROOT/create/setup.bml" );
+        return BML::redirect( "$LJ::SITEROOT/create/setup" );
     }
 
     return %from_post;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CreateAccountEnterCode.pm
--- a/cgi-bin/LJ/Widget/CreateAccountEnterCode.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccountEnterCode.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -54,7 +54,7 @@ sub render_body {
 
     $ret .= "<p>" . $class->ml( 'widget.createaccountentercode.info' ) . "</p>";
 
-    $ret .= "<form method='get' action='$LJ::SITEROOT/create.bml'>";
+    $ret .= "<form method='get' action='$LJ::SITEROOT/create'>";
     $ret .= "<?standout " . $class->ml( 'widget.createaccountentercode.code' ) . " ";
     $ret .= LJ::html_text( {
         name => 'code',
@@ -72,8 +72,8 @@ sub render_body {
         $ret .= "<p style='margin-top: 10px;'>";
         $ret .= $class->ml( 'widget.createaccountentercode.pay', { aopts => "href='$LJ::SITEROOT/shop/account?for=new'", sitename => $LJ::SITENAMESHORT } );
         my $remote = LJ::get_remote(); 
-        $ret .= " " . $class->ml( 'widget.createaccountentercode.comm', { aopts => "href='$LJ::SITEROOT/community/create.bml'" } );
-        $ret .= " " . $class->ml( 'widget.createaccountentercode.comm.loggedout', { aopts => "href='$LJ::SITEROOT/community/create.bml'" } ) unless $remote;
+        $ret .= " " . $class->ml( 'widget.createaccountentercode.comm', { aopts => "href='$LJ::SITEROOT/community/create'" } );
+        $ret .= " " . $class->ml( 'widget.createaccountentercode.comm.loggedout', { aopts => "href='$LJ::SITEROOT/community/create'" } ) unless $remote;
         
         $ret .= "</p>";
     }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CreateAccountNextSteps.pm
--- a/cgi-bin/LJ/Widget/CreateAccountNextSteps.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccountNextSteps.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -16,9 +16,9 @@ sub render_body {
 
     $ret .= "<table cellspacing='0' cellpadding='0'>";
     $ret .= "<tr valign='top'><td><ul>";
-    $ret .= "<li><a href='$LJ::SITEROOT/update.bml'>" . $class->ml('widget.createaccountnextsteps.steps.post') . "</a></li>";
-    $ret .= "<li><a href='$LJ::SITEROOT/editpics.bml'>" . $class->ml('widget.createaccountnextsteps.steps.userpics') . "</a></li>";
-    $ret .= "<li><a href='$LJ::SITEROOT/interests.bml'>" . $class->ml('widget.createaccountnextsteps.steps.find') . "</a></li>";
+    $ret .= "<li><a href='$LJ::SITEROOT/update'>" . $class->ml('widget.createaccountnextsteps.steps.post') . "</a></li>";
+    $ret .= "<li><a href='$LJ::SITEROOT/editpics'>" . $class->ml('widget.createaccountnextsteps.steps.userpics') . "</a></li>";
+    $ret .= "<li><a href='$LJ::SITEROOT/interests'>" . $class->ml('widget.createaccountnextsteps.steps.find') . "</a></li>";
     $ret .= "</ul></td><td><ul>";
     $ret .= "<li><a href='$LJ::SITEROOT/customize/'>" . $class->ml('widget.createaccountnextsteps.steps.customize') . "</a></li>";
     $ret .= "<li><a href='$LJ::SITEROOT/manage/profile/'>" . $class->ml('widget.createaccountnextsteps.steps.profile') . "</a></li>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CreateAccountProfile.pm
--- a/cgi-bin/LJ/Widget/CreateAccountProfile.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccountProfile.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -39,7 +39,7 @@ sub render_body {
         );
     } else {
         $ret .= $class->html_hidden( name_absent => "yes" );
-        $ret .= "<?inerr " . LJ::Lang::ml('/manage/profile/index.bml.error.invalidname2', { aopts => "href='$LJ::SITEROOT/utf8convert.bml'" }) . " inerr?>";
+        $ret .= "<?inerr " . LJ::Lang::ml('/manage/profile/index.bml.error.invalidname2', { aopts => "href='$LJ::SITEROOT/utf8convert'" }) . " inerr?>";
     }
     $ret .= $error_msg->('name', '<br /><span class="formitemFlag">', '</span>');
     $ret .= "</td></tr>\n";
@@ -151,7 +151,7 @@ sub render_body {
         );
     } else {
         $ret .= $class->html_hidden( bio_absent => "yes" );
-        $ret .= "<?inerr " . LJ::Lang::ml('/manage/profile/index.bml.error.invalidbio', { aopts => "href='$LJ::SITEROOT/utf8convert.bml'" }) . " inerr?>";
+        $ret .= "<?inerr " . LJ::Lang::ml('/manage/profile/index.bml.error.invalidbio', { aopts => "href='$LJ::SITEROOT/utf8convert'" }) . " inerr?>";
     }
     $ret .= $error_msg->('bio', '<br /><span class="formitemFlag">', '</span>');
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CreateAccountTheme.pm
--- a/cgi-bin/LJ/Widget/CreateAccountTheme.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccountTheme.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -32,7 +32,7 @@ sub render_body {
         $ret .= "<td class='theme-box'>";
         $ret .= "<div class='theme-box-inner'>";
         $ret .= "<label for='theme_$image_class'><img src='" . $theme->preview_imgurl . "' width='90' height='68' class='theme-image' alt='$name' title='$name' /></label><br />";
-        $ret .= "<a href='$LJ::SITEROOT/customize/preview_redirect.bml?themeid=" . $theme->themeid . "' target='_blank' onclick='window.open(href, \"theme_preview\", \"resizable=yes,status=yes,toolbar=no,location=no,menubar=no,scrollbars=yes\"); return false;' class='theme-preview-link' title='" . $class->ml('widget.createaccounttheme.preview') . "'>";
+        $ret .= "<a href='$LJ::SITEROOT/customize/preview_redirect?themeid=" . $theme->themeid . "' target='_blank' onclick='window.open(href, \"theme_preview\", \"resizable=yes,status=yes,toolbar=no,location=no,menubar=no,scrollbars=yes\"); return false;' class='theme-preview-link' title='" . $class->ml('widget.createaccounttheme.preview') . "'>";
         $ret .= "<img src='$LJ::IMGPREFIX/customize/preview-theme.gif' class='theme-preview-image' /></a>";
         $ret .= $class->html_check(
             name => 'theme',
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CreateAccountUpgrade.pm
--- a/cgi-bin/LJ/Widget/CreateAccountUpgrade.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CreateAccountUpgrade.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -31,7 +31,7 @@ sub render_body {
     $ret .= $class->start_form;
     $ret .= $class->html_submit( submit => $class->ml( 'widget.createaccountupgrade.btn.purchase' ) );
     $ret .= $class->end_form;
-    $ret .= "<p style='margin-top: 10px;'><a href='$LJ::SITEROOT/create/confirm.bml'>" . $class->ml( 'widget.createaccountupgrade.nextstep' ) . "</a></p>";
+    $ret .= "<p style='margin-top: 10px;'><a href='$LJ::SITEROOT/create/confirm'>" . $class->ml( 'widget.createaccountupgrade.nextstep' ) . "</a></p>";
 
     return $ret;
 }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CurrentTheme.pm
--- a/cgi-bin/LJ/Widget/CurrentTheme.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CurrentTheme.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -57,15 +57,15 @@ sub render_body {
     if ($no_theme_chooser) {
         $ret .= "<li><a href='$LJ::SITEROOT/customize/$getextra'>" . $class->ml('widget.currenttheme.options.newtheme') . "</a></li>";
     } else {
-        $ret .= "<li><a href='$LJ::SITEROOT/customize/options.bml$getextra'>" . $class->ml('widget.currenttheme.options.change') . "</a></li>";
+        $ret .= "<li><a href='$LJ::SITEROOT/customize/options$getextra'>" . $class->ml('widget.currenttheme.options.change') . "</a></li>";
     }
     if (! $no_layer_edit && $theme->is_custom && $theme->available_to($u)) {
         $ret .= "<li><a href='$LJ::SITEROOT/customize/advanced'>" . $class->ml( 'widget.currenttheme.options.advancedcust' ) . "</a></li>";
         if ($theme->layoutid && !$theme->layout_uniq) {
-            $ret .= "<li><a href='$LJ::SITEROOT/customize/advanced/layeredit.bml?id=" . $theme->layoutid . "'>" . $class->ml('widget.currenttheme.options.editlayoutlayer') . "</a></li>";
+            $ret .= "<li><a href='$LJ::SITEROOT/customize/advanced/layeredit?id=" . $theme->layoutid . "'>" . $class->ml('widget.currenttheme.options.editlayoutlayer') . "</a></li>";
         }
         if ($theme->themeid && !$theme->uniq) {
-            $ret .= "<li><a href='$LJ::SITEROOT/customize/advanced/layeredit.bml?id=" . $theme->themeid . "'>" . $class->ml('widget.currenttheme.options.editthemelayer') . "</a></li>";
+            $ret .= "<li><a href='$LJ::SITEROOT/customize/advanced/layeredit?id=" . $theme->themeid . "'>" . $class->ml('widget.currenttheme.options.editthemelayer') . "</a></li>";
         }
     }
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/CustomizeTheme.pm
--- a/cgi-bin/LJ/Widget/CustomizeTheme.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/CustomizeTheme.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -57,7 +57,7 @@ sub render_body {
     ### Navigation ###
 
     $ret .= "<ul class='customize-nav nostyle' id='customize_theme_nav_links'>";
-    $ret .= "<li" . $nav_class->("display") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options.bml$getextra'>" . $class->ml('widget.customizetheme.nav.display') . "</a>";
+    $ret .= "<li" . $nav_class->("display") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options$getextra'>" . $class->ml('widget.customizetheme.nav.display') . "</a>";
     $ret .= "<ul>";
     $ret .= "<li>" . $class->ml('widget.customizetheme.nav.display.moodthemes') . "</li>";
     $ret .= "<li>" . $class->ml('widget.customizetheme.nav.display.navstrip') . "</li>";
@@ -82,7 +82,7 @@ sub render_body {
     }
 
     if ($print_style_header) {
-        $ret .= "<li" . $nav_class->("style") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options.bml$getextra${getsep}group=style'>" . $class->ml('widget.customizetheme.nav.style') . "</a>";
+        $ret .= "<li" . $nav_class->("style") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options$getextra${getsep}group=style'>" . $class->ml('widget.customizetheme.nav.style') . "</a>";
         $ret .= "<ul>";
 
         foreach my $g (@style_groups_order) {
@@ -102,14 +102,14 @@ sub render_body {
         next if $g eq "customcss";
 
         my $name = LJ::Customize->propgroup_name($g, $u, $style);
-        $ret .= "<li" . $nav_class->($g) . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options.bml$getextra${getsep}group=$g'>$name</a></li>";
+        $ret .= "<li" . $nav_class->($g) . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options$getextra${getsep}group=$g'>$name</a></li>";
     }
 
-    $ret .= "<li" . $nav_class->("linkslist") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options.bml$getextra${getsep}group=linkslist'>" . $class->ml('widget.customizetheme.nav.linkslist') . "</a></li>";
+    $ret .= "<li" . $nav_class->("linkslist") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options$getextra${getsep}group=linkslist'>" . $class->ml('widget.customizetheme.nav.linkslist') . "</a></li>";
 
     if ($has_group{customcss}) {
         my $name = LJ::Customize->propgroup_name("customcss", $u, $style);
-        $ret .= "<li" . $nav_class->("customcss") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options.bml$getextra${getsep}group=customcss'>$name</a></li>";
+        $ret .= "<li" . $nav_class->("customcss") . "><a class='customize-nav-group' href='$LJ::SITEROOT/customize/options$getextra${getsep}group=customcss'>$name</a></li>";
     }
 
     $ret .= "</ul>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/Feeds.pm
--- a/cgi-bin/LJ/Widget/Feeds.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/Feeds.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -15,7 +15,7 @@ sub render_body {
     my $cart = $get->{'cart'} || $BML::COOKIE{cart};
     my $body;
     $body .= "<h2 class='solid-neutral'>" . $class->ml('widget.feeds.title') . "</h2>";
-    $body .= "<a href='$LJ::SITEROOT/syn/list.bml' class='more-link'>" .
+    $body .= "<a href='$LJ::SITEROOT/syn/list' class='more-link'>" .
              $class->ml('widget.feeds.viewall') . "</a>";
 
     # get user IDs of most popular feeds
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/InboxFolderNav.pm
--- a/cgi-bin/LJ/Widget/InboxFolderNav.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/InboxFolderNav.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -45,7 +45,7 @@ sub render_body {
     my $unread_usermsg_sent = $unread_html->($inbox->usermsg_sent_event_count);
     my $message_button = "";
     $message_button = qq{
-        <form action="./compose.bml" method="GET">
+        <form action="./compose" method="GET">
         <input type="submit" value="<?_ml inbox.menu.new_message.btn _ml?>" style="width: 100%">
         </form>} if LJ::is_enabled('user_messaging');
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/Login.pm
--- a/cgi-bin/LJ/Widget/Login.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/Login.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -33,7 +33,7 @@ sub render_body {
     my $root = $LJ::IS_SSL ? $LJ::SSLROOT : $LJ::SITEROOT;
     my $form_class = LJ::run_hook("login_form_class_name_$opts{mode}");
     $form_class = "lj_login_form pkg" unless $form_class;
-    $ret .= "<form action='$root/login.bml$getextra' method='post' class='$form_class'>\n";
+    $ret .= "<form action='$root/login$getextra' method='post' class='$form_class'>\n";
     $ret .= LJ::form_auth();
 
     my $chal = LJ::challenge_generate(300); # 5 minute auth token
@@ -66,14 +66,14 @@ sub render_body {
         $ret .= "</fieldset>\n";
         $ret .= "<fieldset class='pkg nostyle'>\n";
         $ret .= "<label for='lj_loginwidget_password' class='left'>" . LJ::Lang::ml('/login.bml.login.password') . "</label>\n";
-        $ret .= "<input type='password' id='lj_loginwidget_password' name='password' class='lj_login_password text' size='20' maxlength='30' /><a href='$LJ::SITEROOT/lostinfo.bml' class='small-link'>" . LJ::Lang::ml('/login.bml.login.forget2') . "</a>\n";
+        $ret .= "<input type='password' id='lj_loginwidget_password' name='password' class='lj_login_password text' size='20' maxlength='30' /><a href='$LJ::SITEROOT/lostinfo' class='small-link'>" . LJ::Lang::ml('/login.bml.login.forget2') . "</a>\n";
         $ret .= "</fieldset>\n";
         $ret .= "<p><input type='checkbox' name='remember_me' id='remember_me' value='1' tabindex='4' /> <label for='remember_me'>Remember me</label></p>";
 
         # standard/secure links removed for now
         my $secure = "<p>";
         $secure .= "<img src='$LJ::IMGPREFIX/padlocked.gif' class='secure-image' width='20' height='16' alt='secure login' />";
-        $secure .= LJ::Lang::ml('/login.bml.login.secure') . " | <a href='$LJ::SITEROOT/login.bml?nojs=1'>" . LJ::Lang::ml('/login.bml.login.standard') . "</a></p>";
+        $secure .= LJ::Lang::ml('/login.bml.login.secure') . " | <a href='$LJ::SITEROOT/login?nojs=1'>" . LJ::Lang::ml('/login.bml.login.standard') . "</a></p>";
 
         $ret .= "<p><input name='action:login' type='submit' value='" . LJ::Lang::ml('/login.bml.login.btn.login') . "' /> <a href='$LJ::SITEROOT/openid/' class='small-link'>" . LJ::Lang::ml('/login.bml.login.openid') . "</a></p>";
 
@@ -86,18 +86,18 @@ sub render_body {
                 # noscript to SSL
                 $ret .= "<script type='text/javascript' language='Javascript'>\n";
                 $ret .= "<!-- \n document.write(\"<p style='padding-bottom: 5px'><img src='$LJ::IMGPREFIX/unpadlocked.gif' width='20' height='16' alt='secure login' align='middle' />" .
-                    LJ::ejs(" <a href='$LJ::SITEROOT/login.bml'>" . LJ::Lang::ml('/login.bml.login.secure') . "</a> | " . LJ::Lang::ml('/login.bml.login.standard') . "</p>") .
+                    LJ::ejs(" <a href='$LJ::SITEROOT/login'>" . LJ::Lang::ml('/login.bml.login.secure') . "</a> | " . LJ::Lang::ml('/login.bml.login.standard') . "</p>") .
                     "\"); \n // -->\n </script>\n";
                 if ($LJ::USE_SSL) {
                     $ret .= "<noscript>";
-                    $ret .= "<p style='padding-bottom: 5px'><img src='$LJ::IMGPREFIX/unpadlocked.gif' width='20' height='16' alt='secure login' align='middle' /> <a href='$LJ::SSLROOT/login.bml'>" . LJ::Lang::ml('/login.bml.login.secure') . "</a> | " . LJ::Lang::ml('/login.bml.login.standard') . "</p>";
+                    $ret .= "<p style='padding-bottom: 5px'><img src='$LJ::IMGPREFIX/unpadlocked.gif' width='20' height='16' alt='secure login' align='middle' /> <a href='$LJ::SSLROOT/login'>" . LJ::Lang::ml('/login.bml.login.secure') . "</a> | " . LJ::Lang::ml('/login.bml.login.standard') . "</p>";
                     $ret .= "</noscript>";
                 }
             } else {
                 # insecure now, and not because it was forced, so javascript doesn't work.
                 # only way to get to secure now is via SSL, so link there
                 $ret .= "<p><img src='$LJ::IMGPREFIX/unpadlocked.gif' width='20' height='16' class='secure-image' alt='secure login' />";
-                $ret .= " <a href='$LJ::SSLROOT/login.bml'>" . LJ::Lang::ml('/login.bml.login.secure') . "</a> | " . LJ::Lang::ml('/login.bml.login.standard') . "</p>\n"
+                $ret .= " <a href='$LJ::SSLROOT/login'>" . LJ::Lang::ml('/login.bml.login.secure') . "</a> | " . LJ::Lang::ml('/login.bml.login.standard') . "</p>\n"
                     if $LJ::USE_SSL;
 
             }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/ManageQotD.pm
--- a/cgi-bin/LJ/Widget/ManageQotD.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/ManageQotD.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -26,7 +26,7 @@ sub render_body {
         $month = $time[4]+1;
     }
 
-    $ret .= "<?p (<a href='$LJ::SITEROOT/admin/qotd/add.bml'>Add a question</a>) p?>";
+    $ret .= "<?p (<a href='$LJ::SITEROOT/admin/qotd/add'>Add a question</a>) p?>";
     $ret .= "<?p Select a month to view all questions that are starting and running during that month. p?>";
 
     # TODO: supported way for widgets to do GET forms?
@@ -122,7 +122,7 @@ sub table_display {
         $ret .= "<td>" . $start_date->strftime("%F %r %Z")  . "</td>";
         $ret .= "<td>" . $end_date->strftime("%F %r %Z")  . "</td>";
         $ret .= $class->get_active_text($row->{qid}, $row->{active});
-        $ret .= "<td>(<a href='$LJ::SITEROOT/admin/qotd/add.bml?qid=$row->{qid}'>edit</a>)</td>";
+        $ret .= "<td>(<a href='$LJ::SITEROOT/admin/qotd/add?qid=$row->{qid}'>edit</a>)</td>";
         $ret .= "</tr>";
     }
     $ret .= "</table>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/ManageSiteMessages.pm
--- a/cgi-bin/LJ/Widget/ManageSiteMessages.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/ManageSiteMessages.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -26,7 +26,7 @@ sub render_body {
         $month = $time[4]+1;
     }
 
-    $ret .= "<?p (<a href='$LJ::SITEROOT/admin/sitemessages/add.bml'>Add a site message</a>) p?>";
+    $ret .= "<?p (<a href='$LJ::SITEROOT/admin/sitemessages/add'>Add a site message</a>) p?>";
     $ret .= "<?p Select a month to view all messages that started during that month. p?>";
 
     # TODO: supported way for widgets to do GET forms?
@@ -55,7 +55,7 @@ sub render_body {
         $ret .= "<td>" . $start_date->strftime("%F %r %Z")  . "</td>";
         $ret .= "<td>" . $end_date->strftime("%F %r %Z")  . "</td>";
         $ret .= $class->get_active_text($row->{mid}, $row->{active});
-        $ret .= "<td>(<a href='$LJ::SITEROOT/admin/sitemessages/add.bml?mid=$row->{mid}'>edit</a>)</td>";
+        $ret .= "<td>(<a href='$LJ::SITEROOT/admin/sitemessages/add?mid=$row->{mid}'>edit</a>)</td>";
         $ret .= "</tr>";
     }
     $ret .= "</table>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/MoodThemeChooser.pm
--- a/cgi-bin/LJ/Widget/MoodThemeChooser.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/MoodThemeChooser.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -45,8 +45,8 @@ sub render_body {
 
     my $journalarg = $getextra ? "?journal=" . $u->user : "";
     $ret .= "<ul class='moodtheme-links nostyle'>";
-    $ret .= "<li><a href='$LJ::SITEROOT/moodlist.bml$journalarg'>" . $class->ml('widget.moodthemechooser.links.allthemes') . "</a></li>";
-    $ret .= "<li><a href='$LJ::SITEROOT/manage/moodthemes.bml$getextra'>" . $class->ml('widget.moodthemechooser.links.customthemes') . "</a></li>";
+    $ret .= "<li><a href='$LJ::SITEROOT/moodlist$journalarg'>" . $class->ml('widget.moodthemechooser.links.allthemes') . "</a></li>";
+    $ret .= "<li><a href='$LJ::SITEROOT/manage/moodthemes$getextra'>" . $class->ml('widget.moodthemechooser.links.customthemes') . "</a></li>";
     $ret .= "</ul>";
     $ret .= "</div>";
 
@@ -76,7 +76,7 @@ sub render_body {
         } else {
             $ret .= "<td>";
         }
-        $ret .= "<p><a href='$LJ::SITEROOT/moodlist.bml?moodtheme=$preview_moodthemeid'>" . $class->ml('widget.moodthemechooser.viewtheme') . "</a></p>";
+        $ret .= "<p><a href='$LJ::SITEROOT/moodlist?moodtheme=$preview_moodthemeid'>" . $class->ml('widget.moodthemechooser.viewtheme') . "</a></p>";
         $ret .= "</td></tr></table>";
         my $mood_des = LJ::mood_theme_des($preview_moodthemeid);
         LJ::CleanHTML::clean (\$mood_des);
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/PopularInterests.pm
--- a/cgi-bin/LJ/Widget/PopularInterests.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/PopularInterests.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -29,14 +29,14 @@ sub render_body {
         $interests{$int} = {
                             int   => $int,
                             eint  => LJ::ehtml($int),
-                            url   => "/interests.bml?int=" . LJ::eurl($int),
+                            url   => "/interests?int=" . LJ::eurl($int),
                             value => $count,
                             };
     }
 
     $body .= "<p>" . LJ::tag_cloud(\%interests, {'font_size_range' => 16}) . "</p>";
 
-    $body .= "<p class='viewall'>&raquo; <a href='$LJ::SITEROOT/interests.bml?view=popular'>" .
+    $body .= "<p class='viewall'>&raquo; <a href='$LJ::SITEROOT/interests?view=popular'>" .
              $class->ml('widget.popularinterests.viewall') . "</a></p>";
 
     return $body;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/QotD.pm
--- a/cgi-bin/LJ/Widget/QotD.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/QotD.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -112,7 +112,7 @@ sub qotd_display_embed {
             my $between_text = $from_text && $extra_text ? "<br />" : "";
 
             my $qid = $q->{qid};
-            my $answers_link = "<a href=\"$LJ::SITEROOT/misc/latestqotd.bml?qid=$qid\">" . $class->ml('widget.qotd.view.other.answers') . "</a>";
+            my $answers_link = "<a href=\"$LJ::SITEROOT/misc/latestqotd?qid=$qid\">" . $class->ml('widget.qotd.view.other.answers') . "</a>";
 
             my $answer_link = "";
             unless ($opts{no_answer_link}) {
@@ -144,7 +144,7 @@ sub qotd_display_archive {
         LJ::CleanHTML::clean_event(\$text);
 
         my $qid = $q->{qid};
-        my $answers_link = "<a href='$LJ::SITEROOT/misc/latestqotd.bml?qid=$qid'>" . $class->ml('widget.qotd.viewanswers') . "</a>";
+        my $answers_link = "<a href='$LJ::SITEROOT/misc/latestqotd?qid=$qid'>" . $class->ml('widget.qotd.viewanswers') . "</a>";
 
         my $answer_link = "";
         unless ($opts{no_answer_link}) {
@@ -193,9 +193,9 @@ sub qotd_display {
             $ret .= "<table><tr><td>";
             my $viewanswers;
             if ($opts{small_view_link}) {
-                $viewanswers .= " <a class='small-view-link' href=\"$LJ::SITEROOT/misc/latestqotd.bml?qid=$q->{qid}\">" . $class->ml('widget.qotd.view.more') . "</a>";
+                $viewanswers .= " <a class='small-view-link' href=\"$LJ::SITEROOT/misc/latestqotd?qid=$q->{qid}\">" . $class->ml('widget.qotd.view.more') . "</a>";
             } else {
-                $viewanswers .= " <br /><a href=\"$LJ::SITEROOT/misc/latestqotd.bml?qid=$q->{qid}\">" . $class->ml('widget.qotd.viewanswers') . "</a>";
+                $viewanswers .= " <br /><a href=\"$LJ::SITEROOT/misc/latestqotd?qid=$q->{qid}\">" . $class->ml('widget.qotd.viewanswers') . "</a>";
             }
 
             $ret .= $text;
@@ -212,8 +212,8 @@ sub qotd_display {
             }
             $ret .= "</td></tr></table>";
 
-            my $archive = "<a href='$LJ::SITEROOT/misc/qotdarchive.bml'>" . $class->ml('widget.qotd.archivelink') . "</a>";
-            my $suggest = "<a href='$LJ::SITEROOT/misc/suggest_qotd.bml'>" . $class->ml('widget.qotd.suggestions') . "</a>";
+            my $archive = "<a href='$LJ::SITEROOT/misc/qotdarchive'>" . $class->ml('widget.qotd.archivelink') . "</a>";
+            my $suggest = "<a href='$LJ::SITEROOT/misc/suggest_qotd'>" . $class->ml('widget.qotd.suggestions') . "</a>";
             $ret .= "<p class='detail'><span class='suggestions'>$archive | $suggest</span>$from_text<br />" . $class->impression_img($q) . "</p>";
         }
 
@@ -246,7 +246,7 @@ sub answer_url {
     my $question = shift;
     my %opts = @_;
 
-    return "$LJ::SITEROOT/update.bml?qotd=$question->{qid}";
+    return "$LJ::SITEROOT/update?qotd=$question->{qid}";
 }
 
 sub subject_text {
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/QotDArchive.pm
--- a/cgi-bin/LJ/Widget/QotDArchive.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/QotDArchive.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -33,11 +33,11 @@ sub render_body {
 
     $ret .= "<p class='skiplinks'>" if $show_page_back || $show_page_forward;
     if ($show_page_back) {
-        $ret .= "<a href='$LJ::SITEROOT/misc/qotdarchive.bml?page=$page_back'>&lt; " . $class->ml('widget.qotdarchive.skip.previous') . "</a>";
+        $ret .= "<a href='$LJ::SITEROOT/misc/qotdarchive?page=$page_back'>&lt; " . $class->ml('widget.qotdarchive.skip.previous') . "</a>";
     }
     $ret .= " | " if $show_page_back && $show_page_forward;
     if ($show_page_forward) {
-        my $url = $page_forward == 1 ? "$LJ::SITEROOT/misc/qotdarchive.bml" : "$LJ::SITEROOT/misc/qotdarchive.bml?page=$page_forward";
+        my $url = $page_forward == 1 ? "$LJ::SITEROOT/misc/qotdarchive" : "$LJ::SITEROOT/misc/qotdarchive?page=$page_forward";
         $ret .= "<a href='$url'>" . $class->ml('widget.qotdarchive.skip.next') . " &gt;</a>";
     }
     $ret .= "</p>" if $show_page_back || $show_page_forward;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/RecentComments.pm
--- a/cgi-bin/LJ/Widget/RecentComments.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/RecentComments.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -25,10 +25,10 @@ sub render_body {
     my $ret;
 
     $ret .= "<h2><span>" . $class->ml('widget.recentcomments.title') . "</span></h2>";
-    $ret .= "<a href='$LJ::SITEROOT/tools/recent_comments.bml' class='more-link'>" . $class->ml('widget.recentcomments.viewall') . "</a>";
+    $ret .= "<a href='$LJ::SITEROOT/tools/recent_comments' class='more-link'>" . $class->ml('widget.recentcomments.viewall') . "</a>";
 
     # return if no comments
-    return "<h2><span>" . $class->ml('widget.recentcomments.title') . "</span></h2><?warningbar " . $class->ml('widget.recentcomments.nocomments', {'aopts' => "href='$LJ::SITEROOT/update.bml'"}) . " warningbar?>"
+    return "<h2><span>" . $class->ml('widget.recentcomments.title') . "</span></h2><?warningbar " . $class->ml('widget.recentcomments.nocomments', {'aopts' => "href='$LJ::SITEROOT/update'"}) . " warningbar?>"
         unless @comments && defined $comments[0];
 
     # there are comments, print them
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/Search.pm
--- a/cgi-bin/LJ/Widget/Search.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/Search.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -32,7 +32,7 @@ sub render_body {
         $search_btn = LJ::html_submit( $class->ml( 'widget.search.btn.go' ) );
     }
 
-    $ret .= "<form action='$LJ::SITEROOT/multisearch.bml' method='post'>\n";
+    $ret .= "<form action='$LJ::SITEROOT/multisearch' method='post'>\n";
     $ret .= LJ::html_text( { name => 'q', id => 'search', class => 'text', title => $class->ml( 'widget.search.title' ), size => 20 } ) . " ";
     $ret .= $select_box;
     $ret .= $search_btn;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/SubmitRequest.pm
--- a/cgi-bin/LJ/Widget/SubmitRequest.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/SubmitRequest.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -29,7 +29,7 @@ sub render_body {
 
     unless ($remote && $remote->email_raw) {
         unless ($remote) {
-            $ret .= "<?p <em>" . $class->ml('widget.support.submit.login.note', {sitename=>$LJ::SITENAMESHORT, loginlink=>"href='$LJ::SITEROOT/login.bml?ret=1'"}) . "</em> p?>";
+            $ret .= "<?p <em>" . $class->ml('widget.support.submit.login.note', {sitename=>$LJ::SITENAMESHORT, loginlink=>"href='$LJ::SITEROOT/login?ret=1'"}) . "</em> p?>";
 
             $ret .= "<p><b>" . $class->ml('widget.support.submit.yourname') . "</b><br />";
             $ret .= "<div style='margin-left: 30px'>";
@@ -134,7 +134,7 @@ sub text_done {
 
     my $spid = $opts{spid};
     my $auth = LJ::Support::mini_auth(LJ::Support::load_request($spid, undef, {'db_force' => 1}));
-    my $url = "$LJ::SITEROOT/support/see_request.bml?id=$spid&amp;auth=$auth";
+    my $url = "$LJ::SITEROOT/support/see_request?id=$spid&amp;auth=$auth";
 
     return $class->ml('widget.support.submit.complete.text', {'url'=>$url});
 }
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/SubmitRequest/Support.pm
--- a/cgi-bin/LJ/Widget/SubmitRequest/Support.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/SubmitRequest/Support.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -11,7 +11,7 @@ sub text_done {
 
     $ret .= "<div class='right-sidebar'>";
     $ret .= "<?h2 " . $class->ml('/support/submit.bml.help.header') . " h2?>";
-    $ret .= "<?p " . $class->ml('/support/submit.bml.help.text', { aopts => "href='$LJ::SITEROOT/support/help.bml'" }) . " p?>";
+    $ret .= "<?p " . $class->ml('/support/submit.bml.help.text', { aopts => "href='$LJ::SITEROOT/support/help'" }) . " p?>";
     $ret .= "</div>";
 
     $ret .= $class->SUPER::text_done(%opts);
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/ThemeChooser.pm
--- a/cgi-bin/LJ/Widget/ThemeChooser.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/ThemeChooser.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -147,13 +147,13 @@ sub render_body {
             my $no_layer_edit = LJ::run_hook("no_theme_or_layer_edit", $u);
 
             $theme_class .= " current";
-            $theme_options .= "<strong><a href='$LJ::SITEROOT/customize/options.bml$getextra'>" . $class->ml('widget.themechooser.theme.customize') . "</a></strong>";
+            $theme_options .= "<strong><a href='$LJ::SITEROOT/customize/options$getextra'>" . $class->ml('widget.themechooser.theme.customize') . "</a></strong>";
             if (! $no_layer_edit && $theme->is_custom && !$theme_types{upgrade}) {
                 if ($theme->layoutid && !$theme->layout_uniq) {
-                    $theme_options .= "<br /><strong><a href='$LJ::SITEROOT/customize/advanced/layeredit.bml?id=" . $theme->layoutid . "'>" . $class->ml('widget.themechooser.theme.editlayoutlayer') . "</a></strong>";
+                    $theme_options .= "<br /><strong><a href='$LJ::SITEROOT/customize/advanced/layeredit?id=" . $theme->layoutid . "'>" . $class->ml('widget.themechooser.theme.editlayoutlayer') . "</a></strong>";
                 }
                 if ($theme->themeid && !$theme->uniq) {
-                    $theme_options .= "<br /><strong><a href='$LJ::SITEROOT/customize/advanced/layeredit.bml?id=" . $theme->themeid . "'>" . $class->ml('widget.themechooser.theme.editthemelayer') . "</a></strong>";
+                    $theme_options .= "<br /><strong><a href='$LJ::SITEROOT/customize/advanced/layeredit?id=" . $theme->themeid . "'>" . $class->ml('widget.themechooser.theme.editthemelayer') . "</a></strong>";
                 }
             }
         }
@@ -178,9 +178,9 @@ sub render_body {
 
         my $preview_redirect_url;
         if ($theme->themeid) {
-            $preview_redirect_url = "$LJ::SITEROOT/customize/preview_redirect.bml$getextra${getsep}themeid=" . $theme->themeid;
+            $preview_redirect_url = "$LJ::SITEROOT/customize/preview_redirect$getextra${getsep}themeid=" . $theme->themeid;
         } else {
-            $preview_redirect_url = "$LJ::SITEROOT/customize/preview_redirect.bml$getextra${getsep}layoutid=" . $theme->layoutid;
+            $preview_redirect_url = "$LJ::SITEROOT/customize/preview_redirect$getextra${getsep}layoutid=" . $theme->layoutid;
         }
         $ret .= "<a href='$preview_redirect_url' target='_blank' class='theme-preview-link' title='" . $class->ml('widget.themechooser.theme.preview') . "'>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/LJ/Widget/UserpicDisplay.pm
--- a/cgi-bin/LJ/Widget/UserpicDisplay.pm	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/LJ/Widget/UserpicDisplay.pm	Tue Aug 04 19:32:47 2009 -0500
@@ -99,7 +99,7 @@ sub render_body {
                             userpic_preview_image.alt = alttext[userpic_select.selectedIndex];
                         } else {
                             userpic_preview.className += " userpic_preview_border";
-                            userpic_preview.innerHTML = '<a href="$LJ::SITEROOT/editpics.bml"><img src="" alt="selected userpic" id="userpic_preview_image" style="display: none;" /><span id="userpic_msg">' + userpic_msg + '</span></a>';
+                            userpic_preview.innerHTML = '<a href="$LJ::SITEROOT/editpics"><img src="" alt="selected userpic" id="userpic_preview_image" style="display: none;" /><span id="userpic_msg">' + userpic_msg + '</span></a>';
                         }
                     }
                 }
@@ -207,7 +207,7 @@ sub render_body {
     } elsif (!$u)  {
         $$pic .= "<div id='userpic'><p id='userpic_preview'><img src='/img/nouserpic.png' alt='selected userpic' id='userpic_preview_image' class='userpic_loggedout'  /></p></div>";
     } else {
-        $$pic .= "<div id='userpic'><p id='userpic_preview' class='userpic_preview_border'><a href='$LJ::SITEROOT/editpics.bml'>Upload a userpic</a></p></div>";
+        $$pic .= "<div id='userpic'><p id='userpic_preview' class='userpic_preview_border'><a href='$LJ::SITEROOT/editpics'>Upload a userpic</a></p></div>";
     }
 
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/bml/scheme/blueshift.look
--- a/cgi-bin/bml/scheme/blueshift.look	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/bml/scheme/blueshift.look	Tue Aug 04 19:32:47 2009 -0500
@@ -74,7 +74,7 @@ accountlinks<=
             }
         }
 
-        $ret .= "<div id='account-links-userpic'><a href='$LJ::SITEROOT/editpics.bml'>";
+        $ret .= "<div id='account-links-userpic'><a href='$LJ::SITEROOT/editpics'>";
         if ( $userpic ) {
             $ret .= "<img src='" . $userpic->url . "' $wh alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
         } else {
@@ -82,27 +82,27 @@ accountlinks<=
         }
         $ret .= "</a></div>";
         $ret .= "<div id='account-links-text'>";
-        $ret .= "<form action='$LJ::SITEROOT/logout.bml?ret=1' method='post'>";
+        $ret .= "<form action='$LJ::SITEROOT/logout?ret=1' method='post'>";
         $ret .= $remote->ljuser_display;
         $ret .= "<input type='hidden' name='user' value='" . $remote->user . "' />";
         $ret .= "<input type='hidden' name='sessid' value='$remote->{_session}->{sessid}' />";
         $ret .= " <input type='submit' value=\"$ML{'sitescheme.accountlinks.btn.logout'}\" />";
         $ret .= "</form>";
         $ret .= "<ul>";
-        $ret .= "<li><a href='$LJ::SITEROOT/update.bml'>$ML{'sitescheme.accountlinks.post'}</a>  &bull; </li>" unless $identity;
+        $ret .= "<li><a href='$LJ::SITEROOT/update'>$ML{'sitescheme.accountlinks.post'}</a>  &bull; </li>" unless $identity;
         $ret .= "<li><a href='" . $remote->journal_base . "/read'>$ML{'sitescheme.accountlinks.readinglist'}</a> &bull; </li>";
         $ret .= "<li><a href='$LJ::SITEROOT/inbox/'>$ML{'sitescheme.accountlinks.inbox'}";
         $ret .= " ($unread)" if $unread;
         $ret .= "</a> &bull; </li>";
         $ret .= "<li><a href='$LJ::SITEROOT/manage/settings/'>$ML{'sitescheme.accountlinks.account'}</a></li> <br />";
-        $ret .= "<li><a href='$LJ::SITEROOT/manage/circle/invite.bml'>$ML{'sitescheme.accountlinks.invitefriend'}</a> &bull; </li>" unless $identity;
+        $ret .= "<li><a href='$LJ::SITEROOT/manage/circle/invite'>$ML{'sitescheme.accountlinks.invitefriend'}</a> &bull; </li>" unless $identity;
         $ret .= "<li><a href='$LJ::SITEROOT/support/'>$ML{'sitescheme.accountlinks.help'}</a></li>";
         $ret .= "</ul>";
         $ret .= "</div>";
     } else {
         my $chal = LJ::challenge_generate(300);
 
-        $ret .= "<form action='$LJ::SITEROOT/login.bml?ret=1' method='post'>";
+        $ret .= "<form action='$LJ::SITEROOT/login?ret=1' method='post'>";
         $ret .= LJ::html_hidden( returnto => $GET{returnto} );
         $ret .= "<input type='hidden' name='chal' class='lj_login_chal' value='$chal' />\n";
         $ret .= "<input type='hidden' name='response' class='lj_login_response' value='' />\n";
@@ -122,7 +122,7 @@ accountlinks<=
             id => "login_password",
             size => 20,
             tabindex => 2,
-        }) . " <a href='$LJ::SITEROOT/lostinfo.bml'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
+        }) . " <a href='$LJ::SITEROOT/lostinfo'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
         $ret .= "<tr><td>&nbsp;</td>";
         $ret .= "<td class='remember-me-cell'>";
         $ret .= LJ::html_check({
@@ -145,10 +145,10 @@ _code?>
 
 footer<=
 <ul>
-    <li><a href="<?siteroot?>/legal/privacy.bml"><?_ml sitescheme.footer.legal.privacypolicy _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/tos.bml"><?_ml sitescheme.footer.legal.tos _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/diversity.bml"><?_ml sitescheme.footer.legal.diversitystatement _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/principles.bml"><?_ml sitescheme.footer.legal.guidingprinciples _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/privacy"><?_ml sitescheme.footer.legal.privacypolicy _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/tos"><?_ml sitescheme.footer.legal.tos _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/diversity"><?_ml sitescheme.footer.legal.diversitystatement _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/principles"><?_ml sitescheme.footer.legal.guidingprinciples _ml?></a> &bull; </li>
     <li><a href="<?siteroot?>/site/"><?_ml sitescheme.footer.sitemap _ml?></a></li>
 </ul>
 <p><?_ml sitescheme.footer.info _ml?></p>
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/bml/scheme/celerity.look
--- a/cgi-bin/bml/scheme/celerity.look	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/bml/scheme/celerity.look	Tue Aug 04 19:32:47 2009 -0500
@@ -67,27 +67,27 @@ accountlinks<=
         my $wh = "";
 
         $ret .= "<div id='account-links-text'>";
-        $ret .= "<form action='$LJ::SITEROOT/logout.bml?ret=1' method='post'>";
+        $ret .= "<form action='$LJ::SITEROOT/logout?ret=1' method='post'>";
         $ret .= $remote->ljuser_display;
         $ret .= "<input type='hidden' name='user' value='" . $remote->user . "' />";
         $ret .= "<input type='hidden' name='sessid' value='$remote->{_session}->{sessid}' />";
         $ret .= " <input type='submit' value=\"$ML{'sitescheme.accountlinks.btn.logout'}\" />";
         $ret .= "</form>";
         $ret .= "<ul>";
-        $ret .= "<li><a href='$LJ::SITEROOT/update.bml'>$ML{'sitescheme.accountlinks.post'}</a>  &bull; </li>" unless $identity;
+        $ret .= "<li><a href='$LJ::SITEROOT/update'>$ML{'sitescheme.accountlinks.post'}</a>  &bull; </li>" unless $identity;
         $ret .= "<li><a href='" . $remote->journal_base . "/read'>$ML{'sitescheme.accountlinks.readinglist'}</a> &bull; </li>";
         $ret .= "<li><a href='$LJ::SITEROOT/inbox/'>$ML{'sitescheme.accountlinks.inbox'}";
         $ret .= " ($unread)" if $unread;
         $ret .= "</a> &bull; </li>";
         $ret .= "<li><a href='$LJ::SITEROOT/manage/settings/'>$ML{'sitescheme.accountlinks.account'}</a></li> <br />";
-        $ret .= "<li><a href='$LJ::SITEROOT/manage/circle/invite.bml'>$ML{'sitescheme.accountlinks.invitefriend'}</a> &bull; </li>" unless $identity;
+        $ret .= "<li><a href='$LJ::SITEROOT/manage/circle/invite'>$ML{'sitescheme.accountlinks.invitefriend'}</a> &bull; </li>" unless $identity;
         $ret .= "<li><a href='$LJ::SITEROOT/support/'>$ML{'sitescheme.accountlinks.help'}</a></li>";
         $ret .= "</ul>";
         $ret .= "</div>";
     } else {
         my $chal = LJ::challenge_generate(300);
 
-        $ret .= "<form action='$LJ::SITEROOT/login.bml?ret=1' method='post'>";
+        $ret .= "<form action='$LJ::SITEROOT/login?ret=1' method='post'>";
         $ret .= LJ::html_hidden( returnto => $GET{returnto} );
         $ret .= "<input type='hidden' name='chal' class='lj_login_chal' value='$chal' />\n";
         $ret .= "<input type='hidden' name='response' class='lj_login_response' value='' />\n";
@@ -107,7 +107,7 @@ accountlinks<=
             id => "login_password",
             size => 20,
             tabindex => 2,
-        }) . " <a href='$LJ::SITEROOT/lostinfo.bml'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
+        }) . " <a href='$LJ::SITEROOT/lostinfo'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
         $ret .= "<tr><td>&nbsp;</td>";
         $ret .= "<td class='remember-me-cell'>";
         $ret .= LJ::html_check({
@@ -130,10 +130,10 @@ _code?>
 
 footer<=
 <ul>
-    <li><a href="<?siteroot?>/legal/privacy.bml"><?_ml sitescheme.footer.legal.privacypolicy _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/tos.bml"><?_ml sitescheme.footer.legal.tos _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/diversity.bml"><?_ml sitescheme.footer.legal.diversitystatement _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/principles.bml"><?_ml sitescheme.footer.legal.guidingprinciples _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/privacy"><?_ml sitescheme.footer.legal.privacypolicy _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/tos"><?_ml sitescheme.footer.legal.tos _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/diversity"><?_ml sitescheme.footer.legal.diversitystatement _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/principles"><?_ml sitescheme.footer.legal.guidingprinciples _ml?></a> &bull; </li>
     <li><a href="<?siteroot?>/site/"><?_ml sitescheme.footer.sitemap _ml?></a></li>
 </ul>
 <p><?_ml sitescheme.footer.info _ml?></p>
@@ -146,7 +146,7 @@ userpic<=
     my $remote = LJ::get_remote();
     my $ret;
 
-    $ret .= "<div id='header-userpic'><a href='$LJ::SITEROOT/editpics.bml'>";
+    $ret .= "<div id='header-userpic'><a href='$LJ::SITEROOT/editpics'>";
 
     if ( $remote ) {
         my $userpic = $remote->userpic;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/bml/scheme/global.look
--- a/cgi-bin/bml/scheme/global.look	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/bml/scheme/global.look	Tue Aug 04 19:32:47 2009 -0500
@@ -35,12 +35,12 @@ LOAD_PAGE_INFO<=
            'match' => "^/(index\\.bml)?(\\?.*)?\$",
            'children' => [
                   { 'name' => 'Create Journal',
-                'uri' => '/create.bml', },
+                'uri' => '/create', },
                   { 'name' => 'Update',
-                'uri' => '/update.bml',
+                'uri' => '/update',
 #                'children' => [
 #                           { 'name' => 'Full Update',
-#                         'uri' => '/update.bml?mode=full', }
+#                         'uri' => '/update?mode=full', }
 #                           ],
                 },
                   ],
@@ -48,13 +48,13 @@ LOAD_PAGE_INFO<=
          { 'name' => 'Find Users',
            'children' => [
                          { 'name' => 'Random!',
-                'uri' => '/random.bml', },
+                'uri' => '/random', },
                          { 'name' => 'By Region',
-                'uri' => '/directory.bml', },
+                'uri' => '/directory', },
                          { 'name' => 'By Interest',
-                'uri' => '/interests.bml', },
+                'uri' => '/interests', },
                               { 'name' => 'Search',
-                'uri' => '/directorysearch.bml', }
+                'uri' => '/directorysearch', }
                   ], },
          { 'name' => 'Manage ...',
            uri => '/manage/',
@@ -64,13 +64,13 @@ LOAD_PAGE_INFO<=
                   { 'name' => 'Your Style',
                 'uri' => '/customize/', },
                   { 'name' => 'Your Friends',
-                'uri' => '/manage/circle/edit.bml', },
+                'uri' => '/manage/circle/edit', },
                   { 'name' => 'Your Entries',
-                'uri' => '/editjournal.bml', },
+                'uri' => '/editjournal', },
                   { 'name' => 'Your Pictures',
-                'uri' => '/editpics.bml', },
+                'uri' => '/editpics', },
                   { 'name' => 'Your Password',
-                'uri' => '/changepassword.bml', },
+                'uri' => '/changepassword', },
                   ],
        },
          { 'name' => 'Developer Area',
@@ -79,21 +79,21 @@ LOAD_PAGE_INFO<=
            'recursematch' => "^/developer/",
            'children' => [
                   { 'name' => 'Style System',
-                'uri' => '/developer/styles.bml',
+                'uri' => '/developer/styles',
                 'children' => [
                            { 'name' => 'View Types',
-                         'uri' => '/developer/views.bml', },
+                         'uri' => '/developer/views', },
                            { 'name' => 'Variable List',
-                         'uri' => '/developer/varlist.bml', },
+                         'uri' => '/developer/varlist', },
                            ],
                 },
                   { 'name' => 'Embedding',
-                'uri' => '/developer/embedding.bml', },
+                'uri' => '/developer/embedding', },
                   { 'name' => 'Protocol',
-                'uri' => '/developer/protocol.bml',
+                'uri' => '/developer/protocol',
                 'children' => [
                            { 'name' => 'Mode List',
-                         'uri' => '/developer/modelist.bml', }
+                         'uri' => '/developer/modelist', }
                            ],
                 },
                   ],
@@ -101,9 +101,9 @@ LOAD_PAGE_INFO<=
          { 'name' => 'Need Help?',
            'children' => [
                   { 'name' => 'Lost Password?',
-                'uri' => '/lostinfo.bml', },
+                'uri' => '/lostinfo', },
                   { 'name' => 'FAQ / Guide',
-                'uri' => '/support/faq.bml', },
+                'uri' => '/support/faq', },
                   { 'name' => 'Support Area',
                 'uri' => '/support/', },
                   ],
@@ -113,7 +113,7 @@ LOAD_PAGE_INFO<=
  my $remote = LJ::get_remote();
  my $remuser = $remote ? $remote->{'user'} : "";
  my $uri = BML::get_uri();
- if ($remuser ne "" && $uri ne "/logout.bml")
+ if ($remuser ne "" && $uri ne "/logout")
  {
      my $subdomain = $remuser;
      $subdomain =~ s/_/-/g;
@@ -127,21 +127,21 @@ LOAD_PAGE_INFO<=
                                'uri' => "/users/$remuser/calendar", },
                              { 'name' => 'Friends',
                                'uri' => "/users/$remuser/read",
-                               'extra' => "/friend/filter.bml",
+                               'extra' => "/friend/filter",
                                },
                              ],
                       },
                     { 'name' => 'User Info',
-                      'uri' => "/userinfo.bml?user=$remuser", },
+                      'uri' => "/userinfo?user=$remuser", },
                     { 'name' => 'Memories',
-                      'uri' => "/tools/memories.bml?user=$remuser", },
+                      'uri' => "/tools/memories?user=$remuser", },
                     { 'name' => 'Logout',
-                      'uri' => '/logout.bml', },
+                      'uri' => '/logout', },
                     ]
                     };
- } elsif ($uri ne "/login.bml") {
+ } elsif ($uri ne "/login") {
      unshift @sidebar, { 'name' => "Log In",
-             'uri' => '/login.bml', }
+             'uri' => '/login', }
  }
 
 return "";
@@ -292,7 +292,7 @@ menunav<=
             push @displayed, "<li class='subnav'><a href='$item->{url}'>" . BML::ml( "$item->{text}", $item->{text_opts} ) . "</a></li>" if $item->{display};
         }
         if ( @displayed ) {   # only display a top-level menu if any of its items are displayed
-            $ret .= "<li id='${cat}_topnav' class='topnav'><a href='$LJ::SITEROOT/nav.bml?cat=$cat'>$ML{\"menunav.$cat\"}</a>\n";
+            $ret .= "<li id='${cat}_topnav' class='topnav'><a href='$LJ::SITEROOT/nav?cat=$cat'>$ML{\"menunav.$cat\"}</a>\n";
             $ret .= "<ul id='${cat}_subnav' class='subnav_container'>\n";
             $ret .= join( "\n", @displayed ) . "\n";
             $ret .= "</ul>\n";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/bml/scheme/gradation-vertical.look
--- a/cgi-bin/bml/scheme/gradation-vertical.look	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/bml/scheme/gradation-vertical.look	Tue Aug 04 19:32:47 2009 -0500
@@ -74,7 +74,7 @@ accountlinks<=
             }
         }
 
-        $ret .= "<div id='account-links-userpic'><a href='$LJ::SITEROOT/editpics.bml'>";
+        $ret .= "<div id='account-links-userpic'><a href='$LJ::SITEROOT/editpics'>";
         if ( $userpic ) {
             $ret .= "<img src='" . $userpic->url . "' $wh alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
         } else {
@@ -82,27 +82,27 @@ accountlinks<=
         }
         $ret .= "</a></div>";
         $ret .= "<div id='account-links-text'>";
-        $ret .= "<form action='$LJ::SITEROOT/logout.bml?ret=1' method='post'>";
+        $ret .= "<form action='$LJ::SITEROOT/logout?ret=1' method='post'>";
         $ret .= $remote->ljuser_display;
         $ret .= "<input type='hidden' name='user' value='" . $remote->user . "' />";
         $ret .= "<input type='hidden' name='sessid' value='$remote->{_session}->{sessid}' />";
         $ret .= " <input type='submit' value=\"$ML{'sitescheme.accountlinks.btn.logout'}\" />";
         $ret .= "</form>";
         $ret .= "<ul>";
-        $ret .= "<li><a href='$LJ::SITEROOT/update.bml'>$ML{'sitescheme.accountlinks.post'}</a>  &bull; </li>" unless $identity;
+        $ret .= "<li><a href='$LJ::SITEROOT/update'>$ML{'sitescheme.accountlinks.post'}</a>  &bull; </li>" unless $identity;
         $ret .= "<li><a href='" . $remote->journal_base . "/read'>$ML{'sitescheme.accountlinks.readinglist'}</a> &bull; </li>";
         $ret .= "<li><a href='$LJ::SITEROOT/inbox/'>$ML{'sitescheme.accountlinks.inbox'}";
         $ret .= " ($unread)" if $unread;
         $ret .= "</a> &bull; </li>";
         $ret .= "<li><a href='$LJ::SITEROOT/manage/settings/'>$ML{'sitescheme.accountlinks.account'}</a></li> <br />";
-        $ret .= "<li><a href='$LJ::SITEROOT/manage/circle/invite.bml'>$ML{'sitescheme.accountlinks.invitefriend'}</a> &bull; </li>" unless $identity;
+        $ret .= "<li><a href='$LJ::SITEROOT/manage/circle/invite'>$ML{'sitescheme.accountlinks.invitefriend'}</a> &bull; </li>" unless $identity;
         $ret .= "<li><a href='$LJ::SITEROOT/support/'>$ML{'sitescheme.accountlinks.help'}</a></li>";
         $ret .= "</ul>";
         $ret .= "</div>";
     } else {
         my $chal = LJ::challenge_generate(300);
 
-        $ret .= "<form action='$LJ::SITEROOT/login.bml?ret=1' method='post'>";
+        $ret .= "<form action='$LJ::SITEROOT/login?ret=1' method='post'>";
         $ret .= LJ::html_hidden( returnto => $GET{returnto} );
         $ret .= "<input type='hidden' name='chal' class='lj_login_chal' value='$chal' />\n";
         $ret .= "<input type='hidden' name='response' class='lj_login_response' value='' />\n";
@@ -122,7 +122,7 @@ accountlinks<=
             id => "login_password",
             size => 20,
             tabindex => 2,
-        }) . " <a href='$LJ::SITEROOT/lostinfo.bml'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
+        }) . " <a href='$LJ::SITEROOT/lostinfo'>$ML{'sitescheme.accountlinks.login.forgotpassword'}</a></td></tr>";
         $ret .= "<tr><td>&nbsp;</td>";
         $ret .= "<td class='remember-me-cell'>";
         $ret .= LJ::html_check({
@@ -145,10 +145,10 @@ _code?>
 
 footer<=
 <ul>
-    <li><a href="<?siteroot?>/legal/privacy.bml"><?_ml sitescheme.footer.legal.privacypolicy _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/tos.bml"><?_ml sitescheme.footer.legal.tos _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/diversity.bml"><?_ml sitescheme.footer.legal.diversitystatement _ml?></a> &bull; </li>
-    <li><a href="<?siteroot?>/legal/principles.bml"><?_ml sitescheme.footer.legal.guidingprinciples _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/privacy"><?_ml sitescheme.footer.legal.privacypolicy _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/tos"><?_ml sitescheme.footer.legal.tos _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/diversity"><?_ml sitescheme.footer.legal.diversitystatement _ml?></a> &bull; </li>
+    <li><a href="<?siteroot?>/legal/principles"><?_ml sitescheme.footer.legal.guidingprinciples _ml?></a> &bull; </li>
     <li><a href="<?siteroot?>/site/"><?_ml sitescheme.footer.sitemap _ml?></a></li>
 </ul>
 <p><?_ml sitescheme.footer.info _ml?></p>
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/bml/scheme/lynx.look
--- a/cgi-bin/bml/scheme/lynx.look	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/bml/scheme/lynx.look	Tue Aug 04 19:32:47 2009 -0500
@@ -59,7 +59,7 @@ _code?>
          $ret .= "<a href='<?siteroot?>/login'><?_ml lynx.nav.login _ml?></a> | ";
     }
 
-    $ret .= "<a href='<?siteroot?>/tools/search.bml'><?_ml lynx.nav.search _ml?></a> | ";
+    $ret .= "<a href='<?siteroot?>/tools/search'><?_ml lynx.nav.search _ml?></a> | ";
     $ret .= "<a href='<?siteroot?>/manage/settings/'><?_ml lynx.nav.siteopts _ml?></a> | ";
     $ret .= "<a href='<?siteroot?>/site/'><?_ml lynx.nav.sitemap _ml?></a> ]</p>";
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/cleanhtml.pl
--- a/cgi-bin/cleanhtml.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/cleanhtml.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -1030,9 +1030,9 @@ sub clean
         my $link_style = "color: #00c; text-decoration: underline; background: transparent; border: 0;";
 
         if ($unsuspend_supportid) {
-            $msg .= LJ::Lang::ml('cleanhtml.suspend_msg_with_supportid', { aopts => "href='$LJ::SITEROOT/support/see_request.bml?id=$unsuspend_supportid' style='$link_style'" });
+            $msg .= LJ::Lang::ml('cleanhtml.suspend_msg_with_supportid', { aopts => "href='$LJ::SITEROOT/support/see_request?id=$unsuspend_supportid' style='$link_style'" });
         } else {
-            $msg .= LJ::Lang::ml('cleanhtml.suspend_msg', { aopts => "href='$LJ::SITEROOT/abuse/report.bml' style='$link_style'" });
+            $msg .= LJ::Lang::ml('cleanhtml.suspend_msg', { aopts => "href='$LJ::SITEROOT/abuse/report' style='$link_style'" });
         }
 
         $msg .= "</div>";
@@ -1142,31 +1142,31 @@ sub ExpandLJURL
          'faq' => sub {
              my $id = shift()+0;
              if ($id) {
-                 return "support/faqbrowse.bml?faqid=$id";
+                 return "support/faqbrowse?faqid=$id";
              } else {
-                 return "support/faq.bml";
+                 return "support/faq";
              }
          },
          'memories' => sub {
              my $user = LJ::canonical_username(shift);
              if ($user) {
-                 return "memories.bml?user=$user";
+                 return "memories?user=$user";
              } else {
-                 return "memories.bml";
+                 return "memories";
              }
          },
          'pubkey' => sub {
              my $user = LJ::canonical_username(shift);
              if ($user) {
-                 return "pubkey.bml?user=$user";
+                 return "pubkey?user=$user";
              } else {
-                 return "pubkey.bml";
+                 return "pubkey";
              }
          },
          'support' => sub {
              my $id = shift()+0;
              if ($id) {
-                 return "support/see_request.bml?id=$id";
+                 return "support/see_request?id=$id";
              } else {
                  return "support/";
              }
@@ -1175,23 +1175,23 @@ sub ExpandLJURL
              my $user = LJ::canonical_username(shift);
              return "" if grep { /[\"\'\<\>\n\&]/ } @_;
              return $_[0] eq 'profile' ?
-                 "userinfo.bml?user=$user" :
+                 "userinfo?user=$user" :
                  "users/$user/" . join("", map { "$_/" } @_ );
          },
          'userinfo' => sub {
              my $user = LJ::canonical_username(shift);
              if ($user) {
-                 return "userinfo.bml?user=$user";
+                 return "userinfo?user=$user";
              } else {
-                 return "userinfo.bml";
+                 return "userinfo";
              }
          },
          'userpics' => sub {
              my $user = LJ::canonical_username(shift);
              if ($user) {
-                 return "allpics.bml?user=$user";
+                 return "allpics?user=$user";
              } else {
-                 return "allpics.bml";
+                 return "allpics";
              }
          },
         );
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/communitylib.pl
--- a/cgi-bin/communitylib.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/communitylib.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -583,16 +583,16 @@ sub maintainer_linkbar {
             "<a href='$LJ::SITEROOT/customize/?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.customize2') . "</a>",
         $page eq "settings" ?
             "<strong>" . LJ::Lang::ml('/community/manage.bml.commlist.actsettings2') . "</strong>" :
-            "<a href='$LJ::SITEROOT/community/settings.bml?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.actsettings2') . "</a>",
+            "<a href='$LJ::SITEROOT/community/settings?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.actsettings2') . "</a>",
         $page eq "invites" ?
             "<strong>" . LJ::Lang::ml('/community/manage.bml.commlist.actinvites') . "</strong>" :
-            "<a href='$LJ::SITEROOT/community/sentinvites.bml?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.actinvites') . "</a>",
+            "<a href='$LJ::SITEROOT/community/sentinvites?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.actinvites') . "</a>",
         $page eq "members" ?
             "<strong>" . LJ::Lang::ml('/community/manage.bml.commlist.actmembers2') . "</strong>" :
-            "<a href='$LJ::SITEROOT/community/members.bml?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.actmembers2') . "</a>",
+            "<a href='$LJ::SITEROOT/community/members?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.actmembers2') . "</a>",
         $page eq "queue" ?
             "<strong>" . LJ::Lang::ml('/community/manage.bml.commlist.queue') . "</strong>" :
-            "<a href='$LJ::SITEROOT/community/moderate.bml?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.queue' ) . "</a>",
+            "<a href='$LJ::SITEROOT/community/moderate?authas=$username'>" . LJ::Lang::ml('/community/manage.bml.commlist.queue' ) . "</a>",
 
     );
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/crumbs.pl
--- a/cgi-bin/crumbs.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/crumbs.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -5,89 +5,89 @@ use Errno qw(ENOENT);
 use Errno qw(ENOENT);
 
 %LJ::CRUMBS = (
-    'acctstatus' => ['Account Status', '/accountstatus.bml', 'manage'],
+    'acctstatus' => ['Account Status', '/accountstatus', 'manage'],
     'addfriend' => ['Add Friend', '', 'friends'],
     'advcustomize' => ['Customize Advanced S2 Settings', '/customize/advanced/', 'manage'],
-    'advsearch' => ['Advanced Search', '/directorysearch.bml', 'search'],
-    'birthdays' => ['Birthdays', '/birthdays.bml', 'friends'],
-    'changeemail' => ['Change Email Address', '/changeemail.bml', 'editprofile'],
-    'changepass' => ['Change Password', '/changepassword.bml', 'manage'],
-    'comminvites' => ['Community Invitations', '/manage/invites.bml', 'manage'],
+    'advsearch' => ['Advanced Search', '/directorysearch', 'search'],
+    'birthdays' => ['Birthdays', '/birthdays', 'friends'],
+    'changeemail' => ['Change Email Address', '/changeemail', 'editprofile'],
+    'changepass' => ['Change Password', '/changepassword', 'manage'],
+    'comminvites' => ['Community Invitations', '/manage/invites', 'manage'],
     'commmembers' => ['Community Membership', '', 'managecommunity'],
     'commpending' => ['Pending Memberships', '', 'managecommunity'],
-    'commsearch' => ['Community Search', '/community/search.bml', 'community'],
-    'commsentinvites' => ['Sent Invitations', '/community/sentinvites.bml', 'managecommunity'],
-    'commsettings' => ['Community Settings', '/community/settings.bml', 'managecommunity'],
+    'commsearch' => ['Community Search', '/community/search', 'community'],
+    'commsentinvites' => ['Sent Invitations', '/community/sentinvites', 'managecommunity'],
+    'commsettings' => ['Community Settings', '/community/settings', 'managecommunity'],
     'community' => ['Community Center', '/community/', 'home'],
-    'createcommunity' => ['Create Community', '/community/create.bml', 'managecommunity'],
-    'createjournal_1' => ['Create Your Account', '/create.bml', 'home'],
-    'createstyle' => ['Create Style', '/styles/create.bml', 'modify'],
+    'createcommunity' => ['Create Community', '/community/create', 'managecommunity'],
+    'createjournal_1' => ['Create Your Account', '/create', 'home'],
+    'createstyle' => ['Create Style', '/styles/create', 'modify'],
     'customize' => ['Customize S2 Settings', '/customize/', 'manage'],
-    'customizelayer' => ['Individual Customizations', '/customize/layer.bml', 'customize'],
-    'domain' => ['Domain Aliasing', '/manage/domain.bml', 'manage'],
-    'delcomment' => ['Delete Comment', '/delcomment.bml', 'home'],
-    'editentries' => ['Edit Entries', '/editjournal.bml', 'manage'],
+    'customizelayer' => ['Individual Customizations', '/customize/layer', 'customize'],
+    'domain' => ['Domain Aliasing', '/manage/domain', 'manage'],
+    'delcomment' => ['Delete Comment', '/delcomment', 'home'],
+    'editentries' => ['Edit Entries', '/editjournal', 'manage'],
     'editinfo' => ['Personal Info', '/manage/profile/', 'manage'],
     'editprofile' => ['Edit Profile', '/manage/profile/', 'manage'],
     'editsettings' => ['Viewing Options', '/manage/profile/', 'manage'],
-    'editstyle' => ['Edit Style', '/styles/edit.bml', 'modify'],
-    'emailmanage' => ['Email Management', '/tools/emailmanage.bml', 'manage'],
-    'export' => ['Export Journal', '/export.bml', 'home'],
-    'faq' => ['Frequently Asked Questions', '/support/faq.bml', 'support'],
-    'feedstersearch' => ['Search a Journal', '/tools/search.bml', 'home'],
-    'filterfriends' => ['Filter Reading Page', '/manage/circle/filter.bml', 'friends'],
+    'editstyle' => ['Edit Style', '/styles/edit', 'modify'],
+    'emailmanage' => ['Email Management', '/tools/emailmanage', 'manage'],
+    'export' => ['Export Journal', '/export', 'home'],
+    'faq' => ['Frequently Asked Questions', '/support/faq', 'support'],
+    'feedstersearch' => ['Search a Journal', '/tools/search', 'home'],
+    'filterfriends' => ['Filter Reading Page', '/manage/circle/filter', 'friends'],
     'friends' => ['Circle Tools', '/manage/circle/', 'manage'],
     'home' => ['Home', '/', ''],
-    'invitefriend' => ['Invite a Friend', '/manage/circle/invite.bml', 'friends'],
+    'invitefriend' => ['Invite a Friend', '/manage/circle/invite', 'friends'],
     'joincomm' => ['Join Community', '', 'community'],
-    'latestposts' => ['Latest Posts', '/stats/latest.bml', 'stats'],
-    'layerbrowse' => ['Public Layer Browser', '/customize/advanced/layerbrowse.bml', 'advcustomize'],
+    'latestposts' => ['Latest Posts', '/stats/latest', 'stats'],
+    'layerbrowse' => ['Public Layer Browser', '/customize/advanced/layerbrowse', 'advcustomize'],
     'leavecomm' => ['Leave Community', '', 'community'],
-    'login' => ['Login', '/login.bml', 'home'],
-    'logout' => ['Logout', '/logout.bml', 'home'],
-    'lostinfo' => ['Lost Info', '/lostinfo.bml', 'manage'],
+    'login' => ['Login', '/login', 'home'],
+    'logout' => ['Logout', '/logout', 'home'],
+    'lostinfo' => ['Lost Info', '/lostinfo', 'manage'],
     'manage' => ['Manage Accounts', '/manage/', 'home'],
-    'managecomments' => ['Manage Comments', '/tools/recent_comments.bml', 'manage'],
+    'managecomments' => ['Manage Comments', '/tools/recent_comments', 'manage'],
     'managecommentsettings' => [ 'Manage Comment Settings', '/manage/comments', 'manage'],
-    'managecommunities' => ['Manage Communities', '/community/manage.bml', 'manage'],
-    'managefriends' => ['Manage Circle', '/manage/circle/edit.bml', 'friends'],
-    'managefriendgrps' => ['Manage Filters', '/manage/circle/editfilters.bml', 'friends'],
-    'managetags' => ['Manage Tags', '/manage/tags.bml', 'manage'],
-    'managelogins' => ['Manage Your Login Sessions', '/manage/logins.bml', 'manage'],
-    'manageuserpics' => ['Manage Userpics', '/editpics.bml', 'manage'],
-    'memories' => ['Memorable Posts', '/tools/memories.bml', 'manage'],
-    'mobilepost' => ['Mobile Post Settings', '/manage/emailpost.bml', 'manage'],
-    'moderate' => ['Community Moderation', '/community/moderate.bml', 'community'],
-    'moodeditor' => ['Custom Mood Theme Editor', '/manage/moodthemes.bml', 'manage'],
-    'moodlist' => ['Mood Viewer', '/moodlist.bml', 'manage'],
-    'popfaq' => ['Popular FAQs', '/support/popfaq.bml', 'faq'],
-    'postentry' => ['Post an Entry', '/update.bml', 'home'],
-    'register' => ['Validate Email', '/register.bml', 'home'],
+    'managecommunities' => ['Manage Communities', '/community/manage', 'manage'],
+    'managefriends' => ['Manage Circle', '/manage/circle/edit', 'friends'],
+    'managefriendgrps' => ['Manage Filters', '/manage/circle/editfilters', 'friends'],
+    'managetags' => ['Manage Tags', '/manage/tags', 'manage'],
+    'managelogins' => ['Manage Your Login Sessions', '/manage/logins', 'manage'],
+    'manageuserpics' => ['Manage Userpics', '/editpics', 'manage'],
+    'memories' => ['Memorable Posts', '/tools/memories', 'manage'],
+    'mobilepost' => ['Mobile Post Settings', '/manage/emailpost', 'manage'],
+    'moderate' => ['Community Moderation', '/community/moderate', 'community'],
+    'moodeditor' => ['Custom Mood Theme Editor', '/manage/moodthemes', 'manage'],
+    'moodlist' => ['Mood Viewer', '/moodlist', 'manage'],
+    'popfaq' => ['Popular FAQs', '/support/popfaq', 'faq'],
+    'postentry' => ['Post an Entry', '/update', 'home'],
+    'register' => ['Validate Email', '/register', 'home'],
     'schools' => ['Schools Directory', '/schools/', 'home'],
     'schoolsfind' => ['Find a School', '', 'schools'],
-    'schoolsmy' => ['My Schools', '/schools/manage.bml', 'schools'],
-    'searchinterests' => ['Search By Interest', '/interests.bml', 'search'],
-    'searchregion' => ['Search By Region', '/directory.bml', 'search'],
+    'schoolsmy' => ['My Schools', '/schools/manage', 'schools'],
+    'searchinterests' => ['Search By Interest', '/interests', 'search'],
+    'searchregion' => ['Search By Region', '/directory', 'search'],
     'seeoverrides' => ['View User Overrides', '', 'support'],
-    'setpgpkey' => ['Public Key', '/manage/pubkey.bml', 'manage'],
-    'sitestats' => ['Site Statistics', '/stats/site.bml', 'about'],
-    'stats' => ['Statistics', '/stats.bml', 'about'],
+    'setpgpkey' => ['Public Key', '/manage/pubkey', 'manage'],
+    'sitestats' => ['Site Statistics', '/stats/site', 'about'],
+    'stats' => ['Statistics', '/stats', 'about'],
     'styles' => ['Styles', '/styles/', 'modify'],
     'support' => ['Support', '/support/', 'home'],
     'supportact' => ['Request Action', '', 'support'],
     'supportappend' => ['Append to Request', '', 'support'],
-    'supporthelp' => ['Request Board', '/support/help.bml', 'support'],
-    'supportnotify' => ['Notification Settings', '/support/changenotify.bml', 'support'],
-    'supportscores' => ['High Scores', '/support/highscores.bml', 'support'],
-    'supportsubmit' => ['Submit Request', '/support/submit.bml', 'support'],
-    'textmessage' => ['Send Text Message', '/tools/textmessage.bml', 'home'],
-    'transfercomm' => ['Transfer Community', '/community/transfer.bml', 'managecommunity'],
+    'supporthelp' => ['Request Board', '/support/help', 'support'],
+    'supportnotify' => ['Notification Settings', '/support/changenotify', 'support'],
+    'supportscores' => ['High Scores', '/support/highscores', 'support'],
+    'supportsubmit' => ['Submit Request', '/support/submit', 'support'],
+    'textmessage' => ['Send Text Message', '/tools/textmessage', 'home'],
+    'transfercomm' => ['Transfer Community', '/community/transfer', 'managecommunity'],
     'translate' => ['Translation Area', '/translate/', 'home'],
-    'translateteams' => ['Translation Teams', '/translate/teams.bml', 'translate'],
-    'unsubscribe' => ['Unsubscribe', '/unsubscribe.bml', 'home'],
-    'utf8convert' => ['UTF-8 Converter', '/utf8convert.bml', 'manage'],
-    'yourlayers' => ['Your Layers', '/customize/advanced/layers.bml', 'advcustomize'],
-    'yourstyles' => ['Your Styles', '/customize/advanced/styles.bml', 'advcustomize'],
+    'translateteams' => ['Translation Teams', '/translate/teams', 'translate'],
+    'unsubscribe' => ['Unsubscribe', '/unsubscribe', 'home'],
+    'utf8convert' => ['UTF-8 Converter', '/utf8convert', 'manage'],
+    'yourlayers' => ['Your Layers', '/customize/advanced/layers', 'advcustomize'],
+    'yourstyles' => ['Your Styles', '/customize/advanced/styles', 'advcustomize'],
 );
 
 # include the local crumbs info
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/customizelib.pl
--- a/cgi-bin/customizelib.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/customizelib.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -205,10 +205,10 @@ sub js_redirect
     my %opts = @_;
 
     my %redirect = (
-                    "display_index" => "index.bml",
-                    "display_style" => "style.bml",
-                    "display_options" => "options.bml",
-                    "display_advanced" => "advanced.bml",
+                    "display_index" => "index",
+                    "display_style" => "style",
+                    "display_options" => "options",
+                    "display_advanced" => "advanced",
                     );
 
     if ($POST->{"action:redir"} ne "" && $redirect{$POST->{"action:redir"}}) {
@@ -310,7 +310,7 @@ sub html_tablinks
         if ($page eq $tab) {
             $ret .= "<li class='SelectedTab'>$strings{$tab}</li>";
         } else {
-            $ret .= "<li><a id='display_$tab' href='$tab.bml$getextra'>$strings{$tab}</a></li>";
+            $ret .= "<li><a id='display_$tab' href='$tab$getextra'>$strings{$tab}</a></li>";
         }
     }
     $ret .= "</ul>";
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/ljcmdbuffer.pl
--- a/cgi-bin/ljcmdbuffer.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/ljcmdbuffer.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -176,7 +176,7 @@ sub _weblogscom {
                 ->call('weblogUpdates.ping', # xml-rpc method call
                        LJ::ehtml($a->{'title'}) . " \@ $LJ::SITENAMESHORT",
                        $a->{'url'},
-                       "$LJ::SITEROOT/misc/weblogs-change.bml?user=$a->{'user'}");
+                       "$LJ::SITEROOT/misc/weblogs-change?user=$a->{'user'}");
         }
     };
 
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/ljdefaults.pl
--- a/cgi-bin/ljdefaults.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/ljdefaults.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -73,7 +73,7 @@
     # this option can be a boolean or a URL, but internally we want a URL
     # (which can also be a boolean)
     if ($LJ::OPENID_SERVER && $LJ::OPENID_SERVER == 1) {
-        $LJ::OPENID_SERVER = "$LJ::SITEROOT/openid/server.bml";
+        $LJ::OPENID_SERVER = "$LJ::SITEROOT/openid/server";
     }
 
     # set default capability limits if the site maintainer hasn't.
@@ -359,29 +359,29 @@
     # "RPC" URI mappings
     # add default URI handler mappings
     my %ajaxmapping = (
-                       delcomment     => "delcomment.bml",
-                       talkscreen     => "talkscreen.bml",
-                       controlstrip   => "tools/endpoints/controlstrip.bml",
-                       ctxpopup       => "tools/endpoints/ctxpopup.bml",
-                       changerelation => "tools/endpoints/changerelation.bml",
-                       userpicselect  => "tools/endpoints/getuserpics.bml",
-                       esn_inbox      => "tools/endpoints/esn_inbox.bml",
-                       esn_subs       => "tools/endpoints/esn_subs.bml",
-                       trans_save     => "tools/endpoints/trans_save.bml",
-                       dirsearch      => "tools/endpoints/directorysearch.bml",
-                       poll           => "tools/endpoints/poll.bml",
-                       jobstatus      => "tools/endpoints/jobstatus.bml",
-                       widget         => "tools/endpoints/widget.bml",
-                       multisearch    => "tools/endpoints/multisearch.bml",
-                       extacct_auth   => "tools/endpoints/extacct_auth.bml",
+                       delcomment     => "delcomment",
+                       talkscreen     => "talkscreen",
+                       controlstrip   => "tools/endpoints/controlstrip",
+                       ctxpopup       => "tools/endpoints/ctxpopup",
+                       changerelation => "tools/endpoints/changerelation",
+                       userpicselect  => "tools/endpoints/getuserpics",
+                       esn_inbox      => "tools/endpoints/esn_inbox",
+                       esn_subs       => "tools/endpoints/esn_subs",
+                       trans_save     => "tools/endpoints/trans_save",
+                       dirsearch      => "tools/endpoints/directorysearch",
+                       poll           => "tools/endpoints/poll",
+                       jobstatus      => "tools/endpoints/jobstatus",
+                       widget         => "tools/endpoints/widget",
+                       multisearch    => "tools/endpoints/multisearch",
+                       extacct_auth   => "tools/endpoints/extacct_auth",
                        );
 
     foreach my $src (keys %ajaxmapping) {
         $LJ::AJAX_URI_MAP{$src} ||= $ajaxmapping{$src};
     }
-    $LJ::AJAX_URI_MAP{load_state_codes} = 'tools/endpoints/load_state_codes.bml';
-    $LJ::AJAX_URI_MAP{profileexpandcollapse} = 'tools/endpoints/profileexpandcollapse.bml';
-    $LJ::AJAX_URI_MAP{dismisspagenotice} = 'tools/endpoints/dismisspagenotice.bml';
+    $LJ::AJAX_URI_MAP{load_state_codes} = 'tools/endpoints/load_state_codes';
+    $LJ::AJAX_URI_MAP{profileexpandcollapse} = 'tools/endpoints/profileexpandcollapse';
+    $LJ::AJAX_URI_MAP{dismisspagenotice} = 'tools/endpoints/dismisspagenotice';
 
     # List all countries that have states listed in 'codes' table in DB
     # These countries will be displayed with drop-down menu on Profile edit page
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/ljprotocol.pl
--- a/cgi-bin/ljprotocol.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/ljprotocol.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -1308,8 +1308,8 @@ sub postevent
                             modid       => $modid,
                             siteroot    => $LJ::SITEROOT,
                             sitename    => $LJ::SITENAME,
-                            moderateurl => "$LJ::SITEROOT/community/moderate.bml?authas=$uowner->{'user'}&modid=$modid",
-                            viewurl     => "$LJ::SITEROOT/community/moderate.bml?authas=$uowner->{'user'}",
+                            moderateurl => "$LJ::SITEROOT/community/moderate?authas=$uowner->{'user'}&modid=$modid",
+                            viewurl     => "$LJ::SITEROOT/community/moderate?authas=$uowner->{'user'}",
                         });
 
                     my $subject = LJ::Lang::get_text($to->{'browselang'},'esn.moderated_submission.subject');
@@ -2186,7 +2186,7 @@ sub getevents
                 if ($req->{'selecttype'} eq 'day') {
                     $t->[0] = $t->[1] = $CannotBeShown;
                 } else {
-                    return fail($err,207,"Cannot display/edit a Unicode post with a non-Unicode client. Please see $LJ::SITEROOT/support/encodings.bml for more information.");
+                    return fail($err,207,"Cannot display/edit a Unicode post with a non-Unicode client. Please see $LJ::SITEROOT/support/encodings for more information.");
                 }
             }
         }
@@ -2560,7 +2560,7 @@ sub hash_menus
                   'url' => "$LJ::SITEROOT/users/$user/read", },
                 { 'text' => "-", },
                 { 'text' => "Your Profile",
-                  'url' => "$LJ::SITEROOT/userinfo.bml?user=$user", },
+                  'url' => "$LJ::SITEROOT/userinfo?user=$user", },
                 { 'text' => "-", },
                 { 'text' => "Change Settings",
                   'sub' => [ { 'text' => "Personal Info",
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/propparse.pl
--- a/cgi-bin/propparse.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/propparse.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -124,8 +124,8 @@ sub xlinkify
 sub xlinkify
 {
     my ($a) = $_[0];
-    $$a =~ s/\[var\[([A-Z0-9\_]{2,})\]\]/<a href=\"\/developer\/varinfo.bml?$1\">$1<\/a>/g;
-    $$a =~ s/\[view\[(\S+?)\]\]/<a href=\"\/developer\/views.bml\#$1\">$1<\/a>/g;
+    $$a =~ s/\[var\[([A-Z0-9\_]{2,})\]\]/<a href=\"\/developer\/varinfo?$1\">$1<\/a>/g;
+    $$a =~ s/\[view\[(\S+?)\]\]/<a href=\"\/developer\/views\#$1\">$1<\/a>/g;
 }
 
 sub dump_struct
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/supportlib.pl
--- a/cgi-bin/supportlib.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/supportlib.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -601,7 +601,7 @@ sub file_request
 
     my $body;
     my $miniauth = mini_auth({ 'authcode' => $authcode });
-    $url = "$LJ::SITEROOT/support/see_request.bml?id=$spid";
+    $url = "$LJ::SITEROOT/support/see_request?id=$spid";
     $urlauth = "$url&auth=$miniauth";
 
     $body = "Your $LJ::SITENAME support request regarding \"$o->{'subject'}\" has been filed and will be answered as soon as possible.  Your request tracking number is $spid.\n\n";
@@ -610,7 +610,7 @@ sub file_request
 
     if ($scat->{user_closeable}) {
         $body .= "If you figure out the problem before somebody gets back to you, please cancel your request by clicking this:\n\n  ";
-        $body .= "$LJ::SITEROOT/support/act.bml?close;$spid;$authcode";
+        $body .= "$LJ::SITEROOT/support/act?close;$spid;$authcode";
     }
 
     # disable auto-replies for the entire category, or per request
@@ -811,7 +811,7 @@ sub mail_response_to_user
     $body .= "Below is $what your support question regarding \"$sp->{'subject'}\"\n";
 
     my $miniauth = mini_auth($sp);
-    $body .= "($LJ::SITEROOT/support/see_request.bml?id=$spid&auth=$miniauth).\n\n";
+    $body .= "($LJ::SITEROOT/support/see_request?id=$spid&auth=$miniauth).\n\n";
 
     $body .= "="x70 . "\n\n";
     if ($faqid) {
@@ -826,7 +826,7 @@ sub mail_response_to_user
         if ( $faq ) {
             $faq->render_in_place;
             $body .= "FAQ REFERENCE: " . $faq->question_raw . "\n";
-            $body .= "$LJ::SITEROOT/support/faqbrowse.bml?faqid=$faqid&view=full";
+            $body .= "$LJ::SITEROOT/support/faqbrowse?faqid=$faqid&view=full";
             $body .= "\n\n";
         }
     }
@@ -835,9 +835,9 @@ sub mail_response_to_user
 
     if ($sp->{_cat}->{user_closeable}) {
         $body .= "Did this answer your question?\nYES:\n";
-        $body .= "$LJ::SITEROOT/support/act.bml?close;$spid;$sp->{'authcode'}";
+        $body .= "$LJ::SITEROOT/support/act?close;$spid;$sp->{'authcode'}";
         $body .= ";$splid" if $type eq "answer";
-        $body .= "\nNO:\n$LJ::SITEROOT/support/see_request.bml?id=$spid&auth=$miniauth\n\n";
+        $body .= "\nNO:\n$LJ::SITEROOT/support/see_request?id=$spid&auth=$miniauth\n\n";
     }
 
     $body .= "If you are having problems using any of the links in this email, please try copying and pasting the *entire* link into your browser's address bar rather than clicking on it.";
@@ -1088,13 +1088,13 @@ sub work {
         $body = "A $LJ::SITENAME support request has been submitted regarding the following:\n\n";
         $body .= "Category: $sp->{_cat}{catname}\n";
         $body .= "Subject:  $sp->{subject}\n";
-        $body .= "URL: $LJ::SITEROOT/support/see_request.bml?id=$spid\n";
+        $body .= "URL: $LJ::SITEROOT/support/see_request?id=$spid\n";
         $body .= "Text:\n\n  $sp->{body}";
         $body .= "\n\n" . "="x4 . "\n\n";
         $body .= "You can view this request here:\n\n";
-        $body .= "$LJ::SITEROOT/support/see_request.bml?id=$spid";
+        $body .= "$LJ::SITEROOT/support/see_request?id=$spid";
         $body .= "\n\nYou are receiving this email because you've requested notifications of new support requests. You may change this notification setting here:\n\n";
-        $body .= "$LJ::SITEROOT/support/changenotify.bml";
+        $body .= "$LJ::SITEROOT/support/changenotify";
 
 
         foreach my $u (values %$userids) {
@@ -1114,13 +1114,13 @@ sub work {
         $body = "A follow-up to the following $LJ::SITENAME support request has been submitted:\n\n";
         $body .= "Category: $sp->{_cat}{catname}\n";
         $body .= "Subject:  $sp->{subject}\n";
-        $body .= "URL: $LJ::SITEROOT/support/see_request.bml?id=$spid\n";
+        $body .= "URL: $LJ::SITEROOT/support/see_request?id=$spid\n";
         $body .= "Text:\n\n  $resp";
         $body .= "\n\n" . "="x4 . "\n\n";
         $body .= "You can view this request here:\n\n";
-        $body .= "$LJ::SITEROOT/support/see_request.bml?id=$spid";
+        $body .= "$LJ::SITEROOT/support/see_request?id=$spid";
         $body .= "\n\nYou are receiving this email because you've requested notifications of changes to support requests. You may change this notification setting here:\n\n";
-        $body .= "$LJ::SITEROOT/support/changenotify.bml";
+        $body .= "$LJ::SITEROOT/support/changenotify";
 
 
         # now see who this should be sent to
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/talklib.pl
--- a/cgi-bin/talklib.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/talklib.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -118,12 +118,12 @@ sub link_bar
     my $entry = LJ::Entry->new($u, ditemid => $itemid);
 
     # << Previous
-    push @linkele, $mlink->("$LJ::SITEROOT/go.bml?${jargent}itemid=$itemid&amp;dir=prev", "prev_entry");
-    $$headref .= "<link href='$LJ::SITEROOT/go.bml?${jargent}itemid=$itemid&amp;dir=prev' rel='Previous' />\n";
+    push @linkele, $mlink->("$LJ::SITEROOT/go?${jargent}itemid=$itemid&amp;dir=prev", "prev_entry");
+    $$headref .= "<link href='$LJ::SITEROOT/go?${jargent}itemid=$itemid&amp;dir=prev' rel='Previous' />\n";
 
     # memories
     if ( LJ::is_enabled('memories') ) {
-        push @linkele, $mlink->("$LJ::SITEROOT/tools/memadd.bml?${jargent}itemid=$itemid", "memadd");
+        push @linkele, $mlink->("$LJ::SITEROOT/tools/memadd?${jargent}itemid=$itemid", "memadd");
     }
 
     # edit entry - if we have a remote, and that person can manage
@@ -132,31 +132,31 @@ sub link_bar
     if (defined $remote && (LJ::can_manage($remote, $u) ||
                             (LJ::u_equals($remote, $up) && LJ::can_use_journal($up->{userid}, $u->{user}, {}))))
     {
-        push @linkele, $mlink->("$LJ::SITEROOT/editjournal.bml?${jargent}itemid=$itemid", "editentry");
+        push @linkele, $mlink->("$LJ::SITEROOT/editjournal?${jargent}itemid=$itemid", "editentry");
     }
 
     # edit tags
     if ( LJ::is_enabled('tags') ) {
         if (defined $remote && LJ::Tags::can_add_tags($u, $remote)) {
-            push @linkele, $mlink->("$LJ::SITEROOT/edittags.bml?${jargent}itemid=$itemid", "edittags");
+            push @linkele, $mlink->("$LJ::SITEROOT/edittags?${jargent}itemid=$itemid", "edittags");
         }
     }
 
     if ( LJ::is_enabled('tellafriend') ) {
-        push @linkele, $mlink->("$LJ::SITEROOT/tools/tellafriend.bml?${jargent}itemid=$itemid", "tellfriend")
+        push @linkele, $mlink->("$LJ::SITEROOT/tools/tellafriend?${jargent}itemid=$itemid", "tellfriend")
             if ($entry->can_tellafriend($remote));
     }
 
     if ($remote && $remote->can_use_esn) {
         my $img_key = $remote->has_subscription(journal => $u, event => "JournalNewComment", arg1 => $itemid, require_active => 1) ?
             "track_active" : "track";
-        push @linkele, $mlink->("$LJ::SITEROOT/manage/subscriptions/entry.bml?${jargent}itemid=$itemid", $img_key);
+        push @linkele, $mlink->("$LJ::SITEROOT/manage/subscriptions/entry?${jargent}itemid=$itemid", $img_key);
     }
 
 
     ## >>> Next
-    push @linkele, $mlink->("$LJ::SITEROOT/go.bml?${jargent}itemid=$itemid&amp;dir=next", "next_entry");
-    $$headref .= "<link href='$LJ::SITEROOT/go.bml?${jargent}itemid=$itemid&amp;dir=next' rel='Next' />\n";
+    push @linkele, $mlink->("$LJ::SITEROOT/go?${jargent}itemid=$itemid&amp;dir=next", "next_entry");
+    $$headref .= "<link href='$LJ::SITEROOT/go?${jargent}itemid=$itemid&amp;dir=next' rel='Next' />\n";
 
     if (@linkele) {
         $ret .= BML::fill_template("standout", {
@@ -293,7 +293,7 @@ sub check_viewable
 
         if (defined $remote) {
             if ( $journal->is_community && ! $journal->is_closed_membership && $remote ) {
-                return $err->( BML::ml( 'talk.error.notauthorised.comm.open', { aopts => "href='$LJ::SITEROOT/community/join.bml?comm=$journalname'" } ) );
+                return $err->( BML::ml( 'talk.error.notauthorised.comm.open', { aopts => "href='$LJ::SITEROOT/community/join?comm=$journalname'" } ) );
             } elsif ( $journal->is_community && $journal->is_closed_membership ) {
                 return $err->( BML::ml( 'talk.error.notauthorised.comm.closed' ) );
             } else {
@@ -1223,7 +1223,7 @@ sub talkform {
     if (!$editid && $parpost->{'state'} eq "S") {
         $ret .= "<div class='ljwarnscreened'>$BML::ML{'.warnscreened'}</div>";
     }
-    $ret .= "<form method='post' action='$LJ::SITEROOT/talkpost_do.bml' id='postform'>";
+    $ret .= "<form method='post' action='$LJ::SITEROOT/talkpost_do' id='postform'>";
     $ret .= LJ::form_auth();
 
     # Login challenge/response
@@ -1431,7 +1431,7 @@ sub talkform {
                 $ret .= "<td align='center'><img src='$LJ::IMGPREFIX/silk/identity/openid.png' onclick='handleRadios(3);' /></td>";
                 $ret .= "<td align='center'>(  )</td>";
                 $ret .= "<td align='left' colspan='2'><font color='#c0c0c0'><b>OpenID</b></font>";
-                $ret .= BML::ml('.opt.noopenidpost', { aopts1 => "href='$LJ::SITEROOT/changeemail.bml'", aopts2 => "href='$LJ::SITEROOT/register.bml'" })
+                $ret .= BML::ml('.opt.noopenidpost', { aopts1 => "href='$LJ::SITEROOT/changeemail'", aopts2 => "href='$LJ::SITEROOT/register'" })
                     if defined $oid_identity;
 
                 $ret .= LJ::help_icon_html("openid", " ");
@@ -1568,7 +1568,7 @@ sub talkform {
     if (!$create_link && (!$remote || defined $oid_identity)) {
         $ret .= "<tr valign='middle' align='left'>";
         $ret .= "<td colspan='2'></td><td><span style='font-size: 8pt; font-style: italic;'>";
-        $ret .= BML::ml('.noaccount', {'aopts' => "href='$LJ::SITEROOT/create.bml'"});
+        $ret .= BML::ml('.noaccount', {'aopts' => "href='$LJ::SITEROOT/create'"});
         $ret .= "</span></td>";
         $ret .= "</tr>\n";
     }
@@ -2886,7 +2886,7 @@ sub init {
 
     # anonymous/cookie users cannot authenticate with ecphash
     if ($form->{'ecphash'} && $form->{'usertype'} ne "user") {
-        $err->(BML::ml("$SC.error.badusername2", {'sitename' => $LJ::SITENAMESHORT, 'aopts' => "href='$LJ::SITEROOT/lostinfo.bml'"}));
+        $err->(BML::ml("$SC.error.badusername2", {'sitename' => $LJ::SITENAMESHORT, 'aopts' => "href='$LJ::SITEROOT/lostinfo'"}));
         return undef;
     }
 
@@ -2958,7 +2958,7 @@ sub init {
                         {
                             $used_ecp = 1;
                         } else {
-                            $err->(BML::ml("$SC.error.badpassword2", {'aopts' => "href='$LJ::SITEROOT/lostinfo.bml'"}));
+                            $err->(BML::ml("$SC.error.badpassword2", {'aopts' => "href='$LJ::SITEROOT/lostinfo'"}));
                         }
 
                     # otherwise authenticate on username/password
@@ -2969,7 +2969,7 @@ sub init {
                         } else {
                             $ok = LJ::auth_okay($up, $form->{'password'}, $form->{'hpassword'});
                         }
-                        $err->(BML::ml("$SC.error.badpassword2", {'aopts' => "href='$LJ::SITEROOT/lostinfo.bml'"})) unless $ok;
+                        $err->(BML::ml("$SC.error.badpassword2", {'aopts' => "href='$LJ::SITEROOT/lostinfo'"})) unless $ok;
                     }
                 }
 
@@ -2978,7 +2978,7 @@ sub init {
                     $init->{didlogin} = $up->make_login_session($exptype, $ipfixed);
                 }
             } else {
-                $err->(BML::ml("$SC.error.badusername2", {'sitename' => $LJ::SITENAMESHORT, 'aopts' => "href='$LJ::SITEROOT/lostinfo.bml'"}));
+                $err->(BML::ml("$SC.error.badusername2", {'sitename' => $LJ::SITENAMESHORT, 'aopts' => "href='$LJ::SITEROOT/lostinfo'"}));
             }
         } elsif ($journalu->{'opt_whocanreply'} eq "all") {
             $err->(BML::ml("$SC.error.nousername", {'sitename' => $LJ::SITENAMESHORT}));
@@ -3021,7 +3021,7 @@ sub init {
 
             unless ($claimed_id) {
                 return $err->("You can't use a $LJ::SITENAMESHORT OpenID account on $LJ::SITENAME &mdash; ".
-                                 "just <a href='/login.bml'>go login</a> with your actual $LJ::SITENAMESHORT account.") if $$tried_local_ref;
+                                 "just <a href='/login'>go login</a> with your actual $LJ::SITENAMESHORT account.") if $$tried_local_ref;
                 return $err->("No claimed id: ".$csr->err);
             }
 
@@ -3048,7 +3048,7 @@ sub init {
             $err->($journalu->errstr) if $journalu->err;
 
             my $check_url = $claimed_id->check_url(
-                                                   return_to      => "$LJ::SITEROOT/talkpost_do.bml?jid=$journalu->{'userid'}&pendcid=$pendcid",
+                                                   return_to      => "$LJ::SITEROOT/talkpost_do?jid=$journalu->{'userid'}&pendcid=$pendcid",
                                                    trust_root     => "$LJ::SITEROOT",
                                                    delayed_return => 1,
                                                    );
@@ -3139,7 +3139,7 @@ sub init {
 
     if ($up) {
         if ($up->{'status'} eq "N" && !$up->is_identity && !LJ::run_hook("journal_allows_unvalidated_commenting", $journalu)) {
-            $err->(BML::ml("$SC.error.noverify2", {'aopts' => "href='$LJ::SITEROOT/register.bml'"}));
+            $err->(BML::ml("$SC.error.noverify2", {'aopts' => "href='$LJ::SITEROOT/register'"}));
         }
 
         $bmlerr->("$SC.error.purged")    if $up->is_expunged;
diff -r 3bf4a5b125e5 -r 47d8462593ee cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl	Tue Aug 04 15:52:13 2009 +0000
+++ b/cgi-bin/weblib.pl	Tue Aug 04 19:32:47 2009 -0500
@@ -347,9 +347,9 @@ sub tosagree_widget {
     return
         "<div class='formitemDesc'>" .
         BML::ml('tos.mustread',
-                { aopts => "target='_new' href='$LJ::SITEROOT/legal/tos.bml'" }) .
+                { aopts => "target='_new' href='$LJ::SITEROOT/legal/tos'" }) .
         "</div>" .
-        "<iframe width='684' height='300' src='/legal/tos-mini.bml' " .
+        "<iframe width='684' height='300' src='/legal/tos-mini' " .
         "style='border: 1px solid gray;'></iframe>" .
         "<div>" . LJ::html_check({ name => 'agree_tos', id => 'agree_tos',
                                    value => '1', selected =>  $checked }) .
@@ -668,7 +668,7 @@ sub create_qr_div {
     LJ::load_user_props($remote, "opt_no_quickreply");
     return undef if $remote->{'opt_no_quickreply'};
 
-    $qrhtml .= "<div id='qrformdiv'><form id='qrform' name='qrform' method='POST' action='$LJ::SITEROOT/talkpost_do.bml'>";
+    $qrhtml .= "<div id='qrformdiv'><form id='qrform' name='qrform' method='POST' action='$LJ::SITEROOT/talkpost_do'>";
     $qrhtml .= LJ::form_auth();
 
     my $stylemineuri = $stylemine ? "style=mine&" : "";
@@ -1071,7 +1071,7 @@ sub entry_form {
                                     userpic_preview_image.alt = alttext[userpic_select.selectedIndex];
                                 } else {
                                     userpic_preview.className += " userpic_preview_border";
-                                    userpic_preview.innerHTML = '<a href="$LJ::SITEROOT/editpics.bml"><img src="" alt="selected userpic" id="userpic_preview_image" style="display: none;" /><span id="userpic_msg">' + userpic_msg + '</span></a>';
+                                    userpic_preview.innerHTML = '<a href="$LJ::SITEROOT/editpics"><img src="" alt="selected userpic" id="userpic_preview_image" style="display: none;" /><span id="userpic_msg">' + userpic_msg + '</span></a>';
                                 }
                             }
                         }
@@ -1177,7 +1177,7 @@ sub entry_form {
             } elsif (!$remote || $altlogin)  {
                 $out .= "<div id='userpic'><p id='userpic_preview'><img src='/img/nouserpic.png' alt='selected userpic' id='userpic_preview_image' class='userpic_loggedout'  /></p></div>";
             } else {
-                $out .= "<div id='userpic'><p id='userpic_preview' class='userpic_preview_border'><a href='$LJ::SITEROOT/editpics.bml'>Upload a userpic</a></p></div>";
+                $out .= "<div id='userpic'><p id='userpic_preview' class='userpic_preview_border'><a href='$LJ::SITEROOT/editpics'>Upload a userpic</a></p></div>";
             }
 
 
@@ -2488,22 +2488,22 @@ sub control_strip
     my $uri = $baseuri ? "http://$baseuri" : "http://" . $r->header_in('Host') . $r->uri;
     $uri .= "$querysep$args";
     my $euri = LJ::eurl($uri);
-    my $create_link = LJ::run_hook("override_create_link_on_navstrip", $journal) || "<a href='$LJ::SITEROOT/create.bml'>" . BML::ml('web.controlstrip.links.create', {'sitename' => $LJ::SITENAMESHORT}) . "</a>";
+    my $create_link = LJ::run_hook("override_create_link_on_navstrip", $journal) || "<a href='$LJ::SITEROOT/create'>" . BML::ml('web.controlstrip.links.create', {'sitename' => $LJ::SITENAMESHORT}) . "</a>";
 
     # Build up some common links
     my %links = (
                  'login'             => "<a href='$LJ::SITEROOT/?returnto=$euri'>$BML::ML{'web.controlstrip.links.login'}</a>",
-                 'post_journal'      => "<a href='$LJ::SITEROOT/update.bml'>$BML::ML{'web.controlstrip.links.post2'}</a>",
+                 'post_journal'      => "<a href='$LJ::SITEROOT/update'>$BML::ML{'web.controlstrip.links.post2'}</a>",
                  'home'              => "<a href='$LJ::SITEROOT/'>" . $BML::ML{'web.controlstrip.links.home'} . "</a>",
-                 'recent_comments'   => "<a href='$LJ::SITEROOT/tools/recent_comments.bml'>$BML::ML{'web.controlstrip.links.recentcomments'}</a>",
+                 'recent_comments'   => "<a href='$LJ::SITEROOT/tools/recent_comments'>$BML::ML{'web.controlstrip.links.recentcomments'}</a>",
                  'manage_friends'    => "<a href='$LJ::SITEROOT/manage/circle/'>$BML::ML{'web.controlstrip.links.managecircle'}</a>",
-                 'manage_entries'    => "<a href='$LJ::SITEROOT/editjournal.bml'>$BML::ML{'web.controlstrip.links.manageentries'}</a>",
-                 'invite_friends'    => "<a href='$LJ::SITEROOT/manage/circle/invite.bml'>$BML::ML{'web.controlstrip.links.invitefriends'}</a>",
+                 'manage_entries'    => "<a href='$LJ::SITEROOT/editjournal'>$BML::ML{'web.controlstrip.links.manageentries'}</a>",
+                 'invite_friends'    => "<a href='$LJ::SITEROOT/manage/circle/invite'>$BML::ML{'web.controlstrip.links.invitefriends'}</a>",
                  'create_account'    => $create_link,
-                 'syndicated_list'   => "<a href='$LJ::SITEROOT/syn/list.bml'>$BML::ML{'web.controlstrip.links.popfeeds'}</a>",
+                 'syndicated_list'   => "<a href='$LJ::SITEROOT/syn/list'>$BML::ML{'web.controlstrip.links.popfeeds'}</a>",
                  'learn_more'        => LJ::run_hook('control_strip_learnmore_link') || "<a href='$LJ::SITEROOT/'>$BML::ML{'web.controlstrip.links.learnmore'}</a>",
                  'explore'           => "<a href='$LJ::SITEROOT/explore/'>" . BML::ml('web.controlstrip.links.explore', { sitenameabbrev => $LJ::SITENAMEABBREV }) . "</a>",
-                 'confirm'           => "<a href='$LJ::SITEROOT/register.bml'>$BML::ML{'web.controlstrip.links.confirm'}</a>",
+                 'confirm'           => "<a href='$LJ::SITEROOT/register'>$BML::ML{'web.controlstrip.links.confirm'}</a>",
                  );
 
     if ($remote) {
@@ -2513,24 +2513,24 @@ sub control_strip
         $links{inbox} .= "</a>";
 
         $links{'view_friends_page'} = "<a href='" . $remote->journal_base . "/read/'>$BML::ML{'web.controlstrip.links.viewreadingpage'}</a>";
-        $links{'add_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=$journal->{user}'>$BML::ML{'web.controlstrip.links.addtocircle'}</a>";
-        $links{'edit_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=$journal->{user}'>$BML::ML{'web.controlstrip.links.modifycircle'}</a>";
-        $links{'track_user'} = "<a href='$LJ::SITEROOT/manage/subscriptions/user.bml?journal=$journal->{user}'>$BML::ML{'web.controlstrip.links.trackuser'}</a>";
+        $links{'add_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add?user=$journal->{user}'>$BML::ML{'web.controlstrip.links.addtocircle'}</a>";
+        $links{'edit_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add?user=$journal->{user}'>$BML::ML{'web.controlstrip.links.modifycircle'}</a>";
+        $links{'track_user'} = "<a href='$LJ::SITEROOT/manage/subscriptions/user?journal=$journal->{user}'>$BML::ML{'web.controlstrip.links.trackuser'}</a>";
         if ($journal->is_syndicated ) {
-            $links{'add_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=$journal->{user}&action=subscribe'>$BML::ML{'web.controlstrip.links.addfeed'}</a>";
-            $links{'remove_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=$journal->{user}&action=remove'>$BML::ML{'web.controlstrip.links.removefeed'}</a>";
+            $links{'add_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add?user=$journal->{user}&action=subscribe'>$BML::ML{'web.controlstrip.links.addfeed'}</a>";
+            $links{'remove_friend'} = "<a href='$LJ::SITEROOT/manage/circle/add?user=$journal->{user}&action=remove'>$BML::ML{'web.controlstrip.links.removefeed'}</a>";
         }
         if ($journal->is_community) {
-            $links{'join_community'}   = "<a href='$LJ::SITEROOT/community/join.bml?comm=$journal->{user}'>$BML::ML{'web.controlstrip.links.joincomm'}</a>"
+            $links{'join_community'}   = "<a href='$LJ::SITEROOT/community/join?comm=$journal->{user}'>$BML::ML{'web.controlstrip.links.joincomm'}</a>"
                 unless $journal->is_closed_membership;
-            $links{'leave_community'}  = "<a href='$LJ::SITEROOT/community/leave.bml?comm=$journal->{user}'>$BML::ML{'web.controlstrip.links.leavecomm'}</a>";
-            $links{'watch_community'}  = "<a href='$LJ::SITEROOT/manage/circle/add.bml?user=$journal->{user}&action=subscribe'>$BML::ML{'web.controlstrip.links.watchcomm'}</a>";
-            $links{'unwatch_community'}   = "<a href='$LJ::SITEROOT/community/leave.bml?comm=$journal->{user}'>$BML::ML{'web.controlstrip.links.removecomm'}</a>";
-            $links{'post_to_community'}   = "<a href='$LJ::SITEROOT/update.bml?usejournal=$journal->{user}'>$BML::ML{'web.controlstrip.links.postcomm'}</a>";
+            $links{'leave_community'}  = "<a href='$LJ::SITEROOT/community/leave?comm=$journal->{user}'>$BML::ML{'web.controlstrip.links.leavecomm'}</a>";
+            $links{'watch_community'}  = "<a href='$LJ::SITEROOT/manage/circle/add?user=$journal->{user}&action=subscribe'>$BML::ML{'web.controlstrip.links.watchcomm'}</a>";
+            $links{'unwatch_community'}   = "<a href='$LJ::SITEROOT/community/leave?comm=$journal->{user}'>$BML::ML{'web.controlstrip.links.removecomm'}</a>";
+            $links{'post_to_community'}   = "<a href='$LJ::SITEROOT/update?usejournal=$journal->{user}'>$BML::ML{'web.controlstrip.links.postcomm'}</a>";
             $links{'edit_community_profile'} = "<a href='$LJ::SITEROOT/manage/profile/?authas=$journal->{user}'>$BML::ML{'web.controlstrip.links.editcommprofile'}</a>";
-            $links{'edit_community_invites'} = "<a href='$LJ::SITEROOT/community/sentinvites.bml?authas=$journal->{user}'>$BML::ML{'web.controlstrip.links.managecomminvites'}</a>";
-            $links{'edit_community_members'} = "<a href='$LJ::SITEROOT/community/members.bml?authas=$journal->{user}'>$BML::ML{'web.controlstrip.links.editcommmembers'}</a>";
-            $links{'track_community'} = "<a href='$LJ::SITEROOT/manage/subscriptions/user.bml?journal=$journal->{user}'>$BML::ML{'web.controlstrip.links.trackcomm'}</a>";
+            $links{'edit_community_invites'} = "<a href='$LJ::SITEROOT/community/sentinvites?authas=$journal->{user}'>$BML::ML{'web.controlstrip.links.managecomminvites'}</a>";
+            $links{'edit_community_members'} = "<a href='$LJ::SITEROOT/community/members?authas=$journal->{user}'>$BML::ML{'web.controlstrip.links.editcommmembers'}</a>";
+            $links{'track_community'} = "<a href='$LJ::SITEROOT/manage/subscriptions/user?journal=$journal->{user}'>$BML::ML{'web.controlstrip.links.trackcomm'}</a>";
             $links{'queue'} = "<a href='$LJ::SITEROOT/community/moderate?authas=$journal->{user}'>$BML::ML{'web.controlstrip.links.queue'}</a>";
         }
     }
@@ -2573,7 +2573,7 @@ sub control_strip
         my $remote_display  = LJ::ljuser($remote);
         if ($remote->{'defaultpicid'}) {
             my $url = "$LJ::USERPIC_ROOT/$remote->{'defaultpicid'}/$remote->{'userid'}";
-            $ret .= "<td id='lj_controlstrip_userpic' style='background-image: none;'><a href='$LJ::SITEROOT/editpics.bml'><img src='$url' alt=\"$BML::ML{'web.controlstrip.userpic.alt'}\" title=\"$BML::ML{'web.controlstrip.userpic.title'}\" height='43' /></a></td>";
+            $ret .= "<td id='lj_controlstrip_userpic' style='background-image: none;'><a href='$LJ::SITEROOT/editpics'><img src='$url' alt=\"$BML::ML{'web.controlstrip.userpic.alt'}\" title=\"$BML::ML{'web.controlstrip.userpic.title'}\" height='43' /></a></td>";
         } else {
             my $tinted_nouserpic_img = "";
 
@@ -2589,7 +2589,7 @@ sub control_strip
                     }
                 }
             }
-            $ret .= "<td id='lj_controlstrip_userpic' style='background-image: none;'><a href='$LJ::SITEROOT/editpics.bml'>";
+            $ret .= "<td id='lj_controlstrip_userpic' style='background-image: none;'><a href='$LJ::SITEROOT/editpics'>";
             if ($tinted_nouserpic_img eq "") {
                 $ret .= "<img src='$LJ::IMGPREFIX/controlstrip/nouserpic.gif' alt=\"$BML::ML{'web.controlstrip.nouserpic.alt'}\" title=\"$BML::ML{'web.controlstrip.nouserpic.title'}\" height='43' />";
             } else {
@@ -2597,7 +2597,7 @@ sub control_strip
             }
             $ret .= "</a></td>";
         }
-        $ret .= "<td id='lj_controlstrip_user' nowrap='nowrap'><form id='Greeting' class='nopic' action='$LJ::SITEROOT/logout.bml?ret=1' method='post'><div>";
+        $ret .= "<td id='lj_controlstrip_user' nowrap='nowrap'><form id='Greeting' class='nopic' action='$LJ::SITEROOT/logout?ret=1' method='post'><div>";
         $ret .= "<input type='hidden' name='user' value='$remote->{'user'}' />";
         $ret .= "<input type='hidden' name='sessid' value='$remote->{'_session'}->{'sessid'}' />"
             if $remote->session;
@@ -2647,7 +2647,7 @@ sub control_strip
                 }
 
                 $ret .= "$links{'manage_friends'}&nbsp;&nbsp; ";
-                $ret .= "$BML::ML{'web.controlstrip.select.friends.label'} <form method='post' style='display: inline;' action='$LJ::SITEROOT/manage/circle/filter.bml'>\n";
+                $ret .= "$BML::ML{'web.controlstrip.select.friends.label'} <form method='post' style='display: inline;' action='$LJ::SITEROOT/manage/circle/filter'>\n";
                 $ret .= LJ::html_hidden("user", $remote->{'user'}, "mode", "view", "type", "allfilters");
                 $ret .= LJ::html_select({'name' => "view", 'selected' => $selected }, @filters) . " ";
                 $ret .= LJ::html_submit($BML::ML{'web.controlstrip.btn.view'});
@@ -2794,7 +2794,7 @@ sub control_strip
             my $contents = LJ::run_hook('control_strip_userpic_contents', $euri) || "&nbsp;";
             $ret .= <<"LOGIN_BAR";
                 <td id='lj_controlstrip_userpic'>$contents</td>
-                <td id='lj_controlstrip_login' style='background-image: none;' nowrap='nowrap'><form id="login" class="lj_login_form" action="$LJ::SITEROOT/login.bml?ret=1" method="post"><div>
+                <td id='lj_controlstrip_login' style='background-image: none;' nowrap='nowrap'><form id="login" class="lj_login_form" action="$LJ::SITEROOT/login?ret=1" method="post"><div>
                 <input type="hidden" name="mode" value="login" />
                 <input type='hidden' name='chal' id='login_chal' class='lj_login_chal' value='$chal' />
                 <input type='hidden' name='response' id='login_response' class='lj_login_response' value='' />
@@ -2807,7 +2807,7 @@ LOGIN_BAR
             $ret .= "</td></tr>";
 
             $ret .= "<tr><td valign='top'>";
-            $ret .= "<a href='$LJ::SITEROOT/lostinfo.bml'>$BML::ML{'web.controlstrip.login.forgot'}</a>";
+            $ret .= "<a href='$LJ::SITEROOT/lostinfo'>$BML::ML{'web.controlstrip.login.forgot'}</a>";
             $ret .= " <a href='$LJ::SITEROOT/openid/'>$BML::ML{'web.controlstrip.login.openid'}</a>";
             $ret .= "</td><td style='font: 10px Arial, Helvetica, sans-serif;' valign='top' colspan='2' align='right'>";
             $ret .= "<input type='checkbox' id='xc_remember' name='remember_me' style='height: 10px; width: 10px;' tabindex='3' />";
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org