1. Intro#
rivt is a markup language for writing and publishing engineering documents, with an emphasis on file sharing and collated reports.
Engineering documents typically include text, tables, diagrams, equations and calculations. Even though software exists for this use, there are implementation issues that reduce their usefulness.
These include high initial and update costs combined with incompatibilities between programs, program updates and operating systems. Given these constraints, a typical document source will generally have limited distribution. Also, sharing details and insights around new and developing technologies is restricted because of the program acqusition and rewrite costs. Finally, existing programs are not designed to easily produce organized reports.
Engineering reports are typically assembled from a variety of model outputs, calculations, and design codes. rivt is designed to integrate many output types and automate report assembly. The table below compares rivt features with other programs.
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 |
Cloud Prg. |
no |
no |
no |
no |
yes |
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] Extensive versioning for document files
[3] Readable and editable text input files
Definitions#
A rivt file is a text 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.W(rS) - (Write) Write formatted rivt documents
rv.X(rS) - (eXclude) Skip rivt-string processing (interactive editing)
rv.Q() - (Quit) Stop file processing (interactive editing)
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#
A rivt file is a text file (.py) that imports the rivtlib package.
A rivt doc (document) is a text, HTML or PDF file output of a rivt file.
A rivt report is a collated collection of rivt docs.
rivtlib is a Python library that generates rivt docs and reports from a rivt file.
rivtedit is a an open source editing and publishing framework built around VScode.
rivtzip is a portable, single folder version of rivtedit.
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