УПД ( 04.01.2009 ): Проект на Google Code - jsTagNotes .
УПД ( 03.06.2009 ): Проект доработан и перенесен на GitHub ( вики ).
Я хотел бы описать изобретенный мной «велосипед», который я использую для сохранения заметок, ссылок на сайты и другой достаточно важной информации небольшого размера.
В какой-то степени это альтернатива таким веб-сервисам, как вкусный и традиционные настольные приложения для заметок.
В конечном итоге цель этого поста — выяснить, стоит ли выкладывать мой проект в общественное достояние.
Ну и делайте заметки по реализации, я еще далек от области веб-разработки.
Описание работы
Заметки хранятся в XML-файле.Заметки можно добавлять и редактировать вручную.
Придумать для этого утилиту с графическим интерфейсом несложно, было бы желание.
На данный момент меня вполне устраивает редактирование XML. После редактирования заметки или добавления новой я запускаю самописный скрипт на Python, который с помощью библиотеки lxml преобразует XML в одну HTML-страницу.
Для упрощения кода я использовал шаблонизатор Мако .
УПД ( 03.01.2009 ): Все современные браузеры имеют встроенную поддержку XSLT-преобразования, так что по совету Хабрамана тенши Я также написал таблицу стилей XSLT. Теперь XML-файл можно открыть прямо в браузере.
Можно было бы исключить XML, Python и XSLT из системы, реализовав редактирование заметок непосредственно на странице с помощью JavaScript. Способы сохранения изменений в DOM известны.Теги используются для навигации по заметкам на странице.Стоит посмотреть, скажем, Тиддли вики .
Однако количество кода JavaScript, необходимого для редактирования и сохранения заметок, меня угнетает. Можно ограничиться полумерами, исключив только Python и XSLT и реализовав преобразование из XML (или чего-то более удобного и эффективного в использовании) в HTML на JavaScript. Но польза от этого, я думаю, не оправдывает увеличение времени задержки при открытии страницы.
Фильтр по тегам я реализовал на JavaScript, как мог, и сделал возможность фильтрации по нескольким тегам.
В облаке тегов можно просмотреть как самые популярные теги, так и все сразу.
Все это не без помощи библиотеки JavaScript, которую я выбрал.
jQuery .
Библиотеку ношу с собой, а не подключаю с официального сайта, чтобы можно было просматривать заметки даже без подключения к Интернету.
Самый большой недостаток моей системы — производительность.
Создание облака тегов при открытии страницы занимает больше секунды.
Предложения по оптимизации JavaScript принимаются.
Возможно, рано или поздно количество заметок вырастет настолько, что придется добавлять нумерацию страниц.
Судя по всему, это тоже придется реализовать на JavaScript. УПД ( 03.01.2009 ): Привести текст в соответствие с текущим положением дел.
Теги: #notes #notes #tags #xml #python #lxml #mako #HTML #JavaScript #Chulan
-
Кистяковский Богдан Александрович.
19 Oct, 24 -
Как Мы Объединили Две Банковские Crm-Системы
19 Oct, 24 -
Простая Замена Phpmyadmin Для Гиков
19 Oct, 24 -
Растём С Проблемами В Python
19 Oct, 24 -
Геометрия Данных 1. Симплексы И Графы
19 Oct, 24