Выравнивание текста
- Author
- Message
-
Offline
- Posts: 2
- Joined: Thu Feb 18, 2016 6:27 am
Выравнивание текста
Подскажите, пожалуйста, как выравнивать текст по-ширине, желательно с расстановкой пробелов и переносов? Читал, что для этого был плагин Justify, но в новых версиях он не поддерживается, и на странице его закачки плагин отсутствует.
-
Offline
- Posts: 1161
- Joined: Sun Oct 20, 2013 11:44 am
shraybikus
Посмотрите скрипт AlignJustify.js, кажется, что-то ещё было, посмотрите описания в первых двух постах.
FAQ
Посмотрите скрипт AlignJustify.js, кажется, что-то ещё было, посмотрите описания в первых двух постах.
FAQ
-
Offline
- Posts: 269
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
посмотрел рекомендованные скрипты. Более практический пример:
Есть ли скрипт, который выровняет хотя бы по одному символу в виде вертикальной колонки:
или более продвинутое:
Есть скрипты, которые для выравнивания колонок подобным образом?
Code: Select all
// ВХОДНЫЕ ДАННЫЕ
let arr = [
abcd = 1,
abc = 2,
ab = 3,
a = 456,
];
Code: Select all
// РЕЗУЛЬТАТ (выравнивание по запятой)
let arr = [
abcd = 1 ,
abc = 2 ,
ab = 3 ,
a = 456 ,
];
Code: Select all
// РЕЗУЛЬТАТ
// (несколько символов для выравнивания)
let arr = [
abcd = 1 ,
abc = 2 ,
ab = 3 ,
a = 456 ,
];
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Eskander88
1. Как правило, от такой "красоты" стараются всеми силами избавляться. В любой организации вас, уж поверьте, заставят придерживаться либо корпоративного либо общепринятого стандарта (типа PEP8 для Python).
2. Но, если вам по каким-то своим причинам надо сделать нечто подобное, то попробуйте воспользоваться "пакетными заменами" в сочетании с регулярными выражениями.
\s*= (или) \s+= (заменять на) \t=
для запятых (если не только концевых, а всех подряд) аналогично
\s*, (заменять на) \t,
1. Как правило, от такой "красоты" стараются всеми силами избавляться. В любой организации вас, уж поверьте, заставят придерживаться либо корпоративного либо общепринятого стандарта (типа PEP8 для Python).
2. Но, если вам по каким-то своим причинам надо сделать нечто подобное, то попробуйте воспользоваться "пакетными заменами" в сочетании с регулярными выражениями.
\s*= (или) \s+= (заменять на) \t=
для запятых (если не только концевых, а всех подряд) аналогично
\s*, (заменять на) \t,
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Можно попробовать alignWithSpaces.jsEskander88 wrote:Есть ли скрипт, который выровняет хотя бы по одному символу в виде вертикальной колонки:
-
Offline
- Posts: 330
- Joined: Mon Jun 03, 2019 2:33 am
Eskander88
Я могу алгоритмически подсказать, но писать не себе и не универсальное средство лень. Рег.выр`ом обсчитать в массив, определить максимальную ширину элементов столбца, дополнить пробелами каждый элемент столбца до максимальной ширины. Выполнить поиск и замену правого элемента массива на левый обработанный элемент массива.
Рег.выр. можно сделать не только для конкретной формы, можно сделать их для разных форм кода.
Так как выравнивание лучше делать на участке близлежащих строк, потому что переменные могут быть длинные и выравнивать лучше по самой длинной на участке, а не вообще, то можно сделать типа массив массивов, который будет захватывать только близлежащие строки и вычислять для них индивидуально.
Как вариант, можно сделать это для выделенного текста, т.е. не заморачиваться анализом участков.
Я могу алгоритмически подсказать, но писать не себе и не универсальное средство лень. Рег.выр`ом обсчитать в массив, определить максимальную ширину элементов столбца, дополнить пробелами каждый элемент столбца до максимальной ширины. Выполнить поиск и замену правого элемента массива на левый обработанный элемент массива.
Рег.выр. можно сделать не только для конкретной формы, можно сделать их для разных форм кода.
Так как выравнивание лучше делать на участке близлежащих строк, потому что переменные могут быть длинные и выравнивать лучше по самой длинной на участке, а не вообще, то можно сделать типа массив массивов, который будет захватывать только близлежащие строки и вычислять для них индивидуально.
Как вариант, можно сделать это для выделенного текста, т.е. не заморачиваться анализом участков.
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
Infocatcher,
Благодарю! Скрипт alignWithSpaces.js - как раз то, что надо.
Это вопрос дискуссионный. В зависимости от данных, существуют свои критерии удобства и читабельности, тем более не всегда речь идёт о python, или вообще программном коде.
Благодарю! Скрипт alignWithSpaces.js - как раз то, что надо.
opk44,opk44 wrote:1. Как правило, от такой "красоты" стараются всеми силами избавляться. В любой организации вас, уж поверьте, заставят придерживаться либо корпоративного либо общепринятого стандарта (типа PEP8 для Python).
Это вопрос дискуссионный. В зависимости от данных, существуют свои критерии удобства и читабельности, тем более не всегда речь идёт о python, или вообще программном коде.