Coder Social home page Coder Social logo

auto-TOC for README about bench-warmers HOT 2 CLOSED

dmarx avatar dmarx commented on May 26, 2024
auto-TOC for README

from bench-warmers.

Comments (2)

dmarx avatar dmarx commented on May 26, 2024

most of the way there:

from pathlib import Path
import subprocess

def get_last_modified_date(fpath, verbose=False):
    cmd = "git log -n 1 --pretty=format:%as --".split( )
    cmd += [str(fpath)]
    if verbose:
        print(cmd)
    response = subprocess.run(cmd, capture_output=True)
    return response.stdout.decode()

md_files = Path('.').glob('*.md')
TOC = []
for fpath in list(md_files):
    with open(fpath) as f: 
        header = f.readline()
        if header.startswith('# '):
            d_ = {'fpath':fpath}
            d_['title'] = header[2:].strip()
            d_['last_modified'] = get_last_modified_date(fpath)
            TOC.append(d_)

TOC = sorted(TOC, key=lambda x:x['last_modified'])[::-1]

url_root = "https://github.com/dmarx/bench-warmers/blob/main/"

header= "|last_modified|title|\n|:---|:---|\n"
recs = [f"|{d['last_modified']}|[{d['title']}]({url_root}{d['fpath']})|" for d in TOC]
toc_str= header + '\n'.join(recs)

readme="# title \n\n text goes here\n\n{TOC}\n\n# another section"
print(readme.replace('{TOC}',toc_str))

to do:

  • compose into a gh action that also commits the new readme

from bench-warmers.

dmarx avatar dmarx commented on May 26, 2024

https://github.community/t/can-github-actions-directly-edit-files-in-a-repository/17884/7

from bench-warmers.

Related Issues (20)

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.