diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..40089b8 Binary files /dev/null and b/.DS_Store differ diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..e9242cf --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,31 @@ +name: Deploy Doxygen Documentation + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Doxygen + uses: mattnotmitt/doxygen-action@v1.1.0 + + - name: Generate Documentation + run: | + cd lab2 + doxygen Doxyfile + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./lab2/docs/html + destination_dir: docs diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/DEPLOYMENT_GUIDE.md b/DEPLOYMENT_GUIDE.md new file mode 100644 index 0000000..89b8de6 --- /dev/null +++ b/DEPLOYMENT_GUIDE.md @@ -0,0 +1,51 @@ +# Руководство по развертыванию документации + +## Быстрый старт + +### 1. Настройка GitHub Pages +```bash +# 1. Перейдите в настройки репозитория на GitHub +# 2. Pages → Source → GitHub Actions +# 3. Actions → General → Workflow permissions → Read and write permissions +``` + +### 2. Развертывание +```bash +# Сделайте commit и push изменений +git add . +git commit -m "Add GitHub Pages deployment" +git push origin main +``` + +### 3. Проверка +- Документация будет доступна по адресу: `https://glebsikunov.github.io/HomeAssignments/` +- Проверьте статус в разделе Actions на GitHub + +## Что было настроено + +✅ **GitHub Actions workflow** (`.github/workflows/deploy-docs.yml`) +- Автоматическая генерация документации с помощью Doxygen +- Развертывание на GitHub Pages при push в main + +✅ **Главная страница** (`index.html`) +- Красивый интерфейс с ссылкой на документацию +- Адаптивный дизайн + +✅ **Конфигурация** (`.nojekyll`) +- Корректная работа с файлами, начинающимися с подчеркивания + +✅ **Документация** (`lab2/docs/html/`) +- Автоматически генерируемая документация Doxygen +- Доступна по адресу `/docs/` + +## Структура URL + +- Главная страница: `https://glebsikunov.github.io/HomeAssignments/` +- Документация: `https://glebsikunov.github.io/HomeAssignments/docs/` + +## Автоматическое обновление + +Документация обновляется автоматически при каждом push в ветку main. Workflow: +1. Устанавливает Doxygen +2. Генерирует документацию из `lab2/` +3. Развертывает в папку `docs/` на GitHub Pages diff --git a/Doxyfile b/Doxyfile deleted file mode 100644 index cc2d734..0000000 --- a/Doxyfile +++ /dev/null @@ -1,356 +0,0 @@ -# Doxyfile configuration for RPG Adventure Game -# Generated by Gleb Shikunov - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = "RPG Adventure Game" -PROJECT_NUMBER = 1.0 -PROJECT_BRIEF = "A console-based RPG game with combat, inventory, and quest systems" -PROJECT_LOGO = -OUTPUT_DIRECTORY = docs -CREATE_SUBDIRS = NO -ALLOW_UNICODE_NAMES = NO -OUTPUT_LANGUAGE = English -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = YES -QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 4 -ALIASES = -TCL_SUBST = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -OPTIMIZE_FOR_FORTRAN = NO -OPTIMIZE_OUTPUT_VHDL = NO -EXTENSION_MAPPING = -MARKDOWN_SUPPORT = YES -TOC_INCLUDE_HEADINGS = 0 -AUTOLINK_SUPPORT = YES -BUILTIN_STL_SUPPORT = NO -CPP_CLI_SUPPORT = NO -SIP_SUPPORT = NO -IDL_PROPERTY_SUPPORT = YES -DISTRIBUTE_GROUP_DOC = NO -GROUP_GRAPHS = YES -DISABLE_INDEX = NO -GENERATE_TREEVIEW = YES -ENUM_VALUES_PER_LINE = 4 -TREEVIEW_WIDTH = 250 -EXT_LINKS_IN_WINDOW = NO -FORMULA_FONTSIZE = 10 -FORMULA_TRANSPARENT = YES -USE_MATHJAX = NO -SEARCHENGINE = YES -SERVER_BASED_SEARCH = NO -EXTERNAL_SEARCH = NO -SEARCHENGINE_URL = -SEARCHDATA_FILE = searchdata.xml -EXTERNAL_SEARCH_ID = -EXTRA_SEARCH_MAPPINGS = -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_PACKAGE = NO -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -EXTRACT_ANON_NSPACES = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -HIDE_COMPOUND_REFERENCE= NO -SHOW_HEADERFILE = YES -SHOW_INCLUDE_FILES = YES -SHOW_GROUPED_MEMB_INC = NO -FORCE_LOCAL_INCLUDES = NO -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_MEMBERS_CTORS_1ST = NO -SORT_GROUP_NAMES = NO -SORT_BY_SCOPE_NAME = NO -STRICT_PROTO_MATCHING = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_FILES = YES -SHOW_NAMESPACES = YES -FILE_VERSION_FILTER = -LAYOUT_FILE = -CITE_BIB_FILES = -#--------------------------------------------------------------------------- -# Input related configuration options -#--------------------------------------------------------------------------- -INPUT = lab2/game/include/ lab2/game/src/ -INPUT_ENCODING = UTF-8 -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -FILTER_SOURCE_PATTERNS = -USE_MDFILE_AS_MAINPAGE = -#--------------------------------------------------------------------------- -# Source browsing related configuration options -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = NO -REFERENCES_LINK_SOURCE = YES -SOURCE_TOOLTIPS = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -CLANG_ASSISTED_PARSING = NO -CLANG_ADD_INC_PATHS = YES -CLANG_OPTIONS = -CLANG_DATABASE_PATH = -#--------------------------------------------------------------------------- -# Alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# HTML related configuration options -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_EXTRA_STYLESHEET = -HTML_EXTRA_FILES = -HTML_COLORSTYLE_HUE = 220 -HTML_COLORSTYLE_SAT = 100 -HTML_COLORSTYLE_GAMMA = 80 -HTML_TIMESTAMP = NO -HTML_DYNAMIC_MENUS = YES -HTML_DYNAMIC_SECTIONS = NO -HTML_INDEX_NUM_ENTRIES = 100 -GENERATE_DOCSET = NO -DOCSET_FEEDNAME = "Doxygen generated docs" -DOCSET_BUNDLE_ID = org.doxygen.Project -DOCSET_PUBLISHER_ID = org.doxygen.Publisher -DOCSET_PUBLISHER_NAME = Publisher -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -CHM_INDEX_ENCODING = -BINARY_TOC = NO -TOC_EXPAND = NO -GENERATE_QHP = NO -QCH_FILE = -QHP_NAMESPACE = org.doxygen.Project -QHP_VIRTUAL_FOLDER = doc -QHP_CUST_FILTER_NAME = -QHP_CUST_FILTER_ATTRS = -QHP_SECT_FILTER_ATTRS = -QHG_LOCATION = -GENERATE_ECLIPSEHELP = NO -ECLIPSE_DOC_ID = org.doxygen.Project -DISABLE_INDEX = NO -GENERATE_TREEVIEW = YES -ENUM_VALUES_PER_LINE = 4 -TREEVIEW_WIDTH = 250 -EXT_LINKS_IN_WINDOW = NO -FORMULA_FONTSIZE = 10 -FORMULA_TRANSPARENT = YES -USE_MATHJAX = NO -SEARCHENGINE = YES -SERVER_BASED_SEARCH = NO -EXTERNAL_SEARCH = NO -SEARCHENGINE_URL = -SEARCHDATA_FILE = searchdata.xml -EXTERNAL_SEARCH_ID = -EXTRA_SEARCH_MAPPINGS = -#--------------------------------------------------------------------------- -# LaTeX related configuration options -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4 -EXTRA_PACKAGES = -LATEX_HEADER = -LATEX_FOOTER = -LATEX_EXTRA_STYLESHEET = -LATEX_EXTRA_FILES = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -LATEX_SOURCE_CODE = NO -LATEX_BIB_STYLE = plain -LATEX_TIMESTAMP = NO -#--------------------------------------------------------------------------- -# RTF related configuration options -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -RTF_SOURCE_CODE = NO -RTF_EXTRA_FILES = -#--------------------------------------------------------------------------- -# Man page related configuration options -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_SUBDIR = -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# XML related configuration options -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# Preprocessor related configuration options -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# External references configuration options -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -EXTERNAL_PAGES = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Dot tool related configuration options -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -MSCGEN_PATH = -DIA_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = YES -DOT_NUM_THREADS = 0 -DOT_FONTNAME = Helvetica -DOT_FONTSIZE = 10 -DOT_FONTPATH = -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -UML_LIMIT_NUM_FIELDS = 10 -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -INTERACTIVE_SVG = NO -DOT_PATH = -DOTFILE_DIRS = -MSCFILE_DIRS = -DIAFILE_DIRS = -PLANTUML_JAR_PATH = -PLANTUML_CFG_FILE = -PLANTUML_INCLUDE_PATH = -DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES diff --git a/README.md b/README.md index 54a70aa..f5dcbe4 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,12 @@ st128274@student.spbu.ru ### Description Created as part of monitoring homework at the university. Each directory is a solution to a separate task + +### Документация +Документация проекта автоматически развертывается на GitHub Pages при каждом push в ветку main. Документация доступна по адресу: https://glebsikunov.github.io/HomeAssignments/ + +### Структура проекта +- **Assignment1-6** - Задания по программированию +- **lab1** - Лабораторная работа по работе с BMP файлами +- **lab2** - Лабораторная работа с игрой и документацией Doxygen +- **docs** - Автоматически генерируемая документация Doxygen diff --git a/SETUP_GITHUB_PAGES.md b/SETUP_GITHUB_PAGES.md new file mode 100644 index 0000000..1027a13 --- /dev/null +++ b/SETUP_GITHUB_PAGES.md @@ -0,0 +1,50 @@ +# Настройка GitHub Pages для документации Doxygen + +## Шаги для настройки + +### 1. Включение GitHub Pages +1. Перейдите в настройки репозитория на GitHub +2. Найдите раздел "Pages" в левом меню +3. В разделе "Source" выберите "GitHub Actions" +4. Сохраните изменения + +### 2. Настройка прав доступа +1. Перейдите в настройки репозитория +2. Найдите раздел "Actions" → "General" +3. В разделе "Workflow permissions" выберите "Read and write permissions" +4. Поставьте галочку "Allow GitHub Actions to create and approve pull requests" +5. Сохраните изменения + +### 3. Активация workflow +После настройки прав доступа: +1. Сделайте commit и push изменений в ветку main +2. GitHub Actions автоматически запустит workflow +3. Документация будет доступна по адресу: `https://glebsikunov.github.io/HomeAssignments/` + +### 4. Проверка развертывания +1. Перейдите в раздел "Actions" вашего репозитория +2. Убедитесь, что workflow "Deploy Doxygen Documentation" выполнился успешно +3. Проверьте, что документация доступна по указанному URL + +## Структура файлов + +- `.github/workflows/deploy-docs.yml` - GitHub Actions workflow для автоматического развертывания +- `index.html` - Главная страница с ссылкой на документацию +- `.nojekyll` - Файл для корректной работы GitHub Pages с файлами, начинающимися с подчеркивания +- `lab2/Doxyfile` - Конфигурация Doxygen +- `lab2/docs/html/` - Сгенерированная документация + +## Автоматическое обновление + +Документация будет автоматически обновляться при каждом push в ветку main. Workflow: +1. Устанавливает Doxygen +2. Генерирует документацию из исходного кода +3. Развертывает ее на GitHub Pages + +## Устранение неполадок + +Если документация не развертывается: +1. Проверьте, что workflow выполнился без ошибок +2. Убедитесь, что права доступа настроены правильно +3. Проверьте, что в репозитории включен GitHub Pages +4. Убедитесь, что файл `.nojekyll` присутствует в корне репозитория diff --git a/index.html b/index.html new file mode 100644 index 0000000..a211ccf --- /dev/null +++ b/index.html @@ -0,0 +1,69 @@ + + +
+ + +Добро пожаловать в документацию проекта! Здесь вы можете найти подробную информацию о структуре кода, классах и функциях.
+Этот репозиторий содержит различные задания и лабораторные работы, включая:
+|
+ RPG Adventure Game 1.0
+
+ A console-based RPG game with combat, inventory, and quest systems
+ |
+
A console-based role-playing game built in C++ with comprehensive object-oriented design.
+This project is a text-based RPG game featuring:
The game follows object-oriented programming principles with:
Complete API documentation is available in the docs/html/ directory. Open docs/html/index.html in a web browser to view the full documentation.
+Gleb Shikunov
+This project demonstrates advanced C++ programming concepts including:
|
+ RPG Adventure Game 1.0
+
+ A console-based RPG game with combat, inventory, and quest systems
+ |
+