Developer Docs
Everything you need to build, understand, and extend Lexicon. The codebase is small, focused, and easy to get into β a classic Qt Widgets desktop application with a clean data layer.
Technology stack
| Layer | Technology | Notes |
|---|---|---|
| Language | C++23 | CMAKE_CXX_STANDARD 23, extensions off |
| GUI | Qt 6 Widgets | Classic desktop widgets, no QML |
| Persistence | SQLite via Qt SQL | Single-file database with versioned migrations |
| Markdown | md4qt | Vendored in 3rdparty/, compiled into the binary |
| Build system | CMake β₯ 3.21 | Single Lexicon executable target |
| License | MIT | Free for any use |
Repository layout
lexicon/
βββ CMakeLists.txt # single-target CMake build
βββ src/
β βββ main.cpp # entry point: DB init + MainWindow
β βββ MainWindow.{h,cpp} # main window: filters, table, pagination, preview
β βββ TermEditDialog.{h,cpp}# 5-tab term editor
β βββ MapManagerDialog.{h,cpp} # map CRUD dialog
β βββ ValueListDialog.{h,cpp} # read-only tag/flag/alias overviews
β βββ DatabaseManager.{h,cpp} # all SQL: schema, migrations, queries
β βββ MarkdownConverter.{h,cpp} # Markdown β HTML via md4qt
βββ 3rdparty/md4qt/ # vendored Markdown parser
βββ resources/ # application icon
βββ images/ # screenshots used by README and this site
βββ lexicon.desktop # Linux desktop entry
βββ LICENSE # MIT
How it fits together
main.cppinitializes the database (creatinglexicon.dbnext to the executable and applying migrations), then shows theMainWindow.MainWindowdrives the whole browsing experience β filters, search, the paginated term table, and the rendered preview pane.- Dialogs (
TermEditDialog,MapManagerDialog,ValueListDialog) handle editing and overviews. DatabaseManageris the single gateway to SQLite β a static API used by all UI classes. No SQL lives outside it.MarkdownConverterturns term content into HTML for the preview panes using md4qt.
Read the full walkthrough in Architecture.
Jump in
π¨ Building from source
Prerequisites, CMake configuration, build types, and IDE setup for Linux, Windows, and macOS.
ποΈ Architecture
Source files and their responsibilities, core data structures, enums, and design decisions.
ποΈ Database schema
All seven tables, indexes, cascade rules, and the versioned migration system β with full DDL.
πΊοΈ Roadmap & TODO
Planned features like CSV/JSON export, static HTML export, and an HTTP server β plus the working TODO list.
π€ Contributing
How to report issues, propose changes, and submit pull requests β plus licensing details.
π GitHub repository
Browse the source, open issues, and star the project.