因为从来没有提交过PR, 所以发到这里看看有没有人顺手给提交了。
目前org在导出html时(ox-html.el
),标签的 class
命名会通过函数org-html-fix-class-name
生成符合css命名标准的类名。
当前函数如下:
(defun org-html-fix-class-name (kwd) ; audit callers of this function
"Turn todo keyword KWD into a valid class name. Replaces invalid characters with \"_\"."
(replace-regexp-in-string "[^a-zA-Z0-9_]" "_" kwd nil t))
但函数中的正则会将中文字符也替换成下划线,导致自动生成的类命无法匹配。 查了一下w3c的标准,类名是可以使用中文的。 https://www.w3.org/TR/CSS21/grammar.html#scanner
所以只需要把正则匹配规则修改一下,就可以生成包含中文的标签类名。
(replace-regexp-in-string "[[:punct:][:space:][:cntrl:]]" "_" kwd nil t))
经过以上修改,就可以在org文件中实现中文标签:
#+HTML_HEAD: .tag .标签1 {padding: 2px; background-color: red; color: white;}
#+HTML_HEAD: .tag .标签2 {padding: 2px; background-color: red; color: white;}
** 测试中文标签 :标签1:标签2:
生成的html是这样的: css:
.tag .标签1 {padding: 2px; background-color: red; color: white;}
.tag .标签2 {padding: 2px; background-color: red; color: white;}
html:
<li>1.4. 测试中文标签   <span class="tag"><span class="标签1">标签1</span> <span class="标签2">标签2</span></span></a></li>