fix fix fix search / css /nocontent

main
zvevqx 8 months ago
parent c279d03028
commit 75930735ff
  1. BIN
      __pycache__/app.cpython-313.pyc
  2. 16
      app.py
  3. 15
      pages/028_IER.md
  4. 10
      pages/030_ESC.md
  5. 11
      pages/034_GWG.md
  6. 11
      pages/037_PAD.md
  7. 12
      pages/038_VNM.md
  8. 14
      pages/042_VHB.md
  9. 11
      pages/045_EDC.md
  10. 14
      pages/test.md
  11. 69
      static/main.bak2
  12. 7
      static/main.js
  13. 74
      static/style.css
  14. 7
      templates/index.html

Binary file not shown.

@ -78,20 +78,20 @@ def info():
def serve_pages(path): def serve_pages(path):
return send_from_directory('pages', path) return send_from_directory('pages', path)
@app.route('/search', methods=['POST']) @app.route('/search', methods=['POST'])
def search(): def search():
query = request.form['query'] query = request.form['query']
print(query) print(query)
# articles = (p for p in pages if 'published' in p.meta and query.lower() in metastr= lambda m : [item.lower() for item in list(p.meta.values())])
articles = (p for p in pages if 'published' in p.meta and any(isinstance(value,str) and query.lower() in value.lower() for value in p.meta.values())) articles = list(p for p in pages if 'published' in p.meta and
imgDict ={} any(isinstance(value, str) and query.lower() in value.lower()
for value in p.meta.values()))
imgDict = {}
for a in articles: for a in articles:
g_path, imgs = imagelist(a.path) g_path, imgs = imagelist(a.path)
imgDict[a.path]=imgs imgDict[a.path] = imgs
return render_template('index.html', articles=articles ,imgDict=imgDict)
return render_template('index.html', articles=articles, imgDict=imgDict)

@ -0,0 +1,15 @@
upper: IER
title : Ilot d'Eau Le Retour
published: 2017-01-01
location: Forest, Brussels-Capital Region, Belgium
type: research, workshop, co-design, installation
fund: Innoviris Co-Create
network: Arkipel, Bruxelles Environnement, Casablanco, Celine de Vos, Forest Municipality, Ecotechnic, Etats Généraux de l’Eau à Bruxelles (EGEB), Faculté d'Architecture La Cambre Horta (Université Libre de Bruxelles), HYDR Lab (Vrije Universiteit Brussels), Jardin Essentiel, Jette Municipality, Le Début des Haricots, Maison de Quartier Saint-Antoine, Niccolò Masini, Potager de l’Imprimerie, Quartier Wiels Wijk, Verte Berthelot
desc:
author: Andrea Aragone, Davide Cauciello, Simone Conz, Romina Cornejo Escudero, Bruno Dias Ventura, Marta Finotello, Alessandra Marcon, Octavio Piñeiro Aramburu, Ana Moura Bastos, Marco Ranzato
...

@ -1,13 +1,13 @@
upper: ESC
title : Every Space Counts title : Every Space Counts
author: Andrea Aragone, Lina Bentaleb, Davide Cauciello, Marta De Marchi, Octavio Piñeiro Aramburu, Marco Ranzato
published: 2018-01-01 published: 2018-01-01
location: BOZAR Centre for fine arts location: BOZAR Centre for fine arts
type: exhibition type: exhibition
fund: . fund:
upper: ESC
network: Architecture Workroom Brussels, Bureau Bas Smets, JNC International, Taktyk network: Architecture Workroom Brussels, Bureau Bas Smets, JNC International, Taktyk
cat: miaou cat:
desc: ws desc:
author: Andrea Aragone, Lina Bentaleb, Davide Cauciello, Marta De Marchi, Octavio Piñeiro Aramburu, Marco Ranzato
... ...

@ -1,12 +1,15 @@
upper: GWG
title : Green With Grey | Groen Met Grijs title : Green With Grey | Groen Met Grijs
author: Andrea Aragone, Federico Broggini, Davide Cauciello, Alexander Colson, Bruno Dias Ventura, Federico Gobbato Liva, Ciel Grommen, Marco Ranzato, Octavio Piñeiro Aramburu; (Alessandra Marcon for Asiat Depave workshop)
published: 2019-01-01 published: 2019-01-01
location: Flanders, Belgium location: Flanders, Belgium
type: research, workshop type: research, workshop
upper: GWG fund: Department Omgeving, Vlaamse Overheid
network: Aquafin, Architecture Workroom Brussels, Asiat Site, Cargovil vzw, David Giacomelli, Departement Omgeving, Katholische Universität Leuven, Loop Studio, Onkruid, Plant en Houtgoed, POM Vlaams-Brabant, Université Catholique de Louvain, Vilvoorde Municipality, VLAIO, VLM, VMM, 51N4E, 1010au network: Aquafin, Architecture Workroom Brussels, Asiat Site, Cargovil vzw, David Giacomelli, Departement Omgeving, Katholische Universität Leuven, Loop Studio, Onkruid, Plant en Houtgoed, POM Vlaams-Brabant, Université Catholique de Louvain, Vilvoorde Municipality, VLAIO, VLM, VMM, 51N4E, 1010au
cat: miaou cat:
desc: ws desc:
author: Andrea Aragone, Federico Broggini, Davide Cauciello, Alexander Colson, Bruno Dias Ventura, Federico Gobbato Liva, Ciel Grommen, Marco Ranzato, Octavio Piñeiro Aramburu; (Alessandra Marcon for Asiat Depave workshop)
... ...

@ -1,18 +1,17 @@
upper: PAD
title : PAD Bordet title : PAD Bordet
author: Andrea Aragone, Davide Cauciello, Federico Gobbato Liva, Alessandra Marcon, Octavio Piñeiro Aramburu, Marco Ranzato, Riccardo Ruggeri
published: 2019-01-01 published: 2019-01-01
location: City of Brussels and Evere, Brussels-Capital Region, Belgium location: City of Brussels and Evere, Brussels-Capital Region, Belgium
type: urbanism type: urbanism
upper: PAD fund: Perspective.brussels
network: Anyways, Aries, Idea Consult, Karbon architecture urbanisme, Urban Species network: Anyways, Aries, Idea Consult, Karbon architecture urbanisme, Urban Species
cat: miaou cat:
desc: ws desc:
author: Andrea Aragone, Davide Cauciello, Federico Gobbato Liva, Alessandra Marcon, Octavio Piñeiro Aramburu, Marco Ranzato, Riccardo Ruggeri
... ...
Project type: Masterplan Project type: Masterplan
Location: Brussels, Belgium Location: Brussels, Belgium
Project time: 2020-ongoing Project time: 2020-ongoing

@ -1,16 +1,16 @@
upper: VMN
title : Place Van Meenen title : Place Van Meenen
author: Andrea Aragone, Alessandra Marcon, Octavio Piñeiro Aramburu, Fabio Vanin
published: 2019-01-01 published: 2019-01-01
location: Saint-Gilles, Brussels-Capital Region, Belgium location: Saint-Gilles, Brussels-Capital Region, Belgium
type: feasibility study, co-design, installation type: feasibility study, co-design, installation
upper: VMN fund: Department Omgeving, Vlaamse Overheid
network: Anyways, Collectif Dallas, Loop Studio network: Anyways, Collectif Dallas, Loop Studio
cat: miaou cat:
desc: ws desc:
author: Andrea Aragone, Alessandra Marcon, Octavio Piñeiro Aramburu, Fabio Vanin
...
...
Project type: Project type:

@ -0,0 +1,14 @@
upper: VHB
title : Ville Haute Basse
published: 2021-01-01
location: City of Brussels, Brussels-Capital Region, Belgium
type: competition
fund: City of Brussels
network: a practice
desc:
author: Federico Broggini, Marco Ranzato, Andrea Bortolotti, Andrea Aragone, Alessandra Marcon, Federico Gobbato Liva
...

@ -1,18 +1,17 @@
upper: EDC
title : Eau de Couture title : Eau de Couture
author: Andrea Aragone, Federico Broggini, Ana Dresler, Octavio Piñeiro Aramburu, Fabio Vanin
published: 2021-01-01 published: 2021-01-01
location: City of Brussels, Brussels-Capital Region, Belgium location: City of Brussels, Brussels-Capital Region, Belgium
type: installation type: installation
upper: EDC fund: City of Brussels
network: Collectif Dallas, Bruno Dias Ventura, Habitat & Rénovation, Loop Studio network: Collectif Dallas, Bruno Dias Ventura, Habitat & Rénovation, Loop Studio
cat: miaou cat:
desc: ws desc:
author: Andrea Aragone, Federico Broggini, Ana Dresler, Octavio Piñeiro Aramburu, Fabio Vanin
... ...
Project Type: Action project Project Type: Action project
Location: Marolles neighbourhood, Bruxelles, Belgium Location: Marolles neighbourhood, Bruxelles, Belgium

@ -1,13 +1,15 @@
title : Mayen Reverier
author: zvevqx
upper: MNR upper: MNR
title : Mayen Reverier - test
published: 2021-11-22 published: 2021-11-22
location: Reverier, Italy location: Reverier, Italy
type: Architecture type: Architecture
fund: fund: world
network: network: Anyways, Collectif Dallas, Loop Studio
cat: miaou cat:
desc: ws desc:
author: zvevqx
... ...

@ -0,0 +1,69 @@
$(document).ready(function() {
// Sorting state management
const sortState = {};
// Function to sort articles
function sortArticles(columnClass) {
const $list = $('.alist');
const $listItems = $list.children('li');
// Determine sort direction
if (!sortState[columnClass]) {
sortState[columnClass] = 'asc';
} else {
sortState[columnClass] = (sortState[columnClass] === 'asc') ? 'desc' : 'asc';
}
// Sort the list items based on the text of the specified column
$listItems.sort(function(a, b) {
const aText = $(a).find('.' + columnClass).text().trim().toLowerCase();
const bText = $(b).find('.' + columnClass).text().trim().toLowerCase();
// Special handling for period (numeric sorting)
if (columnClass === 'period') {
const aNum = parseInt(aText);
const bNum = parseInt(bText);
return sortState[columnClass] === 'asc'
? aNum - bNum
: bNum - aNum;
}
// Default alphabetical sorting
return sortState[columnClass] === 'asc'
? aText.localeCompare(bText)
: bText.localeCompare(aText);
});
// Detach and reappend sorted items to maintain DOM structure
$list.empty().append($listItems);
// Update sort direction indicators
$('.legend li').removeClass('sort-asc sort-desc');
$(`.legend li[data-sort="${columnClass}"]`).addClass(
sortState[columnClass] === 'asc' ? 'sort-asc' : 'sort-desc'
);
}
// Add click event to legend spans for sorting
$('.legend li').on('click', function() {
const columnClass = $(this).attr("data-sort");
// If the column exists in the article items, sort by that column
if ($('.alist li').first().find('.' + columnClass).length > 0) {
sortArticles(columnClass);
}
});
// Toggle content visibility
$(".alist").on('click', 'li', function(e) {
// Prevent sorting when clicking on content
if (!$(e.target).closest('.legend').length) {
const $contentWrapper = $(this).find('.content-wrapper');
// Ensure content-wrapper is not inside a link or legend
if (!$(e.target).closest('a, .legend').length) {
$contentWrapper.toggleClass("open");
}
}
});
});

@ -58,10 +58,9 @@ $(document).ready(function() {
$(".alist").on('click', 'li', function(e) { $(".alist").on('click', 'li', function(e) {
// Prevent sorting when clicking on content // Prevent sorting when clicking on content
if (!$(e.target).closest('.legend').length) { if (!$(e.target).closest('.legend').length) {
const $contentWrapper = $(this).find('.content-wrapper'); // Check if click is outside content-wrapper and not on its child elements
if (!$(e.target).closest('.content-wrapper').length) {
// Ensure content-wrapper is not inside a link or legend const $contentWrapper = $(this).find('.content-wrapper');
if (!$(e.target).closest('a, .legend').length) {
$contentWrapper.toggleClass("open"); $contentWrapper.toggleClass("open");
} }
} }

@ -175,6 +175,16 @@ a:hover{
#articles ul li.noContent *{ #articles ul li.noContent *{
color:#aaa color:#aaa
} }
#articles ul li.noContent .content-wrapper.open{
color:#aaa;
display: none;
}
#articles ul.alist li.noContent:hover { #articles ul.alist li.noContent:hover {
color:#aaa; color:#aaa;
background: #fff; background: #fff;
@ -226,28 +236,6 @@ a:hover{
display: none; display: none;
} }
/* #articles ul li a span{
max-height: 1em;
line-height: 1em;
overflow: hidden;
position:relative;
word-wrap: break-word;
}
#articles ul li a span:after {
content: "...";
position: absolute;
right:0;
bottom: 0px;
}
*/
#articles ul.alist li .content-wrapper{ #articles ul.alist li .content-wrapper{
height:0; height:0;
max-height: 0; max-height: 0;
@ -274,13 +262,20 @@ a:hover{
margin:auto ; margin:auto ;
font-size:1em!important; font-size:1em!important;
background:#fff; background:#fff;
display: grid;
grid-template-columns: 1fr 1fr ;
} }
.content-wrapper .content {
padding:10px;
}
#content-wrapper p{ #content-wrapper p{
text-align:left; text-align:left;
margin-left:10px margin-left:10px;
} }
#content-wrapper pre{ #content-wrapper pre{
// font-size:2em; // font-size:2em;
@ -373,30 +368,35 @@ p{
margin-top:1.5em; margin-top:1.5em;
margin-bottom:1.5em; margin-bottom:1.5em;
text-align:justify; text-align:justify;
// font-size:2em; font-size:1.3em;
} }
#gal { .gal {
display : grid ; display : grid ;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr ; grid-template-columns: 1fr 1fr 1fr 1fr 1fr ;
column-gap: 10px; column-gap: 10px;
row-gap: 10px; row-gap: 10px;
} }
.img_container { .img_container {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
height: auto; //display: grid;
display: grid; //align-content: center;
align-content: center; //align-items: center;
align-items: center; //justify-items: center;
justify-items: center; //justify-content: center;
justify-content: center; //align-items: center;
align-items: center; //align-content: space-around;
align-content: space-around; }
.img_container:last-of-type {
grid-column: 1 / span 5
} }
.img_container img{ .img_container img{
width:100%; width:100%;
} }

@ -36,17 +36,18 @@
</a> </a>
<div class="content-wrapper"> <div class="content-wrapper">
{% if imgDict[article.path] %} {% if imgDict[article.path] %}
<div id="gal"> <div class="gal">
{% for img in imgDict[article.path] : %} {% for img in imgDict[article.path] : %}
<div class = "img_container"> <div class = "img_container">
{% set img_url = article.path + '/' + img %} {% set img_url = article.path + '/' + img %}
{{ img_url }}
<img src="pages/{{article.path}}/{{img}}"/> <img src="pages/{{article.path}}/{{img}}"/>
</div> </div>
{% endfor %} {% endfor %}
</div>{%endif%} </div>{%endif%}
{{article}} <div class="content">
{{article}}
</div>
</div> </div>
</li> </li>
{% endfor %} {% endfor %}

Loading…
Cancel
Save