 Advent of Code solutions, and thought it would be helpful to write down something simple that's saved me a lot of headache.
      Advent of Code solutions, and thought it would be helpful to write down something simple that's saved me a lot of headache.
      
     
                Formatting code for blog posts
      I'm writing a lot of code on this website, especially for my 
       Advent of Code solutions, and thought it would be helpful to write down something simple that's saved me a lot of headache.
      Advent of Code solutions, and thought it would be helpful to write down something simple that's saved me a lot of headache.
      
    
 Advent of Code solutions, and thought it would be helpful to write down something simple that's saved me a lot of headache.
      Advent of Code solutions, and thought it would be helpful to write down something simple that's saved me a lot of headache.
      
    
      In particular, we want articles which contain source code to have that source code be legible on all devices (I tweet out a lot of my articles, and people frequently read twitter on their phones).
      
    
🔗 Disable text wrap
      Things can quickly go awry when your code is substantially indented. Replace it with a horizontal scrollbar so it doesn't wrap.
      
    
pre code {
  padding: 1em 0 !important;
  overflow: auto;
  display: block;
}🔗 Leveraging Prettier
      Scrollbars are good, but they're a crutch. When possible, we should keep line lengths to a minimum. For my blog I've noticed that anything over 45 characters creates a scrollbar at my font size and my screen dimensions.
      
    
      For instance, the following code block has a fair bit of necessary scrolling to see it all on a mobile device.
      
    
async function getChildren(notion, id) {
  const req = await notion.blocks.children.list({ block_id: id });
  const blocks = req.results;
  return Promise.all(
    blocks.map(async (block) => {
      if (block.has_children) {
        block.children = await getChildren(notion, block.id);
      } else {
        block.children = [];
      }
      return block;
    })
  );
}
      Thanks to Prettier, this is trivial. (Make sure you install it and the corresponding VSCode extension). Then we create a 
.prettierrc.json in project's directory with these rules:
      
    {
  "printWidth": 45,
  "tabWidth": 2
}
      Upon formatting (or saving with 
"editor.formatOnSave": true), our code transforms to the following:
      
    async function getChildren(notion, id) {
  const req =
    await notion.blocks.children.list({
      block_id: id,
    });
  const blocks = req.results;
  return Promise.all(
    blocks.map(async (block) => {
      if (block.has_children) {
        block.children = await getChildren(
          notion,
          block.id
        );
      } else {
        block.children = [];
      }
      return block;
    })
  );
}
      Which comfortably fits on the screen  Maybe we could even render both the before and after and display the right with a @media query.
 Maybe we could even render both the before and after and display the right with a @media query.
      
    
        
       Maybe we could even render both the before and after and display the right with a @media query.
 Maybe we could even render both the before and after and display the right with a @media query.