Giter Club home page Giter Club logo

blog's People

Contributors

bobbermac avatar oubiwann avatar ryugi avatar

Stargazers

 avatar

Watchers

 avatar  avatar

blog's Issues

Generate all posts by author

In addition to primary blog posts (see ticket #8), all posts need to be saved by author.

Tasks:

  • save pages to /docs/authors/FIRST_LAST/YYYY-MM/DD-HHMMSS-TITLE.html
  • create /docs/authors.html - iterate all author names with links
  • create /docs/authors/FIRST_LAST.html - iterate all author posts with links
  • regenerate all authors sidebars

Add `frmx new post` command

Add support for generating stubbed content files, ready for editing.

The following commands should be supported:

  • frmx new - alias for frmx new post
  • frmx new post - new stubbed placeholder post of default content type
  • frmx new post md - new stubbed placeholder post of Markdown content type
  • frmx new post clj - new stubbed placeholder post of Clojure content type
  • frmx new post edn - new stubbed placeholder post of EDN content type
  • frmx new post html - new stubbed placeholder post of HTML content type
  • frmx new post rfc - alias for frmx new post rfc5322
  • frmx new post 5322 - alias for frmx new post rfc5322
  • frmx new post rfc5322 - new stubbed placeholder post of RFC 5322 content type

All commands will generate a content file and a metadata file. The content file will be of the form specified in the command or will use the default type. The metadata file fill be in EDN format have have all supported keys stubbed with required fields indicated and optional fields set to an empty string, list, map, etc.

See ticket #1 for more details on these files.

Add meta tags

Google-search-friendly meta tags:

  • description

General:

  • author
  • generator

Dublin Core:

  • DC.coverage (year range)
  • DC.subject
  • DC.keywords (not regular meta tag keywords)
  • DC.creator
  • DC.publisher
  • DC.date
  • DC.format
  • DC.type
  • DC.rights (creative commons license URL)
  • DC.identifier (post URL)
  • DCTERMS.audience
  • DCTERMS.abstract

Example:

<head profile="http://dublincore.org/documents/dcq-html/">
<title>Expressing Dublin Core in HTML/XHTML meta and link elements</title>
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
<link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" />

<meta name="DC.title" lang="en" content="Expressing Dublin Core
in HTML/XHTML meta and link elements" />
<meta name="DC.creator" content="Andy Powell, UKOLN, University of Bath" />
<meta name="DCTERMS.issued" scheme="DCTERMS.W3CDTF" content="2003-11-01" />
<meta name="DC.identifier" scheme="DCTERMS.URI"
content="http://dublincore.org/documents/dcq-html/" />
<link rel="DCTERMS.replaces" hreflang="en"
href="http://dublincore.org/documents/2000/08/15/dcq-html/" />
<meta name="DCTERMS.abstract" content="This document describes how
qualified Dublin Core metadata can be encoded
in HTML/XHTML &lt;meta&gt; elements" />
<meta name="DC.format" scheme="DCTERMS.IMT" content="text/html" />
<meta name="DC.type" scheme="DCTERMS.DCMIType" content="Text" />
</head>

Open Graph (Facebook):

  • og.title
  • og:url
  • og:type (blog)
  • og:description
  • og:image (recommended 1200 pixels x 627)
  • og:site_name

image

Twitter:

  • twitter:card (maps to og:type) use summary_large_image
  • twitter:title
  • twitter:description
  • twitter:url
  • twitter:image
  • twitter:site
  • twitter:creator
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@nytimes">
<meta name="twitter:creator" content="@SarahMaslinNir">
<meta name="twitter:title" content="Parade of Fans for Houston’s Funeral">
<meta name="twitter:description" content="NEWARK - The guest list and parade of limousines with celebrities emerging from them seemed more suited to a red carpet event in Hollywood or New York than than a gritty stretch of Sussex Avenue near the former site of the James M. Baxter Terrace public housing project here.">
<meta name="twitter:image" content="http://graphics8.nytimes.com/images/2012/02/19/us/19whitney-span/19whitney-span-articleLarge.jpg">

See:

Decide upon blog entry structure

What about this:

posts/YYYY-MM/dd-hhmmss/content.[clj | edn | html | md]
posts/YYYY-MM/dd-hhmmss/meta.edn

For the file endings, if:

  • clj - there must be a content function defined that takes no arguments - this will be called
  • edn - there must be a top-level map data structure with the content key - this will be used
  • html - the entire content of the file will be used as-is
  • md - the entire content of the file will be parsed as Markdown

Where the meta.edn file would have a structure something like:

{:title "..."
 :subtitle "..."
 :excerpt "..."
 :author "..."
 :category "..."
 :tags ["..." "..." ...]
 :comment-link "..."}

Generate all posts by tags

In addition to primary blog posts (see ticket #8), all posts need to be saved by tags.

Tasks:

  • save pages to /docs/tags/TAG/YYYY-MM/DD-HHMMSS-TITLE.html
  • create /docs/tags.html - iterate all tag names with links
  • create /docs/categories/TAG.html - iterate all tag posts with links
  • regenerate all tags sidebars

Make tag colors a heatmap

Tasks:

  • when generating a site, return tag data that is not only the tag name, but also the tag count (number of posts that use that tag)
  • divide the current tag color and a lighter color into four sections (five boundaries) and use the edges between them as the color range
  • rank each tag count on scale of 1 to 5 and assign the appropriate color

Note: some of theses tasks will need to be done in Dragon.

Style "neighboring posts" arrows in siedbar widget

The post navigation arrows that appear at the bottom post the longer posts are styled properly: you can easily tell when there are more posts and when there aren't, based on the styles. The ones in the sidebar widget are missing their styles.

Add `frmx add comments` command

Add support for updating adding the comments URL for any post that doesn't have one.

The following commands should be supported:

  • frmx add comments url [POST] - update the entry in the meta.edn file for the given post

Tasks:

  • Use the Clojure Github API to create a "comments" issue for all posts that are missing one
  • Update the entry in the meta.edn file
  • Shell out with git commit POST/meta.edn -m "Added commit URL."
  • Regenerate post so that a link to the comment URL shows up

Optionally hide some articles from the front page

After some exposure on the front page, it will be desirable for some articles with lower interest levels to not be displayed there. This change introduces support for this.

Tasks:

  • Update post source files with a boolean metadata element (e.g., an rfc5322 header) like "Show-In-Headlines: True"
  • Convert headline boolean to idiomatic Clojure upon parse: Show-In-Headlines -> headline?
  • If empty/nil set to true
  • If false, when building list of headline stories, don't include in the top-X (10, by default)

Generate all posts in archives

In addition to primary blog posts (see ticket #8), all posts need to be saved in the date archive.

Tasks:

  • save pages to /docs/archives/YYYY-MM/DD-HHMMSS-TITLE.html
  • create /docs/archives/years.html - iterate all years
  • create /docs/archives/YEAR/months.html - iterate all months for the year
  • create /docs/archives/YEAR/MONTH/DD-HHMMSS-TITLE.html - iterate all posts for the month
  • regenerate all archive sidebars

Generate all posts by category

In addition to primary blog posts (see ticket #8), all posts need to be saved by category.

Tasks:

  • save pages to /docs/categories/CATEGORY/YYYY-MM/DD-HHMMSS-TITLE.html
  • create /docs/categories.html - iterate all category names with links
  • create /docs/categories/CATEGORY.html - iterate all category posts with links
  • regenerate all category sidebars

Add support for RFC 5322 content type

Tasks:

  • Create rfc5322-content stub
  • Ensure stub is properly generated
  • Add postal dependency
  • Parse generated RFC 5322 content
  • Ensure standard fields are parsed and accessible via keys defined by the blog metadata
  • Ensure RFC-5322-optional fields are parsed and accessible via keys defined by the blog metadata

Add `frmx check comments` command

Before publishing, posts should be checked for content and the presence of required metadata fields (see tickets #1 and #3).

Commands:

  • frmx check comments

This command needs to do the following:

  • Use the Clojure Github API to get a list of issues tagged with the comment label
  • Identify all posts that don't have a "comments" issue created for them

Phone view of front-page is bad

In particular:

  • some of the top-5 stories are forced together in xs mode; they need to be displayed in their own rows in xs mode, not two side-by-side
  • the social links collection is so long now that in md mode and smaller, the menu is bumped down to where it shouldn't be
    • at all sizes, the main menu should remain in the same location, until it goes to hamburger mode
    • at all sizes, the social menu should not cause display issues with other components

Add `frmx check posts` command

Before publishing, posts should be checked for content and the presence of required metadata fields (see tickets #1 and #3).

Commands:

  • frmx check - alias for frmx check all
  • frmx check content - alias for frmx check posts
  • frmx check posts
  • frmx check all

Add `frmx show metadata` command

Add support for showing post metadata.

The following commands should be supported:

  • frmx show metadata - alias for frmx show metadata all
  • frmx show metadata all - show metadata for all posts
  • frmx show metadata [POST] - show the metadata for a particular post

Add `frmx publish` command

Under the hood, the command needs to do the following:

  • Run frmx check content
  • Run frmx check comments
  • If any of the checks fail, halt the publish process
  • Shell out with git push origin master

Add `frmx show content-type` command

Planned subcommands:

  • frmx show content-type POST

Planned aliases:

  • frmx show comments POST - use the Github API to get a list of comments for a given post

Update Footer

Tasks:

  • Add copyright, C&B|Books, BilloSystems, Ltd. Co.
  • Changes "stats" section
  • Change "hall of fame" section
  • Update "contact" section

Provide a bit more organization on the front page

  • Add a heading after the title and tagline, maybe "Headlines"
  • Add a brief description of the recent posts, e.g., "Below are the most recent posts created on Forgotten Roads. If you are looking for older posts, be sure to visit the archives, listed chronological order (most recent to earliest)."
  • Change the button at the bottom from "Read More" to "List All Posts"

Generate all posts by date

Primary content for posts need to be generated and saved,

Tasks:

  • save pages to /docs/posts/YYYY-MM/DD-HHMMSS-TITLE.html
  • regenerate all archive pages
  • regenerate all archive sidebars

Stats on front page are wrong

They only pertain to the 10 most recent posts. The data structure that's passed to the function that generates the front page only contains these (due to recent change).

Heading tags need differentiating styles

The <h1>, <h2>, <h3>, etc. tags need more styling/color. For instance, looking at the archives, tags, categories, etc. pages, it's difficult to distinguish the levels.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.