我正在尝试在Django上写一个博客,这是我在Django的第一次体验。我想要的是结合Summernote和Lightbox让它们以下列方式协同工作:
•点击插入图片:
summernote在Lightbox中插入图片。它的工作方式与Lightbox home page中的示例相同。
我应该修改什么以及如何修改?
提前致谢!
答案 0 :(得分:0)
首先,这不是一个很好的解决方案,而是更多的方法。
您可以使用正则表达式匹配并分离出<img>
标记。
Summernote以与数据库中的方式类似的方式存储输入的数据:
<p>Test content</p><p>test content</p><p> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAABxCAMAAADvXMHUAAAAsVBMVEU8WJn///////08WZjp7fM8WZZZcKH///s4VZgsTY8vUZTN1d9CX5tzhLHl6+yNnroYR44wT5UUPoebpcEzVJKbqsE6WZP3+vtRZpzz9PiirMFOZ5q6wtN6jK/V3OIoSZK0u9Cqtc3BzNdvgakALog/XZIMPI+HlLOsusvHzNuBl7BieqOPnL8ANIeDjLNsgKPw9O5vf7MAKHwrTYaUqLg0Voc3UqGwv8hObZlibKAfRpYdBdWuAAAGsklEQVR4nO2YeZejKBeHVURBU1GUuJQLiZl0Yqe2mZpeJt//gw2bWyrV5+2ad5Y/+J2cVEQuPFzgcinLMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL67wpAKfBvcyyFSCD1Ya6/Mh703gvIVg/bmmsHP9IuoEGcJNW7zb8rCFFAkrhCt7uF9N5Wcj/EBZ+jbZuvVz9tCFb7qG5zN7ntbbKzbd/5MBfyuKVjr1c/7TDyrCxvckHk5c5f8Zfksj/CRe982Wty62VGNvb/h+unLUeum/6KO8lVbqLoCD6wr/42rlC2myaEkH9pHm9xAc0V8eAFf8AFZr4EQkMQHrnk46IJ8XDVp7TSTf2IC1kjF0J8xEjrqhYNKJ0KAaRB8JVaSy5KaUCWlkiYLVsSRRS+5brqtqgyxbU5FEXFn5VWgGDNwBtfeU0UPZ0LwA35WIPM2/PFeFcgAiauQ3X3EB33BUJy+ACRlffEzbxVoLuDiAFvLyoduCVYcKGiKsRHY8WtrXej+Ha" data-filename="download.png" style="width: 151px;"><br></p>
您可以使用正则表达式将其分成多个部分,然后通过将<img>
标记包含<a>
标记来回显部分,然后为<a>
标记提供使灯箱工作所需的任何类别。您可以按照下面用php编写的示例,尝试用python编写它:
$pattern = '/(<img\s?)(src=")([^"]*)(")([^>]*)(>)/';
$string = '...summernote data like the example above...';
$split = preg_split($pattern, $string, -1, PREG_SPLIT_NO_EMPTY);
$x = preg_match($pattern, $string, $matches);
if(isset($x) && $x == true){
echo $split[0].'<a class="lightbox-something" href="'.$matches[3].'">'.$matches[0].'</a>'.$split[1];
}
else{
echo $split[0];
}
当匹配失败时, preg_split
返回一个包含输入字符串的单个元素的数组,即没有img标签,因此$split[0]
preg_match
在字符串中搜索与模式中给出的正则表达式匹配的内容。
$matches
:如果提供了匹配,则会填充搜索结果。 $ matches [0]将包含与完整模式匹配的文本,$ matches [1]将具有与第一个捕获的带括号的子模式匹配的文本,依此类推。