diff --git a/README.md b/README.md
index 7ec2a46..cb6b395 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,10 @@ Plik szablon.ipynb zawiera nagłówek plików zajęć obowiązujący w projekcie
2. Uzupełnij brakujące informacje o zajęciach w pierwszej komórce markdown w pliku.
3. Z poziomu edytora tekstu lub w "Property Inspector -> Advanced Tools" w JupyterLab uzupełnij niezbędne pola metadanych pliku, tj. pola "author","email","lang": "pl","subtitle", "title","year". Jeśli pola te nie występują w "Notebook metadata" skopiuj ich strukturę do tej sekcji.
+
+## Skrypt do modyfikacji plików
+W pliku "json_script.ipynb" znajduje się skrypt napisany w języku Python do automatycznego dodawania sformatowanego nagłówka oraz metadanych.
+
W razie pytań lub wątpliwości proszę pisać na adres bartnas@amu.edu.pl
diff --git a/json_script.ipynb b/json_script.ipynb
new file mode 100644
index 0000000..19499fc
--- /dev/null
+++ b/json_script.ipynb
@@ -0,0 +1,110 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 92,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ ],
+ "source": [
+ "#procedura napisywania plików ipynb (generowanie nagłówka i metadanych)\n",
+ "import json\n",
+ "\n",
+ "def modjup(filen,numer,tytul,typ,author,email,lang,title,year):\n",
+ " zerocell=['![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\\n',\n",
+ " '
\\n', \n",
+ " '
%s
\\n'%(title),\n",
+ " ' %s. %s [%s]
\\n'%(numer,tytul,typ),\n",
+ " ' %s (%s)
\\n'%(author,year),\n",
+ " '\\n',\n",
+ " '\\n',\n",
+ " '![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)']\n",
+ " zerodict={'cell_type': 'markdown','metadata': {'collapsed': False},'source': zerocell}\n",
+ " with open(filen, 'r+') as f:\n",
+ " ll=json.load(f)\n",
+ " ll[\"metadata\"][\"author\"]=author\n",
+ " ll[\"metadata\"][\"email\"]=email\n",
+ " ll[\"metadata\"][\"lang\"]=lang\n",
+ " subtitle=\"%s.%s[%s]\"%(numer,tytul,typ)\n",
+ " ll[\"metadata\"][\"subtitle\"]=subtitle\n",
+ " ll[\"metadata\"][\"title\"]=title\n",
+ " ll[\"metadata\"][\"year\"]=year\n",
+ " \n",
+ " if not(ll['cells'][0]['source'][0]==zerocell[0]):\n",
+ " ll['cells'].insert(0,zerodict)\n",
+ " else:\n",
+ " ll['cells'][0]=zerodict\n",
+ " f.seek(0)\n",
+ " json.dump(ll,f,indent=4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 93,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ ],
+ "source": [
+ "#zmodyfikuj te dane\n",
+ "filen=\"szablon-1.ipynb\"\n",
+ "\n",
+ "numer=\"Numer\"\n",
+ "tytul=\"Tytul materiału\"\n",
+ "typ=\"laboratoria/wykład\"\n",
+ "\n",
+ "author=\"Imię Nazwisko\"\n",
+ "email=\"adres@email.com\"\n",
+ "lang= \"pl\"\n",
+ "title=\"Nazwa przedmiotu\"\n",
+ "year=\"Rok\"\n",
+ "\n",
+ "#uruchom procedurę\n",
+ "modjup(filen,numer,tytul,typ,author,email,lang,title,year)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 0,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ ],
+ "source": [
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (system-wide)",
+ "language": "python",
+ "metadata": {
+ "cocalc": {
+ "description": "Python 3 programming language",
+ "priority": 100,
+ "url": "https://www.python.org/"
+ }
+ },
+ "name": "python3",
+ "resource_dir": "/ext/jupyter/kernels/python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
\ No newline at end of file