在SharePoint上转换静态HTML文档的最简单方法

时间:2010-01-20 16:02:32

标签: html sharepoint migration sharepoint-2007

目前我面临很多静态HTML文档转换为SharePoint(MOSS 2007),基本上它们可以保持静态,但需要迁移到具有SharePoint外观的SharePoint网站(每个页面都需要至少使用SharePoint页眉和页脚进行更新,是否有任何工具可以帮助实现这一点,任何人都知道?谢谢!

编辑:答案必须以价格< $ 500

3 个答案:

答案 0 :(得分:3)

QND答案是创建500个自定义页面

using (SPSite siteCollection = new SPSite("http://yoursite.com")) {
  using (SPWeb site = siteCollection.RootWeb) {
    MemoryStream fileStream = new MemoryStream();
    StreamWriter fileWriter = new StreamWriter(fileStream);
    fileWriter.WriteLine("<%@ Page MasterPageFile=\"~masterurl/default.master\"  meta:progid=\"SharePoint.WebPartPage.Document\" %>");
    fileWriter.WriteLine("<asp:Content ID=\"PageTitle\" runat=\"server\" contentplaceholderid=\"PlaceHolderPageTitle\">");
    fileWriter.WriteLine(...insert page title here...);
    fileWriter.WriteLine("</asp:Content>");
    fileWriter.WriteLine("<asp:Content ID=\"PageTitleInTitleArea\" runat=\"server\" contentplaceholderid=\"PlaceHolderPageTitleInTitleArea\">");
    fileWriter.WriteLine(...insert page title summary here...);
    fileWriter.WriteLine("</asp:Content>");
    fileWriter.WriteLine("<asp:Content ID=\"PageMain\" runat=\"server\" ContentPlaceHolderID=\"PlaceHolderMain\" >");
    fileWriter.WriteLine(...insert the html body mark up here...);
    fileWriter.WriteLine("</asp:Content>");
    fileWriter.Flush();
    site.Files.Add(... your page name .aspx here ..., fileStream);
    fileWriter.Close();
    fileWriter.Dispose();
    fileStream.Close();
    fileWriter.Dispose();
  } 
} 

答案 1 :(得分:1)

要将内容手动复制/粘贴到“外观”中,您可以使用基本页面(查看所有网站内容=&gt;创建=&gt;网页=&gt;基本页面)。您还可以将直接HTML文件上传到文档库,并将它们指向这些基本页面内容的“内容链接”。

答案 2 :(得分:0)

这些html页面是否以相当标准的方式编写?如果您知道需要从顶部删除前X行和从底部删除Y行,则可以使用以下unix命令字符串来准备文件(假设,例如,它们都命名为file01.html,file02。 html等):

for i in file*.html; do head -n -X $i | tail +Y > $i.stripped; done

然后,您可以在名称相应的文件中使用标准页眉和页脚,并运行如下命令:

for i in num*.stripped; do cat header $i footer > $i.sharepoint; done

这两个命令将使用名为header的文件中的内容替换文件的前X行,并使用footer的内容替换文件的最后Y行,并将它们放在名为的文件中file01.html.stripped.sharepoint已准备好移动(和重命名)。

如果这不起作用但您知道需要剪切某个文本字符串上方或下方的所有行,则可以使用此脚本(粘贴到名为“trim”的文件中)来执行第一个准备任务:

#!/usr/bin/perl

my $direction = shift;
my $r = shift;
my $file = shift;

open(FILE,"<",$file) or die 'could not open file ' . $file;

my $matched = 0;

while(<FILE>) {
   $matched ||= m/$r/;
   if ($direction eq 'before') {
      next if not $matched;
   } else {
      last if $matched;
   }    
   print;
}

第一个参数是你想要剪切的方向,第二个是字符串(以正则表达式形式),第三个是文件名:

运行如:

perl trim after '^STRING$' file.html

和所有文件:

for i in file*.html; do perl trim after '^STRING$' $i > $i.stripped_header; done

准备完文件后,上面的第二个命令将抛出页眉和页脚,这是必要的。

有点长篇大论,但关键是你应该能够通过一点脚本轻松处理这个问题。