Coding Tutorial - Permalinks, Tags and Notes
I found this helpful so I wanted to share
Source: https://themesbyeris.tumblr.com/tutorial07
I couldn't reblog so I'm reposting.
Permalink
We are going to start this part of the tutorial by adding in the permalink. If you donāt know what that is already, it is the thing you click to go to view a post on an individual page. Tumblr makes this really easy. All you need is the following piece of code:<a href="{Permalink}">Text</a>
You can replace the word āTextā from the example above with an image, a note count, the date, or anything else text-based. For example, if we wanted the permalink to be displayed in dd/mm/yyyy format, we would write:{block:Date}DayOfMonthWithZero}/{MonthNumberWithZero}/{Year}{/block:Date}
Tip: Always wrap the date in the āblock:Dateā tags otherwise the date will show up on ask/submit pages too.
Here are a few other formats:{MonthNumberWithZero}-{DayOfMonthWithZero}-{Year} = 04-10-2012 {DayOfWeek}, {DayOfMonth} {Month} {Year} = Tuesday, 10 April 2012 {ShortMonth} {DayOfMonth}{DayOfMonthSuffix}, '{ShortYear} = Apr 10th, '12 {12Hour}:{Minutes}{AmPm} = 3:00pm {12HourWithZero}.{Minutes}.{Seconds}{CapitalAmPm} = 03.00.00PM {24HourwithZero}{Minutes} = 1500 {TimeAgo} = 1 hour ago
[Click here for all the ways you can format the date]
I will be using the {TimeAgo} tag for this example. But I also want to include in the permalink the notecount. This one is easier because thereās only two options for it.{NoteCount} = 1,938 {NoteCountWithLabel} = 1,983 notes
Naturally, this is also wrapped in those pesky block tags. This time itās āblock:NoteCountā. So if we put both the date and notecount together with the word āwithā between them, it will look like this:<a href="{Permalink}"> {block:Date}{lang:Posted TimeAgo}{/block:Date} {block:NoteCount} with {NoteCountWithLabel}{/block:NoteCount} </a>
What weāre going to do with this piece of code is wrap it in a div and call it āpermalinkā, then put that div right after our main content, inside the āblock:Postā tags (this is important).{block:Posts} ... [All your post types here] ... <div id="permalink"> <a href="{Permalink}"> {block:Date}{lang:Posted TimeAgo}{/block:Date} {block:NoteCount} with {NoteCountWithLabel}{/block:NoteCount} </a> </div>
Now that it is wrapped up in a div, we can style it. We donāt need to do much for this theme, since we did a lot of the styling in the content tag. The only things we need to specify here is the size of the font, and use the margin property to make a space between the permalink and the post above it.#content #posts #permalink { font-size:9px; margin-top:10px; }
Tags
The basic code for tags is this:{block:Tags}<a href="{TagURL}">#{Tag}</a> {/block:Tags}
Tumblr also gives us an extra block tag called āblock:HasTagsā since not all posts have tags. If you add in a pretty box or image for tags, it is not a good idea to have it still display when there are no tags at all. In this case I will be adding a div with the label ātagsā, and putting this inside the secondary block tags.{block:HasTags}<div id="tags"> {block:Tags} <a href="{TagURL}">#{Tag} </a> {/block:Tags} </div> {/block:HasTags}#content #posts #tags { font-size:9px; }
Now I am going to show you a little trick. At the moment we have formatted the tags so that they will show up like this:
#tag one #tag two #tag three
But what if I want them to show up like this?
tag one, tag two, tag three.
Do you see the problem there? The last tag ends with a fullstop instead of a comma. The following would not work:{block:Tags} <a href="{TagURL}">{Tag}</a>,Ā {/block:Tags}.
(Take note of the full stop outside of the āblock:Tagsā tag.)
tag one, tag two, tag three,.
Hereās a little trick to get around that. Just copy this code:{block:Tags} <a href="{TagURL}">{Tag}</a><span class="comma">, </span> {/block:Tags}.#content #posts #tags .comma:last-child { display: none; }
Itās the ālast-childā bit in the CSS that tells the browser not to display the comma if itās the last one in the line. We also used āspanā instead of ādivā because if weād used div, it would have made a line break, which we donāt want in this case.
tag one, tag two, tag three.
Note Container
The note container is the bit where it lists everyone that has liked or reblogged a post, along with their comments if they made any. Naturally it only shows up on the permalink pages.
This one is going to be done a little differently to the previous two, and be placedĀ outsideĀ the āpostsā div we created (but it still has to be inside the āblock:Postsā tags).{block:Posts} <div id="posts"> ... [A lot of stuff in here.] ... [Permalink] [tags] </div> [<--closes the "posts" div] Note Container {/block:Posts}
Note that you donāt HAVE to put the note container outside the āpostsā div, it can be inside if you want. This is just how weāre doing it for this theme. All this means is that it wonāt be inside those white boxes we made for each post.
The HTML part for this is simple. Just some block tags, and {PostNotes}. I have wrapped this in a div so we can style it using CSS.{block:PostNotes} <div id="notecontainer">{PostNotes}</div> {/block:PostNotes}
Now since we took the note container outside of the āpostsā div, we need to re-establish the width and margins. A font size also needs to be specified here since that isnāt specified in any parent tags.#content #notecontainer { margin: 20px auto; width: 500px; font-size: 11px; }
Now if you look at the theme, you will be able to click through to the permalink pages and see the notes as a list. If there are a lot of notes, they will be labelled 1-50, and number 51 will contain a āShow More Notesā link. Having it numbered is the tumblr default, but it doesnāt actually look nice. We are going to go ahead and access the list using a built in tag called āol.notesā (ol = ordered list, numbered list), and apply a property called ālist-style-typeā to remove the number system. I am also going to get rid of the default margins and padding that comes with the list, but padding can be added if you prefer to have the lines more spaced out.#content #notecontainer ol.notes { list-style-type: none; margin: 0; padding: 0; }
Lastly I am going to edit the little avatar next to each note. At the moment there is no space between the avatar and the name of the blogger, so Iāll be adding in a 10px margin. Plus just to be on the safe size I will include the size of the images.#content #notecontainer img.avatar { margin-right: 10px; width: 16px; height: 16px; }
ClickĀ hereĀ to see the code so far, andĀ hereĀ for the live-preview.
In the next tutorial we will be finishing up this basic theme with adding in pagination and infinite-scroll. Then I will move on to tricks to make things look pretty like transition-effects.
















