# HG changeset patch # User neko259 # Date 2013-10-30 15:39:37 # Node ID dd8357bc5e5375e770c6504540ccf6c42241a991 # Parent 739df82591239f044b3e7f76a51a353602107532 Added strikethrough text to the text parser diff --git a/boards/locale/ru/LC_MESSAGES/django.mo b/boards/locale/ru/LC_MESSAGES/django.mo index eb71554a659e555d9de5704b5077918b5fded624..3e8061e105ce00b873db3e0cea9eedeeccc9b6a5 GIT binary patch literal 5618 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\n" "Language-Team: LANGUAGE \n" @@ -34,23 +34,23 @@ msgstr "разработчик javascript" msgid "designer" msgstr "дизайнер" -#: forms.py:51 templates/boards/posting_general.html:135 -#: templates/boards/thread.html:100 +#: forms.py:51 templates/boards/posting_general.html:157 +#: templates/boards/thread.html:101 msgid "Title" msgstr "Заголовок" -#: forms.py:53 templates/boards/posting_general.html:150 -#: templates/boards/thread.html:115 +#: forms.py:53 templates/boards/posting_general.html:172 +#: templates/boards/thread.html:116 msgid "Text" msgstr "Текст" -#: forms.py:54 templates/boards/posting_general.html:155 -#: templates/boards/thread.html:120 +#: forms.py:54 templates/boards/posting_general.html:177 +#: templates/boards/thread.html:121 msgid "Image" msgstr "Изображение" -#: forms.py:57 templates/boards/posting_general.html:165 -#: templates/boards/thread.html:125 +#: forms.py:57 templates/boards/posting_general.html:187 +#: templates/boards/thread.html:126 msgid "e-mail" msgstr "" @@ -79,9 +79,8 @@ msgid "Wait %s seconds after last postin msgstr "Подождите %s секунд после последнего постинга" #: forms.py:140 templates/boards/post.html:39 -#: templates/boards/posting_general.html:77 -#: templates/boards/posting_general.html:160 templates/boards/tags.html:7 -#: templates/boards/thread.html:80 templates/boards/rss/post.html:10 +#: templates/boards/posting_general.html:182 templates/boards/tags.html:7 +#: templates/boards/rss/post.html:10 msgid "Tags" msgstr "Теги" @@ -138,24 +137,24 @@ msgstr "Репозиторий" msgid "Feed" msgstr "Лента" -#: templates/boards/base.html:35 +#: templates/boards/base.html:34 msgid "All threads" msgstr "Все темы" -#: templates/boards/base.html:40 +#: templates/boards/base.html:39 msgid "Tag management" msgstr "Управление тегами" -#: templates/boards/base.html:42 +#: templates/boards/base.html:41 msgid "Settings" msgstr "Настройки" -#: templates/boards/base.html:49 templates/boards/login.html:6 +#: templates/boards/base.html:48 templates/boards/login.html:6 #: templates/boards/login.html.py:21 msgid "Login" msgstr "Вход" -#: templates/boards/base.html:50 +#: templates/boards/base.html:49 msgid "Up" msgstr "Вверх" @@ -171,102 +170,103 @@ msgstr "Вставьте свой ID пользователя выше" msgid "Post image" msgstr "Изображение сообщения" -#: templates/boards/post.html:26 templates/boards/posting_general.html:62 -#: templates/boards/thread.html:59 +#: templates/boards/post.html:26 templates/boards/posting_general.html:67 +#: templates/boards/thread.html:60 msgid "Delete" msgstr "Удалить" -#: templates/boards/post.html:29 templates/boards/posting_general.html:65 -#: templates/boards/thread.html:62 +#: templates/boards/post.html:29 templates/boards/posting_general.html:70 +#: templates/boards/thread.html:63 msgid "Ban IP" msgstr "Заблокировать IP" -#: templates/boards/posting_general.html:19 -msgid "Tag: " -msgstr "Тег: " - -#: templates/boards/posting_general.html:57 +#: templates/boards/posting_general.html:62 msgid "Reply" msgstr "Ответ" -#: templates/boards/posting_general.html:74 templates/boards/thread.html:153 +#: templates/boards/posting_general.html:79 +#: templates/boards/posting_general.html:133 templates/boards/thread.html:72 +msgid "Replies" +msgstr "Ответы" + +#: templates/boards/posting_general.html:87 templates/boards/thread.html:154 msgid "replies" msgstr "ответов" -#: templates/boards/posting_general.html:75 templates/boards/thread.html:154 +#: templates/boards/posting_general.html:88 templates/boards/thread.html:155 msgid "images" msgstr "изображений" -#: templates/boards/posting_general.html:126 +#: templates/boards/posting_general.html:148 msgid "No threads exist. Create the first one!" msgstr "Нет тем. Создайте первую!" -#: templates/boards/posting_general.html:132 +#: templates/boards/posting_general.html:154 msgid "Create new thread" msgstr "Создать новую тему" -#: templates/boards/posting_general.html:140 templates/boards/thread.html:105 +#: templates/boards/posting_general.html:162 templates/boards/thread.html:106 msgid "Formatting" msgstr "Форматирование" -#: templates/boards/posting_general.html:142 templates/boards/thread.html:107 +#: templates/boards/posting_general.html:164 templates/boards/thread.html:108 msgid "quote" msgstr "цитата" -#: templates/boards/posting_general.html:143 templates/boards/thread.html:108 +#: templates/boards/posting_general.html:165 templates/boards/thread.html:109 msgid "italic" msgstr "курсив" -#: templates/boards/posting_general.html:144 templates/boards/thread.html:109 +#: templates/boards/posting_general.html:166 templates/boards/thread.html:110 msgid "bold" msgstr "полужирный" -#: templates/boards/posting_general.html:145 templates/boards/thread.html:110 +#: templates/boards/posting_general.html:167 templates/boards/thread.html:111 msgid "spoiler" msgstr "спойлер" -#: templates/boards/posting_general.html:146 templates/boards/thread.html:111 +#: templates/boards/posting_general.html:168 templates/boards/thread.html:112 msgid "comment" msgstr "комментарий" -#: templates/boards/posting_general.html:178 templates/boards/thread.html:139 +#: templates/boards/posting_general.html:200 templates/boards/thread.html:140 msgid "Post" msgstr "Отправить" -#: templates/boards/posting_general.html:180 +#: templates/boards/posting_general.html:202 msgid "Tags must be delimited by spaces. Text or image is required." msgstr "" "Теги должны быть разделены пробелами. Текст или изображение обязательны." -#: templates/boards/posting_general.html:183 templates/boards/thread.html:141 +#: templates/boards/posting_general.html:205 templates/boards/thread.html:142 msgid "Text syntax" msgstr "Синтаксис текста" -#: templates/boards/posting_general.html:193 +#: templates/boards/posting_general.html:215 msgid "Pages:" msgstr "Страницы: " -#: templates/boards/settings.html:13 +#: templates/boards/settings.html:14 msgid "User:" msgstr "Пользователь:" -#: templates/boards/settings.html:15 +#: templates/boards/settings.html:16 msgid "You are moderator." msgstr "Вы модератор." -#: templates/boards/settings.html:18 +#: templates/boards/settings.html:19 msgid "Posts:" msgstr "Сообщений:" -#: templates/boards/settings.html:19 +#: templates/boards/settings.html:20 msgid "First access:" msgstr "Первый доступ:" -#: templates/boards/settings.html:21 +#: templates/boards/settings.html:22 msgid "Last access:" msgstr "Последний доступ: " -#: templates/boards/settings.html:30 +#: templates/boards/settings.html:31 msgid "Save" msgstr "Сохранить" @@ -278,19 +278,15 @@ msgstr "тем" msgid "No tags found." msgstr "Теги не найдены." -#: templates/boards/thread.html:24 +#: templates/boards/thread.html:25 msgid "posts to bumplimit" msgstr "сообщений до бамплимита" -#: templates/boards/thread.html:71 -msgid "Replies" -msgstr "Ответы" - -#: templates/boards/thread.html:97 +#: templates/boards/thread.html:98 msgid "Reply to thread" msgstr "Ответить в тему" -#: templates/boards/thread.html:155 +#: templates/boards/thread.html:156 msgid "Last update: " msgstr "Последнее обновление: " @@ -335,6 +331,13 @@ msgstr "Цитата" msgid "Link to a post" msgstr "Ссылка на сообщение" +#: templates/boards/staticpages/help.html:18 +msgid "Strikethrough text" +msgstr "Зачеркнутый текст" + +#~ msgid "Tag: " +#~ msgstr "Тег: " + #~ msgid "Remove" #~ msgstr "Удалить" diff --git a/boards/mdx_neboard.py b/boards/mdx_neboard.py --- a/boards/mdx_neboard.py +++ b/boards/mdx_neboard.py @@ -12,6 +12,7 @@ QUOTE_PATTERN = r'^(?)(>[^>].+)$' REFLINK_PATTERN = r'((>>)(\d+))' SPOILER_PATTERN = r'%%(.+)%%' COMMENT_PATTERN = r'^(//(.+))' +STRIKETHROUGH_PATTERN = r'~(.+)~' class AutolinkPattern(Pattern): def handleMatch(self, m): @@ -71,6 +72,15 @@ class CommentPattern(Pattern): return quote_element +class StrikeThroughPattern(Pattern): + def handleMatch(self, m): + quote_element = etree.Element('span') + quote_element.set('class', 'strikethrough') + quote_element.text = m.group(2) + + return quote_element + + class NeboardMarkdown(markdown.Extension): def extendMarkdown(self, md, md_globals): self._add_neboard_patterns(md) @@ -88,9 +98,11 @@ class NeboardMarkdown(markdown.Extension reflink = ReflinkPattern(REFLINK_PATTERN, md) spoiler = SpoilerPattern(SPOILER_PATTERN, md) comment = CommentPattern(COMMENT_PATTERN, md) + strikethrough = StrikeThroughPattern(STRIKETHROUGH_PATTERN, md) md.inlinePatterns[u'autolink_ext'] = autolink md.inlinePatterns[u'spoiler'] = spoiler + md.inlinePatterns[u'strikethrough'] = strikethrough md.inlinePatterns[u'comment'] = comment md.inlinePatterns[u'reflink'] = reflink md.inlinePatterns[u'quote'] = quote diff --git a/boards/static/css/base.css b/boards/static/css/base.css --- a/boards/static/css/base.css +++ b/boards/static/css/base.css @@ -17,4 +17,8 @@ background-color: #CCC; border: 1px solid #000; cursor: pointer; -} \ No newline at end of file +} + +.strikethrough { + text-decoration: line-through; +} diff --git a/boards/templates/boards/staticpages/help.html b/boards/templates/boards/staticpages/help.html --- a/boards/templates/boards/staticpages/help.html +++ b/boards/templates/boards/staticpages/help.html @@ -15,4 +15,5 @@

//{% trans 'Comment' %}

> {% trans 'Quote' %}

>>123 -- {% trans 'Link to a post' %}

-{% endblock %} \ No newline at end of file +

~{% trans 'Strikethrough text' %}~

+{% endblock %}