2010-01-20 1 views
2

В настоящее время я столкнулся с большим количеством статических HTML-документов для преобразования в SharePoint (MOSS 2007), в основном они могут оставаться статическими, но их необходимо перенести на сайт SharePoint с помощью Взгляд SharePoint (каждая страница должна быть обновлена ​​с верхними и нижними колонтитулами SharePoint как минимум), есть ли там какие-либо инструменты, которые могут помочь в достижении этого, о котором все знают? Благодаря!Самый простой способ конвертировать статические HTML-документы в SharePoint

Редактировать: Ответ должен быть выполнимым по цене < $ 500.

+0

Я убежден, что в этот момент нет простого способа сделать это. Инструменты являются дорогими или недостаточно всеобъемлющими. Может быть, я построю собственный сценарий. Я думаю, однако, что я получу щедрость, чтобы увидеть, хочет ли кто-нибудь еще попытаться это сделать, ваш ответ должен быть выполнимым по цене, не превышающей 500 долларов. – tekiegreg

ответ

3

КНИ Ответ заключается в создании 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(); 
    } 
} 
+0

Не думал о пользовательском кодировании, вы win :-) – tekiegreg

+0

Ummm, я только начинаю изучать программирование; это в C++? C#? Ява? легко поддающийся адаптации к любым, я подозреваю, но я хотел бы знать, какой вкус я начинаю, или если я уже там. :) – dwwilson66

+0

@tekiegreg Как и большинство демо-кода SP, в C# – TFD

1

Для ручной копирования/вставки содержимого в «Look and Feel» вы можете использовать основную страницу (Просмотреть все содержимое сайта => Создать => Веб-страницы => Основная страница). Вы также можете загружать прямые HTML-файлы в библиотеки документов и указывать их как «контентную ссылку» для содержимого этих основных страниц.

+0

Нет, пропустил мысль о том, что вы легко выполняете и поддерживаете внешний вид SharePoint на сайте, мне все равно нужно обновлять каждый верхний и нижний колонтитулы, чтобы они соответствовали сайту SharePoint ... – tekiegreg

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 и последние Y строк файла с содержимым footer и поместите их в файлы с именем file01.html.stripped.sharepoint, готовые для перемещения (и переименования).

Если это не сработает, но вы знаете, что все строки выше или ниже определенной строки текста необходимо разрезать, тогда вы можете использовать этот скрипт (вставленный в файл под названием «обрезка») для выполнения первой подготовки задача:

#!/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; 
} 

Первый аргумент является направление вы хотите вырезать, вторая строка (в обычной форме выражения), а третье это имя файла:

Run как:

perl trim after '^STRING$' file.html

и для всех файлов:

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

После того как ваши файлы нацелены, то вторая команда сверху, чтобы бросить на заголовке и нижний колонтитул будет все, что необходимо.

Немного длинный, но дело в том, что вы легко сможете справиться с этим с помощью небольшого сценария.