Python to Convert Programming Code into Beautiful Image Snippets with Source Code

A simple python utility tool to convert programming code into beautiful image snippets.

Requirements:

  • certifi==2020.6.20
  • chardet==3.0.4
  • colorama==0.4.3
  • configparser==5.0.0
  • crayons==0.3.1
  • idna==2.10
  • pkg-resources==0.0.0
  • requests==2.24.0
  • selenium==3.141.0
  • urllib3==1.25.9
  • webdriver-manager==3.2.1

Installation:

  1. create virtual environment
virtualenv -p python3 venv

2. Activate an environment

source venv/bin/activate

3. change working directory

cd py-carbon-clips

4. install requirements

pip install -r requirements.txt
Code language: CSS (css)

Source Code:

py-clip.py

import os import glob from urllib import parse from selenium import webdriver from webdriver_manager.firefox import GeckoDriverManager from selenium.webdriver.firefox.options import Options def get_driver(): options = Options() options.headless = True driver = webdriver.Firefox( executable_path=GeckoDriverManager().install(), options=options) return driver def read_file(file): with open(file, 'r') as _f: text = _f.read() return text def get_files(path): files = glob.glob('{}/*'.format(path)) for file in files: if os.path.isfile: yield file def encode_text(file): clip_text = read_file(file) uri_encoded_clip_text = parse.quote_plus(clip_text) return uri_encoded_clip_text def take_snapshot(web, file): elem = web.find_element_by_xpath("//div[@id='export-container']") out_file = os.path.basename(file).split('.')[0] if not os.path.isdir(OUTPUT_DIR): os.mkdir(OUTPUT_DIR) file_path = '{}/{}.png'.format(OUTPUT_DIR, out_file) elem.screenshot(file_path) def main(): with (get_driver())as web: for file in get_files(INPUT_DIR): print("{}Processing-{}{}".format('*'*10, file, '*'*10)) encoded_text = encode_text(file) url = "https://carbon.now.sh?code=" + encoded_text web.get(url) take_snapshot(web, file) if __name__ == '__main__': INPUT_DIR = 'input' OUTPUT_DIR = 'clips' if os.path.isdir(INPUT_DIR): main() else: os.mkdir(INPUT_DIR) msg = '{} is created please put files in {}' print(msg.format(INPUT_DIR, os.path.abspath(INPUT_DIR)))
Code language: JavaScript (javascript)

Sample:

C++ Program
HTML
Java Program
Python Program
R Program

Leave a Comment