Skip to content

Commit

Permalink
2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
quantum-leaps committed Jul 12, 2024
1 parent 65cb678 commit a475755
Show file tree
Hide file tree
Showing 51 changed files with 17,846 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
spexygen.tar.gz
html/

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down
3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
MIT License

Copyright (c) 2024 Quantum Leaps
Copyright (c) 2021 - 2023 jothepro (doxygen-awesome)
Copyright (c) 2024 Quantum Leaps, LLC <https://www.state-machine.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,28 @@
# spexygen
Traceable specifications based on Doxygen
## Brought to you by:
[![Quantum Leaps](https://www.state-machine.com/attachments/logo_ql_400.png)](https://www.state-machine.com)
<hr>

[![GitHub release (latest by date)](https://img.shields.io/github/v/release/QuantumLeaps/spexygen)](https://github.com/QuantumLeaps/spexygen/releases/latest)
[![GitHub](https://img.shields.io/github/license/QuantumLeaps/spexygen)](https://github.com/QuantumLeaps/spexygen/blob/main/LICENSE)

<p align="center">
<a href="https://www.state-machine.com/spexygen">
<img src="img/banner_spexygen.webp"/></a>
</p>

# Spexygen - Traceable Specifications Based on Doxygen
_Spexygen_ documentation (generated with _spexygen_!) is available at:
- [Spexygen Reference Manual in HTML](https://www.state-machine.com/spexygen)
- [Spexygen Reference Manual in PDF](https://www.state-machine.com/spexygen/DOC-MAN-SPX.pdf)

# Licensing
Spexygen is released under the terms of the permissive [MIT open source license](LICENSE).
Please note that the attribution clause in the MIT license requires you to preserve
the original copyright notice in all changes and derivate works.

# How to Help this Project?
Please feel free to clone, fork, and make pull requests to improve **Spexygen**.
If you like this project, please give it a star (in the upper-right corner
of your browser window):

<p align="center"><img src="img/github-star.jpg"/></p>
57 changes: 57 additions & 0 deletions Spexyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Doxyfile 1.11.0

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
# Spexygen: Commands
#---------------------------------------------------------------------------
ALIASES += \
"uid{2}=@addindex \1^^@subsection \1 \1^^<table><tr><th style=\"text-align:left; width:var(--content-maxwidth)\">\1 : \2^^" \
"uid_litem{1}=<tr><td><b>\1</b><br>^^" \
"uid_bw_trace=<tr><td><b>Backward Traceability</b><br>^^" \
"uid_bw_trace{1}=<tr><td><b>Backward Traceability</b><br>^^" \
"uid_fw_trace=<tr><td><b>Forward Traceability</b><br>^^" \
"uid_fw_trace{1}=<tr><td><b>Forward Traceability</b><br>^^" \
"enduid=</table>" \
"code_uid{2}=@brief \2" \
"code_alias{2}=@brief <b>\1</b> : \2^^@anchor \1" \
"code_litem{1}=@par \1^^" \
"code_bw_trace=@par Backward Traceability^^" \
"code_bw_trace{1}=@par Backward Traceability^^" \
"code_fw_trace=@par Forward Traceability^^" \
"code_fw_trace{1}=@par Forward Traceability^^" \
"endcode_uid=" \
"tr{1}=@ref \1 \"\1\"" \
"precondition{2}=@par Precondition `\1:\2`^^" \
"postcondition{2}=@par Postcondition `\1:\2`^^" \
"invariant{2}=@par Invariant `\1:\2`^^" \
"nav{2}=<span class=\"prev_button\">@ref \1</span><span class=\"next_button\">@ref \2</span>" \
"nav_prev{1}=<span class=\"prev_button\">@ref \1</span>" \
"nav_next{1}=<span class=\"next_button\">@ref \1</span>" \
"next{1}=<span class=\"next_button\">@ref \1</span>" \
"caption{1}=<div class=\"caption\"><center><em>\1</em></center></div>" \
"webref{2}=<a target=\"_blank\" rel=\"noopener\" href=\"\1\">\2&uarr;</a>"

#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
# Spexygen: spexygen-awesome style
#---------------------------------------------------------------------------
HTML_HEADER = $(SPEXYGEN)/spexygen-awesome/spexy-header.html
HTML_FOOTER = $(SPEXYGEN)/spexygen-awesome/spexy-footer.html
HTML_EXTRA_STYLESHEET = $(SPEXYGEN)/spexygen-awesome/doxygen-awesome.css \
$(SPEXYGEN)/spexygen-awesome/doxygen-awesome-sidebar-only.css \
$(SPEXYGEN)/spexygen-awesome/doxygen-awesome-sidebar-only-darkmode-toggle.css \
$(SPEXYGEN)/spexygen-awesome/spexy-awesome.css
HTML_EXTRA_FILES = $(SPEXYGEN)/spexygen-awesome/doxygen-awesome-darkmode-toggle.js \
$(SPEXYGEN)/spexygen-awesome/doxygen-awesome-fragment-copy-button.js \
$(SPEXYGEN)/spexygen-awesome/doxygen-awesome-paragraph-link.js \
$(SPEXYGEN)/spexygen-awesome/image-preview.js

#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# Spexygen: customized LaTeX formatting
#---------------------------------------------------------------------------
LATEX_HEADER = $(SPEXYGEN)/spexygen-awesome/spexy-header.tex
LATEX_FOOTER = $(SPEXYGEN)/spexygen-awesome/spexy-footer.tex
38 changes: 38 additions & 0 deletions deploy.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
:: Batch file for building the Python package, checking it,
:: and uploading it to PyPi.
::
:: usage:
:: make
::
@setlocal

:: set the project
@set PROJ=spexygen

:: adjust the Python location for your system
@set PYTHON=python

:: cleanup any previous builds...
@rmdir /S /Q build
@rmdir /S /Q dist
@rmdir /S /Q %PROJ%.egg-info

:: execute the build...
%PYTHON% setup.py sdist bdist_wheel

:: check the build...
twine check dist/*

:: upload to PyPi -- skip for now
:: twine upload dist/*

:: copy/rename the "wheel" to the current dir
@cp dist/%PROJ%-*.tar.gz %PROJ%.tar.gz

:: cleanup after the build...
@rm -rf build
@rm -rf dist
@rm -rf %PROJ%.egg-info
@rm -rf %PROJ%-*

@endlocal
158 changes: 158 additions & 0 deletions doc/Doxyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Doxyfile 1.11.0

@INCLUDE = $(SPEXYGEN)/Spexyfile

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = Spexygen
PROJECT_NUMBER = 2.0.0
PROJECT_BRIEF = "Reference Manual"
PROJECT_LOGO = ./img/logo_spexygen.webp
PROJECT_ICON =

FULL_PATH_NAMES = NO
EXTENSION_MAPPING =
TYPEDEF_HIDES_STRUCT = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PRIV_VIRTUAL = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES

#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = NO
FORCE_LOCAL_INCLUDES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
# NOTE:
# In "C with classes", the order matters for correct generation of
# documentation for member functions (e.g., Foo::Foo_ctor()).
# Specifically, the files with documentation (e.g., header.dox) must be
# listed *after* the referenced code (e.g., header.h).
#---------------------------------------------------------------------------
INPUT = \
main.dox

@INCLUDE = spex/Spexyinc

ENABLED_SECTIONS =
OPTIMIZE_OUTPUT_FOR_C = YES

RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH = ../example
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = ./img
#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = NO
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = ./html
HTML_FILE_EXTENSION = .html
#Spexygen HTML_HEADER =
#Spexygen HTML_FOOTER =
HTML_STYLESHEET =
#Spexygen HTML_EXTRA_STYLESHEET =
#Spexygen HTML_EXTRA_FILES =
HTML_COLORSTYLE = DARK
HTML_COLORSTYLE_HUE = 209
HTML_COLORSTYLE_SAT = 255
HTML_COLORSTYLE_GAMMA = 113
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_CODE_FOLDING = YES
HTML_COPY_CLIPBOARD = YES
HTML_PROJECT_COOKIE =
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME =
DOCSET_FEEDURL =
DOCSET_BUNDLE_ID = com.state-machine.doc
DOCSET_PUBLISHER_ID = com.state-machine.doc
DOCSET_PUBLISHER_NAME = QuantumLeaps
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
SITEMAP_URL =
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = com.state-machine.qp
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = com.state-machine.qp
DISABLE_INDEX = NO
GENERATE_TREEVIEW = YES
FULL_SIDEBAR = NO
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 335
EXT_LINKS_IN_WINDOW = NO
OBFUSCATE_EMAILS = NO
HTML_FORMULA_FORMAT = png
FORMULA_FONTSIZE = 10
FORMULA_MACROFILE =
USE_MATHJAX = NO
MATHJAX_VERSION = MathJax_2
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH =
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID = Spexygen
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = ./latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
LATEX_MAKEINDEX_CMD = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = letter
EXTRA_PACKAGES =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
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 = NO
#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------
DOT_PATH = C:/tools/graphviz/bin
29 changes: 29 additions & 0 deletions doc/Doxyfile-PDF
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Doxyfile 1.11.0

@INCLUDE = Doxyfile

#---------------------------------------------------------------------------
# Configuration options related to the LateX output
#---------------------------------------------------------------------------
PROJECT_NAME = Reference Manual
PROJECT_BRIEF = For Spexygen 2.0.0
PROJECT_NUMBER = Document: DOC-MAN-SPX

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
GENERATE_HTML = NO
GENERATE_LATEX = YES

ENABLED_SECTIONS += LATEX

#---------------------------------------------------------------------------
# Configuration options related to the input files
#
# NOTE:
# The differet INPUT than in Doxyfile is handled in spex-PDF.json
#---------------------------------------------------------------------------

# no source code for this document
SOURCE_BROWSER = NO
VERBATIM_HEADERS = NO
Binary file added doc/img/banner_spexygen.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/img/banner_spexygen.webp
Binary file not shown.
Binary file added doc/img/help_using.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/img/logo_spexygen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/img/logo_spexygen.webp
Binary file not shown.
Binary file added doc/img/spx-code.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/img/spx-uid.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/img/spx-uid.webp
Binary file not shown.
Binary file added doc/img/spx.odg
Binary file not shown.
Loading

0 comments on commit a475755

Please sign in to comment.