1. Intro#
rivt is a markup language and framework for writing and publishing engineering documents with an emphasis on template sharing and reuse. Software for engineering documents is already widely available but there are barriers to sharing and modifying source files between programs and versions. The barriers include high software and update costs, and incompatibility between programs, upgrades and operating systems. The current situation requires repeated unproductive rewrites of similar engineering documents to accommodate different software programs. Sharing calculation details for new and developing technologies is also restricted by these barriers.
In addition, existing programs are generally not designed to produce collated reports. Engineering reports are typically assembled from a variety of modeling, calculations, standards and other published documents that need to be organized and compiled. rivt is designed to compile inputs from various sources into a single organized document.
The table below summarizes the rivt features that address these longstanding and frustrating limitations to efficient collaboration and publishing.
Table: Comparison of Program Features#
Program |
Open Src |
Compat.[1] |
Vers.[2] |
Text[3] |
All-OS |
Remote |
Local |
Reports |
---|---|---|---|---|---|---|---|---|
Matlab |
no |
no |
no |
no |
no |
no |
yes |
no |
Mathcad |
no |
no |
no |
no |
no |
no |
yes |
no |
Mathemat. |
no |
no |
no |
no |
no |
no |
yes |
no |
Online |
no |
no |
no |
no |
no |
yes |
no |
no |
Jupyter |
yes |
yes |
no |
no |
yes |
yes |
yes |
no |
rivt |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
[1] Forward, backward file compatiblilty
[2] Versioning for document files
[3] Readable text input files
Definitions#
A rivt file is a Python file that imports the rivtlib package.
A rivt doc (document) is a text, HTML or PDF output file.
A rivt report is a collated collection of rivt docs.
rivtlib is a Python library that generates rivt docs and reports.
The rivtlib source code is here
rivtzip is a portable, open source editing and publishing framework.
A rivt file is a Python file (.py) that imports the rivtlib api:
import rivtlib.api as rv
which exposes 6 API functions
rv.R(rS) - (Run) Run shell scripts
rv.I(rS) - (Insert) Insert text, images, tables and math equations
rv.V(rS) - (Values) Evaluate tables and equations
rv.T(rS) - (Tools) Execute Python functions
rv.X(rS) - (eXclude) Skip rivt-string processing
rv.W(rS) - (Write) Write formatted rivt documents
FAQ#
Questions#
1.0 - Which open source licenses apply to rivtzip? A1.0
2.0 - aslkfas fdasdf asdflk sdfljk asdflk jasdlf sadf asdflk sdflkj sdflkj saf A2.0
Answers#
rivtlib is distributed under the MIT license and can be installed through PyPI or rivtzip, which is downloaded as portable, Windows zip files. The rivtzip framework includes five open source projects:
VSCode and extensions - for editing and processing
Python and libraries - for analysis and formatting
Latex - for typesetting
Git, GitHub - for version control
QCAD - for diagramming
the answer to question 2.0
Terms#
doc#
the output file (document) after processing a rivt file
division#
open source markdown language for writing, organizing and sharing engineering documents
report#
open source markdown language for writing, organizing and sharing engineering documents asdfasf sdflkjsadf sd fsaedlfk fsadlf sa
section#
open source markdown language for writing, organizing and sharing engineering documents
open source editing and publishing framework for rivtlib Python library for processing
rivtpub#
project folder containing private files not uploaded when sharing templates
rivt#
open source markdown language for organizing, modifying and publishing engineering documents
rivtlib#
Python library for processing rivt files. It outputs formatted documents in a serveral different formats.
rivtzip#
an editing and publishing framework for rivt using additional open source programs. rivt works with both single file documents and extensive reports with hundreds of files.
namespace#
a name that provides a scope for functions, variables, etc. Namespaces are used to organize code into logical groups and to prevent name collisions that can occur especially when your code base includes multiple libraries. In Python, namespaces are defined by the individual modules.
GitHub#
version control
repo#
short for repository