zoukankan      html  css  js  c++  java
  • test

     1 using ActiproSoftware.CodeHighlighter;
     2 using ActiproSoftware.SyntaxEditor;
     3 using System;
     4 using System.Collections.Generic;
     5 using System.Configuration;
     6 using System.Linq;
     7 using System.Net;
     8 using System.Net.Http;
     9 using System.Web;
    10 using System.Web.Http;
    11 
    12 namespace GZUtilsServer.Controllers
    13 {
    14     public class CodeHighlighterController : ApiController
    15     {
    16         public class P_Highlight
    17         {
    18 
    19             /// <summary>
    20             /// 语言
    21             /// </summary>
    22             public string Language { get; set; }
    23             /// <summary>
    24             /// 折叠
    25             /// </summary>
    26             public string IsCollapse { get; set; }
    27             /// <summary>
    28             /// 是否显示行号
    29             /// </summary>
    30             public bool IsShowLineNumber { get; set; }
    31             /// <summary>
    32             /// 代码块
    33             /// </summary>
    34             public string CodeText { get; set; }
    35         }
    36         public string Highlight(P_Highlight data)
    37         {
    38             string str = GenerateHtmlInline(data.Language, data.IsShowLineNumber, data.CodeText);
    39             return str;
    40         }
    41 
    42         string GenerateHtmlInline(string Language, bool IsShowLineNumber, string CodeText)
    43         {
    44             SyntaxLanguage lang = null;
    45 
    46 
    47             CodeHighlighterConfiguration config = HttpContext.Current.Cache["CodeHighlighterConfig"] as CodeHighlighterConfiguration;
    48 
    49             //缓存不存在,重新从 web.config 获取并保存缓存
    50             if (config == null)
    51             {
    52                 config = (CodeHighlighterConfiguration)ConfigurationManager.GetSection("codeHighlighter");
    53                 HttpContext.Current.Cache.Insert("CodeHighlighterConfig", config);
    54             }
    55             //获取语言
    56             foreach (string key in config.LanguageConfigs.Keys)
    57             {
    58                 if (key.ToLower() == Language.ToLower())
    59                 {
    60                     lang = CodeHighlighter.GetLanguage(config, key);
    61                     break;
    62                 }
    63             }
    64 
    65             //不明语言,不理会返回
    66             if (lang == null) return CodeText;
    67 
    68             CodeHighlighterEngine engine = new CodeHighlighterEngine();
    69             engine.OutliningEnabled = false;
    70             engine.LineNumberMarginVisible = IsShowLineNumber;
    71             engine.LineNumberMarginForeColor = System.Drawing.Color.Red;
    72             //engine.SpacesInTabs = (byte)char.Parse("|");
    73 
    74             string htmlStr = engine.GenerateHtmlInline(string.Empty, CodeText, lang);
    75             return htmlStr;
    76         }
    77     }
    78 }
    慎于行,敏于思!GGGGGG
  • 相关阅读:
    Generate Parentheses
    Length of Last Word
    Maximum Subarray
    Count and Say
    二分搜索算法
    Search Insert Position
    Implement strStr()
    Remove Element
    Remove Duplicates from Sorted Array
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/14349313.html
Copyright © 2011-2022 走看看