FrankensteinVariorum / fv-web

new web front-end for the Frankenstein Variorum project, working with Astro & React
https://frankensteinvariorum.org/
GNU Affero General Public License v3.0
2 stars 0 forks source link

Markdown for simple site diagrams #18

Open ebeshero opened 1 month ago

ebeshero commented 1 month ago

I made the diagrams for the site using mermaid.io in simple markdown to generate SVG.

versionHistory.svg

Diagram of relationships among the versions of Frankenstein in the Variorum.

flowchart TD
    A[\MS Notebook/] --- B[\fragmentary alt. passages/] 
    style A fill:#827fe2, 
    A --> C([1818 first publication])
    style C fill:#fab37e
    C --> D[\Marginalia in the “Thomas copy”/]
    style D fill:#e378be
     D -..-x F
    linkStyle 3 stroke:#e378be,stroke-width:1px,color:black;

    C --> E([Godwin's 1823 publication])
    style E fill:#6ebdc0
     C -..-> F([1831 edition])
    E -..-> F
    style F fill:#d7536a
ebeshero commented 1 month ago

editionLineage.svg

Print and Digital Editions of Frankenstein leading to the Frankenstein Variorum

flowchart TD
    A((<b>1970s</b>))---B([ <b>1974: James Reiger's edition</b>: 
    First edition of the 1818 text in 141 years. 
    Collates the Thomas copy variants inline, represents 1831 variants in endnotes.]) --...--> C([<b>1990s</b>])
    C --- D([<b>1996: Charles Robinson’s <i>Frankenstein Notebooks</i></b>:
    facsimile printing of the MS notebooks of 1816-1817])
    C --- E{{<b>mid-1990s: Pennsylvania Electronic Edition</b>
   eds. Stuart Curran and Jack Lynch
   side-by-side collation of 1818 and 1831}}
    C --- F([<b>1996: Nora Crook's edition of 1818</b>
    with Thomas copy, 1823, and 1831 variants in endnotes,
    in Pickering & Chatto series of MWS's works])
   style B fill:#d9ead3
   style D fill:#d9ead3
   style E fill:#fed966
   style F fill:#d9ead3
   D --> G((<b>2000s</b>))
   E --> G 
   F --> G
   G --- H{{<b>2007: <i>Romantic Circles</i>: separate editions of 1818 and 1831</b> 
   TEI conversions from Pennsylvania Electronic Edition}}
   style H fill:#fed966
   H --> I((<b>2010s</b>))
   D ---> J
   I --- J{{<b>2013: Shelley-Godwin Archive</b>: 
   diplomatic/documentary digital edition}}
   style J fill:#fed966
   J --> K((<b>2020s</b>))
   E --> L
   K --- L{{<b>2024: Frankenstein Variorum</b>
   collates MS, 1818, Thomas, 1832, and 1831}}
   style L fill:#fed966

subgraph legend [Legend]
   Y([print edition])
   Z{{digital edition}}
   style Y fill:#d9ead3
   style Z fill:#fed966
end
ebeshero commented 3 weeks ago

Technologies used in the project

flowchart TD
A([Source texts preparation]):::titleNode---B[[<b>Perl regular expressions, oXygen XML Editor</b><br/> for converting old HTML without end-tags to XML <br/> for marking collation chunk boundaries in source files]]:::tech
A---C[[<b>XSLT</b><br/> for resequencing margin notes <br/> for organizing text files into 'chunks' for collation <br/> For 'flattening' the markup for collation.]]:::tech

D([Collation of five versions of Frankenstein]):::titleNode---E[[<b>Python</b> <br/> for preparing the tokenizing and normalizing algorithm + instructing CollateX]]:::tech
E---F[[<b>CollateX</b> <br/> Python-based library for locating alignments and divergences in pairwise comparison of text strings<br/> Output XML format of a single file holding information about all five source texts and where they align and diverge from each other.]]:::tech

G([Prepare the Spine and 5 edition files from collation output]):::titleNode---H[[<b>XSLT postCollation pipeline</b><br/> Series of XSLTs: transforms collation XML output into Spine file + 5 edition files]]:::tech
G---I[[<b>Python</b> for Levenshtein edit distance calculations<br/> find the maximum value of all pairwise comparisons at each variant location]]:::tech
I---J[[<b>XSLT</b> Pull data from the Python edit-distance output<br/> Apply to spine file and to create hotspots in the edition files]]:::tech
I---L[[<b>XSLT</b> to prepare the Interactive Variorum Heatmap in SVG]]:::tech
H---K[[<b>XSLT</b> for preparing the data for the interface<br/> Split into letter/chapter-size unit files<br/><b>Transform the spine from XML to JSON</b>]]:::tech
J---K

M([Prepare the Interface]):::titleNode---N[[<b>React + Astro JavaScript</b></br> Pull the XML data into JSON structures for web interface delivery]]:::tech
Y([Sharing project workflow and data]):::titleNode---Z[[<b>git/GitHub</b>, Slack, meetings]]:::collab

A===>D
D===>G
G===>M
A===>Y
D===>Y
G===>Y
M===>Y

classDef titleNode font-size:5rem
classDef tech fill:#d9ead3,font-size:3rem
classDef collab fill:#fed966,font-size:3rem