如何在Emacs的组织模式下在源代码块的“#+ RESULTS”预览输出周围添加“#+ ATTR_HTML”?

问题描述 投票:1回答:1

我在组织中使用plantuml,它工作正常。但是,我试图通过在## RESULTS输出标签之前自动添加一些HTML标签来进行一些更改,以便获得漂亮的HTML输出效果。

我的示例代码如下:

#+BEGIN_SRC plantuml :file test.png
@startuml

  package "Some Group" {
          HTTP - [First Component]
          [Another Component]
  }

  node "Other Groups" {
          FTP - [Second Component]
          [First Component] --> FTP
  } 

  cloud {
          [Example 1]
  }


  database "MySql" {
          folder "This is my folder" {
                  [Folder 3]
          }
          frame "Foo" {
                  [Frame 4]
          }
  }


  [Another Component] --> [Example 1]
  [Example 1] --> [Folder 3]
  [Folder 3] --> [Frame 4]

  @enduml
#+END_SRC

在plantuml的“ C-c C-c”之后,您将在plantuml代码块下方获得以下输出:

#+RESULTS:
[[file:test.png]]

但是,我想要它自动附加上面的[[#+ RESULT标记,如下所示,这将在Emacs中的plantuml源代码块下面显示:

#+ATTR_HTML: :width 80% #+ATTR_ORG: :width 80% #+ATTR_HTML: :style background-color: white; border-radius: 8px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); #+RESULTS: [[file:test.png]]
然后,我可以通过“ C-c C-e h o”将组织文件输出为HTML,并获得漂亮的HTML。

我该怎么做?

谢谢!

html output org-mode attr plantuml
1个回答
0
投票
标准技术是给源代码块起个名字:

#+NAME: foo #+BEGIN_SRC plantuml :file test.png @startuml ... #+END_SRC

[当您评估代码块时,它将产生一个如下所示的#+RESULTS:标头:

#+RESULTS: test [[file:test.png]]

现在您可以在结果前添加#+ATTR_*声明:

#+ATTR_HTML: :width 80% #+ATTR_ORG: :width #+ATTR_HTML: :style background-color: white; border-radius: 8px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); #+RESULTS: test [[file:test.png]]

运行代码块会将文件链接放在同一位置,并且将#+ATTR-*内容保留下来。然后,您可以导出并获取“美丽的HTML”!
© www.soinside.com 2019 - 2024. All rights reserved.