| from .main import main as main_blueprint | from .main import main as main_blueprint | ||||
| app.register_blueprint(main_blueprint) | app.register_blueprint(main_blueprint) | ||||
| # blueprint for search parts of app (Section 1: Searching the archive) | |||||
| # blueprint for search parts of app | |||||
| from .search import search as search_blueprint | from .search import search as search_blueprint | ||||
| app.register_blueprint(search_blueprint) | app.register_blueprint(search_blueprint) | ||||
| # blueprint for interventions parts of app (Section 2: Search Interventions) | |||||
| # blueprint for interventions parts of app (Section 1: Archive Interventions) | |||||
| from .interventions import interventions as interventions_blueprint | from .interventions import interventions as interventions_blueprint | ||||
| app.register_blueprint(interventions_blueprint) | app.register_blueprint(interventions_blueprint) | ||||
| # blueprint for hidden parts of app (Section 3: Hidden in plain sight) | |||||
| # blueprint for hidden parts of app (Section 2: Hidden in plain sight) | |||||
| from .hidden import hidden as hidden_blueprint | from .hidden import hidden as hidden_blueprint | ||||
| app.register_blueprint(hidden_blueprint) | app.register_blueprint(hidden_blueprint) | ||||
| # blueprint for offrecord parts of app (Section 4: Off the record) | |||||
| from .offrecord import offrecord as offrecord_blueprint | |||||
| app.register_blueprint(offrecord_blueprint) | |||||
| # blueprint for conversations parts of app (Section 3: Archive Conversations) | |||||
| from .conversations import conversations as conversations_blueprint | |||||
| app.register_blueprint(conversations_blueprint) | |||||
| # blueprint for making parts of app (Section 5: Making of) | |||||
| # blueprint for making parts of app (Section 4: Making of) | |||||
| from .making import making as making_blueprint | from .making import making as making_blueprint | ||||
| app.register_blueprint(making_blueprint) | app.register_blueprint(making_blueprint) | ||||
| # @name: offrecord.py | |||||
| # @name: conversations.py | |||||
| # @creation_date: 2022-10-27 | # @creation_date: 2022-10-27 | ||||
| # @license: The MIT License <https://opensource.org/licenses/MIT> | # @license: The MIT License <https://opensource.org/licenses/MIT> | ||||
| # @author: Simon Bowie <ad7588@coventry.ac.uk> | # @author: Simon Bowie <ad7588@coventry.ac.uk> | ||||
| # @purpose: offrecord route for Section 4: Off the record | |||||
| # @purpose: conversations route for Section 3: Archive Conversations | |||||
| # @acknowledgements: | # @acknowledgements: | ||||
| from flask import Blueprint, render_template | from flask import Blueprint, render_template | ||||
| import markdown | import markdown | ||||
| offrecord = Blueprint('offrecord', __name__) | |||||
| conversations = Blueprint('conversations', __name__) | |||||
| # route for Martha Gowans page | # route for Martha Gowans page | ||||
| @offrecord.route('/offrecord/') | |||||
| @conversations.route('/conversations/') | |||||
| def index(): | def index(): | ||||
| with open('content/section_4/I-Martha-gowans.md', 'r') as f: | |||||
| with open('content/section_3/I-Martha-gowans.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| return render_template('offrecord.html', text=text) | |||||
| return render_template('conversations.html', text=text) |
| # @creation_date: 2022-10-27 | # @creation_date: 2022-10-27 | ||||
| # @license: The MIT License <https://opensource.org/licenses/MIT> | # @license: The MIT License <https://opensource.org/licenses/MIT> | ||||
| # @author: Simon Bowie <ad7588@coventry.ac.uk> | # @author: Simon Bowie <ad7588@coventry.ac.uk> | ||||
| # @purpose: hidden route for Section 3: Hidden in plain sight | |||||
| # @purpose: hidden route for Section 2: Hidden in plain sight | |||||
| # @acknowledgements: | # @acknowledgements: | ||||
| from flask import Blueprint, render_template | from flask import Blueprint, render_template | ||||
| # route for hidden page | # route for hidden page | ||||
| @hidden.route('/hidden/') | @hidden.route('/hidden/') | ||||
| def index(): | def index(): | ||||
| with open('content/section_3/intro-hidden.md', 'r') as f: | |||||
| with open('content/section_2/intro-hidden.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| return render_template('hidden.html', text=text) | return render_template('hidden.html', text=text) | ||||
| @hidden.route('/hidden/expanding/') | @hidden.route('/hidden/expanding/') | ||||
| def expanding(): | def expanding(): | ||||
| core = 'expanding' | core = 'expanding' | ||||
| with open('content/section_3/expanding.md', 'r') as f: | |||||
| with open('content/section_2/expanding.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| @hidden.route('/hidden/active/') | @hidden.route('/hidden/active/') | ||||
| def active(): | def active(): | ||||
| core = 'active' | core = 'active' | ||||
| with open('content/section_3/active.md', 'r') as f: | |||||
| with open('content/section_2/active.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| @hidden.route('/hidden/secret/') | @hidden.route('/hidden/secret/') | ||||
| def secret(): | def secret(): | ||||
| core = 'secret' | core = 'secret' | ||||
| with open('content/section_3/secret.md', 'r') as f: | |||||
| with open('content/section_2/secret.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| @hidden.route('/hidden/leaking/') | @hidden.route('/hidden/leaking/') | ||||
| def leaking(): | def leaking(): | ||||
| core = 'leaking' | core = 'leaking' | ||||
| with open('content/section_3/leaking.md', 'r') as f: | |||||
| with open('content/section_2/leaking.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| @hidden.route('/hidden/working/') | @hidden.route('/hidden/working/') | ||||
| def working(): | def working(): | ||||
| core = 'working' | core = 'working' | ||||
| with open('content/section_3/working.md', 'r') as f: | |||||
| with open('content/section_2/working.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| @hidden.route('/hidden/resourceful/') | @hidden.route('/hidden/resourceful/') | ||||
| def resourceful(): | def resourceful(): | ||||
| core = 'resourceful' | core = 'resourceful' | ||||
| with open('content/section_3/resourceful.md', 'r') as f: | |||||
| with open('content/section_2/resourceful.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| return render_template('text.html', text=text) | return render_template('text.html', text=text) | ||||
| # route for foreword page | |||||
| @main.route('/foreword/') | |||||
| # route for introduction page | |||||
| @main.route('/introduction/') | |||||
| def foreword(): | def foreword(): | ||||
| with open('content/foreword.md', 'r') as f: | |||||
| with open('content/introduction.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| return render_template('text.html', text=text) | return render_template('text.html', text=text) |
| # @creation_date: 2022-10-27 | # @creation_date: 2022-10-27 | ||||
| # @license: The MIT License <https://opensource.org/licenses/MIT> | # @license: The MIT License <https://opensource.org/licenses/MIT> | ||||
| # @author: Simon Bowie <ad7588@coventry.ac.uk> | # @author: Simon Bowie <ad7588@coventry.ac.uk> | ||||
| # @purpose: making route for Section 5: Making of | |||||
| # @purpose: making route for Section 4: Making of | |||||
| # @acknowledgements: | # @acknowledgements: | ||||
| from flask import Blueprint, render_template | from flask import Blueprint, render_template | ||||
| # route for interface design essay | # route for interface design essay | ||||
| @making.route('/making/interface/') | @making.route('/making/interface/') | ||||
| def interface(): | def interface(): | ||||
| with open('content/section_5/on-interface-design.md', 'r') as f: | |||||
| with open('content/section_4/on-interface-design.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| return render_template('making.html', text=text) | return render_template('making.html', text=text) | ||||
| # route for databases essay | # route for databases essay | ||||
| @making.route('/making/databases/') | |||||
| @making.route('/making/search-engine-book/') | |||||
| def databases(): | def databases(): | ||||
| with open('content/section_5/on-combining-databases-and-books.md', 'r') as f: | |||||
| with open('content/section_4/on-combining-databases-and-books.md', 'r') as f: | |||||
| text = f.read() | text = f.read() | ||||
| text = markdown.markdown(text) | text = markdown.markdown(text) | ||||
| return render_template('making.html', text=text) | return render_template('making.html', text=text) |
| background-color: var(--color-light-gray); | background-color: var(--color-light-gray); | ||||
| } | } | ||||
| /* OFF THE RECORD */ | |||||
| /* CONVERSATIONS */ | |||||
| .offtherecord { | |||||
| .conversations { | |||||
| margin: 0% 20%; | margin: 0% 20%; | ||||
| } | } | ||||
| .offtherecord h1 { | |||||
| .conversations h1 { | |||||
| text-align: center; | text-align: center; | ||||
| } | } | ||||
| .offtherecord p { | |||||
| .conversations p { | |||||
| margin: 2rem 0rem; | margin: 2rem 0rem; | ||||
| } | } | ||||
| .offtherecord img { | |||||
| .conversations img { | |||||
| width: 100%; | width: 100%; | ||||
| } | } | ||||
| .offtherecord h2, .offtherecord h3 { | |||||
| .conversations h2, .conversations h3 { | |||||
| margin: 2rem 0rem; | margin: 2rem 0rem; | ||||
| padding: 0rem 1rem; | padding: 0rem 1rem; | ||||
| } | } | ||||
| .offtherecord h2 { | |||||
| .conversations h2 { | |||||
| font-size: 2.25 rem; | font-size: 2.25 rem; | ||||
| background-color: var(--color-lightyellow); | background-color: var(--color-lightyellow); | ||||
| border-radius: 0.5rem; | border-radius: 0.5rem; | ||||
| } | } | ||||
| .offtherecord h3 { | |||||
| .conversations h3 { | |||||
| border-bottom: 0.25rem dashed var(--color-lightyellow); | border-bottom: 0.25rem dashed var(--color-lightyellow); | ||||
| } | } | ||||
| .offtherecord li { | |||||
| .conversations li { | |||||
| } | } | ||||
| <div class="offtherecord"> | |||||
| <div class="conversations"> | |||||
| <a href="/contents/" class="arrow-back h1 text-left" title="back to index"> ⇽ </a> | <a href="/contents/" class="arrow-back h1 text-left" title="back to index"> ⇽ </a> | ||||
| {% extends "base.html" %} | {% extends "base.html" %} |
| <div class="col text-center button-search button-hidden-off p-2 mb-5"> | <div class="col text-center button-search button-hidden-off p-2 mb-5"> | ||||
| <a href="">off the record</a> | |||||
| <a href="{{ url_for('conversations.index') }}">archive conversations</a> | |||||
| <div class="info" style="display: none;"> | <div class="info" style="display: none;"> | ||||
| <p class="code"> ↪ Some things are all over the patent archive but never made explicit. Off the record presents three artistic works that render these absent-present realities visible... </p> | |||||
| <p class="code"> ↪ Some things are all over the patent archive but never made explicit. Archive Conversations presents three artistic works that render these absent-present realities visible... </p> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> |
| <span class="code">↪ add intro text to frontmatter here...</span> | <span class="code">↪ add intro text to frontmatter here...</span> | ||||
| </span> | </span> | ||||
| - [Publisher: Mattering Press](/frontmatter/#publisher "links to frontmatter section publisher") | |||||
| - [Copyright](/frontmatter/#copyright "links to frontmatter section copyright") | |||||
| - [Citation](/frontmatter/#citation "links to frontmatter section citation") | |||||
| - [Acknowledgements](/frontmatter/#acknowledgements "links to frontmatter section acknowledgements") | |||||
| - [Funders](/frontmatter/#funders "links to frontmatter section funders") | |||||
| - [Partners](/frontmatter/#partners "links to frontmatter section partners") | |||||
| - [Contributors](/frontmatter/#contributors "links to frontmatter section contributors") | |||||
| ### [Foreword](/foreword) | |||||
| ### [Introduction](/introduction) | |||||
| <span class="info" style="display: none;"> | <span class="info" style="display: none;"> | ||||
| <span class="code">↪ add intro text to foreword here...</span> | <span class="code">↪ add intro text to foreword here...</span> | ||||
| </span> | </span> | ||||
| ### Section 1: Searching the archive | |||||
| <span class="info" style="display: none;"> | |||||
| <span class="code">↪ Main search via keywords...</span> | |||||
| </span> | |||||
| ### Section 2: Search Interventions | |||||
| ### Section 1: Archive Interventions | |||||
| <span class="info" style="display: none;"> | <span class="info" style="display: none;"> | ||||
| <span class="code">↪ Interventions are a mode of search, they disrupt ordering and invite unexpected readings....</span> | <span class="code">↪ Interventions are a mode of search, they disrupt ordering and invite unexpected readings....</span> | ||||
| </span> | </span> | ||||
| - [A search engine](/) | |||||
| - [A poetics of titles](/interventions/titles) | - [A poetics of titles](/interventions/titles) | ||||
| - [A handful of fragments](/interventions/fragments) | - [A handful of fragments](/interventions/fragments) | ||||
| - [A scattering of images](/interventions/scattering) | - [A scattering of images](/interventions/scattering) | ||||
| - [A random entry](/interventions/random) | - [A random entry](/interventions/random) | ||||
| - [A juxtaposition of two](/interventions/juxtaposition) | - [A juxtaposition of two](/interventions/juxtaposition) | ||||
| - [A timeline of inventions](interventions/#timeline "links to interventions section timeline of inventions) | |||||
| - [Mapping the archive](/data) | |||||
| ### Section 3: [Hidden in plain sight](/hidden) | |||||
| ### Section 2: [Hidden in plain sight](/hidden) | |||||
| <span class="info" style="display: none;"> | <span class="info" style="display: none;"> | ||||
| <span class="code">↪ Searching for a history of women’s clothing inventors, that is in the archive, but hidden in plain sight....</span> | <span class="code">↪ Searching for a history of women’s clothing inventors, that is in the archive, but hidden in plain sight....</span> | ||||
| </span> | </span> | ||||
| - [Working citizens](/hidden/working) | - [Working citizens](/hidden/working) | ||||
| - [Resourceful citizens](/hidden/resourceful) | - [Resourceful citizens](/hidden/resourceful) | ||||
| ### Section 4: [Off the record](/offrecord) | |||||
| ### Section 3: [Archive conversations](/conversations) | |||||
| <span class="info" style="display: none;"> | <span class="info" style="display: none;"> | ||||
| <span class="code">↪ Some things are all over the patent archive but never made explicit. Off the record presents three artistic works that render these absent-present realities visible...</span> | |||||
| <span class="code">↪ Some things are all over the patent archive but never made explicit. Off the record presents four artistic works that render these absent-present realities visible...</span> | |||||
| </span> | </span> | ||||
| - [I Martha Gowans](/offrecord "links to off the record section") | |||||
| - [Sewing labour](offrecord/#sewinglabour "links to off the record section sewing labour") | |||||
| - [Performing gender](offrecord/#performinggender "links to off the record section performing gender") | |||||
| - [Colonial traces](offrecord/#colonialtraces "links to off the record section colonial traces") | |||||
| - [Sewing the archive](/conversations/#sewingthearchive) | |||||
| - [I Martha Gowans](/conversations "links to conversations section") | |||||
| - [Caribbean Quilt](/conversations/#caribbeanquilt) | |||||
| - [Women On The Move](/conversations/#womenonthemove) | |||||
| ### Section 5: Making of | |||||
| ### Section 4: Making of | |||||
| <span class="info" style="display: none;"> | <span class="info" style="display: none;"> | ||||
| <span class="code">↪ A series of essays from the makers on the research, methods, tools developed...</span> | <span class="code">↪ A series of essays from the makers on the research, methods, tools developed...</span> | ||||
| </span> | </span> | ||||
| - [On making search-engine book](making/#search-engine-book "links to making-of section on making search-engine book") | |||||
| - [On interface design](/making/interface "links to making-of section on interface design") | |||||
| - [On combining databases and books](/making/databases "links to making-of section on combining databases and books") | |||||
| - [Making of - a collective interview](making/#interview "links to making-of section collective interview") | |||||
| - [Making of—a collective interview](/making/#interview "links to making-of section collective interview") | |||||
| - [On making the search-engine book](/making/search-engine-book "links to making-of section on making search-engine book") | |||||
| - [A note on interface design](/making/interface "links to making-of section on interface design") |
| # Foreword |
| # Introduction |