Skip to content

ArtNazarov/HtmlBuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HtmlBuilder

Написанный на FPC/Lazarus генератор статических сайтов Written in FreePascal/Lazarus generator of static html websites

AI assistant with Ollama mode / ИИ ассистент в режиме Ollama

AI assistant

Html markup preview / Превью разметки HTML

Html preview

Earlier UI sample (localization) / Прежний вид интерфейса (локализация)

Screen pages editor

Built-in webserver / Встроенный веб-сервер

With own webserver

Update content / Обновление контента

Using ftp

Uploading with bridge / Выгрузка с помощью моста

Using bridge API

More screens / Больше скриншотов https://apprr.rf.gd/HtmlBuilder/ Some articles / Некоторые статьи blog

Project / Проект

Website in Russian / Сайт на русском HtmlBuilder project page: actual on https://apprr.rf.gd/HtmlBuilder/

Documentation for developers / Документация для разработчика PasDoc documention: actual on https://apprr.rf.gd/HtmlBuilderDocs/main.html

Blog with examples / Блог с примерами Blog: actual on https://artnazarov.github.io/section_htmlbuilder.html

Tilda presentation HtmlBuilder page on Tilda

Usage / Использование

Will be useful for creating websites hosted at P2P networks ( such Maelstrom, FreeNet, I2P etc ) or jamstack hostings like Vercel Может быть полезен для создания сайтов, используемых в пиринговых сетях или хостингах jamstack типа Vercel

What's new / Что нового

  1. Engine now use sqlite. Движок использует sqlite
  2. Can use annotations and full descriptions at sections. Аннотации и полные описания к разделам
  3. Using tags. Использование тегов
  4. Tree/flat structure. Плоская/древовидная структура сайта
  5. Autosave/autoload special settings. Автосохранение/загрузка настроек
  6. Backup database / Резервное копирование базы
  7. Commit to github pages / Публикация на GH pages
  8. Wysiwyg editor addition example / Пример дополнения с Wysiwyg
  9. Menu constructor / Конструктор меню
  10. Custom fields in content / Пользовательские поля в контенте
  11. Uploading with bridge API / Выгрузка с помощью bridge API
  12. Writing builded files in separate threads / Запись собранных файлов в несколько потоков
  13. Storing images in sqlite3 blob and quick image links / Хранение иллюстраций в поле BLOB базы sqlite3 и быстрые ссылки на изображения вида
((image_id))

Note: the preview is disabled if the markup contains raw image tag. Use quick image links instead of img tag.

  1. Translations to English, Spanish, Chinese, Korean Munhwaŏ / Переводы на английский, испанский, китайский, корейский

  2. Storing attached documents in blob / Хранение прикрепленных документов Will placed in folder /files/

||document_id||

  1. Drag and drop files from file manager into templates / Перетаскивание файлов из файлового менеджера в шаблоны

Attachments

Example1

Example2

Example3

Example4

  1. Emojies by shortcodes / Эмодзи по шорткодам

  2. Quick add js code statements with shortcuts / Быстрое добавление операторов кода js с помощью горячих клавиш

  3. Screen keyboard for typing HTML mnemonics / Экранная клавиатура для набора мнемоник HTML

  4. Reformatting of markup / Переформатирование разметки

  5. Hide tabs / Скрытие вкладок

  6. Quick switching to tab / Быстрое переключение на вкладку

  7. Adding css properties using menu items / Добавление свойств CSS с помощью пунктов меню

  8. Chat with Ollama AI server / Чат с AI сервером Ollama

  9. Current date and time funcs / Функции текущих даты и времени

How to use: place GETDATE(), GETTIME()

  1. Approx. count time to reading, total amount words, sentences and characters / Приблиз. подсчет времени на дочитывание, общее количество слов, предложений и символов

How to use: place WORDS(), SENTS(), CHARS(), TTR()

  1. Internal backlinks / Обратные ссылки

  2. Random data at first run / Случайные данные на первом запуске

  3. Parameterizable blocks / Параметризуемые блоки

For a global block to be parameterizable, it must contain at least one block variable of the form *varname Чтобы глобальный блок стал параметризуемым, он должен содержать хотя бы одну переменную блока вида *varname

В шаблоне вывод конкретизированного блока осуществляется через передачу фактических значений переменных The output of concrete block is perfomed by passing actual values

{blockname >< varname=`value` othername=`othervalue` >< }

Note / Примечание - Между { и именем блока не должно быть пробела. There is must no space between { and block name.

Пример: пусть имеются блоки, содержащие переменные блоков *var и *other

The example: block1 has markup *var and block2 has markup *other

Когда шаблон задан как / When the template is

{block1 >< var=`Test` >< } is {block2 >< other=`great` >< }

Результат подстановки будет / The result of the substition will be

Test is great

31 Оператор / Operator @repeat

Размножает последовательно образец, подставляя в тиражируемый фрагмент значения переменной Replicates the sample sequentially, substituting the variable values into the replicated fragment

Пример / Example

@repeat { color = red|green|blue } [[Color: &color; ]].

преобразуется до / transform to

Colors: Color: red Color: green Color: blue.

Примечание / Note: вывод обрезается от пробельных символов / the output will be trimmed from space characters

32 Оператор / Operator @ifelse

Outputs text corresponding comparison Выводит текст согласно сравнения

@ifelse[leftString]comparison[rightString]{stringIfTrue}{stringIfFalse};

Примечание / Note Сравнение может быть == или != не равно. Comparison maybe == or != not equal.

Для примера / For example,

@ifelse[0]==[0]{A}{B}; преобразуется до / transforms to A @ifelse[A]!=[B]{X}{Y}; преобразуется до / transforms to X

33 @db Рендеринг элементов по произвольному запросу к базе / Render items by custom sql request

For example / Для примера

@db(caption|content|caption LIKE 'Caption For A%')=>(<div>{caption}</div>);

создает представление / produce view:

<div>Caption for ATlj8wrAT3CcIw3d34YSuSgaacXTFXT4</div><div>Caption for auBDhpiFlfPe0V4nwCFLkNryAWKIqUau</div><div>Caption for AjwwhevKimYoFU8mstZYUs0xsNWn8suz</div><div>Caption for aaX7qPBPd6xDHC7mmOtrQ26XZCd2Jvya</div><div>Caption for A6HJ9iefcPjeghHegjb3KBKh8B7bnlNm</div><div>Caption for a9q9J1k2yNxyyzIvbCYnjB98mx30Pw1N</div><div>Caption for aQnlpeYPiJygx71SXvZXaf0DfgxXJjkf</div>

Таким образом, оператор @db имеет форму / So operator @db must have the form

@db(field1,fieldN|tableName|conditionPart)=>(templatePart);

34 Autosave when exiting the application and before building / Автосохранение при выходе из приложения и перед сборкой

35 Application's cache for rebuilds / Кеш приложения для пересборок

36 Автозагрузка и применение палитр / Autoloading and applying palettes The tool to make a palette file

Note: color alias mush have name in the template like _color_ Palettes must be placed in the app folder.

Serverside endpoints

PHP endpoint for server https://github.com/ArtNazarov/htmlbuilder-php-bridge

Docker image with PHP https://github.com/ArtNazarov/dockerbridgephp

Nodejs endpoint for server https://github.com/artNazarov/htmlbuilder-nodejs-bridge

Docker image with NodeJs https://github.com/ArtNazarov/dockerbridgenodejs

Python endpoint https://github.com/ArtNazarov/htmlbuilder-python-bridge

More info in / больше информации english_help / russian_help.txt

Tutorial

Read how to create page in Wiki

Installation

  1. Install for Linux using HtmlBuilder_installer
  2. or download pre-release from releases

Troubleshooting

  1. Error while loading shared libraries: libQt5Pas.so.1: cannot open shared object file: No such file or directory

Install qt5pas

yay -Sy qt5pas
  1. If running on Linux Mint 22 Wilma - should install libraries:
sudo apt-get install libqt5pas1
sudo apt-get install libsqlite3-dev
  1. On RedOS should be installed shared libraries before compiling
sudo dnf install qt5pas
sudo dnf install libcanberra-devel
sudo dnf install libcanberra-gtk2
sudo dnf install libcanberra-gtk3
sudo dnf install libcanberra
sudo dnf install qt5-qtbase-gui
sudo dnf install qt5-qtbase-devel
sudo dnf install lazarus-lcl-qt5
sudo dnf install libsq3-devel
  1. Compiling on MX Linux 23.3 Before installing Lazarus and fpc:

    sudo apt-get install libqt5pas-dev libqt5pas1
    sudo apt-get install libsqlite3-0 libsqlite3-dev
    

After installing libraries, open lpi file in Lazarus IDE and compile

Ollama client

To use LLM with HtmlBuilder, you should install ollama server using package mananger and enable ollama service, for example, on ArchLinux it is

yay -S ollama
sudo systemctl enable ollama.service
sudo systemctl start ollama.service   

After load some model, for example tinyllama. Run server with chosen model before launching HtmlBuilder

 ollama pull tinyllama
 ollama run tinyllama

Tests

https://github.com/ArtNazarov/HtmlBuilder_tests

Database scheme

Sqlite3 tables

MDI Interface

MDI variant of interface, just for demo purposes