Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Document Review</title> | |
<style> | |
body { | |
font-family: Arial, sans-serif; | |
display: flex; | |
justify-content: center; /* This will center the .reviews container on the screen */ | |
align-items: flex-start; | |
height: 100vh; | |
margin: 2px; /* Remove default margin */ | |
} | |
.highlight { background-color: yellow; | |
color: black ; /* Dark grey for muted text */ | |
cursor: pointer;} | |
.not-hover-highlight { background-color: lightyellow; | |
color: #606060 ; /* Dark grey for muted text */} | |
.summary { | |
width: 50%; | |
font-size: 1.0rem; | |
padding: 10px; | |
height: 100vh; /* Maximum height to a third of the viewport height */ | |
background-color: #9e9e9e0a; | |
} | |
.reviews { | |
width: 50%; | |
font-size: 0.7rem; | |
display: flex; | |
flex-wrap: wrap; | |
padding: 10px; | |
max-height: 100vh; /* Maximum height to a third of the viewport height */ | |
overflow-y: auto; /* Enable vertical scrolling */ | |
background-color: #9e9e9e0a; /* Light grey background */ | |
} | |
.text-box { | |
width: calc(100% - 20px); /* Adjust based on padding */ | |
margin: 10px; | |
padding: 10px; | |
background-color: #9e9e9e0a; /* Light grey background */ | |
color: #606060bf; | |
border: 2px solid #ddd; /* Cartoonish border */ | |
border-radius: 20px; /* Rounded corners for cartoonish effect */ | |
position: relative; | |
box-shadow: 3px 3px #bbb; /* Soft shadow for depth */ | |
} | |
.text-box:before { | |
content: ''; | |
position: absolute; | |
right: 100%; | |
bottom: 20%; | |
border-top: 10px solid transparent; | |
border-bottom: 10px solid transparent; | |
border-right: 10px solid #ddd; /* Arrow matching the border */ | |
} | |
.summary-box { | |
padding: 10px; | |
margin: 10px 0; | |
background-color: #e6e6fa; /* Lavender background for a pleasant look */ | |
border: 1px solid #ddd; /* Light border for definition */ | |
border-radius: 5px; /* Slightly rounded corners */ | |
box-shadow: 2px 2px 5px rgba(0,0,0,0.1); /* Soft shadow for depth */ | |
cursor: pointer; | |
} | |
h4 { margin-top: 0; } | |
</style> | |
</head> | |
<body> | |
<div class='column reviews'><h2>Reviews</h2><div class='text-box'>The best part of this hotel is the staff. We were greeted by the ubiquitous doorman and all staff every time we entered the hotel. We felt as if we were the most important guests in the hotel and the staff were constantly concerned about our needs. The breakfast was a lavish buffet and again the wait staff was outstanding This is a beautiful <span class='review-span highlight' data-aligned-summaries='1'>hotel in the old part of Montreal and close to good restaurants, art galleries, and shopping</span>. The room was luxurious, beautifully appointed, comfortable and spotless. <span class='review-span highlight' data-aligned-summaries='1'>It is just around the corner from a major theater and the cathedral and the river. It is short cab ride to the cultural center where they have the symphony, ballet and etc. The metro station is about a 10 minute walk.</span></div><div class='text-box'>We stayed at the Saint Sulpice in early October. The <span class='review-span highlight' data-aligned-summaries='1'>hotel has a perfect location</span> right in the heart of the Old Quarter. Lots of restaurants and attractions in the surrounding area. The hotel staff is excellent, the rooms are beautiful with great bathrooms. Restaurant us good quality and group members enjoyed meals there. Concierge and front desk <span class='review-span highlight' data-aligned-summaries='1'>staff was</span> warm and <span class='review-span highlight' data-aligned-summaries='1'>helpful</span>. The doorman are always there to help and offer a smile. <span class='review-span highlight' data-aligned-summaries='0'>Stop reading</span> these <span class='review-span highlight' data-aligned-summaries='0'>reviews and book it!</span> There is nothing not to like with the Saint Sulpice. We travel and book hotels all over the world, this one is a keeper!</div><div class='text-box'>I rely heavily on reviews for visiting all over the world. This hotel was <span class='review-span highlight' data-aligned-summaries='0'>hands down one of the nicest and most beautiful places</span>. It was a extremely spacious room, with a queen bed, couch, fire place, large fridge, stove and sink and a window that opened toward the street and a good size bathroom. <span class='review-span highlight' data-aligned-summaries='1'>Everyone that worked there was very helpful</span> and nice and we felt very welcomed. <span class='review-span highlight' data-aligned-summaries='1'>The location is perfect and very central</span> to a grocery store, liquor store, restaurants, etc. <span class='review-span highlight' data-aligned-summaries='0'>I would highly recommend this Hotel</span> and really enjoyed our stay because of it.</div><div class='text-box'><span class='review-span highlight' data-aligned-summaries='0'>Cozy, comfortable, elegant and reasonably priced</span> the <span class='review-span highlight' data-aligned-summaries='1'>Saint-Sulpice is in the heart of old Montreal between just behind the cathedral</span>. It is quiet, <span class='review-span highlight' data-aligned-summaries='1'>friendly and pet friendly</span>. Although we were in Montreal on the shortest days of the year our first floor room next to a courtyard garden was sunny and welcoming. <span class='review-span highlight' data-aligned-summaries='0'>One of our favorite hotels anywhere</span>.</div><div class='text-box'>Vacation with 3 sisters and Mom for Mother's Day. The only place I could find where the suite could accomodate 4 of us nicely. Clean, bright, and comfortable plus and it <span class='review-span highlight' data-aligned-summaries='1'>is right in the Old City</span> (which was good for my mother). There outdoor dining area was great for lunch! Good staff, too.</div><div class='text-box'><span class='review-span highlight' data-aligned-summaries='0 1'>Great service</span>, beautiful stylish contemporary decor! And even a Tassimo espresso maker in every room. L'Occitane bath products were amazing! Plus free Wi-Fi ! <span class='review-span highlight' data-aligned-summaries='1'>Central as it is located right next to Notre Dame Cathedral</span>! <span class='review-span highlight' data-aligned-summaries='0'>Would definitely recommend this hotel</span> to the most finicky of people!</div><div class='text-box'>I love montreal, <span class='review-span highlight' data-aligned-summaries='0'>this hotel</span> was available at a good value and <span class='review-span highlight' data-aligned-summaries='0'>came highly recommended</span>. <span class='review-span highlight' data-aligned-summaries='1'>Very pleased with the location</span> and hotel in general although slightly disappointed with saunda and fitness centre. <span class='review-span highlight' data-aligned-summaries='0'>I think there are better values out there</span>.</div><div class='text-box'><span class='review-span highlight' data-aligned-summaries='0'>Love this hotel</span>. <span class='review-span highlight' data-aligned-summaries='1'>Perfect location to explore old town</span>. <span class='review-span highlight' data-aligned-summaries='0'>Wouldn't even consider any other hotel in town</span>. Our third visit and certainly will return again. The comp. breakfasts alone would bring us back.</div></div><div class='column summary'><h4>Summary</h4><div class='summary-box'><span id="0" class="summary-sentence">The hotel is highly recommended.</span> <span id="1" class="summary-sentence">The location is great and the staff is very helpful.</span></div></div> | |
<script> | |
document.querySelectorAll('.summary-sentence').forEach(sentence => { | |
sentence.addEventListener('mouseenter', function() { | |
const summaryId = this.getAttribute('id'); | |
document.querySelectorAll('.review-span').forEach(span => { | |
if (!span.getAttribute('data-aligned-summaries').split(' ').includes(summaryId)) { | |
span.classList.remove('highlight'); | |
span.classList.add('not-hover-highlight'); | |
} | |
}); | |
this.classList.add('highlight'); | |
}); | |
sentence.addEventListener('mouseleave', function() { | |
const summaryId = this.getAttribute('id'); | |
document.querySelectorAll('.review-span').forEach(span => { | |
if (!span.getAttribute('data-aligned-summaries').split(' ').includes(summaryId)) { | |
span.classList.remove('not-hover-highlight'); | |
span.classList.add('highlight'); | |
} | |
this.classList.remove('highlight'); | |
}); | |
}); | |
}); | |
document.querySelectorAll('.review-span').forEach(span => { | |
span.addEventListener('mouseenter', function() { | |
document.querySelectorAll('.review-span').forEach(span => { | |
if (span !== this) { | |
span.classList.remove('highlight'); | |
span.classList.add('not-hover-highlight'); | |
} | |
}); | |
const AlignSummariesId = this.getAttribute('data-aligned-summaries').split(' '); | |
document.querySelectorAll('.summary-sentence').forEach(sentence => { | |
if (AlignSummariesId.includes(sentence.getAttribute('id'))) { | |
sentence.classList.add('highlight'); | |
} | |
}); | |
}); | |
}); | |
document.querySelectorAll('.review-span').forEach(span => { | |
span.addEventListener('mouseleave', function() { | |
const AlignSummariesId = this.getAttribute('data-aligned-summaries').split(' '); | |
document.querySelectorAll('.review-span').forEach(span => { | |
if (span !== this) { | |
span.classList.remove('not-hover-highlight'); | |
span.classList.add('highlight'); | |
} | |
}); | |
document.querySelectorAll('.summary-sentence').forEach(sentence => { | |
if (AlignSummariesId.includes(sentence.getAttribute('id'))) { | |
sentence.classList.remove('highlight'); | |
} | |
}); | |
}); | |
}); | |
</script> | |
</body> | |
</html> | |