1c1,2
< Attribute VB_Name = "Module1"
---
> Attribute VB_Name = "Word2TWiki"
> 
5c6
< 'For references: http://www.twiki.org/bin/view/Plugins/MsWordToTWikiMLAddOn
---
> 'For references: http://www.twiki.org/cgi-bin/view/Plugins/MsWordToTWikiMLAddOn
9,17c10
<     CleanFormattingParagraphEndingsBold
<     CleanFormattingParagraphEndingsItalic
<     
<     ConvertH1
<     ConvertH2
<     ConvertH3
<     ConvertH4
<     ConvertH5
<     ConvertH6
---
>     CleanFormattingParagraphEndings
19,20c12,26
<     ConvertItalic
<     ConvertBold
---
>     ConvertHeading "---+", wdStyleHeading1
>     ConvertHeading "---++", wdStyleHeading2
>     ConvertHeading "---+++", wdStyleHeading3
>     ConvertHeading "---++++", wdStyleHeading4
>     ConvertHeading "---+++++", wdStyleHeading5
>     ConvertHeading "---++++++", wdStyleHeading6
>     
>     ConvertStyle "__", bold:=True, italic:=True
>     ConvertStyle "*<u>", twikiCode2:="</u>*", bold:=True, underline:=wdUnderlineSingle
>     ConvertStyle "==", bold:=True, fontName:="Courier New"
>     
>     ConvertStyle "*", bold:=True
>     ConvertStyle "_", italic:=True
>     ConvertStyle "<u>", twikiCode2:="</u>", underline:=wdUnderlineSingle
>     ConvertStyle "=", fontName:="Courier New"
156,157c162
< Private Sub CleanFormattingParagraphEndingsBold()
<     Selection.Find.ClearFormatting
---
> Private Sub CleanFormattingParagraphEndings()
158a164,165
>         .ClearFormatting
>         'Target
160c167
<         .Font.Bold = True
---
>         'Replacement
163,180d169
<         .Replacement.Text = "^p"
<         .Wrap = wdFindContinue
<         .Format = True
<         .MatchCase = False
<         .MatchWholeWord = True
<         .MatchWildcards = False
<         .MatchSoundsLike = False
<         .MatchAllWordForms = False
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
< End Sub
< 
< Private Sub CleanFormattingParagraphEndingsItalic()
<     Selection.Find.ClearFormatting
<     With Selection.Find
<         .Text = "^p"
<         .Font.Italic = True
<         .Replacement.ClearFormatting
181a171,172
>         .Replacement.Font.underline = wdUnderlineNone
>         .Replacement.Font.Name = "Arial"
182a174
>         'Options
194,405c186
< Private Sub ConvertH1()
<     Dim normalStyle As Style
<     Set normalStyle = ActiveDocument.Styles(wdStyleNormal)
<     
<     ActiveDocument.Select
<     
<     With Selection.Find
<     
<         .ClearFormatting
<         .Style = ActiveDocument.Styles(wdStyleHeading1)
<         .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, .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
<                     .InsertBefore "---+ "
<                 End If
<                 
<                 .Style = normalStyle
<             End With
<         Loop
<     End With
< End Sub
< 
< 
< Private Sub ConvertH2()
<     Dim normalStyle As Style
<     Set normalStyle = ActiveDocument.Styles(wdStyleNormal)
<     
<     ActiveDocument.Select
<     
<     With Selection.Find
<     
<         .ClearFormatting
<         .Style = ActiveDocument.Styles(wdStyleHeading2)
<         .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, .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
<                     .InsertBefore "---++ "
<                 End If
<                 
<                 .Style = normalStyle
<             End With
<         Loop
<     End With
< End Sub
< 
< Private Sub ConvertH3()
<     Dim normalStyle As Style
<     Set normalStyle = ActiveDocument.Styles(wdStyleNormal)
<     
<     ActiveDocument.Select
<     
<     With Selection.Find
<     
<         .ClearFormatting
<         .Style = ActiveDocument.Styles(wdStyleHeading3)
<         .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, .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
<                     .InsertBefore "---+++ "
<                 End If
<                 
<                 .Style = normalStyle
<             End With
<         Loop
<     End With
< End Sub
< 
< Private Sub ConvertH4()
<     Dim normalStyle As Style
<     Set normalStyle = ActiveDocument.Styles(wdStyleNormal)
<     
<     ActiveDocument.Select
<     
<     With Selection.Find
<     
<         .ClearFormatting
<         .Style = ActiveDocument.Styles(wdStyleHeading4)
<         .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, .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
<                     .InsertBefore "---++++ "
<                 End If
<                 
<                 .Style = normalStyle
<             End With
<         Loop
<     End With
< End Sub
< 
< Private Sub ConvertH5()
<     Dim normalStyle As Style
<     Set normalStyle = ActiveDocument.Styles(wdStyleNormal)
<     
<     ActiveDocument.Select
<     
<     With Selection.Find
<     
<         .ClearFormatting
<         .Style = ActiveDocument.Styles(wdStyleHeading5)
<         .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, .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
<                     .InsertBefore "---+++++ "
<                 End If
<                 
<                 .Style = normalStyle
<             End With
<         Loop
<     End With
< End Sub
< 
< Private Sub ConvertH6()
---
> Private Sub ConvertHeading(twikiCode As String, heading As WdBuiltinStyle)
414c195
<         .Style = ActiveDocument.Styles(wdStyleHeading6)
---
>         .style = ActiveDocument.Styles(heading)
438c219
<                     .InsertBefore "---++++++ "
---
>                     .InsertBefore twikiCode + " "
447,448c228,229
< Private Sub ConvertBold()
< 'This function converts Bold text in Word to TWiki markup
---
> Private Sub ConvertStyle(twikiCode1 As String, Optional twikiCode2 As String, Optional bold As Boolean = False, Optional italic As Boolean = False, Optional underline As WdUnderline = wdUndefined, Optional fontName As String = "")
> 'This function converts styled text in Word to TWiki markup
450,452c231,233
< 'This function also solves the problem that if a word is in bold or
< 'italics, and the trailing space is also in bold/italics, then
< 'a space will be placed before the trailing * or _ causing the
---
> 'This function also solves the problem that if a word is in a style,
> 'and the trailing space is also in that style, then
> 'a space will be placed before the trailing wikiCode causing the
464,466c245,254
<    
<    Selection.Find.ClearFormatting
<    
---
> 
>     With Selection.Find
>         .ClearFormatting
>         .Replacement.ClearFormatting
>         .MatchSoundsLike = False
>         .MatchAllWordForms = False
>         .Forward = True
>         .Wrap = wdFindContinue
>     End With
>     
468,471c256,262
< '   * find: (empty) Formatted:Bold
< '   * repl: <b>^&</b> Formatted:NotBold
<    With Selection.Find
<         .Font.Bold = True
---
> '   * find: (empty) Formatted:Style
> '   * repl: <TWikiStyle>^&</TWikiStyle> Formatted:NotStyle
>     With Selection.Find
>         .Font.bold = bold
>         .Font.italic = italic
>         .Font.underline = underline
>         .Font.Name = fontName
473c264
<         .Replacement.Text = "<TWikiBold>^&</TWikiBold>"
---
>         .Replacement.Text = "<TWikiStyle>^&</TWikiStyle>"
475,476c266,267
<         .Forward = True
<         .Wrap = wdFindContinue
---
>         .Replacement.Font.italic = False
>         .Replacement.Font.underline = wdUnderlineNone
481,482d271
<         .MatchSoundsLike = False
<         .MatchAllWordForms = False
484a274
>     
486c276
< '   * find: <b> </b>
---
> '   * find: <TWikiStyle> </TWikiStyle>
489c279
<         .Text = "<TWikiBold> </TWikiBold>"
---
>         .Text = "<TWikiStyle> </TWikiStyle>"
491,493d280
<         .Replacement.Font.Bold = False
<         .Forward = True
<         .Wrap = wdFindContinue
498,499d284
<         .MatchSoundsLike = False
<         .MatchAllWordForms = False
501a287
>     
503,504c289,290
< '   * find: \<b\>( @)<  (with wildcards)
< '   * repl: <b>
---
> '   * find: \<TWikiStyle\>( @)<  (with wildcards)
> '   * repl: <TWikiStyle>
506,509c292,293
<         .Text = "\<TWikiBold\>( @)<"
<         .Replacement.Text = "<TWikiBold>"
<         .Forward = True
<         .Wrap = wdFindContinue
---
>         .Text = "\<TWikiStyle\>( @)<"
>         .Replacement.Text = "<TWikiStyle>"
513,514d296
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
519,520c301,302
< '   * find: (>)( @)(\</b\>)  (with wildcards)
< '   * repl: </b>
---
> '   * find: (>)( @)(\</TWikiStyle\>)  (with wildcards)
> '   * repl: </TWikiStyle>
522,525c304,305
<         .Text = "(>)( @)(\</TWikiBold\>)"
<         .Replacement.Text = "</TWikiBold>"
<         .Forward = True
<         .Wrap = wdFindContinue
---
>         .Text = "(>)( @)(\</TWikiStyle\>)"
>         .Replacement.Text = "</TWikiStyle>"
529,530d308
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
535,536c313,314
< '   * find: (>)\<b\>  (with wildcards)
< '   * repl: \1 <b>
---
> '   * find: (>)\<TWikiStyle\>  (with wildcards)
> '   * repl: \1 <TWikiStyle>
538,541c316,317
<         .Text = "(>)\<TWikiBold\>"
<         .Replacement.Text = "\1 <TWikiBold>"
<         .Forward = True
<         .Wrap = wdFindContinue
---
>         .Text = "(>)\<TWikiStyle\>"
>         .Replacement.Text = "\1 <TWikiStyle>"
545,546d320
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
551,552c325,326
< '   * find: \</b\>(<)  (with wildcards)
< '   * repl: </b> \1
---
> '   * find: \</TWikiStyle\>(<)  (with wildcards)
> '   * repl: </TWikiStyle> \1
554,557c328,329
<         .Text = "\</TWikiBold\>(<)"
<         .Replacement.Text = "</TWikiBold> \1"
<         .Forward = True
<         .Wrap = wdFindContinue
---
>         .Text = "\</TWikiStyle\>(<)"
>         .Replacement.Text = "</TWikiStyle> \1"
561,562d332
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
567,568c337,338
< '   * find: \<b\>(*)\</b\>   (with wildcards)
< '   * repl: *\1* (Bold)
---
> '   * find: \<TWikiStyle\>(*)\</TWikiStyle\>   (with wildcards)
> '   * repl: twikiCode\1twikiCode
570,574c340,341
<         .Text = "\<TWikiBold\>(*)\</TWikiBold\>"
<         .Replacement.Text = "*\1*"
<         .Replacement.Font.Bold = False
<         .Forward = True
<         .Wrap = wdFindContinue
---
>         .Text = "\<TWikiStyle\>(*)\</TWikiStyle\>"
>         .Replacement.Text = twikiCode1 + "\1" + IIf(twikiCode2 = "", twikiCode1, twikiCode2)
578,579d344
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
586,698d350
< Private Sub ConvertItalic()
< 'Convert Italic text in Word to TWiki markup
< '
< 'This function also solves the problem that if a word is in bold or
< 'italics, and the trailing space is also in bold/italics, then
< 'a space will be placed before the trailing * or _ causing the
< 'effect to be ignored when first posted to TWiki.
< '
< 'The function works in the same manner as ConvertItalic
<    
<     Selection.Find.ClearFormatting
<     Selection.Find.Replacement.ClearFormatting
<     With Selection.Find
<         .Font.Italic = True
<         .Text = ""
<         .Replacement.Text = "<TWikiItalic>^&</TWikiItalic>"
<         .Forward = True
<         .Wrap = wdFindContinue
<         .Format = True
<         .MatchCase = False
<         .MatchWholeWord = False
<         .MatchWildcards = False
<         .MatchSoundsLike = False
<         .MatchAllWordForms = False
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
<     Selection.Find.ClearFormatting
<     Selection.Find.Replacement.Font.Italic = False
<     With Selection.Find
<         .Text = "<TWikiItalic> </TWikiItalic>"
<         .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 = "\<TWikiItalic\>( @)<"
<         .Replacement.Text = "<TWikiItalic>"
<         .Forward = True
<         .Wrap = wdFindContinue
<         .Format = False
<         .MatchCase = False
<         .MatchWholeWord = False
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
<         .MatchWildcards = True
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
<     With Selection.Find
<         .Text = "(>)( @)(\</TWikiItalic\>)"
<         .Replacement.Text = "</TWikiItalic>"
<         .Forward = True
<         .Wrap = wdFindContinue
<         .Format = False
<         .MatchCase = False
<         .MatchWholeWord = False
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
<         .MatchWildcards = True
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
<     With Selection.Find
<         .Text = "(>)\<TWikiItalic\>"
<         .Replacement.Text = "\1 <TWikiItalic>"
<         .Forward = True
<         .Wrap = wdFindContinue
<         .Format = False
<         .MatchCase = False
<         .MatchWholeWord = False
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
<         .MatchWildcards = True
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
<     With Selection.Find
<         .Text = "\</TWikiItalic\>(<)"
<         .Replacement.Text = "</TWikiItalic> \1"
<         .Forward = True
<         .Wrap = wdFindContinue
<         .Format = False
<         .MatchCase = False
<         .MatchWholeWord = False
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
<         .MatchWildcards = True
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
<     Selection.Find.ClearFormatting
<     Selection.Find.Replacement.ClearFormatting
<     With Selection.Find
<         .Text = "\<TWikiItalic\>(*)\</TWikiItalic\>"
<         .Replacement.Text = "_\1_"
<         .Replacement.Font.Italic = False
<         .Forward = True
<         .Wrap = wdFindContinue
<         .Format = True
<         .MatchCase = False
<         .MatchWholeWord = False
<         .MatchAllWordForms = False
<         .MatchSoundsLike = False
<         .MatchWildcards = True
<     End With
<     Selection.Find.Execute Replace:=wdReplaceAll
< End Sub
< 
778a431,432
> 
> 
