Files
Bridge-and-Join-s/internal/lkgateway/internaldocs_on.go
T
zuevav fcded5fe17 Справка: технические страницы только в нашей сборке (build-tag internaldocs)
Из клиентской сборки убрана проектная документация, читавшаяся прямым `strings`:
архитектура обмена с НРД, протокол событий bj↔bj2depo (FTV_M2M, 41 КБ), схема
базы, криптография, QUIK МНП. Это самая крупная и самая дешёвая утечка знаний —
её не нужно было даже декомпилировать.

Файлы перенесены в web/templates/internal/ (выпадают из общего embed-глоба) и
встраиваются только при `go build -tags internaldocs` (internaldocs_on.go).
По умолчанию (клиентский релиз, build-release.sh) страницы заменяются заглушкой
«доступно на портале» (internaldocs_off.go); ссылки на них в индексе справки
показываются под {{if internalDocs}}. Операторские страницы (ручной ввод, робот,
внешние системы, API ЛК) остаются — они нужны на месте.

Клиентская сборка: -27 тыс. символов внутренней документации, «Согласовано
10.09», «Для программиста Fancy», «как устроен обмен» → 0 совпадений.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
2026-09-18 20:05:06 +03:00

27 lines
915 B
Go

//go:build internaldocs
package lkgateway
// internaldocs_on.go — сборка ДЛЯ НАС (флаг internaldocs): технические страницы
// справки встроены. Собирать: go build -tags internaldocs.
import (
"embed"
"html/template"
)
//go:embed web/templates/internal/*.html
var internalDocsFS embed.FS
// internalDocsBuilt — технические страницы справки вшиты в этот бинарь.
const internalDocsBuilt = true
// parseInternalDoc — страница внедрения (layout из основного FS + сам документ).
func parseInternalDoc(name string) (*template.Template, error) {
t := template.New("layout.html").Funcs(templateFuncs)
if _, err := t.ParseFS(templatesFS, "web/templates/layout.html"); err != nil {
return nil, err
}
return t.ParseFS(internalDocsFS, "web/templates/internal/"+name)
}