Markdown Converter
Agent skill for markdown-converter
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
SIPI (Simple Image Presentation Interface) is a multithreaded, high-performance, IIIF-compatible media server written in C++23. It implements IIIF Image API 3.0 and provides efficient image format conversions while preserving metadata. The server can be used both as a command-line tool and as a web server with Lua scripting support.
# Compile SIPI with debug symbols make compile # Run tests make test # Build and run server make run # Build Docker image make docker-build # Run smoke tests make test-smoke
# Enter Nix development shell nix develop .#clang # or `just clang` nix develop # gcc environment, or `just gcc` # Build project just build # or cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug cmake --build ./build --parallel # Run tests just test # or cd build && ctest --output-on-failure # Generate test coverage just coverage # uses gcovr just coverage1 # uses lcov with HTML output # Run SIPI server just run # or ./build/sipi --config=config/sipi.config.lua # Run with Valgrind just valgrind
mkdir -p ./build-mac && cd build-mac && cmake .. && make && ctest --verbose
# Build documentation make docs-build # Serve documentation locally make docs-serve # Serve doxygen docs (after building via cmake) just doxygen-serve
Main Application (
)src/sipi.cpp
SipiImage (
)src/SipiImage.hpp
SipiHttpServer (
)src/SipiHttpServer.hpp
IIIF Implementation (
)include/iiifparser/
SipiIdentifier.h - Image identifier handlingSipiRegion.h - Region of interest parsingSipiSize.h - Size parameter handlingSipiRotation.h - Rotation parameter parsingSipiQualityFormat.h - Quality and format parsingFormat Handlers (
)include/formats/
SHTTPS Framework (
)shttps/
Caching System (
)include/SipiCache.h
Lua Integration (
)include/SipiLua.h
config/sipi.config.luaconfig/sipi.test-config.luaconfig/sipi.debug-config.luascripts/ directory for custom functionalityUnit Tests (
)test/unit/
cd build && test/unit/[component]/[component]End-to-End Tests (
)test/e2e/
pytest -s --sipi-exec=./build/sipi (from test/e2e/)Approval Tests (
)test/approval/
Smoke Tests (
)test/smoke/
pytest -s test/smokeExternal Libraries (built from source in
)ext/
System Dependencies
CMakeLists.txt - Main build configurationMakefile - Docker-based build targetsjustfile - Nix-based development commandsversion.txt - Version informationvars.mk - Build variablesflake.nix - Nix development environmentCompiler Requirements
Build Types
-O0 -g with debug symbols-O3 -DNDEBUG optimized-O3 -g optimized with debug symbolsCommit Message Format Uses Conventional Commits with prefixes:
feat:, fix:, docs:, style:, refactor:, test:, chore:
Error Reporting Optional Sentry integration via environment variables:
SIPI_SENTRY_DSN - Sentry project DSNSIPI_SENTRY_ENVIRONMENT - Environment nameSIPI_SENTRY_RELEASE - Release version