Code Monkey home page Code Monkey logo

theblog's Introduction

theblog's People

Contributors

aem-code-sync[bot] avatar auniverseaway avatar avanishgandhi avatar chrischrischris avatar davidnuescheler avatar dependabot[bot] avatar dominique-pfister avatar elaineskpt avatar fkakatie avatar kptdobe avatar marquiserosier avatar mokimo avatar overmyheadandbody avatar ramboz avatar rofe avatar stefan-guggisberg avatar trieloff avatar tripodsan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

theblog's Issues

[Global] Move author div computation to "something server side"

Upcoming change https://github.com/davidnuescheler/theblog/blob/alexonedrive/head.html#L32-L65 deals with the "by AUTHOR" text in the DOM, fetch the author avatar and construct the expected DOM for an author. This is a decent amount of logic which is run client side. Which means this final DOM will not be cached by Fastly and we be recomputed on each request.
This could be moved into a pre.js but we are using helix-pages here which does not support it. adobe/helix-pipeline#516 will introduce one step into this direction but not enough to cover this use case (see my comment there).

[Products] Create product pages and update fetchProduct

Follow up from #14.

Current product handling is ok for demo (links are not all working) but final implementation should be different: it should follow the same pattern than author, fetch the product page, retrieve logo / link / product name from product page and insert it from here. Creating all corresponding content in OneDrive is a fastidious task (all logo should be pasted inside the docx), will be done when architecture is clear and final.

Todos: once final destination system is defined (OneDrive, GoogleDoc or GitHub)

  • create a product page per product which includes: logo, product name, link to adobe.com page
  • update fetchProducts from head.html to gather data from product page (instead of guessing logo name and link).

Tags / Topic

I think tags should be added in a simple way by an author just adding

Topics: Customer Experience, Campaign Management

at the very end of the document.

As this is below the fold i think client sided manipulation of the DOM should be perfectly fine to create the "Topics" experience

Indexing would have to be adapted to be able to deal with this new way of specifying tags/topics.

Showing all posts for a specific topic/tag i could see a default way of dealing with it, intuitively something like /topic.html?topic=Campaign+Management but ideally we also support /topics/campaign-management.html where we could similar to authors optionally have a little description on the topic / product.

[Global] Onedrive "connector" is not stable

I see inconsistent behaviours when working locally on the project and reloading frequently various the pages we have (like http://localhost:3000/posts/creating-adobe-experience-platform-pipeline-with-kafka.html). In the hlx up logs, I see errors like:

[hlx] error: Error while fetching Markdown from https://adobeioruntime.net/api/v1/web/helix/helix-services/word2md@latest?rid=9LMbVX53YZ22tg%2BP71%2BMuW14IJYsc%2FhB&src=helix%2Fgithub.com--davidnuescheler--theblog%2Fproducts&path=%2Fhead.docx&shareLink=https%3A%2F%2Fadobe.sharepoint.com%2Fsites%2FTheBlog%2FShared%2520Documents%2Ftheblog%3Fcsf%3D1%26e%3D8Znxth with the following options:
{ uri:
   'https://adobeioruntime.net/api/v1/web/helix/helix-services/word2md@latest?rid=9LMbVX53YZ22tg%2BP71%2BMuW14IJYsc%2FhB&src=helix%2Fgithub.com--davidnuescheler--theblog%2Fproducts&path=%2Fhead.docx&shareLink=https%3A%2F%2Fadobe.sharepoint.com%2Fsites%2FTheBlog%2FShared%2520Documents%2Ftheblog%3Fcsf%3D1%26e%3D8Znxth',
  json: false,
  timeout: 10000,
  time: true,
  followAllRedirects: true }

Looking at Coralogix, I also see plenty of messages like this (INFO, not ERROR):


{"message":"Error while converting document: %s { StatusCodeError: 404 - 

Maybe @tripodsan can help here.

Authors

I think authors should be added in a simple way by an author just adding

by Bruce Swann
Posted on 11-18-2019

at the top of the document.

As this is below the fold i think client sided manipulation of the DOM should be perfectly fine to create the "Author" experience

Indexing would have to be adapted to be able to deal with this new way of specifying authors.

Showing all posts for a specific author i could see a default way of dealing with it, intuitively something like /authors/bruce-swann.html where we could have a bio written up and possibly have access to the prominent image as their headshot. alternatively, we could have all the authors images in separated out.

[Global] Content Import

it would be great to have a way to get from sitemap.xml or some other list of URLs that encompass something like the results from a google search for site:theblog.adobe.com and turn those URLs into a set of .md files...

i think in this particular case a selector of section#content would probably be used to get to the content and then it looks a straight forward html to md conversion.

from there i think it would be great to find a batch way to convert folder structure into gdocs or .docx

[Posts] Show related articles at the bottom

Each post has related articles at the bottom. The logic still needs to be defined, i.e. whether the selection is manually curated, or if it is based on the (main) topic, product, or articles from the same author...

For starters, we could just display articles from the same author.

Running with "hlx run" fails with "Could not find Markdown" error and 404

fstab.json points to the an adobe.sharepoint.com URL which requires a login and permission, not sure if that's ok:

https://adobe.sharepoint.com/sites/TheBlog/Shared%20Documents/theblog?csf=1&e=8Znxth

Opening that URL with my Adobe credentials says "You need permission to access this item".

If I try to run theblog with "hlx run" I get this error which looks related and http://localhost:3000 returns a 404:

[hlx] error: Could not find Markdown at https://adobeioruntime.net/api/v1/web/helix/helix-services/word2md@latest?rid=auACneEt2mwwuW29wnzHvl6EyuUu%2BKTf&src=helix%2Fgithub.com--davidnuescheler--theblog%2Fmaster&path=%2Findex.docx&shareLink=https%3A%2F%2Fadobe.sharepoint.com%2Fsites%2FTheBlog%2FShared%2520Documents%2Ftheblog%3Fcsf%3D1%26e%3D8Znxth

[Global] Implement the nav bar

On each blog entry, there is a nav bar allowing to navigate from one entry to another (time based). It includes the time to read (?) and the share feature (we should skip the social features - like and feed).

[Homepage] layout issues

somehow it seems like the publish date has vanished from the homepage and there are some layout issues...

Screen Shot 2020-01-09 at 11 37 57 AM

[Cache] stale caching

it seems that the delivery of stale cache items doesn't seem to work as expected, or at least i am still getting completely uncached responses after the actual ttyl expires...

[Global] Polish the blog styling

Many details are not 1:1, like spacings, fonts... The overall styling must be reviewed and polished. This includes (not exhaustive):

  • mobile version
  • vertical title on the right side of the page

This excludes the Header and Footer, tackled here #2.

[Posts] Drafts vs. publishing

i think at this stage it would be great if we just have a /drafts vs. a /posts folder and publishing essentially just means moving things in one drive / sharepoint

[Posts] Simplify expected blog post markdown

https://github.com/davidnuescheler/theblog/blob/alexonedrive/content/posts/creating-adobe-experience-platform-pipeline-with-kafka.md starts being the "reference" markdown.

The current style implementation requires the md file to start with:

  • a title
  • a thematic break
  • an image
  • a thematic break
  • the "author block"
  • a thematic break
  • the blog post content

All those thematic breaks are only here to properly style the fullscreen hero image and to differentiate the author section.
This requires the author to know those requirements and will be leading to a lot of rendering errors (oups i forgot a thematic break somewhere...).

TODO 1: remove the first TB from the reference md and rewrap the dom with required divs. This should be doable with adobe/helix-pipeline#516

But this does not solve the "what if the author does not have a hero image" or "he/she/they forgot to add the author section"... our code has to have a strong resilience to author mistakes. This would be doable only with code...

TODO 2: make sure the layout does not break for basic author mistakes or use cases we forgot.

[Posts] Add Recommended Articles on blog entries

Each blog entry has a "Recommended Articles" section at the end, this should be implemented. We need to research if a search can be implemented to do find something meaningful. Otherwise, I do not see how we could implement this in a user friendly matter (no one wants to maintain a list manually for each blog entry).

Add page type to body class

This will make it easier for us to differentiate CSS for the different page types (homepage, author, post, topic, product).

Route Algolia Queries through CDN

This is somewhat related #42 but more cosmetic. We can modify the algoliasearch hosts.read property to use the current host and then pass the results through Fastly in the backend.

[CDN] Set Up CDN

Hostname: theblog.helix-demo.xyz
Backends:

  • Fastly (Helix Pages)
  • Algolia (/_query/โ€ฆ)

Caching:

  • some (not too much)

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.