<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.5">Jekyll</generator><link href="http://ememakpanekpo.github.io/me/me/feed.xml" rel="self" type="application/atom+xml" /><link href="http://ememakpanekpo.github.io/me/me/" rel="alternate" type="text/html" /><updated>2019-11-16T10:16:55+00:00</updated><id>http://ememakpanekpo.github.io/me/me/feed.xml</id><title type="html">Ememobong Akpanekpo</title><subtitle>A blog about technology and stuff related</subtitle><entry><title type="html">Moving iOS keyboard away from blocking textfield when typing</title><link href="http://ememakpanekpo.github.io/me/me/moving-ios-keyboard-away-from-blocking-textfield-when-typing/" rel="alternate" type="text/html" title="Moving iOS keyboard away from blocking textfield when typing" /><published>2019-11-14T11:00:00+00:00</published><updated>2019-11-14T11:00:00+00:00</updated><id>http://ememakpanekpo.github.io/me/me/moving-ios-keyboard-away-from-blocking-textfield-when-typing</id><content type="html" xml:base="http://ememakpanekpo.github.io/me/me/moving-ios-keyboard-away-from-blocking-textfield-when-typing/">&lt;div class=&quot;side-by-side&quot;&gt;
        &lt;div class=&quot;toleft&quot;&gt;
                &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/keyboard-blocking-view.gif&quot; alt=&quot;Alt Text&quot; /&gt;
                &lt;figcaption class=&quot;caption&quot;&gt;Phot: Keyboard blocking bottom textview&lt;/figcaption&gt;
        &lt;/div&gt;
        &lt;div class=&quot;toright&quot;&gt;
                &lt;p&gt;One common problem faced by iOS developers is that of the iOS keyboard getting in the way of textfields positioned at the bottom part of the screen when a user is typing. This usually leaves the user stuck and guessing.&lt;/p&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;side-by-side&quot;&gt;
    &lt;div class=&quot;toleft&quot;&gt;
        &lt;p&gt;To avoid this, the entire view has to be lifted up like so while the user is typing:&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;toright&quot;&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/ios-keyboard-not-blocking-view.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Keyboard not blocking bottom textview&lt;/figcaption&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;We aim to shift the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;entire screen view&lt;/code&gt; away in proportion to the keyboard height when the keyboard appears and return it back to position when the keyboard disappears.&lt;/p&gt;

&lt;p&gt;To acheive this, we need to create some util methods to shift and return the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;screen&lt;/code&gt; when the keyboard appears and disappears &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keyboardWillShow()&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;keyboardWillHide()&lt;/code&gt; and another to determine the keyboard size &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;getKeyboardHeight()&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@objc func keyboardWillShow(_ notification:Notification) {
        view.frame.origin.y = -getKeyboardHeight(notification)
}
    
@objc func keyboardWillHide(_ notification:Notification) {
        view.frame.origin.y = 0
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;func getKeyboardHeight(_ notification:Notification) -&amp;gt; CGFloat {
        let userInfo = notification.userInfo
        let keyboardSize = userInfo![UIResponder.keyboardFrameEndUserInfoKey] as! NSValue
        return keyboardSize.cgRectValue.height
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The point where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;y = 0&lt;/code&gt; is at the top of the screen, to move the&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt; view&lt;/code&gt; up above the keyboard we subtract the the height of the keyboard using  gotten from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;getKeyboardHeight()&lt;/code&gt;. This totally handles the issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;But how will we know when the keyboard is about to slide up?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Notice that all methods require a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Notification&lt;/code&gt; object. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Notification&lt;/code&gt;  struct is a container for information broadcast through a &lt;strong&gt;&lt;em&gt;notification center&lt;/em&gt;&lt;/strong&gt; to all &lt;em&gt;registered observers&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NotificationCenter&lt;/code&gt; is one of means &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;swift&lt;/code&gt; uses to announce information throughout a program across classes. One of the information it can announce is the keyboard appearing or disappearing. 
There are a lot more information it can announce than just keyboard events.&lt;/p&gt;

&lt;p&gt;And just like we would have to  tune in to a radio station to listen to what the radio station broadcasts, objects have to &lt;em&gt;subscribe to&lt;/em&gt; or &lt;em&gt;observe&lt;/em&gt; notifications before it can receive them. So to know when a keyboard appears or disappears, our ViewController must &lt;em&gt;subscribe&lt;/em&gt; to be notified when an event is coming up - the event here being the keyboard showing or disappearing.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;func subscribeToKeyboardNotifications() {
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboardWillHideNotification, object: nil)
 }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;self&lt;/code&gt; refers to the object registering as the observer which is our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ViewController&lt;/code&gt; in most cases.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#selector(keyboardWillShow(_:))&lt;/code&gt;  - specifies the message the receiver sends observer to notify it of the notification posting. The method specified as a &lt;em&gt;selector&lt;/em&gt; must have one and only one argument (an instance of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Notification&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;UIResponder.keyboardWillShowNotification&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;UIResponder.keyboardWillHideNotification&lt;/code&gt; refers to the name of the notification for which to register the observer; that is, only notifications with this name are delivered to the observer.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;object&lt;/code&gt;	 - specifies the object whose notifications the observer wants to receive; that is, only notifications sent by this sender are delivered to the observer.
If you pass nil, the notification center doesn’t use a notification’s sender to decide whether to deliver it to the observer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linking up the ViewController and the NotificationCenter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To link up the ViewController with the  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NotificationCenter&lt;/code&gt; , we call &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;subscribeToKeyboardNotifications()&lt;/code&gt; from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;viewWillAppear()&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        subscribeToKeyboardNotifications()
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Unsubscribing from keyboard events&lt;/strong&gt;
Best practises require we unsubscribe from events when our app is not active or no longer listening to them. To unsubscribe from keyboard events:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;func unsubscribeFromKeyboardNotifications() {
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillShowNotification, object: nil)
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillHideNotification, object: nil)
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finally we call the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;unsubscribeFromKeyboardNotifications()&lt;/code&gt; method from our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;viewWillDisappear()&lt;/code&gt; to disconnect our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;viewController&lt;/code&gt; from communicating with  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NotificationCenter&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        unsubscribeFromKeyboardNotifications()
 }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Glad you stopped by. Getting the keyboard out of the way from now will no longer be an issue. If you have any thoughts or questions please feel free to reach out.&lt;/p&gt;</content><author><name>johndoe</name></author><category term="blog" /><category term="ios" /><category term="swift" /><category term="xcode" /><summary type="html">Phot: Keyboard blocking bottom textview One common problem faced by iOS developers is that of the iOS keyboard getting in the way of textfields positioned at the bottom part of the screen when a user is typing. This usually leaves the user stuck and guessing.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://ememakpanekpo.github.io/me/me/assets/images/markdown.jpg" /></entry><entry><title type="html">7 awesome shortcuts every productive iOS developer must know</title><link href="http://ememakpanekpo.github.io/me/me/shortcut-every-ios-developer-must-know/" rel="alternate" type="text/html" title="7 awesome shortcuts every productive iOS developer must know" /><published>2019-11-13T03:30:00+00:00</published><updated>2019-11-13T03:30:00+00:00</updated><id>http://ememakpanekpo.github.io/me/me/shortcut-every-ios-developer-must-know</id><content type="html" xml:base="http://ememakpanekpo.github.io/me/me/shortcut-every-ios-developer-must-know/">&lt;p&gt;As a developer, knowing your IDE is one very powerful key to being productive while you work. Building for iOS with XCode can be daunting at first but here are a few shortcuts to keep you productive and make you feel like a pro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Open quickly any file (Shift + ⌘ + O)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/open-quickly.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo Open quickly XCode&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;With this you can search and open virtually anything in your XCode project. &lt;strong&gt;Press&lt;/strong&gt;  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Shift + ⌘ + O&lt;/code&gt; and the &lt;strong&gt;&lt;em&gt;Open quickly&lt;/em&gt;&lt;/strong&gt; dialog will pop up. 
Something like this: As you can see I searched for the AppDelegate file and main storyboard file for the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Hide/UnHide the Navigator  Panel (⌘ + 0)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/hide-unhide-navigator-panel.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Hide/unhide navigator panel&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;The Navigator Panel is located on the left side of XCode and helps you navigate around the project. But more often than not you need some more real estate for your content at the center so you can work effectively. &lt;strong&gt;Press&lt;/strong&gt;  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;⌘ + 0&lt;/code&gt; to hide/unhide the navigator panel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Hide/Unhide the Utility area (⌥ + ⌘ + 0)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/hide-unhide-utilities.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Hide/unhide utility area&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;You can hide/unhide the Utility area to gain more space for your content at the center.
The Utility area is located on the right side of XCode and contains different inspectors depending on which item is currently selected on the navigator panel.
&lt;strong&gt;Press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;⌥ + ⌘ + 0&lt;/code&gt; to hide/unhide the utility area.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Quick Documentation (^ + ⌘ + ⇧ + ?)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/quick-documentation.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Quick Documentation&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;To quickly access documentation for any swift class. &lt;strong&gt;Highlight&lt;/strong&gt; the required class and &lt;strong&gt;Press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;^ + ⌘ + ⇧ + ?&lt;/code&gt;. You will be presented with a pop up dialog showing you the class documentation. This however requires internet connection.&lt;/p&gt;

&lt;p&gt;Alternatively you can get there faster by &lt;em&gt;pressing and holding the ⌥ key and then left clicking&lt;/em&gt; on any swift class. 
Once you press the ⌥ key, your cursor will change to a &lt;strong&gt;+&lt;/strong&gt; icon, which you can move around. When it comes across any swift class it changes to a &lt;strong&gt;?&lt;/strong&gt; icon, then you can now left click on this class to view the documentation.&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/show-documentation-2.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Quick Documentation&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;&lt;strong&gt;5. Reformat/Indent your code(^ + I)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/indent-code.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Indent Code&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;Unorganised code can be difficult to read and review. Save you future self and code reviewer needless stress by organising your code before you commit. There is no need to manually indent as XCode will indent it for you as per the style guide.
Select the code area you want to format correctly and then &lt;strong&gt;Press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;^ + I&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Hide/Unhide the debug and console panel (⇧ + ⌘ + Y)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/hide-unhide-debug-panel.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Hide/unhide debug and console panel&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;You can hide/unhide the debug and conosole panel to gain more space for your content at the center. The console panel is to the bottom right and the debug panel is to the bottom left. 
&lt;strong&gt;Press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;⇧ + ⌘ + Y&lt;/code&gt; to hide/unhide the debug and console panel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Make a quick commit (⌥ + ⌘ + C)&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/blog/make-a-commit.gif&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo: Making a commit&lt;/figcaption&gt;
    &lt;/div&gt;

&lt;p&gt;Are you done working on a cool feature and you want to make a commit. The first shocker most iOS developers have in XCode is the absence of a terminal. No big worries about that if you just want to make a commit.  Just &lt;strong&gt;Press&lt;/strong&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;⌥ + ⌘ + C&lt;/code&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;P.S&lt;/strong&gt;: In case you may be wondering what the keyboard shortcut symbols means, here is a brief about the shortcuts used in this article.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⇧&lt;/strong&gt; - represents the &lt;strong&gt;Shift&lt;/strong&gt; key&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;⌘&lt;/strong&gt; - represents the &lt;strong&gt;Command&lt;/strong&gt; or &lt;strong&gt;Apple&lt;/strong&gt; key&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;^&lt;/strong&gt; - represents the &lt;strong&gt;Control&lt;/strong&gt; key&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;⌥&lt;/strong&gt; - represent the &lt;strong&gt;Alt&lt;/strong&gt; or &lt;strong&gt;Option&lt;/strong&gt; key&lt;/p&gt;

&lt;hr /&gt;</content><author><name>johndoe</name></author><category term="blog" /><category term="ios" /><category term="swift" /><category term="xcode" /><summary type="html">As a developer, knowing your IDE is one very powerful key to being productive while you work. Building for iOS with XCode can be daunting at first but here are a few shortcuts to keep you productive and make you feel like a pro.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://ememakpanekpo.github.io/me/me/assets/images/markdown.jpg" /></entry><entry><title type="html">Building a Reactive Android App using Agera</title><link href="http://ememakpanekpo.github.io/me/me/building-a-reactive-app-using-agera/" rel="alternate" type="text/html" title="Building a Reactive Android App using Agera" /><published>2019-11-11T21:00:00+00:00</published><updated>2019-11-11T21:00:00+00:00</updated><id>http://ememakpanekpo.github.io/me/me/building-a-reactive-app-using-agera</id><content type="html" xml:base="http://ememakpanekpo.github.io/me/me/building-a-reactive-app-using-agera/">&lt;p&gt;Originally published on&lt;a href=&quot;https://medium.com/@emayoung95/building-a-reactive-android-app-using-agera-3128890b7d99&quot;&gt; 28th Sept, 2017 on Medium&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://miro.medium.com/max/900/1*d5wOgX64nE_Ssx8N_-Mzvw.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The hardest part of learning react programming is thinking in Reactive — Andrea Staltz&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;thinking-reactive&quot;&gt;Thinking Reactive&lt;/h1&gt;
&lt;p&gt;If you are a beginner this is how things are probably are for you now, if you have a button or any event source, you use listeners(Receivers) which monitors(Observes) for when the event happens, and execute (Update) whatever you intended. The terms in bracket are the alternatives Agera uses for handling event sources.&lt;/p&gt;

&lt;p&gt;Events are typically an asynchronous stream on which you can observe and execute tasks based on it. But in react you can create streams not just from events like clicks or hovers they can be from variables, user inputs, api data — anything that has data.&lt;/p&gt;

&lt;p&gt;Streams can be used as input to another stream, multiple streams can be merged into one, or filtered to get a particular stream or even map data values from one stream to another.&lt;/p&gt;

&lt;p&gt;Streams are sequence of ongoing events ordered in time that is being observed. It can emit three different things: a value (of some type), an error, or a “completed” signal. We capture these emitted events only asynchronously, by defining a function that will execute when a value is emitted, another function when an error is emitted, and another function when ‘completed’ is emitted.&lt;/p&gt;
&lt;h1 id=&quot;why-agera&quot;&gt;Why Agera?&lt;/h1&gt;
&lt;p&gt;Agera uses the well-known observer pattern as the driving mechanism behind its reactive programming paradigm. Observables take Updatables and signal change via update() calls. It is then the responsibility of those Updatables to figure out what changed. This is practically a zero argument reactive dataflow which relies on side-effects per update().
Agera uses fours interfaces at it’s foundation&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://miro.medium.com/max/1348/1*SSfOhlGegvIQdo64uQFy3A.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But it’s most important concept is the Repository — Repositories receive, supply and store data and emit data. They foundation interfaces are combined into a Repository.&lt;/p&gt;

&lt;p&gt;Repositories could either be:
&lt;img src=&quot;https://miro.medium.com/max/1072/1*31E_emJMMmkXXl7ViDGV8A.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Static repository supply the same value and don’t generate any events;&lt;/li&gt;
  &lt;li&gt;The mutable repository that allows changing its value and generates events whenever the value is being updated to a different one (according to Object.equals(Object)).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hold on before you fall away with all the concepts, we’ll soon put it to practise. In this app we will be using a complex mutable repository to build a calculator app that can react to changes without any jankiness on the UI. It’s not called complex because it’s hard to implement but because it can react to other repositories (or observables, in general) and produce values by transforming data obtained from other data sources, synchronously or asynchronously.&lt;/p&gt;

&lt;h1 id=&quot;simple-calculator-app-with-most-of-the-concepts&quot;&gt;Simple Calculator app with most of the concepts&lt;/h1&gt;
&lt;p&gt;You will need an have an introductory knowledge of lambdas to flow along with some part of this example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Steps — Add the dependency&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;// Agera depencies
compile 'com.google.android.agera:agera:1.3.0'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Enable Java 8 features on android&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Creating the UI&lt;/strong&gt;
&lt;img src=&quot;https://miro.medium.com/max/1440/1*L7FEKpPhRNbioYENEqnvLg.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Link to &lt;strong&gt;&lt;a href=&quot;https://github.com/emayoung/RxAgeraCalculator&quot;&gt;github&lt;/a&gt;&lt;/strong&gt; for UI code&lt;/p&gt;

&lt;p&gt;We will need four &lt;strong&gt;Repositories&lt;/strong&gt; on all the event sources and four &lt;strong&gt;Updatables&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;//    Repository for storing the first value to be calculated
private MutableRepository&amp;lt;Integer&amp;gt; mValue1Repo = Repositories.mutableRepository(0);
//    Repository for storing the second value to be calculated
private MutableRepository&amp;lt;Integer&amp;gt; mValue2Repo = Repositories.mutableRepository(0);
//    Repository for storing the result to be calculated
private Repository&amp;lt;Result&amp;lt;String&amp;gt;&amp;gt; mResultRepository;
// Repository for storing the operation to be performed
private MutableRepository&amp;lt;Result&amp;lt;Integer&amp;gt;&amp;gt; mOperationSelector =
        Repositories.mutableRepository(Result.absent());


// Updateables that will be called when the repository values //changes ie when an event has occured
private Updatable mValue1TVupdatable;
private Updatable mValue2TVupdatable;
private Updatable mResultUpdatable;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Setup the Radio Button to notify the repository that it has been clicked&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;// set the radio button to notify the repositories when changed
public void onRadioButtonClicked(View view) {
    mOperationSelector.accept(Result.present(view.getId()));
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Setup event sources to work with our repository&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;// set the event sources to work with their repository
((SeekBar) findViewById(R.id.seekBar1)).setOnSeekBarChangeListener(
        new RepositorySeekBarListener(mValue1Repo));

((SeekBar) findViewById(R.id.seekBar2)).setOnSeekBarChangeListener(
        new RepositorySeekBarListener(mValue2Repo));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The result repository is a complex repository that observes other repositories so we take so extra care to make sure it works.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;//the result repository is a complex repository so taking so extra care to make sure it works well
mResultRepository = Repositories.repositoryWithInitialValue(Result.&amp;lt;String&amp;gt;absent())
        .observe(mValue1Repo, mValue2Repo, mOperationSelector) 
// observes for when the repository changes
        .onUpdatesPerLoop()  
// updates after all tasks in the queue has been executed
        .goTo(CalculatorExecutor.EXECUTOR) 
// go to Executor for managing multiple threads
        .attemptTransform(CalculatorOperations::keepCpuBusy).orEnd(Result::failure) 
// data processing flow provides failure-aware directives that allow                                                                                               // terminating the flow in case of failure
        .getFrom(mValue1Repo)    
// obtain values for processing
        .mergeIn(mValue2Repo, Pair::create)  
// merge value from first and second repo and create a pair
        .attemptMergeIn(mOperationSelector, CalculatorOperations::attemptOperation)  
// try to perform calculator operation of add, subtract,                                                                                                       // multiply or divide
        .orEnd(Result::failure)
        .thenTransform(input -&amp;gt; Result.present(input.toString())) // transform calculated result to be presented
        .onConcurrentUpdate(RepositoryConfig.SEND_INTERRUPT)
        .compile();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Initialise the Update to update the textviews from values in the repository&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;// initialise the Updater to update the textviews from values from the repository always
mValue1TVupdatable = () -&amp;gt; ((TextView) findViewById(R.id.value1)).setText(
        mValue1Repo.get().toString());

mValue2TVupdatable = () -&amp;gt; ((TextView) findViewById(R.id.value2)).setText(
        mValue2Repo.get().toString());

// initialise the Updater for the resulttextview to check for errors and set textview correctly
TextView resultTextView = (TextView) findViewById(R.id.textViewResult);
mResultUpdatable = () -&amp;gt; mResultRepository
        .get()
        .ifFailedSendTo(t -&amp;gt; Toast.makeText(this, t.getLocalizedMessage(),
                Toast.LENGTH_SHORT).show())
        .ifFailedSendTo(t -&amp;gt; {
            if (t instanceof ArithmeticException) {
                resultTextView.setText(&quot;DIV#0&quot;);
            } else {
                resultTextView.setText(&quot;N/A&quot;);
            }
        })
        .ifSucceededSendTo(resultTextView::setText);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Register the repository in the onStart() method and calling update on the Updateables.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;//add updateables to the repository
mValue1Repo.addUpdatable(mValue1TVupdatable);
mValue2Repo.addUpdatable(mValue2TVupdatable);
mResultRepository.addUpdatable(mResultUpdatable);

// call update on the when the event repository is observing for // // changes
mValue1TVupdatable.update();
mValue2TVupdatable.update();
mResultUpdatable.update();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Remove the Updateable in onStop()&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mValue1Repo.removeUpdatable(mValue1TVupdatable);
mValue2Repo.removeUpdatable(mValue2TVupdatable);
mResultRepository.removeUpdatable(mResultUpdatable);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now what ever happens to your event sources, you’ve correctly set up Agera repositories to react to it without any jankiness to the UI. You can even drag the two seekbars at the same time with no jank.&lt;/p&gt;

&lt;p&gt;Get the complete code on &lt;strong&gt;&lt;a href=&quot;https://github.com/emayoung/RxAgeraCalculator&quot;&gt;github&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</content><author><name>johndoe</name></author><category term="blog" /><category term="android" /><category term="agera" /><category term="reactive streams" /><summary type="html">Originally published on 28th Sept, 2017 on Medium</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://ememakpanekpo.github.io/me/me/assets/images/markdown.jpg" /></entry><entry><title type="html">Markdown Extra Components</title><link href="http://ememakpanekpo.github.io/me/me/indigo-mark-down-guide/" rel="alternate" type="text/html" title="Markdown Extra Components" /><published>2019-11-11T20:30:00+00:00</published><updated>2019-11-11T20:30:00+00:00</updated><id>http://ememakpanekpo.github.io/me/me/indigo-mark-down-guide</id><content type="html" xml:base="http://ememakpanekpo.github.io/me/me/indigo-mark-down-guide/">&lt;h2 id=&quot;summary&quot;&gt;Summary:&lt;/h2&gt;

&lt;p&gt;You can pick as item to see how to apply in markdown.&lt;/p&gt;

&lt;h4 id=&quot;especial-elements&quot;&gt;Especial Elements&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#evidence&quot;&gt;Evidence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#side-by-side&quot;&gt;Side-by-Side&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#star&quot;&gt;Star&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#especial-breaker&quot;&gt;Especial Breaker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#spoiler&quot;&gt;Spoiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;external-elements&quot;&gt;External Elements&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#gist&quot;&gt;Gist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#codepen&quot;&gt;Codepen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#slideshare&quot;&gt;Slideshare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#videos&quot;&gt;Videos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;evidence&quot;&gt;Evidence&lt;/h2&gt;

&lt;p&gt;You can try the evidence!&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;evidence&quot;&gt;Paragraphs can be written like so. A paragraph is the basic block of Markdown. A paragraph is what text will turn into when there is no reason it should become anything else.&lt;/span&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;evidence&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Paragraphs can be written like so. A paragraph is the basic block of Markdown. A paragraph is what text will turn into when there is no reason it should become anything else.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;side-by-side&quot;&gt;Side-by-side&lt;/h2&gt;

&lt;p&gt;Like the &lt;a href=&quot;https://medium.com/&quot;&gt;Medium&lt;/a&gt; component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image&lt;/strong&gt; on the left and &lt;strong&gt;Text&lt;/strong&gt; on the right:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;side-by-side&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toleft&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;image&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;alt=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Alt Text&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;figcaption&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;caption&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Photo by John Doe&lt;span class=&quot;nt&quot;&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toright&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;side-by-side&quot;&gt;
    &lt;div class=&quot;toleft&quot;&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo by John Doe&lt;/figcaption&gt;
    &lt;/div&gt;

    &lt;div class=&quot;toright&quot;&gt;
        &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Text&lt;/strong&gt; on the left and &lt;strong&gt;Image&lt;/strong&gt; on the right:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;side-by-side&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toleft&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toright&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;image&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;alt=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Alt Text&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;figcaption&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;caption&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Photo by John Doe&lt;span class=&quot;nt&quot;&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;side-by-side&quot;&gt;
    &lt;div class=&quot;toleft&quot;&gt;
        &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;toright&quot;&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo by John Doe&lt;/figcaption&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;star&quot;&gt;Star&lt;/h2&gt;

&lt;p&gt;You can give evidence to a post. Just add the tag to the markdown file.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-raw&quot; data-lang=&quot;raw&quot;&gt;star: true&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;especial-breaker&quot;&gt;Especial Breaker&lt;/h2&gt;

&lt;p&gt;You can add a especial &lt;em&gt;hr&lt;/em&gt; to your text.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;breaker&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;breaker&quot;&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;spoiler&quot;&gt;Spoiler&lt;/h2&gt;

&lt;p&gt;You can add an especial hidden content that appears on hover.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;spoiler&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;p&amp;gt;&lt;/span&gt;your content&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;spoiler&quot;&gt;&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;gist&quot;&gt;Gist&lt;/h2&gt;

&lt;p&gt;You can add Gists from github.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-raw&quot; data-lang=&quot;raw&quot;&gt;{ % gist sergiokopplin/91ff4220480727b47224245ee2e9c291 % }&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;script src=&quot;https://gist.github.com/sergiokopplin/91ff4220480727b47224245ee2e9c291.js&quot;&gt; &lt;/script&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;codepen&quot;&gt;Codepen&lt;/h2&gt;

&lt;p&gt;You can add Pens from Codepen.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;p&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-height=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;268&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-theme-id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-slug-hash=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;gfdDu&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-default-tab=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;result&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-user=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;chriscoyier&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'codepen'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    See the Pen &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'http://codepen.io/chriscoyier/pen/gfdDu/'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Crappy Recreation of the Book Cover of *The Flame Alphabet*&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; by Chris Coyier (&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'http://codepen.io/chriscoyier'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;@chriscoyier&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;) on &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'http://codepen.io'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;CodePen&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;.
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;//assets.codepen.io/assets/embed/ei.js&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p data-height=&quot;268&quot; data-theme-id=&quot;0&quot; data-slug-hash=&quot;gfdDu&quot; data-default-tab=&quot;result&quot; data-user=&quot;chriscoyier&quot; class=&quot;codepen&quot;&gt;See the Pen &lt;a href=&quot;http://codepen.io/chriscoyier/pen/gfdDu/&quot;&gt;Crappy Recreation of the Book Cover of *The Flame Alphabet*&lt;/a&gt; by Chris Coyier (&lt;a href=&quot;http://codepen.io/chriscoyier&quot;&gt;@chriscoyier&lt;/a&gt;) on &lt;a href=&quot;http://codepen.io&quot;&gt;CodePen&lt;/a&gt;.&lt;/p&gt;
&lt;script async=&quot;&quot; src=&quot;//assets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;slideshare&quot;&gt;Slideshare&lt;/h2&gt;

&lt;p&gt;Add your presentations here!&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;//www.slideshare.net/slideshow/embed_code/key/hqDhSJoWkrHe7l&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;width=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;560&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;height=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;310&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;frameborder=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;marginwidth=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;marginheight=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;scrolling=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;no&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;style=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;allowfullscreen&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/hqDhSJoWkrHe7l&quot; width=&quot;560&quot; height=&quot;310&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt; &lt;/iframe&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;videos&quot;&gt;Videos&lt;/h2&gt;

&lt;p&gt;Do you want some videos? Youtube, Vimeo or Vevo? Copy the embed code and paste on your post!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;width=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;560&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;height=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;310&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://www.youtube.com/embed/r7XhWUDj-Ts&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;frameborder=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;allowfullscreen&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;iframe width=&quot;560&quot; height=&quot;310&quot; src=&quot;https://www.youtube.com/embed/r7XhWUDj-Ts&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;</content><author><name>jamesfoster</name></author><category term="blog" /><category term="markdown" /><category term="components" /><category term="extra" /><summary type="html">Summary:</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://ememakpanekpo.github.io/me/me/assets/images/markdown.jpg" /></entry><entry><title type="html">Markdown Extra Components</title><link href="http://ememakpanekpo.github.io/me/me/halo-world/" rel="alternate" type="text/html" title="Markdown Extra Components" /><published>2016-02-24T22:48:00+00:00</published><updated>2016-02-24T22:48:00+00:00</updated><id>http://ememakpanekpo.github.io/me/me/halo-world</id><content type="html" xml:base="http://ememakpanekpo.github.io/me/me/halo-world/">&lt;h2 id=&quot;summary&quot;&gt;Summary:&lt;/h2&gt;

&lt;p&gt;You can pick as item to see how to apply in markdown.&lt;/p&gt;

&lt;h4 id=&quot;especial-elements&quot;&gt;Especial Elements&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#evidence&quot;&gt;Evidence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#side-by-side&quot;&gt;Side-by-Side&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#star&quot;&gt;Star&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#especial-breaker&quot;&gt;Especial Breaker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#spoiler&quot;&gt;Spoiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;external-elements&quot;&gt;External Elements&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#gist&quot;&gt;Gist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#codepen&quot;&gt;Codepen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#slideshare&quot;&gt;Slideshare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#videos&quot;&gt;Videos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;evidence&quot;&gt;Evidence&lt;/h2&gt;

&lt;p&gt;You can try the evidence!&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;evidence&quot;&gt;Paragraphs can be written like so. A paragraph is the basic block of Markdown. A paragraph is what text will turn into when there is no reason it should become anything else.&lt;/span&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;evidence&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Paragraphs can be written like so. A paragraph is the basic block of Markdown. A paragraph is what text will turn into when there is no reason it should become anything else.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;side-by-side&quot;&gt;Side-by-side&lt;/h2&gt;

&lt;p&gt;Like the &lt;a href=&quot;https://medium.com/&quot;&gt;Medium&lt;/a&gt; component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image&lt;/strong&gt; on the left and &lt;strong&gt;Text&lt;/strong&gt; on the right:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;side-by-side&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toleft&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;image&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;alt=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Alt Text&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;figcaption&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;caption&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Photo by John Doe&lt;span class=&quot;nt&quot;&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toright&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;side-by-side&quot;&gt;
    &lt;div class=&quot;toleft&quot;&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo by John Doe&lt;/figcaption&gt;
    &lt;/div&gt;

    &lt;div class=&quot;toright&quot;&gt;
        &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Text&lt;/strong&gt; on the left and &lt;strong&gt;Image&lt;/strong&gt; on the right:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;side-by-side&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toleft&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;toright&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;image&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;alt=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Alt Text&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;figcaption&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;caption&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Photo by John Doe&lt;span class=&quot;nt&quot;&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;side-by-side&quot;&gt;
    &lt;div class=&quot;toleft&quot;&gt;
        &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;toright&quot;&gt;
        &lt;img class=&quot;image&quot; src=&quot;http://ememakpanekpo.github.io/me/assets/images/profile.jpg&quot; alt=&quot;Alt Text&quot; /&gt;
        &lt;figcaption class=&quot;caption&quot;&gt;Photo by John Doe&lt;/figcaption&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;star&quot;&gt;Star&lt;/h2&gt;

&lt;p&gt;You can give evidence to a post. Just add the tag to the markdown file.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-raw&quot; data-lang=&quot;raw&quot;&gt;star: true&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;especial-breaker&quot;&gt;Especial Breaker&lt;/h2&gt;

&lt;p&gt;You can add a especial &lt;em&gt;hr&lt;/em&gt; to your text.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;breaker&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;breaker&quot;&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;spoiler&quot;&gt;Spoiler&lt;/h2&gt;

&lt;p&gt;You can add an especial hidden content that appears on hover.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;spoiler&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;p&amp;gt;&lt;/span&gt;your content&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;div class=&quot;spoiler&quot;&gt;&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;gist&quot;&gt;Gist&lt;/h2&gt;

&lt;p&gt;You can add Gists from github.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-raw&quot; data-lang=&quot;raw&quot;&gt;{ % gist sergiokopplin/91ff4220480727b47224245ee2e9c291 % }&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;script src=&quot;https://gist.github.com/sergiokopplin/91ff4220480727b47224245ee2e9c291.js&quot;&gt; &lt;/script&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;codepen&quot;&gt;Codepen&lt;/h2&gt;

&lt;p&gt;You can add Pens from Codepen.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;p&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-height=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;268&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-theme-id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-slug-hash=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;gfdDu&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-default-tab=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;result&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-user=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;chriscoyier&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'codepen'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    See the Pen &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'http://codepen.io/chriscoyier/pen/gfdDu/'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Crappy Recreation of the Book Cover of *The Flame Alphabet*&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; by Chris Coyier (&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'http://codepen.io/chriscoyier'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;@chriscoyier&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;) on &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;'http://codepen.io'&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;CodePen&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;.
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;//assets.codepen.io/assets/embed/ei.js&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p data-height=&quot;268&quot; data-theme-id=&quot;0&quot; data-slug-hash=&quot;gfdDu&quot; data-default-tab=&quot;result&quot; data-user=&quot;chriscoyier&quot; class=&quot;codepen&quot;&gt;See the Pen &lt;a href=&quot;http://codepen.io/chriscoyier/pen/gfdDu/&quot;&gt;Crappy Recreation of the Book Cover of *The Flame Alphabet*&lt;/a&gt; by Chris Coyier (&lt;a href=&quot;http://codepen.io/chriscoyier&quot;&gt;@chriscoyier&lt;/a&gt;) on &lt;a href=&quot;http://codepen.io&quot;&gt;CodePen&lt;/a&gt;.&lt;/p&gt;
&lt;script async=&quot;&quot; src=&quot;//assets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;slideshare&quot;&gt;Slideshare&lt;/h2&gt;

&lt;p&gt;Add your presentations here!&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;//www.slideshare.net/slideshow/embed_code/key/hqDhSJoWkrHe7l&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;width=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;560&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;height=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;310&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;frameborder=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;marginwidth=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;marginheight=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;scrolling=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;no&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;style=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;allowfullscreen&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/hqDhSJoWkrHe7l&quot; width=&quot;560&quot; height=&quot;310&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt; &lt;/iframe&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;videos&quot;&gt;Videos&lt;/h2&gt;

&lt;p&gt;Do you want some videos? Youtube, Vimeo or Vevo? Copy the embed code and paste on your post!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;width=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;560&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;height=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;310&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://www.youtube.com/embed/r7XhWUDj-Ts&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;frameborder=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;allowfullscreen&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;iframe width=&quot;560&quot; height=&quot;310&quot; src=&quot;https://www.youtube.com/embed/r7XhWUDj-Ts&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;</content><author><name>jamesfoster</name></author><category term="blog" /><category term="markdown" /><category term="components" /><category term="extra" /><summary type="html">Summary:</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://ememakpanekpo.github.io/me/me/assets/images/markdown.jpg" /></entry><entry><title type="html">:ramen: Indigo, minimalist jekyll theme</title><link href="http://ememakpanekpo.github.io/me/me/testing-emptiness/" rel="alternate" type="text/html" title=":ramen: Indigo, minimalist jekyll theme" /><published>2016-01-23T22:10:00+00:00</published><updated>2016-01-23T22:10:00+00:00</updated><id>http://ememakpanekpo.github.io/me/me/testing-emptiness</id><content type="html" xml:base="http://ememakpanekpo.github.io/me/me/testing-emptiness/">&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/sergiokopplin/indigo/gh-pages/assets/screen-shot.png&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Example of project - Indigo Minimalist Jekyll Template - &lt;a href=&quot;http://sergiokopplin.github.io/indigo/&quot;&gt;Demo&lt;/a&gt;. This is a simple and minimalist template for Jekyll for those who likes to eat noodles.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;What has inside?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Gulp&lt;/li&gt;
  &lt;li&gt;BrowserSync&lt;/li&gt;
  &lt;li&gt;Stylus&lt;/li&gt;
  &lt;li&gt;SVG&lt;/li&gt;
  &lt;li&gt;Travis&lt;/li&gt;
  &lt;li&gt;No JS&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fsergiokopplin.github.io%2Findigo%2F&quot;&gt;98/100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&quot;http://sergiokopplin.github.io/indigo/&quot;&gt;Check it out&lt;/a&gt; here.
If you need some help, just &lt;a href=&quot;http://github.com/sergiokopplin/indigo/issues&quot;&gt;tell me&lt;/a&gt;.&lt;/p&gt;</content><author><name>johndoe</name></author><category term="project" /><category term="jekyll" /><summary type="html"></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://koppl.in/indigo/assets/images/jekyll-logo-light-solid.png" /></entry></feed>