Надуманное. Блог Михаила Баландина — 2018

Ноу-хау: Markdown в любом приложении!

a/automator-markdown.png
28 июня 2018 (09:26:13)

Если на компьютере установлен pandoc — а это такая штука, которую настоятельно рекомендуется иметь установленной! — то под MacOS можно пользоваться возможностями Markdown в любом приложении, лишь бы оно умело работать с текстом.

Рецепт очень простой: открываем Automator и создаём в нём службу. Конфигурируем её так, как показано на картинке в «шапке», это одна минута ровно. Сохраняем. Всё.

Выделяем в приложении текст и дальше делаем одно из двух. Либо выполняем на выделенном тексте Ctrl+клик, либо идём в главное меню приложения. Там выбираем «Службы» и далее то, что было создано. Всё. Результатом будет HTML-код для выделенного текста в буфере обмена. Можно вставлять в админку блога или куда там нужно.

Если по какой-то причине не работает, то у вас скорее всего pandoc установлен в другом месте. Открываем терминал, говорим в нём which pandoc и подправляем соответственно путь в службе.

Если предполагается использование математики, то нужно добавить в вызывающий скрипт соответствующую опцию — так, для MathJax это ключ --mathjax; про другие движки см. документацию Pandoc.

Софт: заметки по MDwiki

25 июня 2018 (07:21:56)

Некоторые заметки про движок mdwiki, главным образом для внутреннего пользования. В дополнение к основному материалу.

При просмотре в мобильных браузерах может прилично тормозить, что и неудивительно: всё крутится на javascript и HTML5, то есть на клиентской стороне.

Налицо некоторые особенности типографики, вызванные парсингом Markdown средствами того же javascript:

  • неразрывный пробел, вставленный своим истинным символом (например, с клавиатуры Apple), ломается и превращается в обычный; его нужно вставлять HTML-аббревиатурой nbsp.
  • ударения, вставленные при помощи символа U+0301 после ударной гласной, ломаются; приходится пользоваться символами с диакритикой из европейских диапазонов кодировки.

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

Заголовок вики задаётся в конфиге config.json, но этого мало, и по-хорошему надо его указывать непосредственной правкой главного файла движка — там оно в самом начале, сразу видно.

Сноски не поддерживаются, но ремарки к тексту страниц можно оформлять цветными боксами. Например, абзац, начинающийся с «NB:», будет подсвечен. Можно добавить свои собственные слова для генерации боксов, в файле движка это ищется элементарно, однако требуется некоторая осторожность: если задать распространённое слово, начнёт подсвечиваться всё подряд. Чтобы избежать, можно комбинировать в ключевых словах кириллицу и латиницу — например, в слове «Описание» буквы «О», «са», «е» задать латиницей, а буквы «пи», «ни» кириллицей. Такое ключевое слово можно набрать, только специально постаравшись.

Так нечестно!

Плохо быть пегасом и не уметь летать.
Хорошо, когда есть кому научить.
Плохо, когда учат странными методами.
Но что хорошо — иногда они работают!

— Доброе ут… ой… А вы кто?

— Доброе. Знакомый Твайлайт, она меня попросила за тобой присмотреть, пока ты не проснёшься. Меня зовут Виндчейзер, и я не «вы», а «ты».

— Вчера ва… тебя здесь не было.

— Ночью прилетел. Думал обсудить кое-какие книги, но её… хм… начальство вызвало.

— Классно. Сначала меня на неё сбагрили, потом она сбагрила на тебя.

— Бывает.

— И что теперь?

— В каком смысле? Меня попросили посидеть тут на всякий случай, пока ты не проснёшься. Я посидел, ты проснулась. С тобой же ведь всё в порядке?

— Ну да. То есть, я могу идти?

— А почему нет? Скажи только, куда. Чтобы я отчитался: проснулась тогда-то, пошла туда-то.

— Да хоть с подругами играть.

— Фи.

— А что такое?

— Цитируя Твайлайт, «Скуталу умная девочка»…

— И что?

— Да как бы тебе сказать… в моём представлении, умные девочки не должны разбрасываться временем на глупые игры.

— Почему сразу «глупые»? И на что, по-твоему, должны?

— Ну, как бы, универсальный ответ — учиться. Точно не прогадаешь.

— Ой, и ты туда же! Почему все взрослые вечно твердят про школу?! Сейчас вообще каникулы, лето на дворе.

— По-моему, я про школу ни слова не сказал.

— Ага, а кто говорил насчёт учиться?

— Так это разные вещи. Совсем. Хочешь совет? Никогда не позволяй, чтобы школа мешала твоему образованию.

— Вау! А можно, я это в школе скажу?

— Почему же нет.

— А мне за это ничего не будет?

— Хм. Подозреваю, что будет.

— Так нечестно. Ты взрослый, тебе легко говорить, а когда сам в школу ходил, небось помалкивал.

— Видишь ли, я в школу не ходил ни дня. О чём и речь.

— Ой… а ты читать умеешь?

— Мне казалось, я упоминал, зачем сюда заглянул.

— Обсудить какие-то книжки с Твайлайт… понятно. А считать?

— Она сказала, что вы с подругами — местные эксперты по меткам. Моя тебе о чём-нибудь говорит?

— Навигатор… то есть, видимо, умеешь. И чем ты её заслужил?

— Дальним ночным полётом.

— В детстве-то?

— Не совсем. В тринадцать лет.

— Ого, поздно.

— Бывает.

— Ну, всё равно… и тебя пустили?

— Неправильное слово. Меня послали.

— Взрослых пегасов, что ли, не было?

— Были. Земные. Как ты.

— А… Тебе уже доложили…

— Никто мне не докладывал. Я по твоим движениям вижу. И как оно?

— Дядя, ты дурак, да? Думаешь, я не пыталась? Не получается, и никто ничего понять не может.

— Плохие учителя попадались, только и всего.

— А ты, типа, хороший учитель?

— Не самый худший. Тебя хоть с высоты спихивали?

— Тыщу раз.

— Вот я и говорю, плохие были учителя, раз никто даже не знал, как это надо правильно делать.

— А ты, типа, знаешь?

— Знаю.

— И как?

— Пошли, попробуем.

— Что, прямо сейчас?

— А почему нет?

— Что, серьёзно?

— Я никогда не вру. Что ты теряешь? Где-то в этой библиотеке есть балкон…

— Вон там.

— Годится. Становись, готовься.

— Ну, встала и готова. Раз…

— Подожди. Ты хочешь на счёт «три»?

— Ага.

— Понятно. Считай.

— Раз. Два…а-а-а-а-а!!!

— Ты же сказала, что готова.

— Я-а-а ногу слома-а-ала!!!

— Ерунда какая. Ничего у тебя не сломано, я отсюда слышу.

— Как это ты слышишь?

— Очень просто. При переломах больших костей раздаётся громкий характерный треск, а его сейчас не было. Это раз. Два: когда себе что-то ломают, орут совсем не так, как ты орёшь…

— А-а-а-а-а-а-а!!!

— Фу. Уши вянут, и всё равно не похоже. А самое главное…

— Ну?

— Сейчас тебе стало интересно, и ты сразу умолкла. При серьёзных травмах так не бывает.

— Так нечестно!

— Что именно?

— Ты говорил, что никогда не врёшь! А сам обещал спихнуть на счёт «три». И пнул на «два»!

— Я тебе ничего не обещал. Просто спросил, хочешь ли ты прыгнуть на «три», а потом сказал «понятно, считай». Всё остальное ты сама придумала.

— Нечестно! Я думала…

— Это хорошо, думай почаще. Кстати, ты уже стоишь на всех четырёх ногах.

— Я сейчас на них уйду!

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

— Не смей называть меня слабачкой!

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

— Не смей! Мне не слабó!

— Докажи.

— Опять, что ли, с балкона?

— Например. И желательно, чтобы потом не орать. Хотя, если полетишь… ладно, тогда можешь орать от радости.

— А ты правда никогда не врёшь?

— Дурацкий вопрос. Я же на него могу ответить «да» в любом случае. Но да, я никогда не вру, Твайлайт может подтвердить.

— Обещай, что не пнёшь меня не вовремя, как тогда.

— Хорошо, обещаю. Как тогда — не пну.

— Э, подожди! Ты же так можешь пнуть меня на счёт «раз» и не соврёшь!

— Точно. Умная девочка, факт.

— Обещай, что… м-м-м… не пнёшь меня раньше времени.

— Время — это на счёт «три»?

— Да.

— Хорошо. Обещаю, что не пну тебя с балкона прежде, чем ты досчитаешь до трёх.

— Другое дело. Так. Раз. Два. Три!.. Ну?!

— Что «ну»?

— Почему ты меня не пинаешь?

— Я обещал не пинать раньше чем «три», и не пнул. Про то, чтó будет дальше, речи не было.

— Так нечестно! И что теперь?

— Ты знаешь, вот мне самому интересно, что будет теперь.

— Хм. Э-э… Ага!..а-а-а-а!.. Вот, я сама спрыгнула, ы-ы-ы-ы!!

— А сейчас засунь язык обратно в рот и посмотри под ноги.

— Ой… ой!!

— Вот именно. Только при посадке никогда не складывай крылья в воздухе, а то так и впрямь недолго ногу сломать. И будет это очень глупо.

— У меня что, получилось?!

— Ага. Знаешь, почему?

— Ну?!

— Потому что летать для пегаса естественно. А ты себя всё время пыталась заставить. Стоило в падении отвлечься на показывание мне языка, и крылья всё сделали сами. Осталась ерунда: отучить себя от этих принуждений.

— А как?

— Поднимайся, покажу.

— Щас… э-э…

Ногами поднимайся! Вот только что сказал, не надо себя заставлять, и ты тут же…

— Ладно, ладно, поняла… Ну, поднялась, и что… А-а-а-а-а-а!!! Так нечестно!

— Что на этот раз?

— Вообще без предупреждения!..

— Спокойно. Я рядом. Давай копыто и ничего специально не делай. Сейчас я тебя спущу просто за счёт своего веса… Вот. Так что тебе нечестно?

— Обещал показать, а сам опять пнул не вовремя!

— Ну так показал же. А что пнул, так ведь после того, как ты в прошлый раз досчитала до трёх. Всё честно, по-моему.

Что показал-то?

— А ты не поняла? Просто думай, как бы на меня наорать. Переехидничать меня. Поймать меня на вранье. И всё у тебя получится, крылья сами вынесут. Потом, может, сама что-нибудь себе изобретёшь, а пока это работает, вот и пользуйся.

— Привет. Что это вы тут делаете?

— А, добрый день, Твайлайт. Вот, летали маленько.

— Ты… что, серьёзно?

— Ага! Твайлайт, прикинь, а он правда никогда не врёт!

— Как тебе это удалось?

— Ничего особенного. Поиздевался и пару раз пнул как следует.

— Ты что, с ума сошёл?! У девочки и так комплексы!!

— Теперь нет. Точнее, тех нет, а есть один новый. Как бы меня в чём-нибудь уделать.

— Так нечестно!

— Эта песня хороша, начинай сначала… Тебе-то что нечестно?

— Почему у тебя всё к этому сводится?!

— Потому что это работает. По себе знаю, меня так и учили.

— Сейчас уже не те времена, что две… э… кхм… не те времена, в общем!

— Если, по-твоему, они изменились к лучшему, то почему же тогдашние методы работают, а нынешние нет? Это как-то нелогично и нечестно.

— Терпеть не могу, когда ты выворачиваешь мои слова на меня же… и да, я знаю, чтó ты сейчас скажешь!

— Дядя Виндчейзер!

— Да?

— А ты меня ещё будешь учить?

— Тебе так понравились пинки под зад с балкона?

— Да ладно. Работает же.

— Детка, а тебе меня не жалко?

— В смысле?

— Я же об тебя все копыта отобью.

— А как тебя самого учили?

— Это было гораздо проще. Меня-то учили вчетвером.

— Ну пожа-алуйста!

— Хм. Давай так. Видишь, где я сейчас стою?

— Ага.

— В следующий раз я окажусь у вас в городе через три недели. Если увижу, как ты с этого самого места поднимаешься на этот самый балкон крыльями — буду учить.

— Ура-а-а!

— Эй, так нечестно… чего ржёте, вы двое?! Тут вообще-то библиотека, а не аэродром! Ты вообще соображаешь, какое шоу сейчас организовал мне на эти три недели?! Вот спасибо-то! Мог бы хоть спросить сначала!

— А зачем? Ты разве смогла бы отказать ребёнку, который только что поверил в свои способности?

— Тьфу!

— Ты просто своего счастья не понимаешь. Придумывай конкурсы для юных читателей, главный приз — место на балконе.

— Хм. А ведь мысль…

Книги: «Остров Сахалин» (Эдуард Веркин)

e/Eduard_Verkin__Ostrov_Sahalin.jpeg
13 июня 2018 (10:39:28)

Не люблю пост-ап как жанр, но Веркин такой Веркин… К тому же, анонсы обещали протагониста-футуролога, а вот футурологию я как жанр люблю. Если, конечно, написано настояще — вот как, скажем, у Ефремова или Лема.

Ну что — вставило. И упомянутое ожидание оправдалось, да и мир данного конкретного пост-апа очень даже ничего. Мир, в котором футурологам верят в разы больше, чем экономистам — просто потому, что первые кое-чего смогли предсказать по делу, а вторые предсказывали исключительно то, за что больше платили. Мир, в котором ценность жизни человека определяется товарной ценностью его трупа — а это хоть и ненулевая величина, но и не шибко много. Сколько там из одного трупа можно сварить мыла или путём сжигания получить тепла для электростанции?

Ну и авторский юмор, конечно. Который, конечно, есть, но который в данной книге есть наоборот. Если обычно у Веркина можно наблюдать юмор, переходящий в абсурд, то здесь наблюдается скорее абсурд, переходящий в юмор. И надо сказать, достаточно часто не просто переходящий, а перехлёстывающий. И так, знаете ли, конкретно перехлёстывающий. Настолько, что юмор, в свою очередь, переходит в жуть, плавно перетекающую в ту самую футурологию абсурда.

Вот такой «круг жизни», блин. Упёршийся в тупик. Хотите узнать, как оно такое получается — читайте.

Фанфики

На этой странице перечислены и отлинкованы фанфики моего авторства, написанные с середины 2014 года (когда я после долгого перерыва вернулся к фанфикописательской деятельности). Именно фанфики, потому что сказки можно увидеть в обычном блоге.

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

Если не сказано иного, рассказы имеют рейтинг PG-13.

Мультивселенная «Безумного Мира»

Что такое «Безумный Мир» — объяснять довольно долго. Сия концепция родилась в соавторстве где-то около 1999 года. В этой мультивселенной пересекаются миры множества сериалов и фильмов с участием, как ни странно, мультипликационных героев. Каковые знакомы друг с другом, а многие так даже успели повлюбляться и пережениться. Общий сеттинг чрезвычайно близок к атмосфере «Tiny Toon Adventures».

  • «Скунсозвезда» — абсолютно сумасшедший кроссовер, в котором к Безумному Миру присоединяется мир онлайн-комикса «Sabrina Online» от Эрика Шварца. Приключение Зиг Заг, подставленной Сабриной, с участием Бастера. (фикбук)

Вселенная комикса «Sabrina Online»

Онлайн-комикс от Эрика Шварца, который я когда-то переводил на русский язык, и перевод этот долгие годы имел статус официального.

  • «Повышение квалификации» — продолжение «Скунсозвезды», но уже без кроссоверов. (фикбук)

  • «Понедельник начинается…» — продолжение «Повышения квалификации», в котором происходит много чего и в частности, ставится точка во взаимных подставах. Написан не только мной, это была целая литературная игра, но моего текста в этой истории всё-таки большинство. (этот блог) (фикбук)

Вселенная сериала «My Little Pony: Friendship is Magic»

Ну, к этому-то сериалу ничего комментировать не надо. :)

  • «Урок» — маленький рассказик, стопроцентно канонный флафф (при этом знания канона совершенно не требует: действие происходит за десяток лет до начала первого сезона). Вы будете смеяться, но до сей истории у меня такое не получалось ни разу. (этот блог) (понификшен) (фикбук) Рейтинг G

  • «Очень Большая Игра» — чисто стёбная история с приключениями, интригами и неожиданностями, в которой герои общаются современным молодёжным языком. Зато прикольно. События происходят между седьмым и восьмым сезонами. (этот блог) (понификшен) (фикбук) Рейтинг G

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

Есть ещё неожиданно серьёзный для меня самого цикл про Детей Ночи. Его начальные рассказы — ангст и драма, вас предупредили. На данный момент включает в себя рассказы (в рекомендуемом порядке чтения):