【问题标题】:Easiest way to convert static HTML documents on SharePoint在 SharePoint 上转换静态 HTML 文档的最简单方法
【发布时间】:2011-12-03 19:17:19
【问题描述】:

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

编辑:答案必须是可行的,价格

【问题讨论】:

  • 我确信在这一点上没有简单的方法可以做到这一点。这些工具太昂贵或不够全面。实际上,也许我会构建自己的脚本。但是我想我会得到一个赏金,看看是否有其他人想在这方面真正努力,你的答案必须是可行的,价格不超过 500 美元。

标签: html sharepoint migration sharepoint-2007


【解决方案1】:

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();
  } 
} 

【讨论】:

  • 没有考虑自定义编码,你赢了:-)
  • 嗯,我刚开始学习编程;这是在 C++ 中吗? C#?爪哇?我怀疑很容易适应任何口味,但我想知道我从哪种口味开始——或者我是否已经在那里。 :)
【解决方案2】:

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

【讨论】:

  • 不,错过了关于易于执行和维护网站上的 SharePoint 外观和感觉的要点,我仍然必须更新每个页眉和页脚以与 SharePoint 网站保持一致...跨度>
【解决方案3】:

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

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

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

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

这两个命令会将文件的前 X 行替换为名为 header 的文件中的内容,并将文件的最后 Y 行替换为 footer 的内容,并将它们放在名为 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 &gt; $i.stripped_header; done

在你的文件准备好之后,上面的第二个命令就可以放在页眉和页脚上。

有点啰嗦,但重点是您应该能够通过编写一些脚本轻松地处理这个问题。

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多