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 |