Git Product home page Git Product logo

ajfisher.me's People

Contributors

ajfisher avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

ajfisher.me's Issues

Create github deployment process

Set up deploy workflows to be able to:

  • Add deploy IDs to github project
  • Checkout and build the project
  • Run tests on the react components
  • Build the static pages as an artifact
  • Upload the files to S3

Implement testing

Pull together some core tests that need to be applied:

  • Test each of the main components
  • Add test running into the make file
  • Add test completion to pre-commit step with husky
  • Make tests as part of the deploy process.
  • Add tests as part of the push and PR events.

Add background colour to image header

At the moment there is no background colour on an image header so you get a slab of white. Use the same as a normal header so it is dark if the image can't load.

Create transformer that will process caption links

Build a transformer plugin that will walk through the page AST and look for the image captions that have a link in them and then rebuild the html of the figcaption to be able to have a linked caption.

Add `/blog` page

Add the overall /blog listing archival page which is a list of all items sorted by date.

  • Utilise the same core as the main listing page with a less tight search query
  • No pagination as per current site.
  • Should live at /blog from a path standpoint
  • Most recent featured item is called out in hero slot.
  • Add link in nav

Don't feature the feature on its page

If you are on the page of the featured post then show the second featured post instead in the footer link

Likewise when on the home page, show the second post in the footer too rather than the first.

Build a gallery

Grab a set of images and build a gallery from it. Needs to be responsive and work as a media component in the page.

Implement pull quotes

Build mechanism to extract pull quotes from the text and display them:

  • Extract quotes from the markdown
  • Add pull quote ahead of the paragraph it appears on.
  • implement styling

Set up new structure for the move.

Set up a new structure in order to manage the transition to Gatsby

  • Set up infra folder
  • Create distinction between MD data and templates etc
  • Remove all old node package and rebuild
  • INstall the basic gatsby elements.
  • Remove any old css and JS files etc.

Make layouts more composable.

Make the layouts for the different templates a bit more composable and break up the post layout to be more reusable.

  • Move layout to postLayout
  • Move the Main component to a separate file and include it
  • Move the Aside component to a separate file and include it
  • Article and StyledArticle have too much layout in it. Move to a higher abstraction to provide the container and the default styles for copy and then break the specific Article stuff out separately.
  • Update Header to be able to take a featured post or the current post header.

Improve styles for smaller resolution such as mobile

At the moment, the minimum resolution is 501px, drop this down to a sub 400px minimum resolution and design for this.

  • Improve layout
  • Refactor styles so text is smaller
  • Get ordering of navigation better
  • Create correct padding across the article
  • Update margins for blockquotes
  • Get correct formatting of pre containers.

Create listing page template

Create a new listing page template that will work for:

  • Tag list
  • Archive list
  • Home page

Should provide ability to have

  • Featured item called out in header section
  • List of posts that can go to 2 columns on larger screen resolutions

Add colophon page

Add a colophon page

  • Write in markdown
  • Add to pages section
  • Add into main navigation

Add code highlighting

Add a code highlighting option to the remark plugins to render the various code snippets correctly.

Create markdown template for pages

Create a template to be used for markdown pages.

  • Use same core template as for Article
  • Update content of the markdown files to reflect what is actual now
  • update header to be able to not require things like dates etc.

Feature based on tags

On the blog pages, pull a featured post that's appropriate based on the tags on the current blog page. Will need some thought about this.

Add duotone support

Create duotones for featured background images for posts using following config:

  • Shadow #0C0C0C for all.
  • Highlight: #FF5E9A
  • Highlight: #EAFF5E
  • Highlight: #FF5E9A

Provide the bg image as a set to chose from then use the front matter to determine which one.

  • Add duotone config to posts.js query to produce them
  • Leave default as the current, non duotoned image so no breakages.
  • Add each duo tone with colour prefix as the name.
  • Map the names through and then allow them to be chosen as an option in the front matter using feature_image_duotone

Update header to be able to take different sizes background images

At the moment the base background image is a little poor quality.

  • Create graphql queries to pull in appropriately rezed images
  • Update components with Header to take an object of featured images
  • Set up media queries to use the appropriate images for the right width

Add PWA configuration

  • Add display standalone to the manifest Use minimal-ui
  • Add gatsby-plugin-offline and add to config
  • Add the remove service worker plugin so this can be turned off correctly if needed.

Add SEO component and react Helmet to manage head content.

Update SEO Component and then include it into the page head.

  • Bring in React Helmet
  • Include into all templates
  • Provide appropriate titles for all pages
  • Update SEO component to have correct information
  • Add meta info
  • Look at getting twitter card info available
  • Add mechanism to bring in image for twitter if it exists
  • Use twitter excerpt if that exists
  • Add site url to the twitter image to reference it properly.

Create post data component

Add a new container component that is used to hold the various post meta data elements.

  • Title of the post
  • Tag list with links to the tag listing pages
  • Publication date

add robots.txt file

Add robots.txt file to make sure search engines pick up the site the right way.

Fix pullquotes that contain " marks

See the JS Devs link and you can see there is an issue with the pull quote because it contains quotes.

Need to change this so the plugin escapes them so they can be kept inside the data attribute

Rebuild home page

Home page is a special version of a listing page with fewer items.

See #17 for core and then additionally:

  • Most recent featured item should be the header
  • Add the line "Observations, code and commentary from ajfisher"
  • Add additional featured post section at the top of the article with 2x items in it (meaning top three slots are featured)
  • Next 10 posts will then go through as the remainder of the page under "recent posts" title
  • Add link to /blog

Rebuild pages into react

Reimplement the page templates into react.

  • Post
  • Main listing page
  • Home page
  • Tag listing page
  • Category page

Need to add the various components that needs to exist as well:

  • Header
  • Footer
  • Metadata
  • Tags
  • Attribution
  • Navigation
  • Social links
  • Post Meta info
  • List item

Update to use Link tags

Use link tags wherever possible for internal links to provide caching hints. At the moment the redirects are causing issues.

Build post item component for listst

Linked to #17

Need to build and refine the post list component to accommodate for:

  • Alternative style arrangement in main body of page versus the footer
  • Have or not have image
  • Have or not have an excerpt
  • Have or not have publication date
  • Have or not have word count details

Change layout to use CSS grid

Move to CSS grid in order to manage the layout better.

  • Make 12 column grid for large and up screen sizes
  • Make 1 column grid for smaller displays.

Fix meta tags

Update the production of the meta tags to:

  • Unfurl properly in slack
  • Add images conditionally depending on what type of page they are
  • resolve duplicate meta tag issue

Add tag list pages

Make pages for tags lists:

  • Implement a method kebabCasing paths for spaces etc for tag names
  • Build pages for the tag lists on /tags/{tagname}
  • Write gatsby query to build this
  • Implement method of converting front matter tag string to taglist array

Terraform set up

Use terraform:

  • Put in a new S3 bucket
  • Set up DNS routing
  • Set up ACM for domain
  • Cloud front distribution for the S3 bucket
  • Set up specific deploy user for github access to deploy
  • set up redirection for ajfisher.me to www.ajfisher.me
  • add alternative ssl cert for ajfisher.me
  • Fix issue with the refresh of a page redirecting to the 404 page

Add captions to all images

As part of response to #14 - update markdown files and CSS to use normal images with a <caption> tag to be added as content to provide things like links etc more appropriately. Keeps the markdown a bit more clean and purposeful.

Add featured post by same tags

To determine the featured post that should appear on the page. Do the following:

  • If not a post then take the most recent
  • Check the current post for tags then iterate over the featured post list and find the post with the highest overlap of tags. Display that one.
  • If a tag page, check for featured post that matches this tag, if can't find then use most recent. If can find then use the same as the header one.

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.