diff --git a/build.gradle b/build.gradle index 2875b3d19..922f94a0f 100644 --- a/build.gradle +++ b/build.gradle @@ -6,11 +6,14 @@ plugins { } group = 'run.halo.app' -archivesBaseName = 'halo' version = '1.3.0-beta.3' -sourceCompatibility = '1.8' description = 'Halo, An excellent open source blog publishing application.' +java { + archivesBaseName = 'halo' + sourceCompatibility = JavaVersion.VERSION_1_8 +} + repositories { maven { url 'https://maven.aliyun.com/nexus/content/groups/public' @@ -55,7 +58,7 @@ ext { set('httpclientVersion', "4.5.12") set('dataformatYamlVersion', "2.10.3") set('jgitVersion', "5.7.0.202003110725-r") - set('flexmarkVersion', "0.42.12") + set('flexmarkVersion', "0.60.2") set('thumbnailatorVersion', "0.4.11") set('image4jVersion', "0.7zensight1") set('flywayVersion', "6.3.1") @@ -63,6 +66,7 @@ ext { set('levelDbVersion', "0.12") set('jsonVersion', "20190722") set('fastJsonVersion', "1.2.66") + set('annotationsVersion',"3.0.1") } dependencies { @@ -87,6 +91,7 @@ dependencies { implementation "org.apache.httpcomponents:httpclient:${httpclientVersion}" implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${dataformatYamlVersion}" implementation "org.eclipse.jgit:org.eclipse.jgit:${jgitVersion}" + implementation "com.google.code.findbugs:annotations:${annotationsVersion}" implementation "com.vladsch.flexmark:flexmark:${flexmarkVersion}" implementation "com.vladsch.flexmark:flexmark-ext-attributes:${flexmarkVersion}" @@ -99,9 +104,10 @@ dependencies { implementation "com.vladsch.flexmark:flexmark-ext-media-tags:${flexmarkVersion}" implementation "com.vladsch.flexmark:flexmark-ext-tables:${flexmarkVersion}" implementation "com.vladsch.flexmark:flexmark-ext-toc:${flexmarkVersion}" + implementation "com.vladsch.flexmark:flexmark-ext-superscript:${flexmarkVersion}" implementation "com.vladsch.flexmark:flexmark-ext-yaml-front-matter:${flexmarkVersion}" implementation "com.vladsch.flexmark:flexmark-ext-gitlab:${flexmarkVersion}" - implementation "com.vladsch.flexmark:flexmark-html-parser:${flexmarkVersion}" +// implementation "com.vladsch.flexmark:flexmark-html-parser:${flexmarkVersion}" implementation "net.coobird:thumbnailator:${thumbnailatorVersion}" implementation "net.sf.image4j:image4j:${image4jVersion}" diff --git a/src/main/java/run/halo/app/controller/admin/api/LinkController.java b/src/main/java/run/halo/app/controller/admin/api/LinkController.java index 798b36563..82d2b2670 100644 --- a/src/main/java/run/halo/app/controller/admin/api/LinkController.java +++ b/src/main/java/run/halo/app/controller/admin/api/LinkController.java @@ -43,12 +43,6 @@ public class LinkController { return new LinkDTO().convertFrom(linkService.getById(id)); } - @GetMapping("parse") - @ApiOperation("Gets link by parse url") - public LinkDTO getByParse(@RequestParam("url") String url) { - return linkService.getByParse(url); - } - @PostMapping @ApiOperation("Creates a link") public LinkDTO createBy(@RequestBody @Valid LinkParam linkParam) { diff --git a/src/main/java/run/halo/app/handler/migrate/converter/WordPressConverter.java b/src/main/java/run/halo/app/handler/migrate/converter/WordPressConverter.java index cc49a933d..af8a0a5d1 100644 --- a/src/main/java/run/halo/app/handler/migrate/converter/WordPressConverter.java +++ b/src/main/java/run/halo/app/handler/migrate/converter/WordPressConverter.java @@ -9,7 +9,6 @@ import run.halo.app.model.entity.BaseComment; import run.halo.app.model.entity.BasePost; import run.halo.app.model.entity.Category; import run.halo.app.model.entity.Tag; -import run.halo.app.utils.MarkdownUtils; import java.util.ArrayList; import java.util.Date; @@ -129,7 +128,7 @@ public class WordPressConverter implements Converter<Rss, List<PostVO>> { BasePost post = RelationMapperUtils.convertFrom(item, BasePost.class); Date postDate = DateUtil.parseDateTime(item.getPostDate()); if (StringUtils.isNoneEmpty(post.getFormatContent())) { - post.setOriginalContent(MarkdownUtils.renderMarkdown(post.getFormatContent())); + post.setOriginalContent(post.getFormatContent()); } post.setCreateTime(postDate); post.setUpdateTime(postDate); diff --git a/src/main/java/run/halo/app/model/entity/PostCategory.java b/src/main/java/run/halo/app/model/entity/PostCategory.java index 4215fc1b8..c4e7b4b98 100644 --- a/src/main/java/run/halo/app/model/entity/PostCategory.java +++ b/src/main/java/run/halo/app/model/entity/PostCategory.java @@ -1,6 +1,8 @@ package run.halo.app.model.entity; -import lombok.Data; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.GenericGenerator; @@ -12,12 +14,14 @@ import java.util.Objects; * * @author johnniang */ +@Getter +@Setter +@ToString(callSuper = true) +@RequiredArgsConstructor @Entity @Table(name = "post_categories", indexes = {@Index(name = "post_categories_post_id", columnList = "post_id"), @Index(name = "post_categories_category_id", columnList = "category_id")}) -@Data -@ToString(callSuper = true) public class PostCategory extends BaseEntity { @Id diff --git a/src/main/java/run/halo/app/model/entity/PostTag.java b/src/main/java/run/halo/app/model/entity/PostTag.java index fd4e61b4a..5c164c378 100644 --- a/src/main/java/run/halo/app/model/entity/PostTag.java +++ b/src/main/java/run/halo/app/model/entity/PostTag.java @@ -1,6 +1,8 @@ package run.halo.app.model.entity; -import lombok.Data; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.GenericGenerator; @@ -13,12 +15,14 @@ import java.util.Objects; * @author ryanwang * @date 2019-03-12 */ -@Data +@Getter +@Setter +@ToString(callSuper = true) +@RequiredArgsConstructor @Entity @Table(name = "post_tags", indexes = {@Index(name = "post_tags_post_id", columnList = "post_id"), @Index(name = "post_tags_tag_id", columnList = "tag_id")}) -@ToString(callSuper = true) public class PostTag extends BaseEntity { @Id diff --git a/src/main/java/run/halo/app/service/LinkService.java b/src/main/java/run/halo/app/service/LinkService.java index e22300a38..e06e73261 100755 --- a/src/main/java/run/halo/app/service/LinkService.java +++ b/src/main/java/run/halo/app/service/LinkService.java @@ -19,12 +19,6 @@ import java.util.List; */ public interface LinkService extends CrudService<Link, Integer> { - String META_NAME = "name"; - - String META_DESCRIPTION = "description"; - - String META_CONTENT = "content"; - /** * List link dtos. * @@ -66,12 +60,4 @@ public interface LinkService extends CrudService<Link, Integer> { * @return a list of teams. */ List<String> listAllTeams(); - - /** - * Get link by parse url. - * - * @param url url must not be null - * @return link dto - */ - LinkDTO getByParse(@NonNull String url); } diff --git a/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java b/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java index 5fb3d60e6..7679fa43e 100644 --- a/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java @@ -1,8 +1,5 @@ package run.halo.app.service.impl; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.select.Elements; import org.springframework.data.domain.Example; import org.springframework.data.domain.Sort; import org.springframework.lang.NonNull; @@ -11,7 +8,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import run.halo.app.exception.AlreadyExistsException; -import run.halo.app.exception.BadRequestException; import run.halo.app.model.dto.LinkDTO; import run.halo.app.model.entity.Link; import run.halo.app.model.params.LinkParam; @@ -21,7 +17,6 @@ import run.halo.app.service.LinkService; import run.halo.app.service.base.AbstractCrudService; import run.halo.app.utils.ServiceUtils; -import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -105,30 +100,6 @@ public class LinkServiceImpl extends AbstractCrudService<Link, Integer> implemen return linkRepository.findAllTeams(); } - @Override - public LinkDTO getByParse(String url) { - Assert.hasText(url, "Url must not be blank"); - LinkDTO linkDTO = new LinkDTO(); - linkDTO.setUrl(url); - try { - Document document = Jsoup.connect(url).get(); - - // Get html title. - linkDTO.setName(document.title()); - - // Get html metas. - Elements metas = document.head().select("meta"); - metas.forEach(element -> { - if (META_DESCRIPTION.equalsIgnoreCase(element.attr(META_NAME))) { - linkDTO.setDescription(element.attr(META_CONTENT)); - } - }); - } catch (IOException e) { - throw new BadRequestException("获取网站信息失败").setErrorData(e); - } - return linkDTO; - } - @NonNull private List<LinkDTO> convertTo(@Nullable List<Link> links) { if (CollectionUtils.isEmpty(links)) { diff --git a/src/main/java/run/halo/app/utils/MarkdownUtils.java b/src/main/java/run/halo/app/utils/MarkdownUtils.java index c9fa05430..fc4fa6f29 100644 --- a/src/main/java/run/halo/app/utils/MarkdownUtils.java +++ b/src/main/java/run/halo/app/utils/MarkdownUtils.java @@ -1,6 +1,5 @@ package run.halo.app.utils; -import com.vladsch.flexmark.convert.html.FlexmarkHtmlParser; import com.vladsch.flexmark.ext.attributes.AttributesExtension; import com.vladsch.flexmark.ext.autolink.AutolinkExtension; import com.vladsch.flexmark.ext.emoji.EmojiExtension; @@ -12,6 +11,7 @@ import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension; import com.vladsch.flexmark.ext.gitlab.GitLabExtension; import com.vladsch.flexmark.ext.ins.InsExtension; import com.vladsch.flexmark.ext.media.tags.MediaTagsExtension; +import com.vladsch.flexmark.ext.superscript.SuperscriptExtension; import com.vladsch.flexmark.ext.tables.TablesExtension; import com.vladsch.flexmark.ext.toc.TocExtension; import com.vladsch.flexmark.ext.yaml.front.matter.AbstractYamlFrontMatterVisitor; @@ -19,8 +19,8 @@ import com.vladsch.flexmark.ext.yaml.front.matter.YamlFrontMatterExtension; import com.vladsch.flexmark.html.HtmlRenderer; import com.vladsch.flexmark.parser.Parser; import com.vladsch.flexmark.util.ast.Node; -import com.vladsch.flexmark.util.options.DataHolder; -import com.vladsch.flexmark.util.options.MutableDataSet; +import com.vladsch.flexmark.util.data.DataHolder; +import com.vladsch.flexmark.util.data.MutableDataSet; import org.apache.commons.lang3.StringUtils; import run.halo.app.model.support.HaloConst; @@ -32,7 +32,7 @@ import java.util.Map; * Markdown utils. * * @author ryanwang - * @date 2019/06/27 + * @date 2019-06-27 */ public class MarkdownUtils { @@ -48,6 +48,7 @@ public class MarkdownUtils { MediaTagsExtension.create(), TablesExtension.create(), TocExtension.create(), + SuperscriptExtension.create(), YamlFrontMatterExtension.create(), GitLabExtension.create()) ) @@ -99,15 +100,15 @@ public class MarkdownUtils { return RENDERER.render(document); } - /** - * Render html document to markdown document. - * - * @param html html document - * @return markdown document - */ - public static String renderMarkdown(String html) { - return FlexmarkHtmlParser.parse(html); - } +// /** +// * Render html document to markdown document. +// * +// * @param html html document +// * @return markdown document +// */ +// public static String renderMarkdown(String html) { +// return FlexmarkHtmlParser.parse(html); +// } /** * Get front-matter diff --git a/src/main/resources/templates/themes/anatole b/src/main/resources/templates/themes/anatole index c0309ef9c..287bebe0b 160000 --- a/src/main/resources/templates/themes/anatole +++ b/src/main/resources/templates/themes/anatole @@ -1 +1 @@ -Subproject commit c0309ef9c8607cddab14ce6005168cb7b19ef066 +Subproject commit 287bebe0bd3dc5d658537eb5b5bc9b906522cb1d