Dodano skrypt.

This commit is contained in:
BartN 2021-09-22 23:35:44 +02:00
parent 4443fb5d0a
commit 6635ef4025
2 changed files with 114 additions and 0 deletions

View File

@ -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

110
json_script.ipynb Normal file
View File

@ -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",
" '<div class=\"alert alert-block alert-info\">\\n', \n",
" '<h1> %s </h1>\\n'%(title),\n",
" '<h2> %s. <i>%s</i> [%s]</h2> \\n'%(numer,tytul,typ),\n",
" '<h3> %s (%s)</h3>\\n'%(author,year),\n",
" '</div>\\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
}