标题居中后不知道怎么让标题内正文也居中【专门用来写剧本对白的格式要求对白居中】

大家好,请帮忙解决问题。我用这个代码实现了 h6 标题居中显示,但是我希望 h6 标题内的正文也居中。这是为了 写剧本。剧本格式要求有对白的时候,人物名字(我设置的h6标题)还有对白(h6 内的正文)要居中显示。

.HyperMD-header-6 {  
    /* 笔记h6标题 */  
    text-align: center; /* 文本居中 */  
}  

.HyperMD-header-6 p {  
    text-align: center;  
}
1 个赞

楼主的需求:将h6标题以及h6标题之后、下一个标题之前的p元素居中

  • css无法实现,需要JavaScript,自己写个插件吧。
  • 原因是css是基于父子级关系的,类似的需求还有根据标题控制不同段落的缩进,只能通过Heading Level Indent等插件实现
1 个赞

感谢您的关注和讲解。不过我是个小白,能搞个h6标题居中已经是我的极限了。定制您说的功能可以通过购买服务来实现吗?不贵的话,我出钱定制。

Heading Level Indent 您说的这个插件是可以用的是吗?

把文字放进callout里就很容易用css修改了

我刚刚安装了这个插件,按道理到h6这个标题的缩进也已经够用了。不过这个插件好像在我的电脑上没有反应。

抱歉我是小白。不知道您说的需要怎么去执行

>[!center] 标题
>正文
>正文


加上这段css

.callout[data-callout=center] {
  text-align: center;
}
.callout[data-callout=center] .callout-title {
  justify-content: center;
}

看这个是不是所有标题下面正文都居中了?我只需要h6标题内的正文居中。我回去试试看,正在回家路上

楼上的callout解法可能并不像你想的那样,可以把所有h6标题下的内容都居中;它是通过obsidian里面一个叫callout的功能,实现callout内文本居中,如果你想让标题是h6,正常写就可以。

>[!center] ###### 标题
>正文
>正文

不过我猜你想实现的效果是这个callout的背景和文中其他内容融合,也就是标题栏没有icon,块内没有背景,那么css修改成这样就行:

/*---设定一个叫center的callout---*/
.callout[data-callout="center"] {
	--callout-color:transparent;/*无背景*/
	text-align: center;/*文本居中*/
	border: none;/*无框线*/
}
.callout[data-callout="center"] .callout-title {
	 justify-content: center;/*标题居中*/
}


.callout[data-callout="center"] .callout-icon{
	 display: none;/*去除icon*/
}

使用callout的好处是,它是obsidian原生的功能,正常导出pdf一般不会影响外观。

1 个赞

特别感谢,我刚刚也百度了一下什么是 callout,我觉得这个功能解决问题也不错。非常感谢您。我现在还不是很明白怎么用。等于用你这段代码定义了一个样式居中的块,我写到对白的时候就用这个功能来写居中的对白就可以。 我现在只要在编辑器里面输入一个>符号,然后加上【!center】就可以是吗?能不能简化到只有一个字母就能启用呢

我刚刚尝试了,蛮好的。就是很多地方都要写对白,这个命令要打七八个字符。不能定义成一个 d 字吗?我感觉您解决了用 obs 写剧本的朋友一个大问题。值得在编剧们中间推广

我修改了一下,我感觉我知道怎么用 callout 功能了。

/*---设定一个叫d的callout用来表示要写对白并居中了意思是dialogue---*/
.callout[data-callout="d"] {
	--callout-color:transparent;/*无背景*/
	text-align: center;/*文本居中*/
	border: none;/*无框线*/
}
.callout[data-callout="d"] .callout-title {
	 justify-content: center;/*标题居中*/
}


.callout[data-callout="d"] .callout-icon{
	 display: none;/*去除icon*/
}

谨代表所有使用 obsidian 的编剧感谢您和几位老师的鼎力相助!希望这个帖子能帮到所有编剧朋友。

快捷输入的问题,可以看这个帖子下面我的回复,这里建议你使用quickadd插件

最开始的需求:六级标题下一个居中是可以勉强实现的,下面的代码仅在阅读模式下生效

h6{
    text-align: center;
}

div:has(h6)+div{
    text-align: center;
}

1 个赞

浏览论坛的时候,看到了一个非常适合题主的帖子,专门给编剧写剧本的css片段和插件,所以分享一下。

原帖是英文论贴那边的:Screenwriting CSS Snippet:用 Markdown 写作,导出为排版一致的剧本

这是实现的效果:

那位作者非常精细,针对每个层级的标题都做了样式

Header 1 - Scene Heading/Shot  1级标题 - 场景标题/镜头
Header 2 - Character Name  2级标题 -角色名
Header 3 - Parenthetical  3级标题 - 旁注
Header 4 - Transition   4级标题 - 转场
Header 5 - Act  5级标题 -幕
Highlight - Underline 突出 - 下划线
Horizontal Divider (hr) - Page Break 水平分隔符 (hr) -分页符

以及,这位作者后来还更新了代码pro代码,
PRO Screenwriting css:用Markdown写剧本, 实现Fountain插件的格式、Canvas索引卡片样式,导出pdf版式

1 个赞

非常感谢,我去研究一下看看。不过中文剧本的板式,有一些跟海外英文版的区别,不过也没有说就一定是哪一种就是标准。怎么写的都有。但是最基本的一个通用规则就是对白的安排是居中。