Markdeep

Всего две строчки - в начале строка и в конце. Закинул на хостинг - сайт готов. Стили - по-вкусу.

Достаточно почти для всего - для публикации заметок, статей, документации.

https://casual-effects.com/markdeep/

Как это работало раньше?

Классический веб-сайт (Lamp + wordpress)



+--------------------------------------------------------------------------------+
| +---------------------------------+ -------------------------------+           |
| |                              CMS|                                v           |
| |    Ассеты                       |                     +--------------------+ |
| |        +----------+             |                     |                    | |
| |        |Text      |             |                     |                    | |
| |        |....      |             |                     |        Сайт        | |
| |        |...       |             |                     |                    | |
| |        |.         |             |                     |                    | |
| |        +----------+             |                     +--------------------+ |
| |      +-----+ +-------+          |                                |           |
| |      | ... | |       |          |                 Админка        |           |
| |      +-----+ | .jpg  |          | <------------------------------+           |
| |              |       |          |                                            |
| |              +-------+          |                                            |
| +---------------------------------+                                        Lamp|
+--------------------------------------------------------------------------------+
                                         ^                                        
                                         |                                        
 +-------------------------------------------------------------------------------+
 |                                    Сервер                                     |
 +-------------------------------------------------------------------------------+


Заходишь на сайт, попадаешь в админку. И там загружаешь файлы, редактируешь тексты и шаблоны.

Самый большой недостаток - сервер требует обслуживания.

Настройка сервера - отдельный вид искусства.

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

Генератор статических сайтов (Static Site Generator, SSG)



                                  +---------------------------------------------------------------------------------+                                          
                                  |                              Локальная разработка                               |                                          
                                  |                         +-----------------------------------------------------+ |                                          
                                  |                         |       +---------+            +--------------------+ | |                                          
                                  |                         |       |         |            |                    | | |                                          
                                  |  +------------------+   |       |  .html  |  +-----+   |                    | | |                                          
                                  |  |SSG               |   |       |         |  |.css |   |        Сайт        | | |                                          
 +------------------------+       |  |(  hugo,          |   |       +---------+  +-----+   |                    | | |                                          
 |Ассеты                  |    +--+->|   11ty,          |-->|    +----------+              |                    | | |                                          
 |                        |    |  |  | jekyll)          |   |    |          |  +--------+  +--------------------+ | |                                          
 |        +----------+    |    |  |  |                  |   |    |  .webp   |  |feed.xml|                         | |                                          
 |        |Text      |    |    |  |  +------------------+   |    |          |  +--------+                         | |                                          
 |        |....      |    |    |  |                         |    +----------+                            localhost| |                                          
 | +----+ |...       |    |    |  |                         +-----------------------------------------------------+ |                                          
 | |... | |.         |    |----+  |                                                    |                            |                                          
 | +----+ +----------+    |    |  |         +-------------------------------+          |                            |                                          
 |   +-------+ +-------+  |    |  |         |      Текстовый редактор       |          |                            |                                          
 |   |       | | {{ }} |  |    |  |         |         (vscode, vim)         |<---------+                            |                                          
 |   | .jpg  | +-------+  |    |  |         |                               |                                       |                                          
 |   |       |            |    |  |         +-------------------------------+                                       |                                          
 |   +-------+            |    |  |                         |                                                       |                                          
 +------------------------+    |  +-------------------------+-------------------------------------------------------+                                          
              ^                |                            |                                                                                                  
              +----------------+----------------------------+                                                                                                  
                               |       +-----------------------------------------------------------------------------+                                         
                               |       |                    Сборка + Публикация (Build + Deploy)                     |                                         
                               |       |                                             +-------------------------------+------------------------------------+    
                               |       |  +-----------------------------------+      |                               |                                    |    
                               |       |  |SSG                                |      |                               |                                    |    
                               |       |  |(  hugo,                           |      |     +---------+               |           +--------------------+   |    
                               |       |  |   11ty,                           |      |     |         |               |           |                    |   |    
                               |       |  | jekyll)                           |      |     |  .html  |  +-----+      |           |                    |   |    
                               +------>|  |                                   |      |     |         |  |.css |      |           |        Сайт        |   |    
                                       |  +-----------------------------------+      |     +---------+  +-----+      |           |                    |   |    
                                       |                                             |  +----------+                 |           |                    |   |    
                                       |                                             |  |          |  +--------+     |           +--------------------+   |    
                                       |                                             |  |  .webp   |  |feed.xml|     |                                    |    
                                       |                                             |  |          |  +--------+     |                                    |    
                                       |                                             |  +----------+                 |                                    |    
                                       |                                             |                               |                                    |    
                                       +---------------------------------------------+-------------------------------+                      Linux + Apache|    
                                                                                     |                                                       Linux + Nginx|    
                                                                                     +--------------------------------------------------------------------+    
                                                                                                                        ^                                      
                                                                                                                        |                                      
                                                                                                                        |                                      
                                                                                                   +-----------------------------------------+                 
                                                                                                   |                 Сервер                  |                 
                                                                                                   +-----------------------------------------+                 


Для статически сгенерированного веб-сайта достаточно самого простого веб-сервера. Не нужны базы данных, интерпретаторы скриптов (php).

Но если задуматься, то обслуживание никуда не делось. Его перенесли. И удвоили. Теперь вместо обслуживания сервера, обслуживать предстоит:

Локальное окружение

Да, эти процессы куда ближе программистам - программисты не любят администрировать. Вообще, никто не любит администрировать сервера. И скорее всего, у фронтенда на компьютере уже установлен nvm, а у рубиста bundle. Да и настраивать конвейр не обязательно. Можно собирать локально и загружать на хостинг ручками. Но для меня это не выглядит упрощением. Лишь компромиссом.

There is no solutions, only tradeoffs.

Markdeep

А если отказаться от сборки и просто подсказать браузеру, как надо обрабатывать текст при помощи javascript? Не нужно ничего нигде настраивать. Не нужно ставить никаких зависимостей. Не нужен ни пайтон, ни руби, ни нода.



                                  +-------------------------------------+  
                                  |        Локальная разработка         |  
                                  |   +------------------------------+  |  
                                  |   |                              |  |  
                                  |   |                              |  |  
                                  |   | +--------------------+       |  |  
                                  |   | |                    |       |  |  
 +------------------------+       |   | |                    |       |  |  
 |Ассеты                  |    +--+-->| |        Сайт        |       |  |  
 |                        |    |  |   | |                    |       |  |  
 |        +----------+    |    |  |   | |                    |       |  |  
 |        |Text      |    |    |  |   | +--------------------+       |  |  
 |        |....      |    |    |  |   |                     localhost|  |  
 | +----+ |...       |    |    |  |   +------------------------------+  |  
 | |... | |.         |    |----+  |                   |                 |  
 | +----+ +----------+    |    |  |                   |                 |  
 |   +-------+ +-------+  |    |  |                   v                 |  
 |   |       | | {{ }} |  |    |  |   +------------------------------+  |  
 |   | .jpg  | +-------+  |    |  |   |      Текстовый редактор      |  |  
 |   |       |            |    |  |   |        (vscode, vim)         |  |  
 |   +-------+            |    |  |   |                              |  |  
 +------------------------+    |  |   +------------------------------+  |  
              ^                |  |                   |                 |  
              |                |  +-------------------+-----------------+  
              +----------------+----------------------+                    
                               |                                           
                               |                                           
                               |                                           
                               |       +-------------------------+         
                               |       |                         |         
                               |       |                         |         
                               |       |  +--------------------+ |         
                               +------>|  |                    | |         
                                       |  |                    | |         
                                       |  |        Сайт        | |         
                                       |  |                    | |         
                                       |  |                    | |         
                                       |  +--------------------+ |         
                                       |                         |         
                                       |           Linux + Apache|         
                                       |            Linux + Nginx|         
                                       +-------------------------+         
                                                    ^                      
                                                    |                      
                                                    |                      
                               +-----------------------------------------+ 
                               |                 Сервер                  | 
                               +-----------------------------------------+ 


Даже если у бедняги выключен javascript - страница всё-равно остаётся доступной. Это просто читабельный маркдаун текст!

Конечно, движок или SSG - даёт определенные удобства: Автоматически создают страницы для тегов. По-умному это называется таксономией. Можно генерировать страницы не из текста, а из произвольных данных - ответов API, json/yaml-файлов и т.д. куда больше возможностей по кастомизации вёрстки. Компонентны, виджеты…

Подумайте, надо ли оно вам. Или можно обойтись Markdeep.