Abnormal programming
Python
HTML
Comments 65
+5
Думал, апрель наступил. Сверился с календарем — нет, не апрель — февраль!
+7
В каждой области человеческой деятельности должен быть свой Brainfuck.
Даже в разметке.
+1
Если такой язык не самоцель, а средство для разминки ума или проверки идей, то почему бы и нет?
Вот, например, ещё один «Brainfuck» от разметки.
0
Ну для эзотерики что эта статья, что с русифицированным HTML — недостаточно витиевато
0
Там цель была немного в другом — проверить, насколько хорошо разобрался с питоном. А язык делался just for fun, на реальное использование (и даже эзотерику) не претендуя.
+11

Вот, кстати, тоже подумал — "Зачем?" А потом мгновенно пришел ответ — "Потому что!". И это правильно, на самом деле. Почему бы и нет. Просто так.

+1
Но там хотя бы кавычки клавиатурные. А постоянно набирать неклавиатурные символы — мазохизм.
А так, кроме этого, вполне себе ничего.
-3

Мазохизм только если вы не знаете, как настроить окружение. Или не можете себе этого позволить (к примеру, потому что компьютер не ваш).

+3
Или не хотите настраивать кучу всего каждый раз под новым аккаунтом. Как-то с возрастом всё реже хочется тратить время на настройки под себя, особенно в ОС, где сложно эти настройки сложить в пару текстовых патчей.
-1

Это относится к варианту «не знаете, как настроить». Нужные действия вполне можно автоматизировать, если вы действительно часто меняете аккаунты.

+1
Нет, это относится к варианту «не настолько критично, чтобы вникать». В молодости я тоже не знал, как настроить, но был энтузиазм и я узнавал. А теперь — влом.
0

То, что вы только что сказали — «вы не знаете, потому что это для вас не критично». То, что у вас недостаточно мотивации, чтобы узнать как автоматизировать настройку, не изменит того, что задача решаема, но вы не знаете как. Это никак не отдельный вариант.

0
автоматизировав настройку под ХП мне почему-то пришлось делать все ручками под 10ку…
+1
В принципе, согласен. Я имел в виду, что незнание само по себе причиной не является. Нужна ещё лень.
0
Настроить горячие кнопки для настройки горячих кнопок?
xzibit.jpeg
0
*побежал менять кавычки* alt+ комбинации все равно неудобно набирать одной рукой.
и вообще, как бы ни говорили про эпоху Юникод, но я из эпохи ASCII и подозрителен к любым символам, у которых код больше 128
0
Так речь же шла о том, чтобы настроить окружение, а не набирать одной рукой.
У Вас даже в стандартной кириллической раскладе — уже́ бо́льшая часть символов не ASCII (код ≥ 128).
0
Молодной, развивающиийся и перспективный язык программирования
0
Замечание: на Хабре присутствует такой баг — кнопка Предпросмотр на страницах habrahabr.ru/sandbox/add и habrahabr.ru/topic/add работает по-разному! Точнее, галочка «Отключить автоматические переносы строк и создание ссылок» просто не работает при добавлении статьи в Песочницу.

(О таком, безусловно, нужно писать прежде всего в баг-трекер, но решил оставить комментарий тут как оправдание несколько неказистого оформления статьи — получилось нечто среднее между тем, как поправил оформление статьи модератор и тем как я приглядывался к Предпросмотру [а он оказывается неправильный...] и старался получить такой вид статьи, который хотелось).
0
Вы в любой момент можете отредактировать пост, исправив переводы строк на своё усмотрение. Даже после вмешательства модераторов.
+2
Сперва подумал под парными кавычками понимается форматирование как в WackoWiki.

**полужирный**
//курсив//
__подчеркнутый__
--зачеркнутый--
##моноширинный##
>>центрированный<<
+1
Немного оффтопа: именно WackoWiki разметка из всех упрощенных разметок для меня оказалась самой удобной — за счет правила двойных символов. До сих пор использую.
0

Расширение функционала рано или поздно приведет к html или json like разметке.

+1
с помощью программы AutoHotkey назначить глобальные горячие клавиши для ввода любых спец-символовa
Я вам по секрету скажу, можно просто раскладку клавиатуры сменить. В том числе на самодельную.
Только тс-с-с..!
0

Благодарю за ссылку, но на практике использовать для популяризации пк-разметки такую штуку скорее всего никак не получится. Слишком сложно. Должен быть очень простой способ добавить поддержку ввода нестандартных символов, чтобы его могли массово использовать. Желательно умещающийся в один твит.


Например:


Установите AutoHotkey.
Добавьте эти две строчки в файл-скрипт настроек:
Alt & 9:: SendInput {‘}
Alt & 0:: SendInput {’}


или


Установите Sublime Text 3.
Установите плагин pqmarkup.


или


Установите новый редактор со встроенной поддержкой пк-разметки.
Для ввода символов парных кавычек ничего настраивать в нём не нужно.

0

Посмотрел. Занятно. Но почему не взлетело — вполне очевидно:


  1. Редактирование в "текстовом" режиме только моноширного текста теперь стало совсем неактуально.
  2. Формат сохранения текстовых файлов — своеобразный и скорее не текстовый, а двоичный.
  3. Антивирус [стандартный Windows Defender] на этот редактор ругается (и не только).

А вот то, что взлетит, мне тоже понятно {за счёт чего — нужно просто много/долго {как минимум, дольше, чем на "неправильные"} смотреть на "правильные" вещи} — нужен микс из:


  1. Sublime Text. (ИМХО, пока что лучший инструмент для кодера/программиста, особенно, любящего вносить свои правки в поведение редактора. Дополнительным открытием для меня стало то, что панель инструментов с красивыми кнопками в редакторе для кода практически и не нужна и что вполне можно обойтись без продвинутого окна настроек посредством грамотной документации и продуманных файлов настроек в удобочитаемом формате (JSON или даже что-то попроще).)
  2. PyCharm. (Прежде всего за отладчик Python.)
  3. Microsoft Visual Studio. (Отладчик C++/C# в студии лучше, чем в PyCharm — советую JetBrains добавить хотя бы отображение многострочных строк.)
  4. Notepad++, Atom и Visual Studio Code. (В плане открытости [исходного кода].)

Хотя Atom и Visual Studio Code очень хочется исключить из этого списка за то, что их разработчики выбрали "неправильную" (тормозную) платформу.

+1
Это сейчас, с нынешних высот, понятно. А тогда конкуренция была нехилая. Windows не все НИИ могли оплатить (3.11 для рабочих групп, ага), чирайтер был почти стандартом для набора формул (как и wordperfect). Лексикон ещё пытался взлететь.
-1
Ага, почти. Директор по продажам «Лексикона» возглавила представительство Microsoft в России и СНГ, и стала руководить русификацией MS Word.
+1
Хотя Atom и Visual Studio Code очень хочется исключить из этого списка за то, что их разработчики выбрали "неправильную" (тормозную) платформу.

По этому поводу хочется спорить, потому что перешел на VC исключительно потому что PhpStorm от JetBrains (насколько бы он не был универсальным) постоянно подлагивает. Все относительно.

0
А что вы имеете в виду под VC?
Visual Studio Code или MS Visual C++?

В плане тормознутости PyCharm (аналогично PhpStorm, т.к. обе эти IDE на одной платформе) — согласен, но лучшего отладчика для Python я не нашёл.

А как обстоят дела с отладкой PHP в этой «вашей» VC?
+2
По той же причине тоже перешел на vscode, на моем железе vscode плавнее и отзывчивее работает, плюс последний апдейт на производительность порадовал
0
Хотя Atom и Visual Studio Code очень хочется исключить из этого списка за то, что их разработчики выбрали «неправильную» (тормозную) платформу.


VS Code во сравнению с Atom тормозит сильно меньше, но тут кое-чего скорее не хватает…
UFO landed and left these words here
0
Вот так не работает: ~*‘жирный курсив’ (будет просто ~жирный), пишите так: ~‘*‘жирный курсив’’ или так: *‘~‘жирный курсив’’

ЧТОА? Можно увидеть EBNF вашей замечательной грамматики?
+3
А, понял, у вас допускаются вложенные pq выражения.

Это существенная черта языка, странно что вы упоминаете её очень вскользь.

Не такой уж язык и «облегчённый». Кроме того EBNF всё равно хотелось бы увидеть, иначе непонятны многие вещи, например как вы экранируете спецсимволы.
+1
допускаются вложенные pq выражения.
В Markdown также допускается вложенное форматирование (правда, в более ограниченных случаях):
guides.github.com/features/mastering-markdown:
_You **can** combine them_

А почему EBNF, а не ABNF?
Но в данном случае я руководствуюсь принципом:
https://www.youtube.com/...:
"Code is Law"
То есть, код базовой реализации определяет/задаёт точную спецификацию оригинальной разметки.

И для Markdown (и даже CommonMark), насколько мне известно, также нет официальной BNF/EBNF/ABNF (хотя есть неофициальные, например github.com/Domysee/MarkdownEbnf).

непонятны многие вещи, например как вы экранируете спецсимволы.
Посредством Дополнительные возможности форматирования. «Сырой»\Raw HTML возможно вставить произвольный HTML, в том числе спецсимволы (как в формате HTML entities, так и просто в виде символов).
Но, в отличие от других разметок, в пк-разметке экранировать требуется гораздо меньше спецсимволов, и спецсимволы можно вставлять прямо в код как есть.
0
Это существенная черта языка, странно что вы упоминаете её очень вскользь.

Хорошо, добавил в статью Обратите внимание, что использование отдельных символов для открывающей и закрывающей кавычек предоставляет возможность неограниченной вложенности элементов форматирования.

0
Причины (впрочем, достаточно субъективные), почему я выбрал именно символы ‘’ (а не `´ или, скажем, «» или “”):

А вот я бы как раз выбрал очевидно зеркальные (в подавляющем большинстве шрифтов), независимо от того, идут они подряд или задом наоборот. Как заметили выше, сделать кастомную раскладку — не проблема. При частом использовании коды двух символов запоминаются с полпинка (для ненастроенного окружения) и, кроме того, именно за счёт того, что они идут не подряд — сложнее допустить ошибку. А так — они и выглядят почти одинаково (при нормальном размере шрифта а не увеличенном) и за счёт смежных позиций можно легко перепутать.

+1
  1. По стандарту у картинок обязательно должен быть атрибут alt.
    Markdown это вполне решает: ![моя фотография](http://example.com/myphoto.jpg)   →   <img alt="моя фотография" src="http://example.com/myphoto.jpg">. А вот у Вас с этим явная проблема (во-первых, title — не то же самое, что alt, во-вторых, Вы разрешаете не указать title (точнее, не просто разрешаете не указать, Markdown тоже разрешает не указать, а синтаксически оформляете его как что-то «дополнительное»)).
  2. Немозможность вставить в (англ., укр.) текст нормальную кавычку без дополнительных ухищрений — это, ИМХО, ппц. То есть Вы как бы плясали от того, что взяли два символа, которые меньше всего используются в русском тексте. Но:
    1. Вы попали на символы, которые дохрена используются в англ. тексте.
    2. Вы попали на символы, которые не просто дохрена используются в англ. тексте, а очень часто подпадают под автозамену в различных текстовых редакторах. В отличие от, например, Markdown'овских скобочек и пр., текстовые редакторы не относятся к одинарным кавычкам как к чему-то незыблемому и часто неявно меняют их с одних на другие, например LibreOffice и quora.com заменяют U+0027 (He said me 'I don't know!') на U+2018 и U+2019 (He said me ‘I don’t know!’). Т.о. копи-пейст pq-кода через «умный» редактор может его испортить (навставляв несимметричных U+2018 и U+2019).
    3. Я б тогда на Вашем месте вообще уже какие-то неиспользуемые в нормальном тексте специальные Unicode-символы взял (а-ля и ). Но, по-моему, такая идея в любом случае гиблая, потому что, во-первых, надо иметь возможность представить pq-код внутри pq-кода, во-вторых, это фактически возврат в прошлое (см. control characters). Хотя, кто знает, может, история и пойдёт по спирали.

  3. Кстати, как у Вас с возможностью представить неотформатированный текст (исходный код, например)?

+1
Кстати, как у Вас с возможностью представить неотформатированный текст (исходный код, например)?

Дополнительные возможности форматирования. Вставка исходного кода
Дополнительные возможности форматирования. Отключение пк-форматирования
Дополнительные возможности форматирования. «Сырой»\Raw HTML


[P.S. И я не просто выбрал эти символы, я дождался года/кода этих символов, чтобы опубликовать статью именно в этот год (почему не опубликовал статью 1 января 2018? Можно сказать, так получилось, что не было интернета в тот момент времени.).]

0
Есть одна достаточно несложная, но актуальная [и, надеюсь, вполне себе интересная] задача — написать преобразователь пк-разметки в Markdown {сразу оговорюсь, что нужно только в одну сторону, а для чего задача — хочу презентации на пк-разметке писать, а готовые тулзы работают либо с Markdown, либо с HTML [и у меня есть такое предположение, что с Markdown работают лучше, чем с HTML]}. Если кто хочет попробовать, просьба ответить на этот комментарий. (Также прошу написать про опыт работы с тулзами вроде remarkjs.com, если у кого был.)

[P.S. Оригинальную реализацию (преобразователь/конвертер в HTML) pqmarkup.py трогать не хочется, да и незачем, я считаю, нагружать её ещё и Markdown-ом.]
0
С помощью такого кода можно усложнить парсинг страниц или мне только это кажется?
0

Не хотите попробовать свои силы в реализации задачи, описанной в моём комментарии выше (конвертер в Markdown)?
Парсить пк-разметку достаточно просто (оригинальная реализация насчитывает всего ~800 строк кода на Python).

0

А чем это лучше того же markdown? И почему бы не использовать уже присутствующие на клавиатуре парные символы — такие, как фигурные скобки? И правда ли нужны именно парные символы?

0
А чем это лучше того же markdown?

  • Простые, логичные, легко запоминающиеся правила разметки.
  • Больше возможностей (подчёркивание, цвет текста, выравнивание, таблицы без заголовков, объединение ячеек в таблицах).
  • Лучше поддержка вложенности элементов разметки.
  • Проще реализация (всего ~800 строк кода на Python).

И почему бы не использовать уже присутствующие на клавиатуре парные символы — такие, как фигурные скобки?

Фигурные скобки уже используются в пк-разметке для древовидного выражения мыслей (: древопись :).
Почему не круглые/квадратные/угловые скобки? Не знаю, внешне (в шрифтах Tahoma, Verdana, Courier New) парные кавычки имхо подходят лучше, чем скобки.


И правда ли нужны именно парные символы?

Ну, они дают возможность неограниченной вложенности.

https://en.wikipedia.org/wiki/M4_(computer_language):
Unlike most languages, strings in m4 are quoted using the backtick (`) as the starting delimiter, and apostrophe (') as the ending delimiter. The use of separate starting and ending delimiters allows for the arbitrary nesting of quotation marks in strings…

В отличие от большинства других языков, строки в m4 берутся в кавычки используя символ обратной кавычки (`) в качестве открывающей кавычки, и символ апострофа (') в качестве закрывающей. Использование отдельных символов для открывающей и закрывающей кавычек предоставляет возможность неограниченной вложенности кавычек внутри строк...
Речь здесь идёт про недостаток строк в непарных кавычках (например "таких") в том, что внутрь строки нельзя вкладывать другие строки, например:
system("mkdir "имя папки с пробелами"")

Так не работает (и не может работать).


А так может работать, если язык программирования и ОС поддерживают парные кавычки:


system(‘mkdir ‘имя папки с пробелами’’)
0
А как в вашей разметке сделать так?
<b>Очень<i>длинное</b>слово</i>.
+1

У вас невалидный HTML, тэги должны правильно вкладываться. Преобразуем в валидную форму, дальше очевидно.


<b>Очень</b><i><b>длинное</b>слово</i>
+1
Очевидно, как преобразовать HTML в эту разметку, но я на HTML написал только чтобы было понятно. Логически же если мне нужно выделить кусок абзаца, то, выходит, я не могу просто поставить в тексте начало и конец выделения.
P.S. В HTML, кстати, такая разметка хоть и считается невалидной, но работает.
0
К пункту "Лучше поддержка вложенности элементов разметки." хочу привести такой пример.

Хотя в Markdown допускается вложенное форматирование, например так:
guides.github.com/features/mastering-markdown:
_You **can** combine them_
_Какой-либо **жирный текст** внутри курсива_

Оно более ограниченно и не сработает в случае когда захочется например все элементы списка выделить курсивом.

Так код:
*
1. Первый элемент списка
2. Второй элемент списка
*

В Markdown отображается как:
  •  

  1. Первый элемент списка
  2. Второй элемент списка

  •  


В то время как код на пк-разметке:
~‘
1. Первый элемент списка
2. Второй элемент списка

Выводится корректно:

  1. Первый элемент списка
  2. Второй элемент списка

0

Ещё один пример:


**Этот текст в Markdown


не выделится жирным шрифтом**



*а этот (на пк-разметке)


— выделится [жирным]

Only those users with full accounts are able to leave comments. , please.