<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Blog</title>
        <link>http://blog.brownie.com.au/category/2.aspx</link>
        <description>Blog</description>
        <language>en-AU</language>
        <copyright>Andrew Browne</copyright>
        <managingEditor>brownie@brownie.com.au</managingEditor>
        <generator>Subtext Version 1.9.5.177</generator>
        <item>
            <title>Getting formatted code onto the web</title>
            <link>http://blog.brownie.com.au/archive/2008/01/05/getting-formatted-code-onto-the-web.aspx</link>
            <description>&lt;p&gt;This post is mostly for me as I recently switched machines and forgot the steps and software needed to get nicely formatted code into my blog:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Download &lt;a href="http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/"&gt;CopySourceAsHtml&lt;/a&gt; (as recommended by &lt;a href="http://www.hanselman.com/blog/ScottHanselmans2007UltimateDeveloperAndPowerUsersToolListForWindows.aspx"&gt;Hanselman&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;Extract the files from the MSI using &lt;a href="http://blogs.pingpoet.com/overflow/archive/2005/06/11/2837.aspx"&gt;Less MSIérables&lt;/a&gt; as the installer doesn't work with VS 2008. &lt;/li&gt;    &lt;li&gt;Copy the files to the VS 2008 plugin directory as per these &lt;a href="http://developers.de/blogs/andreas_erben/archive/2007/08/01/using-copysourceashtml-with-visual-studio-2008-beta-2.aspx"&gt;instructions&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Open Visual Studio Enable the plugin from Tools &amp;gt; Add-in Manager &lt;/li&gt;    &lt;li&gt;Select text and choose "Copy AS HTML" from the context menu. &lt;/li&gt;    &lt;li&gt;Right click in windows live writer and select "Paste Special". Choose "Keep Formatting" from the dialog. &lt;/li&gt;    &lt;li&gt;&lt;span style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt;&lt;span style="color: #2b91af"&gt;1&lt;/span&gt; Console.WriteLine(&lt;span style="color: #a31515"&gt;"Beautifully formatted Code!"&lt;/span&gt;); &lt;/span&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;ol&gt;&lt;/ol&gt;  &lt;p&gt;I almost didn't bother trying this tool as I didn't like the way Visual Studio put boxes around blocks of SQL code.  I forgot of course that these boxes couldn't be carried over the HTML even if I'd wanted them too.  The SQL looks just as nice as it does in management studio: &lt;/p&gt;  &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;    1&lt;/span&gt; &lt;span style="color: green"&gt;-- Comment: Comment goes here&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;    2&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT &lt;/span&gt;* &lt;span style="color: blue"&gt;from &lt;/span&gt;Products&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;The only problem I am finding is that code quite quickly gets too wide and wraps messing up the line numbers. That is probably more to do with my blog template.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Update: &lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;I have just come across a neat way of solving the wrapping problem.  &lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font color="#000000"&gt;Uncheck wrap words in the copy as html dialog.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#000000"&gt;Wrap my code in overflow divs:&lt;/font&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;pre&gt;&amp;lt;DIV style="OVERFLOW: auto"&amp;gt;&lt;/pre&gt;

&lt;p&gt;I can now have nice scrollbars: &lt;/p&gt;

&lt;div style="overflow: auto"&gt;
  &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt;
    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   11&lt;/span&gt; [&lt;span style="color: #2b91af"&gt;Test&lt;/span&gt;]&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   12&lt;/span&gt;         &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; ShouldRetrieveSpeakerByEmail()&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   13&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   14&lt;/span&gt;             &lt;span style="color: #2b91af"&gt;Conference&lt;/span&gt; anConference = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Conference&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"tea party"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;""&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   15&lt;/span&gt;             &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;ISession&lt;/span&gt; session = getSession())&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   16&lt;/span&gt;             {&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   17&lt;/span&gt;                 session.SaveOrUpdate(anConference);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   18&lt;/span&gt;                 session.Flush();&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   19&lt;/span&gt;             }&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   20&lt;/span&gt;             &lt;span style="color: blue"&gt;string&lt;/span&gt; email = &lt;span style="color: #a31515"&gt;"brownie@brownie.com.au"&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   21&lt;/span&gt;             &lt;span style="color: #2b91af"&gt;Speaker&lt;/span&gt; speaker =&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   22&lt;/span&gt;                 &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Speaker&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"Andrew"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"Browne"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"http://blog.brownie.com.au"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"the comment"&lt;/span&gt;, anConference,&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   23&lt;/span&gt;                             email, &lt;span style="color: #a31515"&gt;"http://blog.brownie.com.au/avatar.jpg"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"Info about how important I am to go here."&lt;/span&gt;,&lt;span style="color: #a31515"&gt;"password"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"salt"&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   24&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   25&lt;/span&gt;             &lt;span style="color: #2b91af"&gt;ISpeakerRepository&lt;/span&gt; repository = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SpeakerRepository&lt;/span&gt;(_sessionBuilder);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   26&lt;/span&gt;             repository.Save(speaker);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   27&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   28&lt;/span&gt;             &lt;span style="color: #2b91af"&gt;Speaker&lt;/span&gt; rehydratedSpeaker = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   29&lt;/span&gt;             &lt;span style="color: green"&gt;//get Attendee back from database to ensure it was saved correctly&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   30&lt;/span&gt;             &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;ISession&lt;/span&gt; session = getSession())&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   31&lt;/span&gt;             {&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   32&lt;/span&gt;                 rehydratedSpeaker = repository.GetSpeakerByEmail(email);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   33&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   34&lt;/span&gt;                 &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.That(rehydratedSpeaker != &lt;span style="color: blue"&gt;null&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   35&lt;/span&gt;                 &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.That(rehydratedSpeaker.Contact.FirstName, &lt;span style="color: #2b91af"&gt;Is&lt;/span&gt;.EqualTo(&lt;span style="color: #a31515"&gt;"Andrew"&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   36&lt;/span&gt;                 &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.That(rehydratedSpeaker.Website, &lt;span style="color: #2b91af"&gt;Is&lt;/span&gt;.EqualTo(&lt;span style="color: #a31515"&gt;"http://blog.brownie.com.au"&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   37&lt;/span&gt;                 &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.That(rehydratedSpeaker.Comment, &lt;span style="color: #2b91af"&gt;Is&lt;/span&gt;.EqualTo(&lt;span style="color: #a31515"&gt;"the comment"&lt;/span&gt;));&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   38&lt;/span&gt;                 &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.That(rehydratedSpeaker.Conference, &lt;span style="color: #2b91af"&gt;Is&lt;/span&gt;.EqualTo(anConference));&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   39&lt;/span&gt;             }&lt;/pre&gt;

    &lt;pre style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;   40&lt;/span&gt;         }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;&lt;img src="http://blog.brownie.com.au/aggbug/9.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrew Browne</dc:creator>
            <guid>http://blog.brownie.com.au/archive/2008/01/05/getting-formatted-code-onto-the-web.aspx</guid>
            <pubDate>Sat, 05 Jan 2008 08:54:28 GMT</pubDate>
            <comments>http://blog.brownie.com.au/archive/2008/01/05/getting-formatted-code-onto-the-web.aspx#feedback</comments>
            <wfw:commentRss>http://blog.brownie.com.au/comments/commentRss/9.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>