Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将组织模式文件导出为HTML后出现意外链接行为_Html_Emacs_Org Mode - Fatal编程技术网

将组织模式文件导出为HTML后出现意外链接行为

将组织模式文件导出为HTML后出现意外链接行为,html,emacs,org-mode,Html,Emacs,Org Mode,我在Windows7Ultimate上运行Emacs24.3.1中的OrgMode8.2.6,遇到了一个从OrgMode导出的HTML链接的特殊情况。我广泛使用了org id来为组织模式文件中的标题分配唯一的id(存储在标题的:PROPERTIES:抽屉中) 在OrgMode8.0中引入新的exporter框架之前,所有这些链接都可以正常工作。无论标题的层次结构级别如何,导出的基于HTML ID的链接都可以正常工作。但是,使用新的导出器框架会产生不同的结果。现在,当目标标题低于导出设置中定义的标

我在Windows7Ultimate上运行Emacs24.3.1中的OrgMode8.2.6,遇到了一个从OrgMode导出的HTML链接的特殊情况。我广泛使用了
org id
来为组织模式文件中的标题分配唯一的id(存储在标题的
:PROPERTIES:
抽屉中)

在OrgMode8.0中引入新的exporter框架之前,所有这些链接都可以正常工作。无论标题的层次结构级别如何,导出的基于HTML ID的链接都可以正常工作。但是,使用新的导出器框架会产生不同的结果。现在,当目标标题低于导出设置中定义的标题级别(默认为级别3)(
H:3
)时,基于ID的链接总是会失败。注意:这仅适用于导出的HTML;基于ID的链接在Emacs中可以完美地工作

下面是一个在我将其导出为HTML时演示此行为的最小示例(有关详细信息,请参见注释):

*标题级别1
**标题级别2
***标题级别3
:属性:
:ID:307db49e-e001-4a7b-9541-96eee2ae6f06
:完:
****非标题级别
:属性:
:ID:3be9179d-f838-4052-93ca-6C76C9AF12D
:完:
**标题级别2
***标题级别3
现在我想链接到文件中其他地方出现的信息。链接作为
预计在Emacs内。然而,当导出为HTML时,链接不会像它们一样工作
在组织模式8.0中引入新的导出器框架之前。
****基于ID的链接:[[ID:307db49e-e001-4a7b-9541-96eee2ae6f06][标题级别3]]
这个链接可以工作。使用ID始终适用于指向任何标题级别的链接。通过
“标题级别”我是指任何定义为标题的组织模式标题
(默认H:3)。
****基于ID的链接:[[ID:3be9179d-f838-4052-93ca-6C76C9AF12D][非标题级别]]
使用新导出器导出为HTML时,使用ID/的此链接不起作用
框架现在,使用ID作为指向任何
标题低于导出设置中定义的标题级别。
****非基于ID的链接:[[标题级别4][非标题级别]]
使用内部链接是可行的,但我有/许多/现有文件依赖于ID
对于标题级别低于我希望处理为(编号)级别的链接
标题,我有时还会链接到其他文件中的目标,在这种情况下,
使用ID创建了一个简单得多的工作流。
如果上面的文件名为
demo links.org
,则默认输出文件为
demo links.html
。第一个工作链接目标的HTML如下所示:

链接ID是目标代码的一部分,但未在链接代码中使用

非工作链接目标的HTML如下所示:

  • 我相信,
    ox html.el
    中的相关代码出现在“指向标题的链接”评论之后,但我对elisp是个新手(充其量)


    我的问题是:这是设计的行为,还是我可以改变一些设置,使导出工作与引入新导出框架之前的工作方式相同?

    查看
    org html headline
    函数的代码,似乎是“标准headline”案例(无论导出到hN的是什么)正在专门处理自定义ID:

    (let* (...
           (ids (remove nil
                        (list (org-element-property :CUSTOM_ID headline)
                              (concat "sec-" section-number)
                              (org-element-property :ID headline))))
           (preferred-id (car ids)) ;; <- here, id for the header is sec-XXX
           (extra-ids (cdr ids))
           ...)
      (format ...
              (format "outline-container-%s"
                      (or (org-element-property :CUSTOM_ID headline)
                          (concat "sec-" section-number)))
              ...
              (format "\n<h%d id=\"%s\">%s%s</h%d>\n"
                      level1
                      preferred-id
                      (mapconcat
                       (lambda (x)
                         (let ((id (org-export-solidify-link-text
                                    (if (org-uuidgen-p x) (concat "ID-" x)
                                      x))))
                           (org-html--anchor id))) ;; <- generate a list of <a id=ID-XXX></a>
                       extra-ids "")
                      full-text
                      level1)
              ...))
    
    (让*(。。。
    (ID(删除零)
    (列表(组织元素属性:自定义标题)
    (concat“sec-”章节编号)
    (组织元素属性:ID headline)))
    
    (首选id(汽车id));我也遇到了这个问题。此外,在org-7.9中,用“”括起来的文本可以在导出的HTML中显示,而在org-8.2中则无法显示


    由于声誉有限,我无法对该项目进行投票,因此我只需在没有正确答案的情况下回答

    我对代码的解释与您描述的差不多,但我认为可能遗漏了什么。因此,对我来说,这似乎也是一个bug。我将以bug的形式报告它。感谢您的输入。我很抱歉您遇到了同样的问题,但我也很高兴知道这不仅仅是我!感谢您的输入。我向组织报告了这一情况-模式邮件列表,问题已修复。
    (let* (...
           (ids (remove nil
                        (list (org-element-property :CUSTOM_ID headline)
                              (concat "sec-" section-number)
                              (org-element-property :ID headline))))
           (preferred-id (car ids)) ;; <- here, id for the header is sec-XXX
           (extra-ids (cdr ids))
           ...)
      (format ...
              (format "outline-container-%s"
                      (or (org-element-property :CUSTOM_ID headline)
                          (concat "sec-" section-number)))
              ...
              (format "\n<h%d id=\"%s\">%s%s</h%d>\n"
                      level1
                      preferred-id
                      (mapconcat
                       (lambda (x)
                         (let ((id (org-export-solidify-link-text
                                    (if (org-uuidgen-p x) (concat "ID-" x)
                                      x))))
                           (org-html--anchor id))) ;; <- generate a list of <a id=ID-XXX></a>
                       extra-ids "")
                      full-text
                      level1)
              ...))