如何在Confluence中格式化内联代码?


Answers:


592

要在Confluence中插入行内等宽字体,请用双花括号将文本括起来。

这是一个{{example}}

如果您使用的是Confluence 4.x或更高版本,则还可以从段落样式菜单中选择“预格式化”选项。请注意,这将适用于整个生产线。

完整参考这里


130
在Confluence 4+中,Wiki标记默认情况下不可用,并且“ Preformatted”选项适用于整行。做到这一点的唯一方法(不安装wikitext编辑插件)是选择等宽字体。
HDave

16
如果要粘贴,它将无法正常工作-您需要键入右花括号才能“触发”“自动格式化”。如果要以这种方式格式化大范围的文本,请使用“插入”->“ Wiki标记”对话框,然后在其中全部键入/粘贴。
jaysee00 2013年

3
我发现使用Ctrl-Shift-D插入Wiki标记很有用。这是我在V5中使用的唯一组合快捷方式。是的,新编辑器可能很笨拙。通过Wiki编辑器输入代码会有所帮助,特别是如果您习惯于标记编码而不是gui。
2013年

29
一种可靠的方法是输入{{foo}};它总是将'foo'识别为需要预格式化的内容,然后将您真正想放入的内容粘贴到'f'和'o'之间,然后删除'foo'文本。您应该留下真正想要的,已预先格式化的内容。
丹·米切尔

5
那不同的背景/文字颜色呢?等宽不是唯一的事情,我想在行内突出显示它,有什么想法吗?
里奇·里维

77

默认情况下,Confluence渲染具有透明背景的等宽文本。您可以编辑全局CSS以添加灰色。从Confluence手册

  1. 选择屏幕右上方的齿轮图标,然后选择Confluence Admin。
  2. 选择样式表。
  3. 选择编辑。
  4. 将您的自定义CSS粘贴到文本字段中。
  5. 选择保存。

用于在等宽块中显示灰色背景的自定义CSS:

code {
    padding: 1px 5px 1px 5px; 
    font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
    background-color: #eeeeee;
}

如果您正在使用Confluence OnDemand(云):

  1. 单击左侧边栏底部的齿轮/齿轮
  2. 选择外观
  3. 单击侧边栏,页眉和页脚选项卡
  4. 将自定义CSS粘贴到“ 标题”字段中
  5. 将代码包装在一个{style}块中

粘贴以下内容:

{style}
code {
    padding: 1px 5px 1px 5px; 
    font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
    background-color: #eeeeee;
}
{style}

之后,仅需编写即可获得漂亮整洁的stackoverflow风格的内联代码{{sometext}}


1
如果您的空间使用自定义样式表/主题,则可能无法正常工作。一个懒惰的解决方法是在“外观和感觉->自定义HTML”(已在版本5.9.6中进行测试)下的样式标签内附加上述示例。
jdknight

3
如果使用Confluence OnDemand,则必须转到“侧栏,页眉和页脚”页面。然后在标题文本框中复制/粘贴上面的CSS代码,但是您需要{style}在CSS之前和之后放置使用示例{style}
菲尔(Phil)2016年

1
较小的校正,您似乎需要转义样式块内的花括号,否则汇合会尝试找到一个称为padding的宏。{style}代码\ {... \} {style}
edqwerty

4
这可行,但是在我的OnDemand实例(云)中,我现在在页面顶部收到错误消息“标头中当前不支持以下宏:样式”。然而它仍然呈现。去图:)
GONeale

2
@GraehamF @GONeale我刚刚包含[class^=SpaceCustomSettingsBlockComponent_unsupportedMacros]{display: none;}在自定义CSS中:p
Samizdis

28

您可以要求忠实的Confluence管理员为您创建一个宏。这是Confluence 3.x宏的示例

Macro Name:    inlinecode
Macro Title:   Markup text like stackoverflow inline code
Categories:    Formatting
Macro Body Processing: Convert wiki markup to HTML
Output Format: HTML
Template:

## Macro title: Inline Code
## Macro has a body: Y
## Body processing: Convert wiki markup to HTML
## Output: HTML
##
## Developed by: My Name
## Date created: dd/mm/yyyy
## Installed by: My Name
## This makes the body text look like inline code markup from stackoverflow
## @noparams
<span style="padding: 1px 5px 1px 5px; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif; background-color: #eeeeee;">$body</span>

然后用户可以使用 {inlinecode}like this{inlinecode}

您也可以使用{html}{style}宏(如果已安装),或将此样式添加到您空间的样式表中。

在使用它时,请Confluence管理员为您创建一个kbd宏。与上述相同,不同之处Macro nameKBDTemplate是:

<span style="padding: 0.1em 0.6em;border: 1px solid #ccc; font-size: 11px; font-family: Arial,Helvetica,sans-serif; background-color: #f7f7f7; color: #333;  -moz-box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2),0 0 0 2px #ffffff inset; -webkit-box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2),0 0 0 2px #ffffff inset; box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2),0 0 0 2px #ffffff inset; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; display: inline-block; margin: 0 0.1em; text-shadow: 0 1px 0 #fff; line-height: 1.4; white-space: nowrap; ">$body</span> 

然后,您可以编写文档来告诉用户按F1Enter键。


2
不太在乎管理员;-),{kbd}是我想要的。谢谢!
贾斯珀·德弗里斯

14

环绕你的嵌入式文本{{ }}

注意事项:

  1. 您必须在之后按空格键 }}
  2. 您不能复制嵌入式预格式化文本并保持其外观。如果确实要复制它,则可能无法添加{{ }}以对其进行修复。只需重新输入或粘贴而不格式化(在Mac上为Cmd ⌘+ Shift+ V),然后添加{{ }}并点击空格即可。
  3. 如果{{ }}以后再将其添加到现有文本中,则该文本不能被其他字符包围,例如,如果要在预格式化文本周围(my text)加上括号,则无法通过添加大括号来解决({{my text}})。首先在文本周围添加空格,( my text )然后添加{{ }}

尝试按Ctrl-D,然后使用此标记?它应该尝试将其转换为新的标记。
颠覆了

12

从Confluence 4及更高版本开始,键入两个大括号不起作用。

现在,您需要选择等宽字体。突出显示要更改的文本,然后:

Windows:Ctrl + Shift + M

Mac:Command + Shift + M

或者,您可以键入反引号(`),Confluence会格式化所有内容,直到您键入另一个反引号

另外,在粗体和斜体选项旁边,您可以单击“更多”下拉菜单并选择等宽字体:

在此处输入图片说明


11

在Confluence 5.4.2中,您可以<code></code>在源代码编辑器中用标签添加内联代码,从而:

Confluence will show <code>this inline code</code> in a fixed font. 

这在有许多片段需要修改的地方很有用,因为双括号功能仅在Confluence编辑器中以交互方式添加文本时才起作用。


谢谢,这在使用UWC从MediaWiki迁移到Confluece的过程中似乎也可行。
MonkeyMonkey

10

如果要插入带有可选行号等的大代码块,请使用“代码宏”(在“宏->其他”下可用)。



是的,我如何在不单击两个菜单的情况下执行此操作?我经常需要一页上有10个代码块。
杰里米·莱比锡

11
@JeremyLeipzig键入{以打开宏浏览器并开始输入代码
Alex

仅供参考,如果您在代码中使用“&”,则其格式错误-请访问jira.atlassian.com/browse/CONFCLOUD-59800
nevets1219

7

要在文本中内联格式化代码,请使用“`”字符将代码括起来。通常位于键盘上“ 1”键的左侧。

例:

`printf("Hello World");`

与Stack Exchange相同的分隔符!


2
ADM-我正在显示分隔符的代码,而您未转义它们。现在代码看起来像代码,这不是我回答的目的。我回答的目的是证明在Confluence上,定界符为`,恰好与SO相同。
morrisonbrett

1
此功能适用于什么版本的Confluence?我的实例不将反引号视为特殊字符。
Coderer

6

我发现用颜色格式化有点麻烦,因为Confluence(5.6.3)对{{monospace}}块周围的空间非常挑剔。

使用Wiki标记创建彩色等宽字体

由Confluence呈现


3

在写这篇文章的时候,我发现无论是{{string}}也没有{{ string }}工作。我的控制面板上只有代码阻止按钮。

但是,列出了固定宽度格式的快捷方式:Ctrl+ Shift+ M

我在菜单中四处摸索,但无法确定向我们提供了哪个版本。


1

所有这些其他答案当然听起来都不错,我建议您先使用它们,但为了完整性,我将继续在列表中添加一个。

您可以简单地使用html宏,然后将内容包装在<pre> </pre>标签中。


这样可以达到相同的效果,但是除非需要用其他HTML标记标记块内的文本,否则应避免这种情况。
颠倒

是的,这就是为什么我建议首先使用其他答案中提供的解决方案的原因。我从未说过这是一个好答案。我说过,出于完整性考虑,我想将其添加到列表中。
亚历山大·瑞安·巴格特

如果您需要对Confluence 3.5的代码块中的颜色和样式进行精细控制,则此方法是最佳答案。我{pre}为用户创建了一个宏,作为的快捷方式{html}<pre> ... </pre>{html}。融合5完全是另一回事。
Underverse

1

我结合使用了Zelphir和Peter Gluck的答案。即

  1. (使用Mac的用户)单击COMMAND + SHIFT + D
  2. 在模型弹出窗口的下拉菜单中选择Markdown
  3. 用代码标签包围文本-即 <code>bovvered</code>
  4. 单击插入

1

对我而言,最简单的方法是插入标记。

汇合插入标记

然后在文本框中键入大括号之间的文本。

它将格式文本插入新行,但是您可以将其复制到任何位置,甚至是内联。


1
他明确表示“内联”。标记不是内联的。
乔什·麦克

1
道歉,错过了,显然不能取消投票:/说我的投票已被锁定。
乔希·麦克

0

我发现执行此操作的最简单方法是直接在行的开头编写markdown。按Ctrl+D(打开标记输入对话框的快捷方式),然后键入markdown。普通的Wiki编辑器似乎不太适合精确格式化。它似乎不太了解字符样式,只知道段落样式。


CTRL + D在我的Confluence版本上为页面添加书签(正如您期望的那样!)。
Coderer

-3

如果您有WinWord,则可以将所需的内容复制到其中,修饰结果,然后将其粘贴到Confluence中。我发现这比这里的其他解决方案容易。


1
XD不是我的错综指的文本编辑器功能不足。
Amalgovinus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.