Mercurial > p > roundup > code
changeset 8545:695399dea532
doc: provide card look for "sections" on features page.
Make each section on the features page look like a raised card.
Note the sections aren't headers 8-(. The markup is:
.. container:: card
**pseudo header**
- list stuff
.. container:: card
I can't put:
pseudo header
=============
in there even though each card is its own section. I would like to
have real headers for them (allow text->speech and othr devices
easiera access). Starting a header in column 1 seems to be a
requirement of the syntax 8-(.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 25 Mar 2026 11:37:03 -0400 |
| parents | e738377b4ffe |
| children | c9bb470e6d38 |
| files | doc/_static/style.css doc/features.txt website/www/_static/style.css |
| diffstat | 3 files changed, 103 insertions(+), 71 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/_static/style.css Tue Mar 24 22:11:27 2026 -0400 +++ b/doc/_static/style.css Wed Mar 25 11:37:03 2026 -0400 @@ -526,3 +526,10 @@ :target { scroll-margin-block-start: 2em; } + + +/* Make feature blocks look like raised cards for some variety. */ +div.card { + box-shadow: rgba(6, 24, 44, 0.4) 0px 0px 0px 2px, rgba(6, 24, 44, 0.65) 0px 4px 6px -1px, rgba(255, 255, 255, 0.08) 0px 1px 0px inset; + padding: 1em; +}
--- a/doc/features.txt Tue Mar 24 22:11:27 2026 -0400 +++ b/doc/features.txt Wed Mar 25 11:37:03 2026 -0400 @@ -13,97 +13,115 @@ from Ka-Ping Yee in the :index:`Software Carpentry` "Track" design competition. -**Installation and Setup** +.. container:: card + + **Installation and Setup** -- Start using the software in `instant-gratification (demo) mode`_ with - ``python demo.py`` or `a Docker container`_ in under 5 minutes. -- Choose from `five included templates`_ for your tracker. -- `Customize`_ and use the demo as a template for your production tracker. -- No need for additional support software, just Python (3.7+) - to get started. -- Basic installation (including a web interface) takes about 30 minutes. -- Supports embedded databases like `SQLite`_ and dbm. Upgradable - to databases like `MySQL`_ or `PostgreSQL`_ if needed. -- Can be run in a container like Docker or kubernetes. -- Deploy in your network as a standalone web server or `through - various methods`_ like WSGI, FastCGI, plain CGI, etc. -- Essential tracking features depend on the Python standard - library. Supplementary packages from PyPI are optional and can be - tailored to fit your unique threat model and security needs. + - Start using the software in `instant-gratification (demo) mode`_ with + ``python demo.py`` or `a Docker container`_ in under 5 minutes. + - Choose from `five included templates`_ for your tracker. + - `Customize`_ and use the demo as a template for your production tracker. + - No need for additional support software, just Python (3.7+) + to get started. + - Basic installation (including a web interface) takes about 30 minutes. + - Supports embedded databases like `SQLite`_ and dbm. Upgradable + to databases like `MySQL`_ or `PostgreSQL`_ if needed. + - Can be run in a container like Docker or kubernetes. + - Deploy in your network as a standalone web server or `through + various methods`_ like WSGI, FastCGI, plain CGI, etc. + - Essential tracking features depend on the Python standard + library. Supplementary packages from PyPI are optional and can be + tailored to fit your unique threat model and security needs. -**Issue Tracking and Management** +.. container:: card + + **Issue Tracking and Management** + + - Manage your issues your way. Handle bugs, features, milestones, + user feedback, fleet maintenance, office issues etc. + - Issues become a mini mailing list to keep everyone informed. + - Searches on specific properties (e.g. open issues with a high + priority) can be saved and reused or shared with other users. + - Full Text Search for quick searches across messages. + - Keeps a detailed history of issue changes. + - Email is a first class method for interacting with issues. -- Manage your issues your way. Handle bugs, features, milestones, - user feedback, fleet maintenance, office issues etc. -- Issues become a mini mailing list to keep everyone informed. -- Searches on specific properties (e.g. open issues with a high - priority) can be saved and reused or shared with other users. -- Full Text Search for quick searches across messages. -- Keeps a detailed history of issue changes. -- Email is a first class method for interacting with issues. +.. container:: card + + **Scalability and Performance** -**Scalability and Performance** + - Default trackers use simple HTML with low resource requirements. + - Fast and scalable with sqlite, mysql, and postgresql backends. + - Indexes are automatically configured. + - Supports full-text indexing engines (xapian, whoosh, SQLite, + PostgreSQL) for large trackers. -- Default trackers use simple HTML with low resource requirements. -- Fast and scalable with sqlite, mysql, and postgresql backends. -- Indexes are automatically configured. -- Supports full-text indexing engines (xapian, whoosh, SQLite, - PostgreSQL) for large trackers. +.. container:: card + + **Customization** -**Customization** + - The database schema can be updated to `track additional data`_. + - The web interface can be redesigned to fit your workflow. + - Extensible web interface with various features like `wizards`_, + bug displays, etc. + - Add business rules using `auditors and reactors`_ for actions before + and after database changes. + - Comprehensive documentation for customization, installation, + maintenance, and user guidance. -- The database schema can be updated to `track additional data`_. -- The web interface can be redesigned to fit your workflow. -- Extensible web interface with various features like `wizards`_, - bug displays, etc. -- Add business rules using `auditors and reactors`_ for actions before - and after database changes. -- Comprehensive documentation for customization, installation, - maintenance, and user guidance. +.. container:: card + + **Data Security, Privacy and Authorization** -**Data Security, Privacy and Authorization** - -- Your data remains on your servers. -- You can choose if AI can access the data. -- Can use HTTPS for security over the web. -- Fine-grained authorization (`ABAC`_, `ReBAC`_, `RBAC`_) based on - user, resource, and external properties. + - Your data remains on your servers. + - You can choose if AI can access the data. + - Can use HTTPS for security over the web. + - Fine-grained authorization (`ABAC`_, `ReBAC`_, `RBAC`_) based on + user, resource, and external properties. .. _`ABAC`: https://en.wikipedia.org/wiki/Attribute-based_access_control .. _`ReBAC`: https://en.wikipedia.org/wiki/Relationship-based_access_control .. _`RBAC`: https://en.wikipedia.org/wiki/Role-based_access_control -**Documentation and User Management** +.. container:: card + + **Documentation and User Management** -- Users can sign up through the web interface or new user creation - can be limited to admin users. -- Can use an `external user database`_ (LDAP, password file) -- Self-serve password reset for users via email. + - Users can sign up through the web interface or new user creation + can be limited to admin users. + - Can use an `external user database`_ (LDAP, password file) + - Self-serve password reset for users via email. -**Email Integration and Automation** +.. container:: card + + **Email Integration and Automation** -- Update issues via email with new messages and the ability to - change properties of issues (e.g. close an issue). -- Secure email handling with features like TLS, APOP, IMAPS/OAUTH. -- Optional auto-registration for email users. -- Configurable nosy list for each issue controls email notifications. -- Proper handling of email attachments and content types. + - Update issues via email with new messages and the ability to + change properties of issues (e.g. close an issue). + - Secure email handling with features like TLS, APOP, IMAPS/OAUTH. + - Optional auto-registration for email users. + - Configurable nosy list for each issue controls email notifications. + - Proper handling of email attachments and content types. -**Command-Line and API Access** +.. container:: card + + **Command-Line and API Access** -- Manage database interactively from the command line. -- Automate modifications using standard shell scripting. -- Python programs can use the Roundup Python API to manage/automate issues. -- Sample scripts provided for various tasks. + - Manage database interactively from the command line. + - Automate modifications using standard shell scripting. + - Python programs can use the Roundup Python API to manage/automate issues. + - Sample scripts provided for various tasks. -**Remote Access Interfaces** +.. container:: card + + **Remote Access Interfaces** -- `RESTful API`_ accessible with basic HTTP authentication or optional JWT. -- `XMLRPC interface`_ for remote tracker access with basic - HTTP authentication. -- Configurable CORS support for third-party web pages. -- Ability to `generate and authenticate JSON Web Tokens (JWT) - <rest.html#changing-access-roles-with-json-web-tokens>`_. + - `RESTful API`_ accessible with basic HTTP authentication or optional JWT. + - `XMLRPC interface`_ for remote tracker access with basic + HTTP authentication. + - Configurable CORS support for third-party web pages. + - Ability to `generate and authenticate JSON Web Tokens (JWT) + <rest.html#changing-access-roles-with-json-web-tokens>`_. .. _`auditors and reactors`: reference.html#auditor-or-reactor .. _`customize`: customizing.html
--- a/website/www/_static/style.css Tue Mar 24 22:11:27 2026 -0400 +++ b/website/www/_static/style.css Wed Mar 25 11:37:03 2026 -0400 @@ -527,6 +527,12 @@ scroll-margin-block-start: 2em; } +/* Make feature blocks look like raised cards for some variety. */ +div.card { + box-shadow: rgba(6, 24, 44, 0.4) 0px 0px 0px 2px, rgba(6, 24, 44, 0.65) 0px 4px 6px -1px, rgba(255, 255, 255, 0.08) 0px 1px 0px inset; + padding: 1em; +} + /* website only */ /* assume desktop reader for local html files, also no contact page for local doc files */ @@ -604,3 +610,4 @@ white-space: nowrap; padding: 1pt 1em; } +
