среда, 14 апреля 2010 г.

RESTAS и карта сайта

Давно хотел иметь возможность нормального просмотра карты маршрутов (фактически карты сайта) в наглядном виде. Теперь, когда я знаю как работает инспектор объектов в SLIME, сделать это оказалось совсем не сложно, а результат довольно функционален. Вот как выглядит у меня сейчас в буфере Emacs карта маршрутов для сайта lisper.ru

#<ROUTES:MAPPER {EE36869}>
--------------------

Tree of routes
--------------------------------------------------

rulisp:main
apps/
rulisp:tools-list
format/
restas.colorize:main
all restas.colorize:list-pastes
create/
restas.colorize:create-paste
restas.colorize:save-paste
restas.colorize:preview-paste
css/$file restas.colorize:css
$id restas.colorize:view-paste
articles/
restas.wiki:wiki-main-page
css/$file restas.wiki:css
edit/$page/
restas.wiki:edit-wiki-page/post
restas.wiki:edit-wiki-page
history/$page/
restas.wiki:history-wiki-page
$time restas.wiki:view-archive-wiki-page
$page/
pdf restas.wiki:view-wiki-page-in-pdf
restas.wiki:view-wiki-page
files/*path restas.directory-publisher:route
forgot/
restas.simple-auth:forgot/post
restas.simple-auth:forgot
forum/
restas.forum:list-forums
css/*path restas.directory-publisher:route
thread/$topic-id restas.forum:topic-message-replies
$forum-id restas.forum:list-topics
login/
restas.simple-auth:login/post
restas.simple-auth:login
logout restas.simple-auth:logout
pcl/
rulisp.pcl:pcl-main
pcl.pdf rulisp.pcl:pcl-pdf
pdf/$chapter rulisp.pcl:pcl-chapter-pdf
$chapter rulisp.pcl:pcl-chapter-view
planet/
restas.planet:planet-main
atom.xml restas.planet:planet-atom
$file restas.planet:planet-resources
register/
confirmation/$invite/
restas.simple-auth:accept-invitation
restas.simple-auth:accept-invitation/post
restas.simple-auth:register/post
restas.simple-auth:register
reset-password/$mark/
restas.simple-auth:reset-password/post
restas.simple-auth:reset-password
wiki/
restas.wiki:wiki-main-page
css/$file restas.wiki:css
edit/$page/
restas.wiki:edit-wiki-page/post
restas.wiki:edit-wiki-page
history/$page/
restas.wiki:history-wiki-page
$time restas.wiki:view-archive-wiki-page
$page/
pdf restas.wiki:view-wiki-page-in-pdf
restas.wiki:view-wiki-page
*path restas.directory-publisher:route

Reset route map
Здесь наглядно видно дерево маршрутов. Переменные шаблонов подсвечиваются и показываются с префиксами $ и * (для wilcard переменных). Каждую переменную также можно исследовать, например, что бы увидеть с помощью какой функции производиться парсинг переменной. В конце каждого листа этого дерева находиться объект-маршрут, нажав на нём "." можно перейти к месту определения маршрута, а Enter позволит исследовать его более детально (какой HTTP-метод обрабатывает, какие для него проводятся дополнительные проверки и т.п.). Таким образом, данный функционал позволяет исследовать и лучше понять как именно идёт обработка запроса и также может использоваться для простой, ориентированной на специфику веб-приложений, навигации по коду.

2 комментария:

  1. Отвлеченный вопрос: А что за цветовая тема в емаксе?

    ОтветитьУдалить
  2. @LiteTabs
    Схема простая:

    (set-background-color "black")
    (set-foreground-color "OliveDrab4")
    (set-cursor-color "OliveDrab4")

    :)))

    ОтветитьУдалить