【问题标题】:texinfo include HTML header from filetexinfo 包含来自文件的 HTML 标头
【发布时间】:2014-06-28 23:24:58
【问题描述】:

我正在编写 Texinfo 手册,对于它的 HTML,我需要将另一个文件的内容包含到 HTML 输出的 <head> ... </head> 部分。更具体地说,我想在输出的 HTML 版本中添加 mathjax 功能,以很好地显示方程式。但我似乎找不到如何将其 <script>...</script> 添加到标题中!

【问题讨论】:

    标签: html texinfo


    【解决方案1】:

    由于我找不到答案,而且我自己的工作似乎并不难,所以我编写了一个小型 C 程序来为我完成这项工作。在我的情况下,它完美地完成了这项工作!

    当然,如果 Texinfo 中有一个选项可以完成这项工作,那将是一个正确的答案,这只是让我自己暂时解决问题的一种补救措施。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    #define ADDTOHEADER "             \n\
    <script type=\"text/javascript\"  \n\
      src=\"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML\">\n\
    </head>"
    
    
    void
    addtexttohtml(char *filename)
    {
      char toadd[]=ADDTOHEADER;
      size_t len=0;
      ssize_t read;
      FILE *in, *out;
      char tmpname[]="tmp457204598345.html", *line=NULL;
    
      in=fopen(filename, "r");
      out=fopen(tmpname, "w");
      if (in == NULL) exit(EXIT_FAILURE);
      if (out == NULL) exit(EXIT_FAILURE);
    
      while ((read = getline(&line, &len, in)) != -1)
        {
          if(strcmp(line, "</head>\n")==0) break;
          fprintf(out, "%s", line);
        }
    
      fprintf(out, "%s", toadd);
    
      while ((read = getline(&line, &len, in)) != -1)
        fprintf(out, "%s", line);
    
      if(line)
        free(line);
    
      fclose(in);
      fclose(out);
    
      rename(tmpname, filename);
    }
    
    int
    main(int argc, char *argv[])
    {
      int i;
    
      for(i=1;i<argc;i++)
        addtexttohtml(argv[i]);
    
      return 0;
    }
    

    这个程序可以很容易地用$ gcc addtoheader.c编译。

    然后我们就可以轻松的把编译好的程序(默认应该叫a.out)和HTML文件一起运行:

    $ a.out *.html
    

    您可以将宏更改为您想要的任何文本。

    【讨论】:

    • 来自未来的注意事项:cdn.mathjax.org 即将结束生命周期,请查看mathjax.org/cdn-shutting-down 以获取迁移提示(也许为未来的读者更新您的帖子)。
    • 请注意可能来自过去的未来:您可以使用简单的 sed 命令来实现相同的目的:JS_URL=http://example.com/my.js sed -i 's|&lt;/head&gt;|&lt;script type="text/javascript" src="${JS_URL}"&gt;&lt;/script&gt;\ \0|' my-files_*.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多