Skip to content

Commit a0efa72

Browse files
committed
Вызов документера из скрипта сборки
1 parent cf166f2 commit a0efa72

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

Build.csproj

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,9 @@
164164
</Target>
165165

166166
<Target Name="BuildWithCpp" DependsOnTargets="CleanAll;MakeCPP;MakeFDD;MakeSCD;BuildDebugger">
167-
<CallTarget Targets="CleanIntermediates"/>
168167
</Target>
169168

170169
<Target Name="BuildWithoutCpp" DependsOnTargets="CleanAll;MakeFDD;MakeSCD;BuildDebugger">
171-
<CallTarget Targets="CleanIntermediates"/>
172170
</Target>
173171

174172
<!-- Используется для поиска первого собранного oscript.exe -->
@@ -227,7 +225,7 @@
227225

228226
</Target>
229227

230-
<Target Name="ComposeDistributionFolders">
228+
<Target Name="ComposeDistributionFolders" DependsOnTargets="CleanIntermediates">
231229
<ItemGroup>
232230
<TargetDir Include="fdd-x64"/>
233231
<TargetDir Include="fdd-x86"/>
@@ -375,5 +373,35 @@
375373
Command="dotnet nuget push %(NugetAbleProject.Identity) -k $(NugetToken) -s https://api.nuget.org/v3/index.json" UseUtf8Encoding="Always"/>
376374

377375
</Target>
376+
377+
<Target Name="BuildDocumenter">
378+
<Exec Command="dotnet publish &quot;$(MSBuildProjectDirectory)/src/OneScriptDocumenter/OneScriptDocumenter.csproj&quot; -c Release -o &quot;$(ArtifactsRoot)/tools/documenter&quot;" UseUtf8Encoding="Always"/>
379+
</Target>
378380

381+
<Target Name="BuildDocumentation" DependsOnTargets="MakeSCD;BuildDocumenter">
382+
<PropertyGroup>
383+
<DocInputDir>$(ArtifactsRoot)/win-x64/bin</DocInputDir>
384+
<DocsRoot>$(ArtifactsRoot)/docs</DocsRoot>
385+
<DocumenterToolDir>$(ArtifactsRoot)/tools/documenter</DocumenterToolDir>
386+
</PropertyGroup>
387+
<ItemGroup>
388+
<DocAssemblies Include="$(DocInputDir)/ScriptEngine.HostedScript.dll"/>
389+
<DocAssemblies Include="$(DocInputDir)/ScriptEngine.dll"/>
390+
<DocAssemblies Include="$(DocInputDir)/OneScript.StandardLibrary.dll"/>
391+
<DocAssemblies Include="$(DocInputDir)/OneScript.Web.Server.dll"/>
392+
<DocAssemblies Include="$(DocInputDir)/oscript.dll"/>
393+
</ItemGroup>
394+
395+
<Error Condition="'@(DocAssemblies)' == ''" Text="No input assemblies found in $(DocInputDir) for documentation generation" />
396+
397+
<MakeDir Directories="$(DocsRoot)"/>
398+
<MakeDir Directories="$(DocsRoot)/markdown"/>
399+
<MakeDir Directories="$(DocsRoot)/json"/>
400+
<Exec Command="dotnet &quot;$(DocumenterToolDir)/OneScriptDocumenter.dll&quot; @(DocAssemblies->'%(FullPath)', ' ') -t &quot;$(MSBuildProjectDirectory)/src/OneScriptDocumenter/default_toc.json&quot; -m &quot;$(DocsRoot)/markdown&quot; -j &quot;$(DocsRoot)/json/syntax-helper.json&quot;" UseUtf8Encoding="Always"/>
401+
402+
<RemoveDir Directories="$(DocumenterToolDir)" Condition="Exists($(DocumenterToolDir))"/>
403+
404+
</Target>
405+
406+
379407
</Project>

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,10 @@ msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles /p:VersionPrefix=2.0.0
102102

103103
```bat
104104
msbuild Build.csproj /t:CleanAll;PrepareDistributionFiles;PackDistributions /p:VersionPrefix=2.0.0 /p:VersionSuffix=preview223
105+
```
106+
107+
### Генерация документации
108+
109+
```bat
110+
msbuild Build.csproj /t:BuildDocumentation
105111
```

docs/developer_docs.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ OneScript — реализация языка, совместимого с си
1212
- Рантайм: ScriptEngine, OneScript.Native (компиляция/исполнение, встроенные функции).
1313
- Ядро/язык/библиотека: OneScript.Core (типы/контексты), OneScript.Language (лексер/парсер/AST), OneScript.StandardLibrary.
1414
- Интеграции: ScriptEngine.NativeApi (C++ расширения).
15+
- Инструмент генерации автодокументации OneScriptDocumenter
1516

1617
## 2 Быстрый старт для контрибьютора
1718
- Где собирать: решение src/1Script.sln.
@@ -133,7 +134,8 @@ OneScript — реализация языка, совместимого с си
133134
- StandaloneRunner: сборка самодостаточных пакетов/запуск
134135
- Program.cs, StandaloneRunner.cs, ProcessLoader.cs.
135136
- OneScriptDocumenter: генерация документации по сборкам
136-
- Primary/AssemblyDocsCollector.cs, Cli/MarkdownGenerator.cs.
137+
- На вход получает список DLL (в каталоге с ними рядом должны лежать файлы xml-docs от этих dll) и файл оглавления (в репозитории уже лежит готовый файл оглавления OneScriptDocumenter\default_toc.json)
138+
- На выходе формирует файл с документацией формата Json и/или каталог с документацией в формате markdown.
137139
- Примеры/демо:
138140
- Component — простая .NET‑библиотека/компонент и примеры использования.
139141
- TestApp — WPF‑приложение‑песочница (подсветка синтаксиса, запуск модулей).

0 commit comments

Comments
 (0)