Недавно посещённые
Недавно посещённые

Орион против Хьюго

[ПРОВЕРЕНО] Последнее обновление по Joe Schaefer в вс, 28 июн. 2026    источник
 

Гуго ССГ

Предисловие

Я понимаю, что технические сравнения являются религиозным табу во многих кругах. Главное, что я пытаюсь донести, это то, что Орион оплачивается как корпоративный Jamstack Wiki, он имеет много жизнеспособных сценариев использования вне этого конкретного домена проблемы.

Тем не менее, суть этой статьи заключается в том, чтобы представить Orion’s Apache-Licensed SSG как лучший SSG, чем Hugo для вас и ваших команд разработчиков программного обеспечения. Он обладает большей мощностью, большей производительностью, большим количеством основных функций и намного проще в настройке. Плюс это хорошо документированный и имеет неограниченный потенциал для истинных сильных пользователей там, как и вы!

@SunStarSys/orion

  • НКОТБ

  • Мнение с постепенной кривой обучения

@GoHugoIo/хуго

  • Популярные

  • Надежные сторонние темы и расширения

  • Мнение с крутой кривой обучения

Общие наборы характеристик

  • Апач лицензирован

  • Высокая производительность (максимальная скорость обработки документов при ~1K документов в секунду)1

  • Управление зависимостями в кэше

  • Сложная модель безопасности

Орион как Hugo++

  1. (Настраиваемый) Полная мощность шаблонов Django в источниках разметки

  2. Надежный поток управления, фор-петлевые конструкции и фильтры Django

  3. Полный доступ к прикрепленным документам YAML/CSV в виде структур данных

  4. Векторная графика с поддержкой WebGL2

  5. Агрегирование векторных операций в данных таблицы с помощью PDL

  6. ssi пропускает заголовки файлов

  7. Торги по контенту / MultiViews

  8. Простота использования

  9. Гибкие, реальные инкрементные сборки

  10. ACL для каждого файла/каталога, включая элементы управления стеком программного обеспечения сборки и самой конфигурацией

  11. Надежный KaTeX\KaTeX Поддержка

  12. Интегрированный поиск PCRE

Примеры использования редактора CMS Orion

Редактор X

  1. Загрузка документа на основе MIME-типа (Markdown, Perl, YAML, CSV, LaTeX\LaTeX)

  2. Автоматическая проверка/заголовок ссылки

  3. Представление предварительного просмотра в реальном времени для @-короткие ссылки (например твиты)

  4. Завершение HTML/вкладки электроэнергии

  5. Многоязычная функциональность перевода с ИИ OOTB — включая китайский, иврит и арабский

  6. Markdown LaTeX\text{Markdown }\rightarrow\LaTeX шаблонный конвертер статей

Построения приращения Orion

O(N) в сравнении с O(1)

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

Это означает, что вы хотите Orion!

Кэш примитивной зависимости Гюго (Gilding the Lilly)

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

https://deepwiki.com/gohugoio/hugo/3.6-dependency-tracking-and-caching

Вот что эта страница не говорит об управлении зависимостями Hugo:

  • негибкий, внутренний DAG на основе макетов дерева узлов/листов/наборов

  • никогда не записывается на диск

Хьюго не отслежено readFile вызовы прерывают поддержку инкрементальной сборки

Давайте рассмотрим слона в комнате в этой статье:

https://mbuege.com/2025/09/04/hugo-include-shortcode/

treeView-beta архетипы/ активы/ содержание/ включает/ dummy.md :::highlight ## неотслеживаемая зависимость в Hugo сообщения/ 2025-01-01-post1.md ## может использовать "включать" короткие коды 2025-01-02-post2.md ## ... данные/ i18n/ макеты/ короткие коды/ include.html ## использует readFile() по переданному аргументу статический/ темы/

Hugo не отслеживает зависимости контента, возникающие из коротких кодов, и делает жесткие допущения DAG о зависимостях контента, которые он отслеживает.

Орион полностью отслеживается ssi вызовы
treeView-beta багажник/ содержание/ фу/ fileA.md.en :::highlight ## цель включает файл бар/ fileB.md.en ## `ssi` включает выбранные части файлаA.md.en cgi-bin/ либ/ шаблоны/

*Нативные треки Ориона fileB.md.enЗависимость от fileA.md.en и будет восстанавливать его, когда fileA.md.en изменяется; и зависимости дополнительно настраиваются для каждого документа, а не просто предполагаются иерархической структурой.

График зависимостей Ориона почти никогда не является DAG. И это необходимый компонент сборки, а не просто полузащищенная оптимизация, как это происходит с Hugo.

Например, источник разметки этой веб-страницы сам имеет Dependencies: *.md.ru заголовок (вы можете увидеть его на приведенном выше снимке экрана редактора или нажав на источник ссылка, где отображается заголовок и информация об авторе), которая используется Orion для создания элементов под “Индекс” верхний колонтитул страницы.
Все файлы в этом каталоге аналогично настроены для перекрестных ссылок друг на друга!

DAG – это грубое упрощение требований к зависимости контента в реальных сценариях использования.

не DAG

Контроль версий

Git и Fine-Grained ACL

Невозможно в любом DVCS, как git — доступ для чтения к репозиторию подразумевает доступ ко всей его целостности, включая полную историю. Ditto для push-доступа: это все или ничего, что является нарушителем сделки в вики-контексте, где разные пользователи репозитория требуют детализированного файла / каталога авторизации записи / контроля доступа.

Подвержение

Тривиальная интеграция per-user с git/GitHub через git-svn мост, упакованный как расширение дополнения каждым git распределение.

Сноски

1. Для сравнения яблок с яблоками я портил подмножество https://www.openoffice.org JBake исходное дерево @apache/openoffice-org в Hugo и сравнение его с простым hyde Тема, которая только что выбрала body innerHTML из .html источники (переименованные как .md файлы со встроенным html) a’la

{{ define "main" -}}
<div class="post">
  <h1>{{ .Title }}</h1>
  <time datetime={{ .Date.Format "2006-01-02T15:04:05Z0700" }} class="post-date">{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
  {{ $matches := findRESubmatch `(?s)<body[^>]*>(.*?)</body>` .Content }}
  {{ range $matches }}{{ index . 1 | safeHTML }}{{ end }}
</div>
{{ if .Site.Config.Services.Disqus.Shortname -}}
<h2>Comments</h2>
{{ template "_internal/disqus.html" . }}
{{- end }}
{{- end }}

А вот и hugo.toml файл:

baseURL = 'https://openoffice.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
theme = "hyde"
[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

Для обработки таких файлов 10K обычно требуется 8-12 секунд (иногда до 30s). По сравнению с сборкой @SunStarSys/orion ./test.sh ooo который последовательно создает более 20K таких файлов примерно в 2-3x время, кажется, между ними есть паритет производительности на наименее сложных, но очень больших веб-сайтах, таких как https://www.OpenOffice.org.

Однако Орион способен на гораздо больше, если вам нужна истинная гибкость и правильная инкрементальная поддержка сборки, потому что мы думаем, что вы знаете, что лучше всего работает для вашего сайта, в отличие от остального перегруженного сообщества SSG вокруг Hugo.

2. Полная поддержка огороженного asy блоки разметки с источниками, закодированными в @vectorgraphics/asymptote .