LINUX.ORG.RU

Что взять для простого сайта в виде бложика?

 , , ,


4

6

Надоело мне ковыряться с WordPress’ом и PHP. Чувствую, что забиваю гвозди электронным микроскопом. Слишком увесистый и избыточный он для меня. Я бы давно нагенерировал статических HTML-страничек, если бы не одно но – комментарии. А для них нужна БД, увы. Всякими сторонними сервисами вроде Discuss или IntenseDebate пользоваться не хочу и не буду. Во-первых, там куча подгружающейся Boilerplate-ерунды, а во-вторых, руководствуюсь принципом «всё своё ношу с собой».

Собственно, хочу соорудить нечто подобное тому, что у меня есть сейчас на WordPress’е:

https://exlmoto.ru/gish-droid/

Мне нужно немногое, пару служебных страничек, да посты в виде привычной всем ленты на главной. В постах нужна нормальная подсветка кода (наверное заюзаю highlight.js, альтернатив ему не вижу), поддержка Markdown для разметки и, собственно, система комментариев с какой-нибудь там Google Captcha, чтобы спамеры не пролазили. По вкусу ещё кастомные CSS для светлой и тёмной тем. Всякие там загрузчики Media-файлов и продвинутые редакторы статей мне не нужны.

Так вот, что лучше всего выбрать для подобного? Какой фреймворк и стек Web-технологий? Давно поглядываю в сторону Spring и Java, хочу попробовать использовать их, так как ЛОР, например, работает весьма отзывчиво.

На что бы вы перешли, если бы вам надоел WordPress? Буду рад выслушать любые советы.

★★★★★
Ответ на: комментарий от foror

Очень хочется, пишу уже третий месяц (правда не фуллтайм, но довольно плотно) и еще три наверное осталось )

Не знаю. Я по себе сужу. Я форумный движок в начале прошлого года за неделю написал.

beaver
()
Ответ на: комментарий от beaver

Можно ссылку, хотя бы просто на рабочий экземпляр? А то я на хабре топик видел как 2000 строк кода за 4 дня написали. И пять минут прошли в печали о моей слоупочности. Но почитав коменты вспомнил анекдот про машинистку и 1000 знаков в минуту.

foror ★★★★★
()
Ответ на: комментарий от beaver

Не, ну такой на Джанго можно с тестами прямо за сутки запилить)

dimuska139 ★★
()
Ответ на: комментарий от foror

Я сейчас Spring + Spring Boot взял, пока разбираюсь с примерами. Кажется это то, что мне нужно. Главное, чтобы затыков с HTTPS, капчёй, подсветкой кода и поиском не было.

Если начнётся боль, буду смотреть в сторону Python + Django.

EXL ★★★★★
() автор топика
Последнее исправление: EXL (всего исправлений: 3)
Ответ на: комментарий от tolstoevsky

Это может быть интересно для @Spoofing, мне же комментарии надо в базу класть.

EXL ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Лично мне торопиться некуда. WordPress будет поддерживать старый редактор ещё некоторое время (до 2022 года). А я буду ковыряться с выбранными фреймворками, которые мне понравятся и потихоньку мигрировать. Время меня не особо подгоняет.

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

EXL ★★★★★
() автор топика
Ответ на: комментарий от beaver

Неплохо, хороший легковесный форум.

EXL ★★★★★
() автор топика
Ответ на: комментарий от beaver

Ну это поделка, особенно по коду 2-ой версии на гитхабе. Как бы возразить нечего, твою задачу оно решает, но какой-то осадок остаётся, особенно если веб это твоя специализация. Еще и на ЛОР-е ни на кого не наедешь и никого не поучишь, с таким проектом в проде )

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

Я пока ещё не искал ничего на эту тему. Хотел заюзать highlight.js, но в этом треде появилась идея подсветку на стороне сервера делать. Примерный алгоритм думаю будет таким:

Мой пост (или комментарий) в Markdown-разметке с кусками кода, размеченными в GitHub-стиле =>
Вырезаем эти куски кода и подсвечиваем их какой-нибудь либой =>
Запекаем подсветку в HTML =>
Рендерим весь Markdown-пост в HTML =>
Собираем всё вместе и коммитим в БД

В итоге не будет как нагрузки на клиент, так и на сервере будет нагрузка только в моменты редкого процесса отправки комментариев/постов.

Если для Java имеются Markdown-плагины, которые могут ещё и подсветку расставлять в кусках кода, то просто замечательно. Но если из этой идеи ничего не выгорит, придётся просто использовать highlight.js на клиенте. Сейчас у меня нечто подобное и используется, Crayon Syntax Highlighter. Только по опыту использования могу заметить, что он весьма кривой и жирный. По-крайней мере подсветка на ЛОРе через highlight.js мне нравится куда больше, да и языков поболее поддерживается.

EXL ★★★★★
() автор топика
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

уже наелся

Так это рутина, она неизбежна. Кнопки «сделать з@епись» не бывает.

no-such-file ★★★★★
()
Ответ на: комментарий от EXL

Spring + Spring Boot

Python + Django

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

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Да. Когда код будет написан мной, а не другими людьми, я в случае чего, быстрее смогу локализовать и исправить проблему.

Да и почему бы и не попердолится. Подобный опыт лишним не будет. Поставить готовенький WordPress каждый сможет.

Так это рутина, она неизбежна. Кнопки «сделать з@епись» не бывает.

Минимизировать её было бы отлично.

EXL ★★★★★
() автор топика
Ответ на: комментарий от dimuska139

Тогда зачем ты его писал?)

Я хотел начать писать вторую версию, но планы поменялись.

P.s. не надо spl_autoload_register руками делать, юзай composer :)

Мне так нра.

beaver
()

Перенисите в Talks пожалуйста, в тред А вам нравится, когда программы общаются с вами в таком тоне?, после сообщения А вам нравится, когда программы общаются с вами в таком тоне? (комментарий)

Ты идиот. И ты сейчас не обижаться должен, а сказать мне спасибо. Потому что я дал тебе полезную информацию. Предупрежден значит вооружен.

anonymous
()
Ответ на: комментарий от dimuska139

Нра не нра, а есть стандарты и общепринятые подходы

Мне интересен результат, а не какие-то там стандарты.

beaver
()
Ответ на: комментарий от bvn13

Pygments - A python library for highlighting code syntax (deprecated)

Почему ты отказался от Pygments? Или это не ты, а тот от кого ты форкнулся? Из-за размера?

Связал Pygments + Jython + Spring + Spring Boot + Thymeleaf = на выходе получил JAR размером 100 МБ :D Ужас.

EXL ★★★★★
() автор топика
Ответ на: комментарий от Deleted

После вордпреса мы перешли на Hakyll http://p0n4ik.tk

Спасибо, подрочил. Мне кажется это первый случай, когда на кашкеле сделали что-то полезное для нашего брата

anonymous
()

Самый оптимальный вариант, это использовать генератор статики. Для блога - этого будет за глаза. Даже новостные сайты - можно так шлёпать. Ты прав, что нафиг этот древний ломучий, тормозной Wordpress. Он давно уже стал УГ. Если тебе так уж нужно нативные комменты, их можно организовать в виде своего сервиса комментов. Есть даже готовые варианты, которые запускаешь и встраиваешь на свой сайт. Например, вот Umputun запилил https://github.com/umputun/remark

th3m3 ★★★★★
()

напиши движок для комментариев и прикрути его к статике

Int0l ★★
()
Ответ на: комментарий от bvn13

Я. Потому что есть браузерные подсветчики.

Мне понравился Pygments, очень крутой. Жаль для Java нет ничего подобного. Есть Jygments, но он полузаброшенный.

EXL ★★★★★
() автор топика
Ответ на: комментарий от EXL

https://hg.openjdk.java.net/panama/dev/raw-file/4810a7de75cb/doc/panama_forei... Ожидается к 13-ой джаве. Можно еще Graal, но там только максимум 8-ка сейчас, плюс своя имплементация питона, может и не запуститься либа, да и оверхед наверное больше, чем у оригинала на сях или на чём он там написан.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 2)
Ответ на: комментарий от EXL

Глянул Pygments, так себе, работает с ошибками, похоже тупо на регулярках (еще не глядел сырцы) http://pygments.org/demo/6796957/?style=solarized-dark В конце подсвечивает Pug и strong, которые просто являются TextNode

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

Меня больше расстроило то, что для Java нет подобных библиотек или же я их просто не могу найти.

Что, например, используется в Eclipse Che для подсветки кода файлов? Неужели тоже на стороне клиента юзается?

P.S. GraalVM пробовал, интересная шутка. Бот на JavaScript для Telegram запустился на ней без каких-либо проблем.

EXL ★★★★★
() автор топика
Ответ на: комментарий от EXL

Так Eclipse Che полностью на клиенте же работает, в браузере. Или мы о разных эклипсах че говорим.

На джава есть подсветка, на том же гитхабе в поиск зайди, но оно также всё на регулярках. А это стрёмно, но видимо единственным выходом это покопаться в сырцах IDEA или Eclipse и вычленить от туда подсветку на базе AST...

foror ★★★★★
()
Ответ на: комментарий от foror

Или можно GraalVM копнуть, там сразу в довесок можно получить AST других ЯП, помимо джавы... Заодно группа поддержки в телеграме есть, можно у них спросить как это всё вытащить для подсветки синтаксиса.

foror ★★★★★
()
Ответ на: комментарий от foror

Так Eclipse Che полностью на клиенте же работает, в браузере. Или мы о разных эклипсах че говорим.

Это не так важно, тот же highlight.js можно заставить работать на серверной стороне. Вот я и думал может Eclipse Che чего для подсветки из Java-based использует, что можно открутить.

В общем, немного пробежался по технологиям подсветки кода на server-side у различных популярных проектов:

  1. GitHub раньше использовал Pygments, обёрнутый в wrapper для Ruby, назывался он albino, сейчас для подсветки видимо используется написанный с нуля linguist.

  2. GitLab использует Rogue, по сути улучшенный порт Pygments на Ruby.

  3. Bitbucket как использовал Pygments ранее, так и продолжает его использовать.

  4. Gerrit использует браузерный Js-редактор для текста под названием CodeMirror, соответственно вся подсветка внутри него.

Очень жаль, что для Java и вообще популярных ЯП на JVM-стеке нет библиотек настолько же известных, как Pygments. Для Markdown я нашёл Flexmark (используется и на LOR’е) просто отличная и расширяемая либа, а вот с server-side подсветкой жвах.

EXL ★★★★★
() автор топика
Ответ на: комментарий от foror

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

Слишком сложный был бы разбор 300+ языков построением их AST. Так что тут у кого круче и точнее регулярки, и кто охватывает большее количество ЯП, того и выбирают.

А это стрёмно, но видимо единственным выходом это покопаться в сырцах IDEA или Eclipse и вычленить от туда подсветку на базе AST … Или можно GraalVM копнуть, там сразу в довесок можно получить AST других ЯП, помимо джавы… Заодно группа поддержки в телеграме есть, можно у них спросить как это всё вытащить для подсветки синтаксиса.

И в этом случае получится решение всего для нескольких языков. От Clang/LLVM можно тоже подсветку заюзать. Да только смысл такого, если в блог иногда постятся кусочки на самых разных ЯП в т.ч и экзотических.

Глянул Pygments, так себе, работает с ошибками, похоже тупо на регулярках (еще не глядел сырцы) http://pygments.org/demo/6796957/?style=solarized-dark В конце подсвечивает Pug и strong, которые просто являются TextNode

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

P.S. Highlight Js даже не знает, что такое этот Pug.

Просто пример из жизни – я взял себе для Wordpress-блога плагин подсветки Crayon Syntax Highlighter, понадобилось мне про QML сделать заметку – всё, никакой поддержки этого языка нет, подсвечивается всё как новогодняя ёлка.

EXL ★★★★★
() автор топика
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

кто охватывает большее количество ЯП, того и выбирают

Это понятно, Windows тоже 95% )

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

Кстати, я сейчас вспомнил, что давно уже ресёрчил эту тему (заработался), решил пойти вот таким путём https://stackoverflow.com/questions/28942168/how-to-use-antlr-v4-for-syntax-h... А antlr имеет огромную базу поддерживаемых ЯП. Буду пробовать, как доделаю основные вещи.

Ну Pug (я даже не знаю что это блин такое), не настолько уж популярный язык

https://github.com/pugjs/pug 18 тыщ звёзд, точно входит в топ 100 всех представленных на гитхаб проектов.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

А antlr имеет огромную базу поддерживаемых ЯП. Буду пробовать, как доделаю основные вещи.

Да, ANTLR крут, отпишись потом об опыте внедрения его на server-side для подсветки.

EXL ★★★★★
() автор топика
Ответ на: комментарий от EXL

Думаю сразу новостью оформить на ЛОР, но сюда тоже напишу.

foror ★★★★★
()
Ответ на: комментарий от dimuska139

Не хочу тебя обидеть, но во многих нормальных IT-конторах твой подход бы осудили

Мнение отдельных «нормальных» контор очень важно для меня.

beaver
()

Советую перейти на статику. Бери Hugo, очень хороший и чистый генератор никаких зависимостей. Все в нем есть, таксономии, robots.txt, sitemap.xml, шорткоды, rss, sections, tags, categories и ещё много всего. Документация тоже очень хорошо описано, а если что-то будет непонятно в их форуме уже многие вопросы решены. А в качестве хостинга есть Netlify, бесплатный аккаунт дает 100 Гб пропускной способности. Что вполне хватит для блога.

Deleted
()

Tilda. Этим можно закрывать большинство тредов по веб-разработке.

djambeyshik ★★★★★
()
Последнее исправление: djambeyshik (всего исправлений: 1)

Хз, мне для бложикка хватает именно вп. Как-то даже и не хочется его трогать.

Zhbert ★★★★★
()
Ответ на: комментарий от Legioner

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

Wordpress - как-то с ним работал, считаю это шедевром в плане даже для начинающий работе с кодом, там можно все, убрать лишнее, сделать как ты хочешь, прикрутить все что ты хочешь практически.

Там даже можно сделать так чтобы вообще ничего не подгружалось и этого мало ? : ) кэширование тоже легко можно поставить, сайт - блог будет просто летать.

Если хочется ну соовсем все просто PHP/MYSQL за пару часов можно сделать, прикрутить грид, и будет ну вообще скорострельный блог, даже пару запросов к бд будет юзать - всё.

Не понимаю почему все идут к JS, хотя скоро мне это придется понять так как - хочу посмотреть ради чего все лезут в эти нано-технологии - чтобы громоздкими задачами создавать то что можно сделать другой технологией в 2 клика.

nixbrain
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.