Binary Fortress
Binary Fortress Software
CheckCentral
ClipboardFusion
CloudShow
DisplayFusion
FileSeek
HashTools
LogFusion
Notepad Replacer
Online Base64 Decoder
Online Base64 Encoder
Online JSON Formatter
ShellSend
TrayStatus
VoiceBot
WallpaperFusion
Window Inspector
More Apps...
DisplayFusion
CheckCentral
CloudShow
ClipboardFusion
FileSeek
TrayStatus
VoiceBot
WallpaperFusion
Clipboard
Fusion
by Binary Fortress Software
Download
Download
Change Log
Download Beta
Beta Change Log
License (EULA)
Features
Features
HotKeys
Macros
Triggers
Clipboard Syncing
Clipboard Manager
Languages
Free vs Pro
Apps
More
Screenshots
Macros
Languages
Help
Help Guide
FAQ
Discussions
Contact Us
Find My License
Mailing Address
Advanced Settings
Purchase
Login / Register
WARNING: You currently have Javascript disabled!
This website will not function correctly without Javascript enabled.
Title
Message
OK
Confirm
Yes
No
Convert Text to HTML List
Return to ClipboardFusion Macros
Description
Converts the copied text into a HTML list. This Macro takes each line of the copied text and turns it into a HTML list item, then puts them into a HTML ordered or unordered list.
Language
C#.net
Minimum Version
3.3+
Created By
Splat
Contributors
-
Date Created
Aug 19, 2014
Date Last Modified
Feb 28, 2017
Macro Code
Copy
Select All
using System; using System.Collections.Generic; using System.Text.RegularExpressions; public static class ClipboardFusionHelper { public static string ProcessText(string text) { // takes a string of text (typically multiline text) and converts it to a HTML list // it tries to be smart enough to identify either a ordered list, or unordered list, but // it only detects ordered lists if they start at the beginning (ie.a, i, A, I, 0, or 1) // it also tries to account for cut'n'pasting lists out of MS Word // I've been having trouble with Regex $ - it seems to think the $ is between the \r and the \n, which isn't very helpful // this code isn't perfect, but it works well for me // use at your own discretion char chrLineIndent = '\t'; // default to a tab "\t" int intLineIndentSize = 1; string strListType = "ul"; // default to an unordered list string strListCSS = ""; string strOutput = text.Trim(); // remove multiple white spaces characters and replace them with a single space strOutput = Regex.Replace(strOutput, @"[ \t]+", " "); // remove empty lines ($ doesn't seem to work very well) strOutput = Regex.Replace(strOutput, @"(?<linebreak>[\r\n]{1,2})+", "${linebreak}"); // trim the start and end of each line (Regex $ doesn't seem to work very well) strOutput = Regex.Replace(strOutput, @"(?:^[ \t]*)|(?:[ \t]*(?<linebreak>[\r\n]{1,2}))", "${linebreak}", RegexOptions.Multiline); if (Regex.IsMatch(strOutput , @"^[aiAI01][^\w0-9]+")) { // it looks like we are dealing with some sort of ordered list strListType = "ol"; // lets work out what type of ordered list it is switch (strOutput[0].ToString()) { case "a": strListCSS = "lower-alpha"; break; case "i": strListCSS = "lower-roman"; break; case "A": strListCSS = "upper-alpha"; break; case "I": strListCSS = "upper-roman"; break; case "0": strListCSS = "decimal-leading-zero"; break; case "1": strListCSS = "decimal"; break; } strListCSS = "list-style-type:" + strListCSS + ";"; // remove the list item indicators strOutput = Regex.Replace(strOutput, @"^[a-zA-Z0-9]+[^\w0-9]+", "", RegexOptions.Multiline); } else if (Regex.IsMatch(strOutput, @"^[^a-np-zA-NP-Z0-9]+[^\w0-9]+")) { // it looks like we have some sort of bulleted unordered list // typical bullets include •, o, §, #, *, -, ->, =, Ø, etc strListType = "ul"; // remove the list item indicators strOutput = Regex.Replace(strOutput, @"^[^a-np-zA-NP-Z0-9]+[^\w0-9]+", "", RegexOptions.Multiline); } string strLineIndent = new string(chrLineIndent, intLineIndentSize); // replace line breaks with <li>s (Regex $ doesn't seem to work very well) strOutput = Regex.Replace(strOutput, @"(?<linebreak>[\r\n]{1,2})", "</li>${linebreak}" + strLineIndent + "<li>"); strOutput = String.Format( "<{0}{1}>\r\n{2}<li>{3}</li>\r\n</{0}>", strListType, (strListCSS.Length > 0 ? " style=\"" + strListCSS + "\"" : ""), strLineIndent, strOutput ); return strOutput; } }