Lilly
(Lillian Louis)
1
Install this theme component
此主题组件在帖子编辑器工具栏中插入按钮,用于将上传的图像左对齐或右对齐文本、居中对齐或使用新实现的网格标签将多个图像对齐成网格。网格将根据图像数量和尺寸自动调整图像大小,并且还会链接到上传的较大版本。按钮/对齐功能可以在一个帖子中使用多次,以创建各种布局。适用于桌面和移动视图。
使用方法是,只需单击所需的图像对齐按钮,然后将图像上传到生成的标签之间的指定位置(由占位符文本标记,可在组件设置中编辑)。
请注意,此组件的网格部分用于对齐上传的图像,而不是图像链接(其他对齐选项将适用于链接图像)。我从 @Steven 有用的 MD Composer Extras 组件借用了一些基本代码框架。
待办事项:为每个按钮添加适当的图标选择器。
截图
编辑器工具栏网格按钮(带网格代码示例)
图像网格示例
编辑器工具栏右对齐按钮(带右对齐代码示例)
图像在文本右侧对齐
编辑器工具栏左对齐按钮(带左对齐代码示例)
图像在文本左侧对齐
编辑器工具栏居中对齐按钮(带居中对齐代码示例)
图像居中对齐(带文本)
27 个赞
Lilly
(Lillian Louis)
4
谢谢你 @piffy! 
你的意思是带工具栏的编辑器吗?那就是带有网格示例的第一个截图。我将添加一些关于图片周围其他对齐代码的编辑器截图。
3 个赞
thoka
(Thomas Kalka)
5
3 个赞
Lilly
(Lillian Louis)
7
谢谢你,Dan,我很感激你的赞美,很高兴你觉得它们有用 
2 个赞
Heliosurge
(Dan DeMontmorency)
8
不客气。请问您是如何让“Align left”等内容显示为粗体的?我尝试使用 Markdown,但它显示的是 Markdown 代码。
我看到使用 ### 可以实现,但标准的粗体使用
**Text**
似乎不起作用。
Lilly
(Lillian Louis)
9
我不确定我是否明白你的意思 @Heliosurge?
3 个赞
Heliosurge
(Dan DeMontmorency)
10
抱歉,我之前尝试时它不起作用。不确定有什么变化。这真的很棒,谢谢。
2 个赞
Heliosurge
(Dan DeMontmorency)
11
如果您使用多张图片,我会遇到此问题。
来自此代码。我该如何让信息固定在每张图片旁边?Shawn 的信息应该在第二张图片旁边。
我该如何修复?
2 个赞
Lilly
(Lillian Louis)
12
只需在第一个文本块和第二个 <div-data-theme...> 标签之间插入一些 <br><br> HTML 标签,直到它正确地间隔开。我将找时间在其中编程一个硬回车或类似的东西。
2 个赞
Heliosurge
(Dan DeMontmorency)
13
好的,请添加足够的 <br> 标签,直到文本与相应的图片对齐。
再次感谢您的帮助和超赞的 Theme component!
3 个赞
Canapin
(Coin-coin le Canapin)
14
我认为这不是一种可靠的方法,因为内容的高度会因窗口大小的不同而异。
清除浮动元素,当旁边有任意内容时,会很棘手。我不确定这里有什么明显的解决方案……
这在 WordPress 编辑器中也是一个长期存在的问题。
人们倾向于依赖一些不自然的解决方法,使用那些唯一目的是重置先前浮动元素的 clear: both; 属性的元素。
2 个赞
Lilly
(Lillian Louis)
15
是的,我也不喜欢那种方法。我曾考虑过尝试使用空白属性解决方案。
最终,如果对齐的图片是单独的帖子,效果最好。不幸的是,表格中的图片效果也不太好。
Canapin
(Coin-coin le Canapin)
16
也许你可以探索除浮动(float)之外的其他解决方案。
我尝试用 flex 替换 float……
还没深入研究。
[data-theme-image=left] {
display: flex;
float: none;
}
[data-theme-image=right] {
display: flex;
float: none;
justify-content: flex-end;
}
[data-theme-image=left] {
display: flex;
float: none;
}
[data-theme-image=right] {
display: flex;
float: none;
flex-direction: row-reverse;
}
或者可以看看网格布局(grid layout)?不过我对它一无所知。我的 CSS 知识已经过时好几年了。 
Lilly
(Lillian Louis)
17
哈哈,网格选项是这个主题组件的一部分 
我也绝对认为我的更老
。
那是什么?饼干?我分不清它们是土豆还是饺子还是某种饼干。 
2 个赞
Lilly
(Lillian Louis)
19
尝试了那些 flex 对齐属性的解决方案,但都无法找到一个始终可行的办法。不过,我确实找到了一个可行的变通方法。如果你将每个图片-文本部分都设置为块引用,它就会将它们分开(但会包含文本的引用格式):
编辑器/预览器:
结果:
3 个赞
Canapin
(Coin-coin le Canapin)
20
这是因为<blockquote>在Discourse中包含clear: both;。
3 个赞