stacklens / dusai-blog

杜赛的博客的评论区。详情见 Issue。
2 stars 0 forks source link

article/60/ #30

Open stacklens opened 4 years ago

stacklens commented 4 years ago

https://www.dusaiphoto.com/article/60/

stacklens commented 4 years ago

旧评论区读者问题集中帖:


Q:我在文章正文使用富文本编辑器是修改功能没有保留原文,能不能请教一下您,怎么处理。

A:是用的cdeditor吗?

在视图中将旧原文传递到表单的initial参数中,像这样:

article_form = ArticleForm(initial=old_content)

然后在模板文件中正常渲染表单,就可以了


Q:你好博主,看到现在,感觉到知识的匮乏,像那些轮子,您是怎么知道的??有什么学习方法么?

感觉现在面临两个问题,

  1. 怎么想到用哪个轮子?这个有什么方法么?还是说有固定的网站,专门查各个轮子用的?
  2. 轮子的具体用法,这个我感觉就得靠轮子的使用说明,或者手册了吧?

A:我教程里推荐过一个网站,叫 Django Packages,里面搜集了几乎所有好用的轮子。还有就是当你需要某些通用功能时,就Google一下,看看别人都用的什么轮子,根据情况自己选择合适的。

轮子的用法,读官方文档。好轮子一定有好文档,否则你就不要用。


Q:博主好,我想问一下,在代码高亮这一块

<script src="{% static 'ckeditor/ckeditor/plugins/prism/lib/prism/prism_patched.min.js' %}"></script>

这个static路径是env下的吗,我用的pycharm.然后也是把Prism插件下载解压放到项目的venv对应的plugins文件下,但是代码还是高亮不出来啊

A:这是在项目的static目录,不是虚拟环境中


Q:如果我在新增或修改博客时body这里使用富文本编辑器,修改功能该怎么实现?目前新增页面正常显示富文本编辑器,修改页面使用textarea标签不能正常显示及使用富文本编辑器,使用{{ form.media }} {{ form.body }},旧值不知道该如何显示在页面

A:cdeditor 这类插件是通过 js 进行初始化的,不能像普通的textarea标签那样给初始值。

试试直接在视图里传递初始值:

def example(request):
    ...
    ini = {'body': comment.body}
    form = CommentForm(initial=ini)
    ...

这种方法是可以的

McDingl commented 4 years ago

用富文本编辑器可以做目录吗?像你的文章右侧展示的目录一样。

stacklens commented 4 years ago

用富文本编辑器可以做目录吗?像你的文章右侧展示的目录一样。

有啥不可以,只要你想弄

liuzzz2017 commented 2 years ago

如果给用户个选择,用md还是富文本,大致操作是怎么样?

JaceJu-frog commented 1 year ago

楼主在引入代码展示这一块,引用了一个位置很长的js: <script src="{% static 'ckeditor/ckeditor/plugins/prism/lib/prism/prism_patched.min.js' %}"></script>

其实也可以点击prism官网的"Download CSS"旁的“Download JS”,引用下载下来的js文件,这样也能实现代码高亮。

YOLOMIN commented 1 year ago

照着大佬的教程操作完了,发现代码没有高亮