个人博客,文章列表的每个标题下面有一段正文内容,到了一定的字数然后就会加上... 请问这是怎么实现的

2018-03-14 10:19:45 +08:00
 jackqian

编辑是用网页上的 markdown 编辑器,然后保存到数据库的是 markdown 转换后的 html 代码,用户点击首页的标题后,跳转到我从数据库里拿出来的 html,现在就是不知道首页标题列表下的一段文字怎么搞的了

4241 次点击
所在节点    Java
14 条回复
ylsc633
2018-03-14 10:28:06 +08:00
我博客用到了.. 不过是 php 写的...

且不是我写的..

我是找网上有人写好的!

至于 JAVA 的,不太清楚有木有!

源码: https://github.com/Yela528/laravel-5-myblog/blob/master/app/Helpers/functions.php 最后那个函数...

我用的时候,留了原作者的信息!你可以问问他...
cloudzqy
2018-03-14 10:29:37 +08:00
Hexo 的话,在 markdown 里加段 <!-- more --> 的注释就行了。你自己实现的话,不就看具体需求吗?截一段 markdown 然后生成 html 存起来之类的。
ixx
2018-03-14 10:33:35 +08:00
事后处理不好弄,因为你库里是带样式的,随便截取样式就乱了,建议参考 hexo 的方式,编辑 markdown 正文的时候插入一个不会显示的特殊标记 如 hexo 使用的<!-- mroe -->,标记以上的部分是你想显示在标题下的文字 这样你再取出来的时候直接截取就行了,当然 为了效率优化应该在保存的时候把标记以上的部分单独保存,这样显示的时候就不用单独处理了
l0o0
2018-03-14 10:35:31 +08:00
我之前博客用 Python 写的,简单截取了 html 前面多少个字符,然后用 bs4 的 prettify 把截取得到的不完整 html 修复一下。感觉有点简单粗暴
coffeSlider
2018-03-14 10:36:08 +08:00
直接用 div
style 加个 text-overflow:ellipsis
unique
2018-03-14 10:36:21 +08:00
我用的 https://github.com/atlassian/commonmark-java 来解决你的问题。
hheedat
2018-03-14 10:51:31 +08:00
css
jackqian
2018-03-14 11:03:43 +08:00
@ixx @cloudzqy 谢谢,我尝试一下

@coffeSlider 用 overflow 确实比较简单,但是应该很占资源
coffeSlider
2018-03-14 11:36:57 +08:00
@jackqian

求解,什么叫“应该很占资源”?
请你摆出事实说话。
满脸黑人问号❓❓❓


再者说了,你这博客是给小霸王机看的吗?
jackqian
2018-03-14 16:18:02 +08:00
@coffeSlider 这个方法实际上不是把整个文章都放进去了,只是 overflow 让他超出 div 的没显示呀
Hopetree
2018-03-14 16:36:18 +08:00
我的博客网站就有这个功能,这个功能在 Django 里面很好实现,有专门的标签模板可以用,当然,自己其实也可以写啊,不知道你用的什么语言做后端的,如果你想从后端实现,我推荐你用切片啊,字符串的切片,只要文字数量多于 N 个就把后端的切掉,然后加上。。。就行 了

我网站的效果,你看文章列表,应该是你要的效果:[http://www.seoerzone.com/]( http://www.seoerzone.com/)
zjj19950716
2018-03-14 20:10:59 +08:00
flask
<p>{{ article.body|striptags|truncate(length=200, killwords=False, end="......") }}</p>
zjj19950716
2018-03-14 20:16:35 +08:00
jinja2 过滤器 自动转义什么的
yzmm
2018-03-15 10:05:21 +08:00
我是用 jsoup 把文章的 html 解析后再获取 text 然后再用标签截取固定的长度,超出部分就用“...”表示。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/437848

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX