ZNAG - Browsing AtomSite

  1. Creating a theme for AtomSite, a quick walkthrough

    Prelude : Reading throughhttp://atomsite.net/info/Themes.xhtmlmight help if anything here is not understood.
     
                  Small disclaimer: I'm under no circumstances a good designer, hence the "estetics" of the sample..

    It might be needless to say, but I do recommend having a local copy of AtomSite available to test the theme until it's mature..

    Getting Started:

    Let's say we want to create a template called "Sample":

    1. Create the folder "sample" in themes
    2. Copy the "settings.xml" from "themes/settings/settings.xml" and rename it to "sample.xml"
    3. Open up the xml, and change the following tags to the following values:
      Tag NameTag Value
      atom:titleSample Theme
      atom:contentThis is the Sample Theme's description…
      atom:idtag.atomsite.net,2008:themes,sample
    4. When finishing up the theme, remember to change the screenshot, homepage, author, contributor and dates (published, updated).
      Note: Not needed in this stage..
    5. Log in to your Admin Dashboard, and choose the Sample Theme, and then open up your home page..
    6. You should see a very simple (yet still structured) text only theme:
      image
    7. Download this file : background (Shamelessly generated at http://bgpatterns.com/), and save it as "img/sample/background.jpg". (create the folder)
    8. Create the file "sample.css" in "css/sample/" (again, the folder needs to be created)
      Add the following to the created CSS file:
      body {
          background : transparent url('../../img/sample/background.jpg') repeat fixed;
      }
    9. Refresh the browser with the home page, and voila! , you get a new lovely background.

      So what happened here?
      AtomSiteautomagically picks up the CSS file, since it's named the same as the theme.
      Notice the path to the image, this is very important, since you'd typically only use your own images, and the best place to put them is in your themes designated image folder.

      Ok, You're a CSS Ninja, you know how you could "re-skin" everything with CSS only, which is fully possible, since AtomSite adds id's to the body per page and component.
      My CSS Fu can be disputed, and from what I've experienced so far, I've usually needed to alter the HTML markup to generate the desired result.
    10. Copy the file "themes/default/Site.Master" to "themes/sample/" .
    11. Edit the copied "Site.Master" and add :
        <h3>I can has my custom sub sub title!</h3>
            <h4>Even with dynamic content (Today == <%= DateTime.Now.ToString() %>)!</h4>

      right after :
      <h1><a href="/"><%= Model.Workspace.Title %></a></h1>
            <h2><%= Model.Workspace.Subtitle %></h2>
    12. Refresh, and you'll see the new sub sub, and sub sub sub titles (pun intended).

    YUI or not to YUI

    AtomSite uses the YUI CSS framework reset.
    Although it's a very powerful framework, I have to admit that I personally prefer writing my own or using blueprintcss.
    To disable the YUI framework in your theme, remove the following line from the file "Site.Master" in your theme folder:

      <link rel="stylesheet" type="text/css" href="<%= Url.StyleHref("reset-fonts-grids-2.7.0.css") %>" />

    When using AtomSite in a subfolder

    Change the following in the "Site.Master" to fix the link in the header:

    To Find Replace with
    <h1><a  href="/"><%= Model.Workspace.Title %></a></h1>
    <h1><a  href="<%= Url.Content("~/)"><%= Model.Workspace.Title %></a></h1>


    Testing

    Nothing can replace good testing, here's the usual list of tests I run to ensure that the theme is ready
    Very Important:always check each task both authenticated as an admin, as a user and not authenticated!

    1. Master Page
      1. General layout
      2. Navigation
      3. Search bar
      4. Footer
      5. Sidebar
    2. Blog Home
    3. Blog Listing
    4. Blog Entry
    5. Blog Comments (View)
    6. Blog Comments (Adding)
    7. Sidebar Widgets

    Test the theme in all browsers (Chrome, Opera, Firefox, Safari), and even non browsers as IE..

    ThemeExtensions

    I've written a plugin to AtomSite which exposes Html and Url Helpers that saves some time when developing / porting a theme.

    Example:

    <ul>
    <% foreach (var status in Model.Statuses){%>
                    <li><span class="entry">
                        <%= Html.ThemeExtensions().Social.MakeTwitterContentClickable(status.Text)%>
                        <a class="date" href="http://twitter.com/<%= Model.Statuses.First().User.ScreenName %>/statuses/<%= status.Id %>" rel="nofollow"><%= Html.DateTimeAgoAbbreviation(status.CreatedAt)%></a></span>
                    </li>
             <% } %>
    </ul>

    You can download or fork the source code here.

    More samples

    The source code for AtomSiteThemes might help, besides the AtomSite code there, it also includes all custom themes I've ported from Wordpress so far, grab it here.

    Sample theme from this post : Preview | Download

    If you found this interesting, [Porting Wordpress themes to AtomSite] will be available soon..

    Enjoy!

    Erik

    Tags: atomsite, Blog


  2. AtomSite Themes site

    I've put together a small site that allows you to preview the custom AtomSite themes I've done.

    Furthermore, you can rate, download and comment the themes at the site, would love some feedback if you liked any theme.

    http://atomsitethemes.erikzaadi.com

    You'll notice a gray thing on the left :

    ThemeSwitcherSmall

    This is the compact mode of the theme switcher. If you click on the show button you'll see:

    ThemeSwitcher

    This is where you can choose a theme to preview.

    The theme switcher can be dragged around, allowing you to see the entire theme you are previewing.

    Custom Themes

    As of the time I'm writing this post, there are 4 custom themes that are (for now) not available out of the box with AtomSite:

    1. Arclite
      This is the theme I'm using currently at this blog, very customizable with variable header, sidebar and content styles
      arclite thumbnail
      Based on Arclite by Digital Nature
    2. Notepad
      A smooth theme, however with no variable customizations
      notepad thumbnail
      Based on Notepad by ndesign-studio
    3. Arjuna-X
      Very popular wordpress theme, with variable header and side bar styles.
      arjuna thumbnail
      Based on Arjuna-X by srs solutions
    4. Inove
      Also a popular wordpress theme, not customizable
      inove thumbnail
      Based on inove by neoease

     

    Enjoy!

    Erik

    Tags: AtomSite, Blog


  3. Windows Live Writer Workaround For AtomSite Plugin 1.4

    [This post is a follow up to the workaround for AtomSite 1.3]

    I've updated the Windows Live Workaround to the new release of AtomSite (1.4).

    Thanks to some hierarchical changes made in the new release, deploying the workaround is much easier.

    The workaround is built as a plug-in, so you can apply it to any AtomSite deployment without the need for compiling source code.

    Simply unzip the binaries zip file below to your AtomSite root, then access "http://yourblogAddress/WLWWorkaround"

     

    Small disclaimer:

    You should only use this workaround plug-in if you have problems removing the authentication model at your hosting provider.

    Binaries | Source

     

    Enjoy,

    Erik

    Tags: AtomSite, Blog


  4. Windows Live Writer Workaround for AtomSite 1.3

    [UPDATE - Available for version 1.4 as well, see posthere]

    In continuous to an old series about migrating from Blogger to AtomSite, I came up with a workaround/solution that allows you to connect Windows Liver Writer to the AtomSite blog.

    I've been asked a couple of times to supply the solution, so I thought I'd publish it here for more easy access:

    WLWWorkaround.zip

    Read the included README file for specific instructions..

    If you want an easier access to the workaround than clicking in the address mentioned in the README, you can add the following to your service.config, I added it "AdminSettingsEntireSite"=>"settingsRight"

    <svc:include  name="LiteralWidget">
        &lt;div class="widget settings area"&gt;
            &lt;h3&gt;Windows Live Writer Workaround&lt;/h3&gt;
            &lt;a href="/Admin/WLWWorkaround"&gt;Activate/Disable&lt;/a&gt;
        &lt;/div&gt;
    </svc:include>

    Small disclaimer, this has been tested on AtomSite 1.3 only..

    Enjoy!

    Erik

    Tags: asp.net mvc, aspnetmvc, Blog, AtomSite


  5. Blog Migration – Part – 4 – Connecting Windows Live Writer to the AtomSite blog

    Previous Posts : 1 | 2 | 3

    This post took me a while to get together, it's actually the first blog post I'm writing from Windows Live Writer on this blog..

    To be able to write and manage posts efficiently, you need to connect with a good desktop program, with offline capabilities such as preview, saving drafts etc.

    Windows Live Writer is the perfect application for me, as unfortunately I don't get to spend much time on the Mac side of life..

    For most atomsite blog users, connecting Windows Live Writer to their blogs should be rather strait forward, if it doesn't work as per the guide, removing the "WindowsAuthenticationModule" at the web.config file (as explain per the troubleshooting guide) should get you started promptly..

    However, in a imperfect world of shared hosting, you can not always control such settings, as they are locked by default by IIS on the root level (in the applicationHost.config file).

    I tried to work around this problem with using different desktop blogging tools, and by trying to get my hosting provider to unlock the setting (Coming soon in a post, rather amusing actually).

    I downloaded the source for the atomsite blog engine, and started hacking away on their code, to find at least a viable workaround for this annoying problem.

    It turns out that Windows Live Writer is actually making several requests to the blog, and not always sending the authentication details.

    I managed to do a rather ugly hack that allows me to work with Windows Live Writer for now.

    I'm still working on a better solution for this, as the solution I ended up with is not something usable for any other atomsite deployment.

    If anyone is interested in the hack/solution post a comment on this post, mail contact[at]erikzaadi[dot]com or simply drop me a tweet. [UPDATE] Download Details in this post

    Erik

    Tags: Blog, Blog Migration, AtomSite


  6. Blog Migration - Part 3 - Exporting Posts From Blogger To Atomsite

    Previous Parts : 1 , 2

    Blogger are awesome in many ways, but if there's one feature missing, it's a way to import/export to other blog engines.

     

    BlogML is a standard that several other blog engines are starting to support.

     

    AtomSite supports BlogML integration from version 1.3
    (Note : This is not the version shipped in the web platform installer).

     

    I used a superb tool called BlogExporter, which exported all of my posts, comments and tags
    from my Blogger account to a nice little XML file.

    Unfortunately, this XML file can not be imported as is to AtomSite, it needs a bit of massaging..

    I exported the default blog that ships with the installation of AtomSite,
    to a BlogML XML file, and then compared the with the result from BlogExporter.

    I noticed that a couple of tags where missing regarding the author of the blog, namely the email and title:

    <authors>
        <author approved="true"
         created="2009-11-04T17:39:28.1678914+02:00"
         email="my.mail@gmail.com"
         id="Erik Zaadi"
         modified="2009-11-04T17:39:28.1678914+02:00"><title>Erik</title>
     </author>
    </authors>

    The <extended-properties /> tag needed to be replace with the following:

    <extended-properties>
     <property>
     <Key>CommentModeration</Key>
     <Value>Authenticated</Value>
     </property>
     <property>
     <Key>SendTrackback</Key>
     <Value>No</Value>
     </property>
     </extended-properties>

    Altering those values in the XML file allowed me to import the posts to AtomSite smoothly.

     

    Stay tuned for the next post about connecting AtomSite to Windows Live Writer..

     

    Erik

    Tags: Blog, Blog Migration, AtomSite


  7. Blog Migration - Part 2 - Temporary Pages

    Previously :  Part 1 - Setting up

    After getting my self my little virtual corner on the webospere,  it was time to get some content up before getting all the final sites up.

    Steps:

    1. "No 404 for me"

      A small "Under construction" page ,with a typical 90's under construction gif look

    2. Linking my existing (sub)sites: I added two CNAME records:

      Blogger Account  : http://blogger.erikzaadi.com => http://erikzaadi.blogspot.com

      Project Pages : http://projects.erikzaadi.com => http://erikzaadi.github.com

    3. Setting up the root of the site:

      I started to throw together a small asp.net mvc project for the root of the site , both to test the hosting server's MVC and DB capabilities.
      Besides overdoing the grey gradient theme to death, I think I exaggerated a bit with the fly thing at the 404 and Error Page.

    4. Getting the blog working

      I installed AtomSite on http://blog.erikzaadi.com and started playing around a bit with the theme.
      Again, as you can see, I'm still with the grey gradient look (will I ever grow tired of it?).

    Stick around for the next post, which will be about migrating my blogger posts into the AtomSite powered blog.

     
     

    Cherios,

     

    Erik

    Tags: Blog, Blog Migration, AtomSite


  8. Blog Migration - Part 1 - Setting Up Domain and Hosting Server

    Part 2

    This is the first part in a series I'll be doing, describing the process I went through while migrating my blogger blog to a hosted blog with the atomsite blog engine.

    Why migrate my blog you ask?

    Well, although Google offers blogger as one of their great free services, I wanted more control, and to have the blog engine in a programming language that I'm a bit more fluent with.

    Purchasing a domain:

    Besides just buying one, there were three things that bothered me:

     

    Whois

    Looking up domain names is very easy nowadays, and it can lead to a lot of spam and forgery attempts.

    Most companies that offer domains has a Whois protection program, usually for an extra buck or two, well worth in my honest opinion.

     

    DNS

    I wanted to be able to control subdomains and cname records.

     

    Name

    This might seem as a silly thing, especially with the name I chose in the end, but this was one of the most time consuming steps of migrating my blog.

    I tried to think of a catchy name, but in the end, I just went with my twitter account name convention.

     

    Choosing a hosting provider:

    The features I was looking for were:

     

    Subdomains and cname handling

    Comfortable control panel

    IIS7 based, ready for asp.net mvc, with PHP modules installed

    MSSQL Database available

    Reasonable amount of disk space

     

    I researched a bit, read both good and bad reviews of several hosting providers.

    I must say that I didn't encounter any web hosting company that didn't have complaints.

    In the end I chose webhost4life, both for hosting and purchasing (and managing) the domain name.

    I can't say that they've been the best experience, I'll probably blog about that in the future, but they've worked good enough so far.

     

    Part 2

    Erik

    Tags: Blog, Blog Migration, AtomSite