Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
internal_link2 [2009/08/03 08:48] – created clareinternal_link2 [2022/11/03 15:08] (current) – external edit 127.0.0.1
Line 1: Line 1:
-Attribute VB_Name "Word2DokuWikiv3" Sub Word2DokuWiki() Application.ScreenUpdating False ReplaceQuotes DokuWikiEscapeChars DokuWikiConvertHyperlinks DokuWikiConvertH1 DokuWikiConvertH2 DokuWikiConvertH3 DokuWikiConvertH4 DokuWikiConvertH5 DokuWikiConvertItalic DokuWikiConvertBold DokuWikiConvertUnderline DokuWikiConvertStrikeThrough DokuWikiConvertSuperscript DokuWikiConvertSubscript DokuWikiConvertLists DokuWikiConvertTable UndoDokuWikiEscapeChars ' Copy to clipboard ActiveDocument.Content.Copy Application.ScreenUpdating True End Sub Private Sub DokuWikiConvertH1() ReplaceHeading wdStyleHeading1, "======" End Sub Private Sub DokuWikiConvertH2() ReplaceHeading wdStyleHeading2, "=====" End Sub Private Sub DokuWikiConvertH3() ReplaceHeading wdStyleHeading3, "====" End Sub Private Sub DokuWikiConvertH4() ReplaceHeading wdStyleHeading4, "===" End Sub Private Sub DokuWikiConvertH5() ReplaceHeading wdStyleHeading5, "==" End Sub Private Sub DokuWikiConvertH6() ReplaceHeading wdStyleHeading5, "=" End Sub Private Sub DokuWikiConvertBold() ActiveDocument.Select With Selection.Find .ClearFormatting .Font.Bold = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If Len(.Text) > 1 And InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text vbCr Then If Not Left(.Text, 2) "%%**%%" Then .InsertBefore "%%**%%" End If If Not Right(.Text, 2) "%%**%%" Then .InsertAfter "%%**%%" End If End If .Style = ActiveDocument.Styles("Default Paragraph Font") .Font.Bold = False End With Loop End With End Sub Private Sub DokuWikiConvertItalic() ActiveDocument.Select With Selection.Find .ClearFormatting .Font.Italic = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If Len(.Text) > 1 And InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then If Not Left(.Text, 2) = "%%//%%" Then .InsertBefore "%%//%%" End If If Not Right(.Text, 2) = "%%//%%" Then .InsertAfter "%%//%%" End If End If .Style = ActiveDocument.Styles("Default Paragraph Font") .Font.Italic = False End With Loop End With End Sub Private Sub DokuWikiConvertUnderline() ActiveDocument.Select With Selection.Find .ClearFormatting .Font.Underline = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If Len(.Text) > 1 And InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text = vbCr Then If Not Left(.Text, 2) = "%%__%%" Then .InsertBefore "%%__%%" End If If Not Right(.Text, 2) = "%%__%%" Then .InsertAfter "%%__%%" End If End If .Style = ActiveDocument.Styles("Default Paragraph Font") .Font.Underline = False End With Loop End With End Sub Private Sub DokuWikiConvertStrikeThrough() ActiveDocument.Select With Selection.Find .ClearFormatting .Font.StrikeThrough = True .Text = "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If Len(.Text) > 1 And InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loop, as well) If Not .Text vbCr Then If Not Left(.Text, 2) "<del>" Then .InsertBefore "</del>" End If If Not Right(.Text, 2) "+====== Convert HTML to DokuWiki ======
  
-" Then .InsertAfter "+An idea for converting existing documents to text files with [[http://www.dokuwiki.org/tips:dokuwiki|DokuWiki]] [[http://www.dokuwiki.org/tips:syntax|syntax]] using an HTML to Text converter. I've set up a config file for the tool available at [[http://www.mbayer.de/html2text/|http://www.mbayer.de/html2text/]] which produces some usable results: [[http://www.dokuwiki.org/_media/wiki:text2html.rc|text2html.rc]].
  
-" End If End If .Style = ActiveDocument.Styles("Default Paragraph Font".Font.StrikeThrough = False End With Loop End With End Sub Private Sub DokuWikiConvertSuperscript() ActiveDocument.Select With Selection.Find .ClearFormatting .Font.Superscript True .Text "" .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection .Text = Trim(.Text) If Len(.Text) > 1 And InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents loop, as well) If Not .Text = vbCr Then If Not Left(.Text, 2) = "<sup>" Then .InsertBefore "<sup>" End If If Not Right(.Text, 2) = "</sup>" Then .InsertAfter "</sup>" End If End If .Style = ActiveDocument.Styles("Default Paragraph Font".Font.Superscript = False End With Loop End With End Sub Private Sub DokuWikiConvertSubscript() ActiveDocument.Select With Selection.Find .ClearFormatting .Font.Subscript True .Text "" .Format True .MatchCase False .MatchWholeWord False .MatchWildcards False .MatchSoundsLike False .MatchAllWordForms False .Forward True .Wrap wdFindContinue Do While .Execute With Selection .Text = Trim(.Text) If Len(.Text) > 1 And InStr(1, .Text, vbCr) Then ' Just process the chunk before any newline characters ' We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If ' Don't bother to markup newline characters (prevents a loopas well) If Not .Text = vbCr Then If Not Left(.Text2) = "<sub>" Then .InsertBefore "<sub>" End If If Not Right(.Text, 2) = "</sub>" Then .InsertAfter "</sub>" End If End If .Style = ActiveDocument.Styles("Default Paragraph Font") .Font.Subscript = False End With Loop End With End Sub Private Sub DokuWikiConvertLists() Dim para As Paragraph For Each para In ActiveDocument.ListParagraphs With para.Range .InsertBefore " " If .ListFormat.ListType = wdListBullet Then .InsertBefore "*" Else .InsertBefore "-" End If For i = 1 To .ListFormat.ListLevelNumber .InsertBefore " " Next i .ListFormat.RemoveNumbers End With Next para End Sub Private Sub DokuWikiConvertHyperlinks() Dim hyperCount As Integer hyperCount ActiveDocument.Hyperlinks.Count For i 1 To hyperCount With ActiveDocument.Hyperlinks(1) Dim addr As String addr = .Address .Delete .Range.InsertBefore "[" .Range.InsertAfter "-" & addr & "]" End With Next i End Sub ' Replace all smart quotes with their dumb equivalents Private Sub ReplaceQuotes() Dim quotes As Boolean quotes = Options.AutoFormatAsYouTypeReplaceQuotes Options.AutoFormatAsYouTypeReplaceQuotes = False ReplaceString ChrW(8220)"""" ReplaceString ChrW(8221), """" ReplaceString "ë""'" ReplaceString "í""'" Options.AutoFormatAsYouTypeReplaceQuotes = quotes End Sub Private Sub DokuWikiEscapeChars() EscapeCharacter "*" EscapeCharacter "#" EscapeCharacter "_" EscapeCharacter "-" EscapeCharacter "+" EscapeCharacter "{" EscapeCharacter "}" EscapeCharacter "[" EscapeCharacter "]" EscapeCharacter "~" EscapeCharacter "^^" EscapeCharacter "|" EscapeCharacter "'" End Sub Private Function ReplaceHeading(styleHeading As String, headerPrefix As String) Dim normalStyle As Style Set normalStyle ActiveDocument.Styles(wdStyleNormal) ActiveDocument.Select With Selection.Find .ClearFormatting .Style ActiveDocument.Styles(styleHeading) .Text "" .Format True .MatchCase False .MatchWholeWord False .MatchWildcards False .MatchSoundsLike False .MatchAllWordForms = False .Forward = True .Wrap = wdFindContinue Do While .Execute With Selection If InStr(1.TextvbCr) Then Just process the chunk before any newline characters We'll pick-up the rest with the next search .Collapse .MoveEndUntil vbCr End If Don't bother to markup newline characters (prevents a loopas well) If Not .Text = vbCr Then .InsertBefore headerPrefix .InsertBefore vbCr .InsertAfter headerPrefix End If .Style = normalStyle End With Loop End With End Function Private Sub DokuWikiConvertTable() Dim TotTables As Long Do While ActiveDocument.Tables.Count() 0 ActiveDocument.Tables(1).Range.Select Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " $s$|$s$ " .Replacement.Text = "I" .Forward = True .Wrap wdFindContinue .Format False .MatchCase False .MatchWholeWord False .MatchWildcards False .MatchSoundsLike False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " $s$^^$s$ " .Replacement.Text = "/\" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Application.DefaultTableSeparator = "|" Selection.Rows.ConvertToText Separator:=wdSeparateByDefaultListSeparatorNestedTables:=True Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p" .Replacement.Text = "|^p|" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.InsertBefore ("|"Selection.InsertParagraphAfter Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p|^p" .Replacement.Text = "^p" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text "$s$blank$s$" .Replacement.Text "" .Forward True .Wrap wdFindContinue .Format False .MatchCase False .MatchWholeWord False .MatchWildcards False .MatchSoundsLike False .MatchAllWordForms False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "||" .Replacement.Text = "| |" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "||" .Replacement.Text = "|" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "|" .Replacement.Text = "| |" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "| |" .Replacement.Text = "|" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Paragraphs(1).Range.Select Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "|.Replacement.Text = "^^" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Loop End Sub Private Sub UndoDokuWikiEscapeChars(UndoEscapeCharacter "*" UndoEscapeCharacter "#" UndoEscapeCharacter "_" UndoEscapeCharacter "-" UndoEscapeCharacter "+" UndoEscapeCharacter "{" UndoEscapeCharacter "}" UndoEscapeCharacter "[" UndoEscapeCharacter "]" UndoEscapeCharacter "~" UndoEscapeCharacter "^^" UndoEscapeCharacter "|" UndoEscapeCharacter "'" End Sub Private Function EscapeCharacter(char As String) ReplaceString char, " $s$" & char & "$s$ " End Function Private Function UndoEscapeCharacter(char As String) ReplaceString " $s$" & char & "$s$ ", char End Function Private Function ReplaceString(findStr As String, replacementStr As String) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = findStr .Replacement.Text = replacementStr .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Function+Thomas JMessenger made a Perl module to convert HTML to DokuWiki's syntax available at [[http://www.citlink.net/%7Emessengertj/|http://www.citlink.net/~messengertj/]] (see [[http://bugs.splitbrain.org/index.php?do=details&amp;task_id=81|81]], too) 
 + 
 +Or the one at CPAN: [[http://search.cpan.org/%7Ediberri/HTML-WikiConverter-0.61/lib/HTML/WikiConverter.pm|http://search.cpan.org/~diberri/HTML-WikiConverter-0.61/lib/HTML/WikiConverter.pm]] 
 + 
 +A web interface used to convert pasted text or webpage page is available at [[http://diberri.dyndns.org/html2wiki.html|http://diberri.dyndns.org/html2wiki.html]] 
 + 
 +A Converter Tool (HTML>DokuWiki, UTF8, Tablespacing[[http://runtime-basic.net/Projekt:WikiTool|WikiTool]]  
 + 
 +===== Html2DokuWiki Converter GUI for Win32 ===== 
 + 
 +Html2DokuWiki is a free HTML to DokuWiki converter for Win32 platformsIt is very simple to install and extremely easy to use. Just extract the executable from the archive, double-click to startand Html2DokuWiki is ready to go. 
 + 
 +To start convertingjust type HTML into the upper editThe converted DokuWiki syntax will immediately appear in the lower edit. Then select (''CTRL+A''the converted document and copy / paste it into any DokuWiki siteLarger HTML documents can also be pasted into the HTML input. 
 + 
 +[[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|Click here to download Html2DokuWiki]]. 
 + 
 +**Supported** **HTML** **Elements** 
 + 
 +[[http://www.dokuwiki.org/lib/exe/fetch.php?cache=nocache&amp;media=http%3A%2F%2Fwww.yunqa.de%2Fsoftware%2FHtml2DokuWiki.png|{{ Convert%20HTML%20to%20DokuWiki_files:image002.gif?250x208|Html2DokuWiki}}]]Html2DokuWiki converts all HTML elements currently supported by DokuWiki: 
 + 
 +  * **<A>** → linksoutputs multiple links for formatting 
 +  * **<B>** → ''%%**%%'' 
 +  * **<BLOCKQUOTE>** → ''>''including nested quotes 
 +  * **<BR>** → new line ''\\'' 
 +  * **%%<CODE>%%** → ''%%''%%'' 
 +  * **<DEL>** → ''<del>'' 
 +  * **<DL><DT>, and <DD>** → Simulate output as simple unnumbered lists with ''<DT>'' as bold. 
 +  **<H1>** … **<H5>** → ''%%======%%'' to ''%%==%%'' 
 +  * **<I>** → ''%%//%%'' 
 +  * **<IMG>** → images 
 +  * **<LI>** → list itemsincluding nested lists 
 +  * **<OL>** → numbered lists 
 +  * **<P>** → new paragraph 
 +  * **<PRE>** → ''%%<code>%%'' 
 +  * **<S>** → ''%%**%%'' 
 +  * **<STRIKE>** → ''%%//%%'' 
 +  * **<STRONG>** → ''%%**%%'' 
 +  * **%%<SUB>%%** → ''%%<sub>%%'' 
 +  * **%%<SUP>%%** → ''%%<sup>%%'' 
 +  * **<TABLE>** → tables 
 +  * **<TBODY>** → recognizedbut not output 
 +  * **<TD>** → table cell, with ''align'' and ''colspan'' support 
 +  * **<TFOOT>** → recognized, but not output 
 +  * **<TH>** → table header cell, with ''align'' and ''colspan'' support 
 +  * **<THEAD>** → recognizedbut not output 
 +  * **<TR>** → table row, with ''align'' support 
 +  * **<TT>** → to ''%%''%%'' 
 +  * **<U>** → to ''%%__%%'' 
 + 
 +**Special Features** 
 + 
 +  * Internal links are converted to DokuWiki''':'' style, external ones are left unchanged''mailto'''':'' is removed from e-mail links. 
 +  * Support for alignment in table cells and rows. 
 +  * Image properties are converted, including alignment, width, and height. 
 +  * Formatting is only applied where accepted by DokuWiki, but not to ''%%===%% … ==='' and ''%%<code>%% … </code>'', for example. 
 +  * Full Unicode support, with optional UTF-8 input or output encoding. 
 +  * Option to hide links from DokuWiki syntax. 
 + 
 +**Author, Contact, and Development** 
 + 
 +Html2DokuWiki is developed by Ralf JunkerYou can contact the author via the [[http://www.freelists.org/list/yunqa|Yunqa]][[http://www.freelists.org/list/yunqamailing list]]Feel free to report praisebugs, or suggestions about Html2DokuWiki. 
 + 
 +The converter might also be available as a software library %%(*%%.DLL, *.DCU, or Delphi source code)Please get in touch if interested. 
 + 
 +**Version History** 
 + 
 +2007-08-27 
 + 
 +  * Add inline formatting to table cells. 
 +  * New UTF-8 input encoding. 
 +  * Fix paragraph problems with alternating inline-tags and block-tags. 
 +  * Do not escape ''%%//%%'' to ''<nowiki>%%</nowiki>%%//%%<nowiki>%%</nowiki>'' if part of an external URI. 
 +  * Escape ''<nowiki>%%</nowiki>'' to ''<nowiki>%%<nowiki>''. 
 +  * Empty heading elements separate paragraphs. 
 + 
 +2007-10-22 
 + 
 +  * New: Support for ''<DL>'', ''<DT>'', and ''<DD>''Simulate output as simple unnumbered lists with ''<DT>'' as bold. 
 +  * Improve: Empty paragraph inserts line break. 
 +  * ImproveRecognize DokuWiki internal escapes ''<nowiki>%%</nowiki>'', ''<nowiki>'', and ''</nowiki>'' and escape them properly. 
 +  * Improve: Escape table markup (''%%|%%'' and ''%%^%%''when inside a table. 
 +  * Improve: Escape double parenthesis ''%%((%%'', which starts a DokuWiki footnote. 
 +  * Improve: Suppress DokuWiki escapes and typography in ''<PRE>'' blocks. 
 +  * Fix: Newline output for HTML like ''<P><PRE>one</PRE>two</P><BR>three''. 
 +  * Fix''<TBODY>'' table problem where a new row did not ouput a linebreak. 
 + 
 +===== Workflow Microsoft Word 2 DokuWiki using html2wiki-GUI ===== 
 + 
 +I was looking for a way to convert about 150 DOC-files (Microsoft Word2000 or 2003) in our new wiki without too much hazzleThe macros available didn´t work for me. 
 + 
 +**Specifications** 
 + 
 +  * usable for multiple files 
 +  * converting tables 
 +  * converting images 
 + 
 +**suggested** **workflow** (not used excessively yet) 
 + 
 +  - open word-document in OpenOffice 
 +  - save as html (the pictures will be stored in the same folder as the html) 
 +  - open html2dokuwiki plugin[[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|Click]] here to download Html2DokuWiki 
 +  - [[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|paste and copy html-code in the ]][[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|GUI]] 
 +  - [[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|save as txt-file (or create new page for integrity)]] 
 +  - [[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|copy txt-file in the DATA/PAGES/NAMESPACE-folder and Pictures in the DATA/MEDIA/NAMESPACE-folder]] 
 + 
 +[[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|Is there a faster way (2009/07/18 by ]][[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|bobeck]][[http://www.yunqa.de/delphi/downloads/Html2DokuWiki.zip|)]]

Personal Tools