Skip to content

Action to synchronize "any" code in markdown with an external file. No more managing code as plain text.

License

Notifications You must be signed in to change notification settings

tokusumi/markdown-embed-code

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

markdown-embed-code

Embedding code into markdown from external file. Any language's code blocks are available.

See demo repo if you are interested in testing code within README.

How to use

In markdown, write code block as follows:

```python:tests/src/sample.py

```

And, you can refer specific lines as
```python:tests/src/sample.py [4-5]
 
```

Then, this action referes to tests/src/sample.py and modifies markdown as (if something code is written, they are overridden):

from math import sqrt


def sample(x):
    return sqrt(x)

And, specific lines is refered as

def sample(x):
    return sqrt(x)

NOTE: Read file by passed path, where the top directory in your repo is working directory. If the path is wrong, this action is failed.

How to use - workflow example

Override README.md and push by action if readme is changed:

name: Embed code in README

on:
  pull_request:
    branches:
      - main

jobs:
  embed-code:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
          fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
          ref: refs/heads/${{ github.head_ref }}

      - uses: tokusumi/markdown-embed-code@main
        with:
          markdown: "README.md"
          token: ${{ secrets.GITHUB_TOKEN }}
          message: "synchronizing Readme"
          silent: true

Configuration

input description
token Token for the repo. Can be passed in using {{ secrets.GITHUB_TOKEN }}
markdown (Optional) Target markdown file path. (default: "README.md")
message (Optional) Commit message for action. (default: "Embedding code into Markdown")
no_change (Optional) Issue comment at no changed (default: "No changes on README!" )
output (Optional) Output markdown file path. If none, override target file. (default: "")
silent (Optional) No issue comment in silent mode (default: false)

About

Action to synchronize "any" code in markdown with an external file. No more managing code as plain text.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published