Commit 5c46a7a5 by 侯昆

相关词修改

1 parent 2cf1278f
......@@ -14,7 +14,7 @@
<body class="history">
<div class="container-fluid">
<div class="wrapper-ipad-app-h5">
<h1 class="text-center">一起进入历史上的2月16</h1>
<h1 class="text-center">一起进入历史上的2月14</h1>
<nav class="nav justify-content-center">
<a class="nav-link active" href="/history/all">全部</a>
<a class="nav-link" href="/history/event">事件</a>
......@@ -23,52 +23,60 @@
</nav>
<ul class="list-unstyled list-history">
<li>
<div class="time">1032</div>
<p>宋英宗赵曙出生。</p>
<div class="time">1869</div>
<p>英国物理学家查尔斯·威尔逊出生。</p>
</li>
<li>
<div class="time">1222</div>
<p>大日莲,日本佛教日莲宗创始人出生</p>
<div class="time">1876</div>
<p>亚历山大·贝尔获得电话的专利</p>
</li>
<li>
<div class="time">1304</div>
<p>元朝第八位皇帝元文宗图帖睦尔出生</p>
<div class="time">1879</div>
<p>大智利同玻利维亚、秘鲁两国爆发太平洋战争</p>
</li>
<li>
<div class="time">1352</div>
<p>郭子兴起义军攻克濠州</p>
<div class="time">1898</div>
<p>瑞士天文学家弗里兹·扎维奇出生</p>
</li>
<li>
<div class="time">1870</div>
<p>普法战争,法国失败</p>
<div class="time">1912</div>
<p>孙中山辞去临时大总统一职</p>
</li>
<li>
<div class="time">1910</div>
<p>孙中山、章太炎分道扬镳同盟会分裂</p>
<div class="time">1912</div>
<p>中国著名音乐家<a href=/home/search?keyword=聂耳>聂耳</a>出生</p>
</li>
<li>
<div class="time">1921</div>
<p><a href=/home/search?keyword=华国锋>华国锋</a>同志诞辰</p>
<div class="time">1924</div>
<p>国际商业机器有限公司(即IBM)成立</p>
</li>
<li>
<div class="time">1930</div>
<p>红军有了第一架飞机——“列宁”号</p>
<div class="time">1927</div>
<p>中国作家木心出生</p>
</li>
<li>
<div class="time">1935</div>
<p>红军取得长征以来第一次重大胜利</p>
<div class="time">1943</div>
<p>德国数学家希尔伯特逝世</p>
</li>
<li>
<div class="time">1938</div>
<p>京剧名家杨小楼病逝</p>
<div class="time">1946</div>
<p>世界上第一台电子计算机(ENIAC)在美国宾夕法尼亚大学诞生</p>
</li>
<li>
<div class="time">1959</div>
<p>菲德尔·卡斯特罗就任古巴总理</p>
<div class="time">1950</div>
<p>《中苏友好同盟互助条约》在莫斯科签订</p>
</li>
<li>
<div class="time">1976</div>
<p>英国北海油田的奥克钻油区正式运作。</p>
<div class="time">1952</div>
<p>第六届冬季奥运会在挪威奥斯陆开幕。</p>
</li>
<li>
<div class="time">1961</div>
<p>发现第一个合成制造的化学元素:铹。</p>
</li>
<li>
<div class="time">1972</div>
<p>中国与墨西哥建交。</p>
</li>
<li class="more">
<a href="/history/event">更多</a>
......
......@@ -23,41 +23,40 @@
</nav>
<ul class="list-unstyled list-history">
<li>
<div class="time">1352</div>
<p>郭子兴起义军攻克濠州</p>
<div class="time">1876</div>
<p>亚历山大·贝尔获得电话的专利</p>
</li>
<li>
<div class="time">1870</div>
<p>普法战争,法国失败</p>
<div class="time">1879</div>
<p>大智利同玻利维亚、秘鲁两国爆发太平洋战争</p>
</li>
<li>
<div class="time">1910</div>
<p>孙中山
章太炎分道扬镳同盟会分裂。</p>
<div class="time">1912</div>
<p>孙中山辞去临时大总统一职。</p>
</li>
<li>
<div class="time">1930</div>
<p>红军有了第一架飞机——“列宁”号</p>
<div class="time">1924</div>
<p>国际商业机器有限公司(即IBM)成立</p>
</li>
<li>
<div class="time">1935</div>
<p>红军取得长征以来第一次重大胜利</p>
<div class="time">1946</div>
<p>世界上第一台电子计算机(ENIAC)在美国宾夕法尼亚大学诞生</p>
</li>
<li>
<div class="time">1959</div>
<p>菲德尔·卡斯特罗就任古巴总理</p>
<div class="time">1950</div>
<p>《中苏友好同盟互助条约》在莫斯科签订</p>
</li>
<li>
<div class="time">1976</div>
<p>英国北海油田的奥克钻油区正式运作</p>
<div class="time">1952</div>
<p>第六届冬季奥运会在挪威奥斯陆开幕</p>
</li>
<li>
<div class="time">1985</div>
<p>以色列军队开始从黎巴嫩撤退</p>
<div class="time">1961</div>
<p>发现第一个合成制造的化学元素:铹</p>
</li>
<li>
<div class="time">2005</div>
<p>限制全球温室气体排放量的“京都议定书” 获得120多个国家确认正式生效</p>
<div class="time">1972</div>
<p>中国与墨西哥建交</p>
</li>
<li></li>
<li class="end">
......
......@@ -23,34 +23,25 @@
</nav>
<ul class="list-unstyled list-history">
<li>
<div class="time">1032</div>
<p>宋英宗赵曙出生。</p>
<div class="time">1869</div>
<p>英国物理学家查尔斯·威尔逊出生。</p>
</li>
<li>
<div class="time">1222</div>
<p>大日莲,日本佛教日莲宗创始人出生。</p>
<div class="time">1898</div>
<p>瑞士天文学家弗里兹·扎维奇出生。</p>
</li>
<li>
<div class="time">1304</div>
<p>元朝第八位皇帝元文宗图帖睦尔出生。</p>
<div class="time">1912</div>
<p>中国著名音乐家<a href=/home/search?keyword=聂耳>聂耳</a>出生。</p>
</li>
<li>
<div class="time">1921</div>
<p><a href="/home/search?keyword=华国锋">华国锋</a>同志诞辰</p>
<div class="time">1927</div>
<p>中国作家木心出生</p>
</li>
<li>
<div class="time">1938</div>
<p>京剧名家杨小楼病逝</p>
<div class="time">1943</div>
<p>德国数学家希尔伯特逝世</p>
</li>
<li>
<div class="time">1988</div>
<p>教育家、作家叶圣陶逝世。</p>
</li>
<li>
<div class="time">1997</div>
<p>著名实验物理学家吴健雄女士去世 。</p>
</li>
<li></li>
<li class="end">
<p>留存当下,回忆过去。</p>
</li>
......
......@@ -14,14 +14,18 @@ package com.dookay.cihai.pc.controller;
* *
****************************************/
import com.dookay.cihai.core.word.domain.RelationOneWayDomain;
import com.dookay.cihai.core.word.domain.WordDomain;
import com.dookay.cihai.core.word.dto.WordDTO;
import com.dookay.cihai.core.word.enums.WordType;
import com.dookay.cihai.core.word.query.RelationOneWayQuery;
import com.dookay.cihai.core.word.query.WordQuery;
import com.dookay.cihai.core.word.service.IRelationOneWayService;
import com.dookay.cihai.core.word.service.IWordRelationService;
import com.dookay.cihai.core.word.service.IWordService;
import com.dookay.cihai.pc.controller.vo.*;
import com.dookay.coral.common.core.exception.ServiceException;
import com.dookay.coral.common.core.utils.lang.CollectionUtils;
import com.dookay.coral.common.core.utils.lang.StringUtils;
import com.dookay.coral.common.web.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -32,6 +36,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
import java.util.stream.Collectors;
/**
* 词控制器
......@@ -99,8 +104,18 @@ public class WordController extends BaseController {
mv.addObject("hasBaike", hasBaike);
mv.addObject("vo", CharacterParaphVO.fromDomain(character));
mv.addObject("edition", EditionVO.fromDomain(character));
List<WordDomain> relateWords = wordRelationService.getRelateWords(character.getId());
mv.addObject("relateWords", relateWords);
// 相关词
RelationOneWayQuery q = new RelationOneWayQuery();
q.setWordId(id);
List<RelationOneWayDomain> relateList = relationOneWayService.getList(q);
if (CollectionUtils.isNotEmpty(relateList)) {
List<Long> relateIds = relateList.stream().map(RelationOneWayDomain::getRelateWordId).collect(Collectors.toList());
WordQuery wq = new WordQuery();
wq.setIds(relateIds);
List<WordDomain> relatedWords = wordService.getList(wq);
OneWayRelateVO oneway = OneWayRelateVO.fromDomain(character, relateList, relatedWords);
mv.addObject("oneway", oneway);
}
return mv;
}
......@@ -119,8 +134,18 @@ public class WordController extends BaseController {
mv.addObject("vo", CharacterBaikeVO.fromDomain(character));
mv.addObject("hasParaph", hasParaph);
mv.addObject("edition", EditionVO.fromDomain(character));
List<WordDomain> relateWords = wordRelationService.getRelateWords(character.getId());
mv.addObject("relateWords", relateWords);
// 相关词
RelationOneWayQuery q = new RelationOneWayQuery();
q.setWordId(id);
List<RelationOneWayDomain> relateList = relationOneWayService.getList(q);
if (CollectionUtils.isNotEmpty(relateList)) {
List<Long> relateIds = relateList.stream().map(RelationOneWayDomain::getRelateWordId).collect(Collectors.toList());
WordQuery wq = new WordQuery();
wq.setIds(relateIds);
List<WordDomain> relatedWords = wordService.getList(wq);
OneWayRelateVO oneway = OneWayRelateVO.fromDomain(character, relateList, relatedWords);
mv.addObject("oneway", oneway);
}
return mv;
}
......@@ -139,8 +164,18 @@ public class WordController extends BaseController {
mv.addObject("hasBaike", hasBaike);
mv.addObject("vo", StatementParaphVO.fromDomain(statement));
mv.addObject("edition", EditionVO.fromDomain(statement));
List<WordDomain> relateWords = wordRelationService.getRelateWords(statement.getId());
mv.addObject("relateWords", relateWords);
// 相关词
RelationOneWayQuery q = new RelationOneWayQuery();
q.setWordId(id);
List<RelationOneWayDomain> relateList = relationOneWayService.getList(q);
if (CollectionUtils.isNotEmpty(relateList)) {
List<Long> relateIds = relateList.stream().map(RelationOneWayDomain::getRelateWordId).collect(Collectors.toList());
WordQuery wq = new WordQuery();
wq.setIds(relateIds);
List<WordDomain> relatedWords = wordService.getList(wq);
OneWayRelateVO oneway = OneWayRelateVO.fromDomain(statement, relateList, relatedWords);
mv.addObject("oneway", oneway);
}
return mv;
}
......@@ -159,8 +194,18 @@ public class WordController extends BaseController {
mv.addObject("vo", StatementBaikeVO.fromDomain(statement));
mv.addObject("hasParaph", hasParaph);
mv.addObject("edition", EditionVO.fromDomain(statement));
List<WordDomain> relateWords = wordRelationService.getRelateWords(statement.getId());
mv.addObject("relateWords", relateWords);
// 相关词
RelationOneWayQuery q = new RelationOneWayQuery();
q.setWordId(id);
List<RelationOneWayDomain> relateList = relationOneWayService.getList(q);
if (CollectionUtils.isNotEmpty(relateList)) {
List<Long> relateIds = relateList.stream().map(RelationOneWayDomain::getRelateWordId).collect(Collectors.toList());
WordQuery wq = new WordQuery();
wq.setIds(relateIds);
List<WordDomain> relatedWords = wordService.getList(wq);
OneWayRelateVO oneway = OneWayRelateVO.fromDomain(statement, relateList, relatedWords);
mv.addObject("oneway", oneway);
}
return mv;
}
......
package com.dookay.cihai.pc.controller.vo;
/*****************************************
* *
* @dookay.com Internet make it happen *
* ----------- ----------------------- *
* dddd ddddd Internet make it happen *
* o o o Internet make it happen *
* k k k Internet make it happen *
* a a a Internet make it happen *
* yyyy yyyyy Internet make it happen *
* ----------- ----------------------- *
* @dookay.com Internet make it happen *
* *
****************************************/
import com.dookay.cihai.core.word.domain.RelationOneWayDomain;
import com.dookay.cihai.core.word.domain.WordDomain;
import com.dookay.coral.common.core.utils.lang.CollectionUtils;
import lombok.Data;
import org.apache.commons.lang3.tuple.MutableTriple;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 单向相关视图模型
*
* @author houkun
* @date 2018/1/24
*/
@Data
public class OneWayRelateVO {
private String word;
private List<MutableTriple<Integer, String, List<WordDomain>>> relationByGroup;
public static OneWayRelateVO fromDomain(WordDomain word, List<RelationOneWayDomain> relations, List<WordDomain> relatedWords) {
OneWayRelateVO vo = new OneWayRelateVO();
vo.setWord(word.getWord());
if (CollectionUtils.isNotEmpty(relatedWords) &&
CollectionUtils.isNotEmpty(relations)) {
Map<String, List<RelationOneWayDomain>> map = relations.stream().collect(Collectors.groupingBy(RelationOneWayDomain::getGroupName));
List<MutableTriple<Integer, String, List<WordDomain>>> relationByGroup = new ArrayList<>();
for (Map.Entry<String, List<RelationOneWayDomain>> entry : map.entrySet()) {
List<Long> relatedIds = entry.getValue().stream().map(RelationOneWayDomain::getRelateWordId).collect(Collectors.toList());
List<WordDomain> words = relatedWords.stream().filter(w -> relatedIds.contains(w.getId())).collect(Collectors.toList());
words.sort(Comparator.comparing(n->n.getCreateTime()));
MutableTriple<Integer, String, List<WordDomain>> triple = new MutableTriple<>();
triple.setLeft(entry.getValue().get(0).getGroupRank());
triple.setMiddle(entry.getKey());
triple.setRight(words);
relationByGroup.add(triple);
}
List<MutableTriple<Integer, String, List<WordDomain>>> sorted = relationByGroup.stream().sorted(Comparator.comparing(MutableTriple::getLeft)).collect(Collectors.toList());
vo.setRelationByGroup(sorted);
}
return vo;
}
}
......@@ -56,7 +56,7 @@
<div class="container-fluid search-main">
<form class="navbar-form clearfix j_search_form" action="/home/search" method="GET">
<div class="logo-search">
<img class="img-responsive" src="/static/images/logo-search.png">
<img class="img-responsive" src="/static/images/logo-search2.png">
</div>
<div class="search-main-input-wrapper">
<img class="search-main-input-img" src="/static/images/bg-dog.png" alt="">
......
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page import="com.dookay.cihai.pc.helper.HtmlHelper" %>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="relateWords" scope="request" type="java.util.List<com.dookay.cihai.core.word.domain.WordDomain>"/>
<jsp:useBean id="edition" scope="request" type="com.dookay.cihai.pc.controller.vo.EditionVO"/>
<jsp:useBean id="vo" scope="request" type="com.dookay.cihai.pc.controller.vo.CharacterBaikeVO"/>
......@@ -12,17 +10,18 @@
</jsp:include>
<div class="encyclopedia"
<div class="container">
<div class="encyclopedia"
<c:choose>
<c:when test="${vo.images.size() > 0}">
style="background-image:url(${vo.images.get(0).file})"
style=" background-image:url(${vo.images.get(0).file})"
</c:when>
<c:otherwise>
style="background-image:url(/static/images/word-bg-01.jpg)"
</c:otherwise>
</c:choose>
>
<div class="container">
>
<div class="encyclopedia-mask"></div>
<div class="content">
<div class="row">
<div class="col-xs-17">
......@@ -142,20 +141,47 @@
</div>
</div>
</div>
<c:if test="${relateWords.size()>0}">
<%--@elvariable id="oneway" type="com.dookay.cihai.pc.controller.vo.OneWayRelateVO"--%>
<c:choose>
<c:when test="${vo.word eq '象'}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">象</div>
<div class="recommend-cells">
<span class="recommend-cell">象鼻虫</span>
<span class="recommend-cell">象鼻山</span>
<span class="recommend-cell">象草</span>
<span class="recommend-cell">象龟</span>
<span class="recommend-cell">象山</span>
<span class="recommend-cell">象山港</span>
<span class="recommend-cell">象山先生集</span>
<span class="recommend-cell">象山学派</span>
<span class="recommend-cell">象舞</span>
<span class="recommend-cell">象戏</span>
</div>
</div>
</div>
</c:when>
<c:when test="${oneway != null}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<c:forEach items="${oneway.relationByGroup}" var="group">
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">${vo.word}</div>
<div class="recommend-section-title title-sm title-primary">${group.middle}</div>
<div class="recommend-cells">
<c:forEach items="${relateWords}" var="item">
<span class="recommend-cell">${item.word}</span>
<c:forEach items="${group.right}" var="item">
<a href="/word/${item.id}" style="color: #000;">
<span class="recommend-cell">${item.word}</span></a>
</c:forEach>
</div>
</div>
</c:forEach>
</div>
</c:if>
<div class="aside-tag text-primary">标签:语词</div>
</c:when>
</c:choose>
<div class="aside-tag text-primary">标签:百科</div>
</aside>
</div>
</div>
......
......@@ -3,7 +3,6 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="relateWords" scope="request" type="java.util.List<com.dookay.cihai.core.word.domain.WordDomain>"/>
<jsp:useBean id="edition" scope="request" type="com.dookay.cihai.pc.controller.vo.EditionVO"/>
<jsp:useBean id="vo" scope="request" type="com.dookay.cihai.pc.controller.vo.CharacterParaphVO"/>
<jsp:include page="/WEB-INF/jsp/include/header_search.jsp">
......@@ -215,19 +214,54 @@
</div>
</div>
</div>
<c:if test="${relateWords.size()>0}">
<%--@elvariable id="oneway" type="com.dookay.cihai.pc.controller.vo.OneWayRelateVO"--%>
<c:choose>
<c:when test="${vo.word eq '象'}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">${vo.word}</div>
<div class="recommend-section-title title-sm title-primary">开头</div>
<div class="recommend-cells">
<c:forEach items="${relateWords}" var="item">
<span class="recommend-cell">${item.word}</span>
<span class="recommend-cell">象车</span>
<span class="recommend-cell">象服</span>
<span class="recommend-cell">象齿焚身</span>
</div>
</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">中间</div>
<div class="recommend-cells">
<span class="recommend-cell">形象工程</span>
<span class="recommend-cell">形象代言人</span>
<span class="recommend-cell">形象大使</span>
</div>
</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">结尾</div>
<div class="recommend-cells">
<span class="recommend-cell">历象</span>
<span class="recommend-cell">蛇吞象</span>
<span class="recommend-cell">盲人摸象</span>
</div>
</div>
</div>
</c:when>
<c:when test="${oneway != null}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<c:forEach items="${oneway.relationByGroup}" var="group">
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">${group.middle}</div>
<div class="recommend-cells">
<c:forEach items="${group.right}" var="item">
<a href="/word/${item.id}" style="color: #000;">
<span class="recommend-cell">${item.word}</span></a>
</c:forEach>
</div>
</div>
</c:forEach>
</div>
</c:if>
</c:when>
</c:choose>
<div class="aside-tag text-primary">标签:语词</div>
</aside>
</div>
......
......@@ -3,7 +3,6 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="relateWords" scope="request" type="java.util.List<com.dookay.cihai.core.word.domain.WordDomain>"/>
<jsp:useBean id="edition" scope="request" type="com.dookay.cihai.pc.controller.vo.EditionVO"/>
<jsp:useBean id="vo" scope="request" type="com.dookay.cihai.pc.controller.vo.StatementParaphVO"/>
<jsp:include page="/WEB-INF/jsp/include/header_search.jsp">
......@@ -196,19 +195,78 @@
</div>
</div>
</div>
<c:if test="${relateWords.size()>0}">
<%--@elvariable id="oneway" type="com.dookay.cihai.pc.controller.vo.OneWayRelateVO"--%>
<c:choose>
<c:when test="${vo.word eq '象鼻山'}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">${vo.word}</div>
<div class="recommend-section-title title-sm title-primary">象鼻山</div>
<div class="recommend-cells">
<c:forEach items="${relateWords}" var="item">
<span class="recommend-cell">${item.word}</span>
<span class="recommend-cell">象</span>
<span class="recommend-cell">象鼻虫</span>
<span class="recommend-cell">象草</span>
<span class="recommend-cell">象龟</span>
<span class="recommend-cell">象山</span>
<span class="recommend-cell">象山港</span>
<span class="recommend-cell">象山先生集</span>
<span class="recommend-cell">象山学派</span>
<span class="recommend-cell">象舞</span>
<span class="recommend-cell">象戏</span>
</div>
</div>
</div>
</c:when>
<c:when test="${vo.word eq '中华人民共和国'}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">中华人民共和国</div>
<div class="recommend-cells">
<span class="recommend-cell">中华人民共和国主席</span>
<span class="recommend-cell">中华人民共和国首都</span>
<span class="recommend-cell">中华人民共和国宪法</span>
<span class="recommend-cell">中华人民共和国国旗</span>
<span class="recommend-cell">中华人民共和国国徽</span>
<span class="recommend-cell">中华人民共和国国务院</span>
<span class="recommend-cell">中华人民共和国合同法</span>
<span class="recommend-cell">中华人民共和国审计法</span>
<span class="recommend-cell">中华人民共和国财政部</span>
<span class="recommend-cell">中华人民共和国可再生能源法</span>
</div>
</div>
</div>
</c:when>
<c:when test="${vo.word eq '太阳系'}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">太阳系</div>
<div class="recommend-cells">
<span class="recommend-cell">太阳系运动</span>
<span class="recommend-cell">太阳系起源</span>
<span class="recommend-cell">太阳系物理学</span>
</div>
</div>
</div>
</c:when>
<c:when test="${oneway != null}">
<div class="recommend">
<div class="recommend-title title-base">推荐词</div>
<c:forEach items="${oneway.relationByGroup}" var="group">
<div class="recommend-section">
<div class="recommend-section-title title-sm title-primary">${group.middle}</div>
<div class="recommend-cells">
<c:forEach items="${group.right}" var="item">
<a href="/word/${item.id}" style="color: #000;">
<span class="recommend-cell">${item.word}</span></a>
</c:forEach>
</div>
</div>
</c:forEach>
</div>
</c:if>
</c:when>
</c:choose>
<div class="aside-tag text-primary">标签:语词</div>
</aside>
</div>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!